diff --git a/README.md b/README.md index 101fa347..dc9f8e5f 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,90 @@ +[![Code Jam Banner](https://raw.githubusercontent.com/python-discord/code-jam-6/master/ancient%20tech.png?token=AAQAKVPQ55SEFWYYLYO5YV26ETLTC)](#) -![Code Jam Banner](https://raw.githubusercontent.com/python-discord/code-jam-6/master/ancient%20tech.png?token=AAQAKVPQ55SEFWYYLYO5YV26ETLTC) +[![Discord](https://img.shields.io/static/v1?label=Python%20Discord&logo=discord&message=%3E30k%20members&color=%237289DA&logoColor=white)](https://discord.gg/2B963hn) +[![License](https://img.shields.io/github/license/python-discord/bot)](LICENSE) +[![Website](https://img.shields.io/badge/website-visit-brightgreen)](https://pythondiscord.com) -Welcome to the sixth Python Discord Code Jam! +### Welcome to the sixth Python Discord Code Jam! -By popular choice, the theme for this code jam is **Ancient Technology**. What you do with this theme or how you interpret it is up to you, but we're sure you can come up with something fun. As the technlogy for this code jam, we've chosen for [Kivy](https://kivy.org/), a cross-platform framework for making user interfaces. We know that a lot of you are probably relatively new to this framework and that's why some of Kivy's [core developers](https://kivy.org/#aboutus) will be hanging out in the #winter-code-jam channel! +#### By popular choice, the theme for this code jam is **Ancient Technology**. + +What you do with this theme or how you interpret it is up to you, but it will be your task to come up with something fun using this theme. + +#### The chosen technology for this code jam is [Kivy](https://kivy.org/). + +Kivy is a cross-platform framework for making user interfaces. We know that a lot of you are probably relatively new to this framework and that's why some of Kivy's [core developers](https://kivy.org/#aboutus) will be hanging out in the **`#winter-code-jam`** channel to help you! ## Getting Started -1. Have your team leader fork the repository. If your leader is unavailable, it's okay if someone else does it. +### 1. Fork this repository +Have your team leader [fork](https://github.com/python-discord/code-jam-6/fork) the repository. If your leader is unavailable, it's okay if someone else does it. + +### 2. Create a pull request +Open a pull request from your fork's `master` to the `master` branch of this repository. This pull requests will eventually count as your team's submission, but make sure to **open the PR when the code jam starts**. You can use the name of your team as the name of the pull request. + +### 3. Keep changes to your team folder +Your own team's project files should be contained **within your own team's subdirectory**. A directory with your team's name will already exist, so make sure to use this. + +### 4. Consider your development workflow +Since you are making a pull request from the `master` of your fork, it would probably be best to use different branches in your repository to work on your project. You can then periodically merge those development branches into the `master` branch. + +For an ideal developer workflow, you should probably be opening pull requests inside of your fork, targeting your own `master` branch. If this doesn't make any sense to you because you're not that well-versed in git, you will probably be okay with all of you just pushing code directly to your master branch, but keep in mind that this may lead to conflicts if you are all working in parallel. + +### 5. Commit to your master branch +The Pull Request you created originally will be automatically updated whenever you push code to `master` on your fork, so no need for updating anything yourself or creating a new Pull Request at the end. Just keep pushing code to your `master` branch and do your best to finish before the code jam ends! + +## Important Considerations + +### [The Rules](https://pythondiscord.com/pages/code-jams/code-jam-6/rules/) +Read these before starting any work on your projects. + +### Documentation +Your team folder should already contain a `README.md` file that you should use to document your project. At the very least, make sure to include information on how to set up and run your project so the judges won't have trouble running it. Failure to provide this information may lead to losing points, or in extreme cases, disqualification. + +### Code Style + +We expect you to submit code that has a style that is in accordance with [PEP8](https://www.python.org/dev/peps/pep-0008/). + +Pull requests to this repository will be **automatically linted with a tool called [flake8](http://flake8.pycqa.org/en/stable/)** ([see below](#automatic-linting-of-pull-requests) for more information). Your team folder contains a flake8 configuration file, `.flake8`, that allows you to run flake8 with the same settings as we will use. + +We have set a **maximum line length of 100 characters**. This is also set and checked in the flake8 configuration. + +If you wish to use an autoformatter like `black`, that is absolutely fine. Do note that most autoformatters do not guarantee that your code will pass `flake8` and it's up to you to double check that. + +### Dependancy Management +You may use any third party package that's available on [PyPI](https://pypi.org/), but you should provide some form of method to easily install your project dependancies, such as a strictly pinned `requirements.txt`, a Pipfile, or some other form of dependency management list. + +### Restrict Files to Team Folder +You should **make no changes outside of your team's folder**. This means that all of the files you want to include, including your code, assets and dependancy management files should all be contained that directory and not in the root level of the repository. + +This ensures that we can merge your pull request into the repository once the Code Jam is over, you get GitHub contribution credit towards our organization and, most importantly, it will showcase your project on GitHub. + +## Code Style and Readability + +Code style and readability will be important factors in judging your team's project. We expect you to follow the style recommendations made in [PEP8](https://www.python.org/dev/peps/pep-0008/) and, to check for compliance with PEP8, we will use a linting tool called [flake8](http://flake8.pycqa.org/en/stable/). In case PEP8 and flake8 disagree, the output of the linter will be leading. + +We will be using flake8 without additional plugins and with most of default settings enabled. The most notable exception is that we've set the maximum line length to 100 characters. To make it easy for you to run flake8 with the same settings as we will use, we have added a `.flake8` configuration file to your team folder. + +Obviously, adhering to PEP8 is not the only factor that determines if your code is readable, so make sure to look [beyond PEP8](https://www.youtube.com/watch?v=wf-BqAjZb8M) as well. + +#### Automatic Linting of Pull Requests + +To help us check your code for compliance with PEP8, we have set up an automated build pipeline that will lint all pull requests made to this repository. Each time a pull requests is opened or when changes are made to the source branch (`master` on your team's fork) of a PR, the build pipeline will automatically lint the pull request. When the build process has completed, the build status will automatically be reported in the pull request: + +![Failing build status](https://raw.githubusercontent.com/python-discord/code-jam-6/master/failing_build.png?token=AH7WUVAZRU56A6RY2KPVUOS6EWJUU) + +Please note that **you should not use this pipeline as a remote linter**. Ideally, all changes made to the `master` branch of your team's repository have already been linted locally before they were pushed to the remote repository. + +## Useful Information for Participants + +Our website contains some pages that may help you get started: -2. Open a pull request from your fork's `master` to the `master` branch of this repository. This pull requests will eventually count as your team's submission, but make sure **to open the PR as the code jam starts**. +- [How to use git](https://pythondiscord.com/pages/code-jams/using-git/) -3. Make sure to **only make changes within your team's subdirectory**. The repository should already contain a directory with your team's name as the name. +- [Making a fork, opening a pull request, & creating a GitHub webhook](https://pythondiscord.com/pages/code-jams/pull-request/) -4. Since you are making a pull request from the `master` of your fork, it would probably be best to use different branches in your repository to work on your project. You can then periodically merge those development branches into the `master` branch. +- [How does judging work?](https://pythondiscord.com/pages/code-jams/judging/) - For an ideal developer workflow, you should probably be opening pull requests inside of your fork, targeting your own `master` branch. If this doesn't make any sense to you because you're not that well-versed in git, you will probably be okay with all of you just pushing code directly to your master branch, but keep in mind that this may lead to conflicts if you are all working in parallel. +## Partners and Sponsors -5. The Pull Request will be automatically updated whenever you push code to master on your fork, so all you have to do is keep pushing code to it and make sure you are finished before the code jam ends! +[![kivy_143x80](https://user-images.githubusercontent.com/33516116/72271607-173d4980-361f-11ea-8597-4140d98321f5.png)](https://kivy.org/#home) [![jetbrains_143x80](https://user-images.githubusercontent.com/33516116/72271609-173d4980-361f-11ea-8453-c996d33a649b.png)](https://www.jetbrains.com/) [![do_210x80](https://user-images.githubusercontent.com/33516116/72271610-173d4980-361f-11ea-9f3a-0e8de2b8abd1.png)](https://www.digitalocean.com/) [![linode_202x80](https://user-images.githubusercontent.com/33516116/72271608-173d4980-361f-11ea-82bf-e857efca09df.png)](https://www.linode.com/) diff --git a/amphibian-alchemists/.flake8 b/amphibian-alchemists/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/amphibian-alchemists/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 509622f3..88f33eef 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -18,5 +18,5 @@ jobs: - script: pip install flake8 displayName: 'Install flake8' - - script: flake8 --exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox --ignore=E226 --max-line-length=100 + - script: flake8 --isolated --exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox --max-line-length=100 displayName: 'Lint the project with flake8' diff --git a/brilliant-builders/.flake8 b/brilliant-builders/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/brilliant-builders/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/circumstantial-companions/.flake8 b/circumstantial-companions/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/circumstantial-companions/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/deprived-detectives/.flake8 b/deprived-detectives/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/deprived-detectives/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/excellent-exorcists/.flake8 b/excellent-exorcists/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/excellent-exorcists/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/failing_build.png b/failing_build.png new file mode 100644 index 00000000..3e5f9e40 Binary files /dev/null and b/failing_build.png differ diff --git a/fascinating-fools/.flake8 b/fascinating-fools/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/fascinating-fools/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/gutsy-gamblers/.flake8 b/gutsy-gamblers/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/gutsy-gamblers/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/hormonal-hedonists/.flake8 b/hormonal-hedonists/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/hormonal-hedonists/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/inquisitive-investigators/.flake8 b/inquisitive-investigators/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/inquisitive-investigators/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/jurassic-journalists/.flake8 b/jurassic-journalists/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/jurassic-journalists/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/kaleidoscopic-kings/.flake8 b/kaleidoscopic-kings/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/kaleidoscopic-kings/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/litigious-liberators/.flake8 b/litigious-liberators/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/litigious-liberators/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/local-flake8/.flake8 b/local-flake8/.flake8 new file mode 100644 index 00000000..1b8ce3dd --- /dev/null +++ b/local-flake8/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=120 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox \ No newline at end of file diff --git a/local-flake8/failing.py b/local-flake8/failing.py new file mode 100644 index 00000000..b68cd18b --- /dev/null +++ b/local-flake8/failing.py @@ -0,0 +1,4 @@ +print("hello, there") +abcdefg = 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 +abcdefg = 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 +abcdefg = 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 diff --git a/microscopic-monks/.flake8 b/microscopic-monks/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/microscopic-monks/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/next-door-nuns/.flake8 b/next-door-nuns/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/next-door-nuns/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/paranormal-pioneers/.flake8 b/paranormal-pioneers/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/paranormal-pioneers/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/romantic-revolutionaries/.flake8 b/romantic-revolutionaries/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/romantic-revolutionaries/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/suspicious-samaritans/.flake8 b/suspicious-samaritans/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/suspicious-samaritans/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/tactless-tricksters/.flake8 b/tactless-tricksters/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/tactless-tricksters/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox diff --git a/temporary.py b/temporary.py new file mode 100644 index 00000000..da63c4b3 --- /dev/null +++ b/temporary.py @@ -0,0 +1,18 @@ +import sys + + +class FooBar: + pass + + +try: + int("a") +except: + pass + +a = 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 + +friend = "something" + +print(f"hello {friend}", file=sys.stderr) +print(sys.version, file=sys.stderr) diff --git a/wandering-warriors/.flake8 b/wandering-warriors/.flake8 new file mode 100644 index 00000000..a2dbe291 --- /dev/null +++ b/wandering-warriors/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length=100 +exclude=.cache,.venv,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox