Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test PyPI packaging as part of CI #16

Merged
merged 7 commits into from Jan 11, 2019

Conversation

Projects
None yet
2 participants
@c-w
Copy link
Collaborator

commented Jan 10, 2019

This pull request makes the CI package the project and then install the project from the package. Given that releases often are a rare occurrence, I've experienced on past projects that the setup.py slowly drifts out of sync with the rest of the project which then makes release time more painful. Always testing the packaging and installation path as part of the CI removes this potential for surprises.

The pull request also cleans up the ci.sh script by limiting the scope of the export statements and by removing the need to && all the calls: set -o errexit will tell bash to stop script execution and exit with the last status code as soon as any of the script's commands failed. Do note though that set -o errexit doesn't work for piped commands: this_errors | this_succeeds_even_if_there_was_no_input will not exit. If the latter is desired, you should additionally add set -o pipefail. This is omitted in this pull request since the functionality is currently not required.

c-w added some commits Jan 10, 2019

Make package easily packageable with setup.py
Not having MANIFEST.in and setup.py at the repository root is
non-standard and therefore will lead to all sorts of issues with
automated tooling so it's best to simply comply and have the setup at
the top level. We can still use setuptools to automatically package up
all packages in sub-folders so we don't really loose anything from this
change.
Remove hard-coded version number
This enables us to do programmatic releases more easily, for example by
instructing Travis to update the `version.txt` file before deployment,
e.g. via the following entries in `.travis.yml`:

```
before_deploy:
  - echo "${TRAVIS_TAG}" > version.txt
```

@michaelperel michaelperel merged commit a8eac93 into michaelperel:refactor Jan 11, 2019

2 checks passed

Travis CI - Pull Request Build Passed
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.