-
-
Notifications
You must be signed in to change notification settings - Fork 386
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
Build manylinux1 OS-specific binary wheels in Travis (CI) and publish them to PyPI (CD) #869
Build manylinux1 OS-specific binary wheels in Travis (CI) and publish them to PyPI (CD) #869
Conversation
f0d23e8
to
c2ac65a
Compare
c2ac65a
to
942ef20
Compare
Have you checked the status of |
Yeah, I know. |
30947c8
to
029165c
Compare
stages: | ||
- test | ||
- name: *deploy_stage | ||
if: 1=1 OR tag IS present OR type IN (cron, api) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jdavid
We'll need to apply
if: 1=1 OR tag IS present OR type IN (cron, api) | |
if: tag IS present OR type IN (cron, api) |
once password is updated.
password: | ||
# Encrypted with `travis encrypt -r aio-libs/aiohttp --api-endpoint 'https://api.travis-ci.com/'`: | ||
secure: >- | ||
TODO: REPLACE THIS WITH AN ENCRYPTED PASSWORD |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jdavid please generate the encrypted string using travis encrypt -r libgit2/pygit2
command.
And then you can use this page to update in via UI right in this PR: https://github.com/webknjaz/pygit2/edit/feature/manylinux1-binary-wheels/.travis.yml?pr=%2Flibgit2%2Fpygit2%2Fpull%2F869
@jdavid this is almost ready to be merged. |
(PR close/reopen trick is just to trigger CI restart) |
Add test target. 0.28.0 (2019-03-19) ------------------------- - Upgrade to libgit2 0.28 `#878 <https://github.com/libgit2/pygit2/issues/878>`_ - Add binary wheels for Linux `#793 <https://github.com/libgit2/pygit2/issues/793>`_ `#869 <https://github.com/libgit2/pygit2/pull/869>`_ `#874 <https://github.com/libgit2/pygit2/pull/874>`_ `#875 <https://github.com/libgit2/pygit2/pull/875>`_ `#883 <https://github.com/libgit2/pygit2/pull/883>`_ - New ``pygit2.Mailmap``, see documentation `#804 <https://github.com/libgit2/pygit2/pull/804>`_ - New ``Repository.apply(...)`` wraps ``git_apply(..)`` `#841 <https://github.com/libgit2/pygit2/issues/841>`_ `#843 <https://github.com/libgit2/pygit2/pull/843>`_ - Now ``Repository.merge_analysis(...)`` accepts an optional reference parameter `#888 <https://github.com/libgit2/pygit2/pull/888>`_ `#891 <https://github.com/libgit2/pygit2/pull/891>`_ - Now ``Repository.add_worktree(...)`` accepts an optional reference parameter `#814 <https://github.com/libgit2/pygit2/issues/814>`_ `#889 <https://github.com/libgit2/pygit2/pull/889>`_ - Now it's possible to set SSL certificate locations `#876 <https://github.com/libgit2/pygit2/issues/876>`_ `#879 <https://github.com/libgit2/pygit2/pull/879>`_ `#884 <https://github.com/libgit2/pygit2/pull/884>`_ `#886 <https://github.com/libgit2/pygit2/pull/886>`_ - Test and documentation improvements `#873 <https://github.com/libgit2/pygit2/pull/873>`_ `#887 <https://github.com/libgit2/pygit2/pull/887>`_ Breaking changes: - Now ``worktree.path`` returns the path to the worktree directory, not to the `.git` file within `#803 <https://github.com/libgit2/pygit2/issues/803>`_ - Remove undocumented ``worktree.git_path`` `#803 <https://github.com/libgit2/pygit2/issues/803>`_ 0.27.4 (2019-01-19) ------------------------- - New ``pygit2.LIBGIT2_VER`` tuple `#845 <https://github.com/libgit2/pygit2/issues/845>`_ `#848 <https://github.com/libgit2/pygit2/pull/848>`_ - New objects now support (in)equality comparison and hash `#852 <https://github.com/libgit2/pygit2/issues/852>`_ `#853 <https://github.com/libgit2/pygit2/pull/853>`_ - New references now support (in)equality comparison `#860 <https://github.com/libgit2/pygit2/issues/860>`_ `#862 <https://github.com/libgit2/pygit2/pull/862>`_ - New ``paths`` optional argument in ``Repository.checkout()`` `#858 <https://github.com/libgit2/pygit2/issues/858>`_ `#859 <https://github.com/libgit2/pygit2/pull/859>`_ - Fix speed and windows package regression `#849 <https://github.com/libgit2/pygit2/issues/849>`_ `#857 <https://github.com/libgit2/pygit2/issues/857>`_ `#851 <https://github.com/libgit2/pygit2/pull/851>`_ - Fix deprecation warning `#850 <https://github.com/libgit2/pygit2/pull/850>`_ - Documentation fixes `#855 <https://github.com/libgit2/pygit2/pull/855>`_ - Add Python classifiers to setup.py `#861 <https://github.com/libgit2/pygit2/pull/861>`_ - Speeding up tests in Travis `#854 <https://github.com/libgit2/pygit2/pull/854>`_ Breaking changes: - Remove deprecated `Reference.get_object()`, use `Reference.peel()` instead 0.27.3 (2018-12-15) ------------------------- - Move to pytest, drop support for Python 3.3 and cffi 0.x `#824 <https://github.com/libgit2/pygit2/issues/824>`_ `#826 <https://github.com/libgit2/pygit2/pull/826>`_ `#833 <https://github.com/libgit2/pygit2/pull/833>`_ `#834 <https://github.com/libgit2/pygit2/pull/834>`_ - New support comparing signatures for (in)equality - New ``Submodule.head_id`` `#817 <https://github.com/libgit2/pygit2/pull/817>`_ - New ``Remote.prune(...)`` `#825 <https://github.com/libgit2/pygit2/pull/825>`_ - New ``pygit2.reference_is_valid_name(...)`` `#827 <https://github.com/libgit2/pygit2/pull/827>`_ - New ``AlreadyExistsError`` and ``InvalidSpecError`` `#828 <https://github.com/libgit2/pygit2/issues/828>`_ `#829 <https://github.com/libgit2/pygit2/pull/829>`_ - New ``Reference.raw_name``, ``Reference.raw_shorthand``, ``Tag.raw_name``, ``Tag.raw_message`` and ``DiffFile.raw_path`` `#840 <https://github.com/libgit2/pygit2/pull/840>`_ - Fix decode error in commit messages and signatures `#839 <https://github.com/libgit2/pygit2/issues/839>`_ - Fix, raise error in ``Repository.descendant_of(...)`` if commit doesn't exist `#822 <https://github.com/libgit2/pygit2/issues/822>`_ `#842 <https://github.com/libgit2/pygit2/pull/842>`_ - Documentation fixes `#821 <https://github.com/libgit2/pygit2/pull/821>`_ Breaking changes: - Remove undocumented ``Tag._message``, replaced by ``Tag.raw_message``
This PR updates [pygit2](https://pypi.org/project/pygit2) from **0.27.4** to **0.28.0**. <details> <summary>Changelog</summary> ### 0.28.0 ``` ------------------------- - Upgrade to libgit2 0.28 `878 <https://github.com/libgit2/pygit2/issues/878>`_ - Add binary wheels for Linux `793 <https://github.com/libgit2/pygit2/issues/793>`_ `869 <https://github.com/libgit2/pygit2/pull/869>`_ `874 <https://github.com/libgit2/pygit2/pull/874>`_ `875 <https://github.com/libgit2/pygit2/pull/875>`_ `883 <https://github.com/libgit2/pygit2/pull/883>`_ - New ``pygit2.Mailmap``, see documentation `804 <https://github.com/libgit2/pygit2/pull/804>`_ - New ``Repository.apply(...)`` wraps ``git_apply(..)`` `841 <https://github.com/libgit2/pygit2/issues/841>`_ `843 <https://github.com/libgit2/pygit2/pull/843>`_ - Now ``Repository.merge_analysis(...)`` accepts an optional reference parameter `888 <https://github.com/libgit2/pygit2/pull/888>`_ `891 <https://github.com/libgit2/pygit2/pull/891>`_ - Now ``Repository.add_worktree(...)`` accepts an optional reference parameter `814 <https://github.com/libgit2/pygit2/issues/814>`_ `889 <https://github.com/libgit2/pygit2/pull/889>`_ - Now it's possible to set SSL certificate locations `876 <https://github.com/libgit2/pygit2/issues/876>`_ `879 <https://github.com/libgit2/pygit2/pull/879>`_ `884 <https://github.com/libgit2/pygit2/pull/884>`_ `886 <https://github.com/libgit2/pygit2/pull/886>`_ - Test and documentation improvements `873 <https://github.com/libgit2/pygit2/pull/873>`_ `887 <https://github.com/libgit2/pygit2/pull/887>`_ Breaking changes: - Now ``worktree.path`` returns the path to the worktree directory, not to the `.git` file within `803 <https://github.com/libgit2/pygit2/issues/803>`_ - Remove undocumented ``worktree.git_path`` `803 <https://github.com/libgit2/pygit2/issues/803>`_ ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pygit2 - Changelog: https://pyup.io/changelogs/pygit2/ - Repo: http://github.com/libgit2/pygit2 </details>
Closes #793
In its current state the changed added in this PR enable Travis CI build and publish OS-specific wheel distributions which are compliant with a manylinux1 standard.
This PR has a few intentionally incomplete bits:
Considerations
For simplicity, this PR reuses image by pyca/cryptography which inherits the official image by pypa/manylinux1 and adds a pre-compiled openssl 1.1.1 on top of it so we don't have to.
As a further build time performance improvement I see how we can improve things by publishing our own image to a public registry (Docker Hub or better quay.io) but it's out of scope of this PR.
Credits
This patch is based on the prior art by @beniwohli and my own experience of building manylinux1 wheels for other projects.