Closed dionizh closed 3 years ago
These are just suggestions!
Incoming contributor will need the following skills:
could be:
Incoming contributors will need some or all of the following skills:
You do not have to be familiar with all the technologies above, as long as you are keen to learn. If you primarily want to work on the front end, you may not need to know Python. And if you want to primarily work on the back end, you may not need to know Javascript.
could be:
If you primarily want to work on the front end then you won't need to know Python. If you want to want to work on the back end, you might not need Javascript, but either case you will need to know some [git](link to git book)
https://docs.codeforlife.education/developer-guide/getting-started
Once you manage to get the program running locally, we suggest you have a look at tickets in our issue tracker that are labelled good first issue, selected for their relative approachability for first-time contributors.
- add link for issue tracker
You can find our core developer workspace here and the volunteers workspace here.
Should they only stick to the volunteer workspace or is it OK to go through the core workspace as well?
Maybe reorder the paragraphs:
We use Zenhub to track our issues, which has similar usage to Kanban board. You can find our core developer workspace here and the volunteers workspace here. We recommend to add Zenhub chrome extension to integrate directly into Github's user interface. The volunteer workspace contains only issues that are labelled volunteers so please concentrate on that board.
You can get a pretty good idea at what issues the core developers are working on by checking (REMOVE)our Zenhub (REPLACE WITH) the core workspace[LINK]. We check the progress on the board at our daily standup and update the status of the tasks throughout the day.
If you have a more general question or comment, please start a thread on Github Discussions (ADD "in the individual projects"). We monitor Github closely and will get notified regarding any activity.
https://docs.codeforlife.education/developer-guide/development-guidelines
Editor and Formatter
You can use whichever editor you like. We'd recommend Visual Code with black formatter plugin, that way (ADD when using Python) you don't have to worry about formatting and convention and let black do the work. One of our developers uses IntelliJ (PYCHARM?), though you may need a license.
You can use pycharm community editon free of charge but I agree, vscode is the best! But that's for python and I think this doesn't really apply to people who are working on html/css/js contributions.
If this is your first pull request, check out Make a Pull Request. You can also practice making a pull request in the First Contributions repository.
Maybe a couple of words on what the First Contributions actually is: "The First Contributions repository is a resource for new users to practice the fork - clone - edit - pull request workflow"
https://docs.codeforlife.education/developer-guide/submitting-your-work
We use pytest for python unit tests, and cypress for the UI/frontend. There are still older tests with selenium and python unittest, but we aim to eventually migrate everything to pytest and cypress.
- most of the tests for Rapid Router are selenium, but those run in pytest. I'm not aware of any that run with unittest, but I might be wrong.
It might be worth having a section on how to get up and running with selenium ie installing chromedriver in different OSs? Also a sort of copy and paste quickstart: 1- install chromedriver 2- git clone the package 3- pipenv install --dev pipenv shell 4- ./run and look at browser 5- run the tests 6- It's OK to ask if you can't get up and running Non-python people (eg front end experts) might need more introduction to what is going on when you run ./run with virtualenvs and so on, and where to find the static files. One issue I have is that pipenv is set up for (I think) python 3.6.7 and so complains if you have a different python 3.6.x on your machine. So we need to tell people how to get that specific version of python, or free up that pipfile. I use python 3.6.13 and change the pipfile at my end but that might not be the best way. Non-python people might find that a bit baffling!!
https://docs.codeforlife.education/developer-guide/development-guidelines Actually, black is now included with vscode. This is how to turn it on: https://dev.to/adamlombard/how-to-use-the-black-python-code-formatter-in-vscode-3lo0
@sebp999 Thank you for this! I've integrated your suggestions. And regarding the setup of Python and the working environment, a new page has been added now: https://docs.codeforlife.education/git/common-setup If you get a chance, it'd be great if you can follow the guide and update the way you set up python (this would be the 'proper way' rather than modifying the pipfile), and let us know of any issue or feedback. @faucomte97 is going to try on a fresh machine too.
Here is what I've noted so far after going through the docs.
sudo apt-get install python-pip
didn't work for me. I had to do python3-pip
instead.pip install pipenv
doesn't work fully. It installs pipenv but then when I tried running pipenv
it didn't recognise the command. I ran sudo pip install pipenv
and then it worked../run
, I got stuck as it kept trying to install old versions of Rapid Router. Apparently that's because aimmo isn't published properly, but why is this a problem when running locally?python aimmo_setup.py
command didn't work at all. I need to set it up manually instead but I haven't done that yet.Todo:
Added more detail and screenshot for the Zenhub section. Added how volunteer needs to comment on the issue to 'earmark' it.
Reviewed the docs on (real live) Tech Chapter yesterday: https://docs.codeforlife.education/git/aimmo-setup
There's this new docs subdomain https://docs.codeforlife.education/, meant to be for future volunteers, which could be external (non Ocado) contributors. We’d like it so people can know pretty much everything to get started from the docs. We can’t assume that they know one of the core team personally, so they may not be too comfortable asking questions in the thread/discussion etc at first, so the docs would be the only thing they have at first.
Please have a read and see whether the docs accomplish what we want above. Any other feedback is welcome too!