
Mu Documentation Release 1.1.0.beta.5 Nicholas H.Tollervey Sep 23, 2021 CONTENTS 1 Quickstart 3 2 What? 5 3 Why? 7 4 How? 9 5 Who? 11 6 Contents: 13 6.1 Contributing to Mu............................................ 13 6.2 Code of Conduct............................................. 14 6.3 Developer Setup............................................. 15 6.4 Suggested First Steps........................................... 18 6.5 User Experience............................................. 20 6.6 Mu’s Architecture............................................ 26 6.7 Modes in Mu............................................... 27 6.8 Internationalisation of Mu........................................ 34 6.9 Python Runner/Debugger........................................ 39 6.10 Mu’s Test Suite.............................................. 42 6.11 Packaging Mu.............................................. 43 6.12 Developing Mu’s Website........................................ 47 6.13 Mu API Reference............................................ 49 6.14 Design Decisions............................................. 83 6.15 Release Process.............................................. 91 6.16 Roadmap (Mappa MUndi)........................................ 95 6.17 Mu’s Developers............................................. 96 6.18 Release History.............................................. 96 6.19 GNU General Public License...................................... 108 6.20 Copyright Information.......................................... 117 Python Module Index 121 Index 123 i ii Mu Documentation, Release 1.1.0.beta.5 Note: This documentation is NOT for users of Mu. Rather, it is for software developers who want to improve Mu. Read our Developer Setup documentation for the technical details needed to get started. For tutorials, how-to guides and user related discussion, please see the project’s website for users of Mu at: https: //codewith.mu/ If you’re interested in the fun, educational, inspiring and sometimes hilarious ways in which people use Mu, check out: https://madewith.mu/ CONTENTS 1 Mu Documentation, Release 1.1.0.beta.5 2 CONTENTS CHAPTER ONE QUICKSTART Mu works with Python 3.5 to 3.8 (both inclusive). You need to have one of these Python versions installed in order to work on developing Mu (here is a comprehensive guide for how to do this). We also assume you know how to use Python virtual environments. Clone the repository: git clone https://github.com/mu-editor/mu.git Create a virtualenv and activate it. Then, upgrade pip: python-m pip install--upgrade pip Install Mu and its development dependencies: pip install-e".[dev]" Start Mu: mu-editor Run the test suite: make check Read on to learn more about Mu, its aims and how you can contribute. 3 Mu Documentation, Release 1.1.0.beta.5 4 Chapter 1. Quickstart CHAPTER TWO WHAT? Mu is a very simple Python editor for kids, teachers and beginner programmers. It’s written in Python and works on Windows, OSX, Linux and Raspberry Pi. “[Papert] realized, ‘Oh, we could take the real content out here as a version in the child’s world that is still the real thing.’ It’s not a fake version of math. It’s kind of like little league, or even T-ball. In sports they do this all the time. In music, they do it all the time. The idea is, you never let the child do something that isn’t the real thing – but you have to work your ass off to figure out what the real thing is in the contextof the way their minds are working at that developmental level.” – Alan Kay Mu aspires to be “the real thing” as a development environment for beginner programmers taking their first steps with Python. As a rule of thumb, if you’re able to ask “why doesn’t Mu have [feature X]?” then you’re probably too advanced for using Mu as a development environment. In which case, you should graduate to a more advanced editor. 5 Mu Documentation, Release 1.1.0.beta.5 6 Chapter 2. What? CHAPTER THREE WHY? There isn’t a cross platform Python code editor that is: • Easy to use; • Available on all major platforms; • Well documented (even for beginners); • Simply coded; • Currently maintained; and, • Thoroughly tested. Mu addresses these needs. Mu was originally created as a contribution from the Python Software Foundation for the BBC’s micro:bit project. Many people asked if Mu could be turned into a generic beginner’s code editor and, thanks to the wonderful support of the Raspberry Pi Foundation the work needed to make such changes was done over the summer of 2017. The following video of a talk given at PyCon 2018 outlines the story of Mu: 7 Mu Documentation, Release 1.1.0.beta.5 8 Chapter 3. Why? CHAPTER FOUR HOW? Mu’s outlook is: • Less is more (remove all unnecessary distractions); • Keep it simple (so Mu is easy to understand); • Walk the path of least resistance (Mu should be easy to use); • Have fun (learning should be a positive experience). Mu’s own code is simple, clearly organised and well tested. It’s copiously commented and mostly found in a few obviously named Python files. This has been done on purpose: we want teachers and kids to take ownership of this project and organising the code in this way aids the first steps required to get involved. If you’re looking for ways to get involved check out some of the Suggested First Steps for new contributors. Furthermore, we put our users at the centre of our development work. Extensive interviews with teachers, observa- tions of lessons and exceptionally clear and helpful feedback from the education team at the Raspberry Pi Foundation (perhaps the most successful computing in education project in history) have informed the design choices for Mu. 9 Mu Documentation, Release 1.1.0.beta.5 10 Chapter 4. How? CHAPTER FIVE WHO? You! Contributions are welcome without prejudice from anyone irrespective of age, gender, religion, race or sexuality. If you’re thinking, “but they don’t mean me”, then we especially mean YOU. Good quality code and engagement with respect, humour and intelligence wins every time. Read about Contributing to Mu and perhaps try out some Suggested First Steps. We want the Mu community to be a friendly place. Therefore, we expect contributors to follow our Code of Conduct. 11 Mu Documentation, Release 1.1.0.beta.5 12 Chapter 5. Who? CHAPTER SIX CONTENTS: 6.1 Contributing to Mu Hey! Many thanks for wanting to improve Mu. Contributions are welcome without prejudice from anyone irrespective of age, gender, religion, race or sexuality. If you’re thinking, “but they don’t mean me”, then we especially mean YOU. Good quality code and engagement with respect, humour and intelligence wins every time. • If you’re from a background which isn’t well-represented in most geeky groups, get involved - we want to help you make a difference. • If you’re from a background which is well-represented in most geeky groups, get involved - we want your help making a difference. • If you’re worried about not being technical enough, get involved - your fresh perspective will be invaluable. • If you think you’re an imposter, get involved. • If your day job isn’t code, get involved. • This isn’t a group of experts, just people. Get involved! • We are interested in educational, social and technical problems. If you are too, get involved. • This is a new community. No-one knows what they are doing, so, get involved. We expect contributors to follow our code_of_conduct. Check out our developer setup documentation for instructions to configure a working development environment for Mu. Feedback may be given for contributions and, where necessary, changes will be politely requested and discussed with the originating author. Respectful yet robust argument is most welcome. Warning: Contributions are subject to the following caveats: the contribution was created by the contributor who, by submitting the contribution, is confirming that they have the authority to submit the contribution andplace it under the license as defined in the LICENSE file found within this repository (see GNU General Public License). If this is a significant contribution the contributor should add themselves to the AUTHORS file found intheroot of Mu’s repository, otherwise they agree, for the sake of convenience, that copyright passes exclusively to Nicholas H.Tollervey on behalf of the Mu project. 13 Mu Documentation, Release 1.1.0.beta.5 6.1.1 Checklist • If your contribution includes non-obvious technical decision making please make sure you document this in the design decisions section. • Your code should be commented in plain English (British spelling). • If your contribution is for a major block of work and you’ve not done so already, add yourself to the AUTHORS file following the convention found therein. • We have 100% test coverage - include tests to maintain this! • Before submitting code ensure coding standards and test coverage by running: make check • If in doubt, ask a question. The only stupid question is the one that’s never asked. • Most importantly, Have fun! :-) 6.2 Code of Conduct We expect contributors to follow the Python Software Foundation’s Code of Conduct, reproduced below. The Python community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences great successes and continued growth. When you’re working with members of the community, we encourage you to follow these guidelines which help steer our interactions and strive to keep Python a positive, successful, and growing community. A member of the Python community is: 6.2.1 Open Members of the community are open to collaboration, whether it’s on PEPs, patches, problems, or otherwise. We’re receptive to constructive comment and criticism, as the experiences and skill sets of other members contribute to the whole of our efforts. We’re accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages135 Page
-
File Size-