Commit graph

11 commits

Author SHA1 Message Date
Eeshan Garg d4ded1c5dd tools/release-packages: Stop generating universal wheels.
Since we recently dropped support for Python 2 in our PyPI packages,
we can no longer distribute them as universal wheels.
2020-04-18 20:33:17 -07:00
rht 4600ce59a3 Remove all remaining from __future__ imports. 2020-04-03 08:18:08 -04:00
Eeshan Garg e528577f11 tools/release-packages: Generate Python3 dist for zulip_bots.
Now that zulip_bots is fully Python3, it makes sense to only
generate a Python3 wheel dist for it. zulip and zulip_botserver
are still distributed as a py2/py3 universal wheel.
2018-01-08 21:17:28 -03:30
Eeshan Garg 072d43b7c3 tools/release_packages: Stop generating sdists.
Now that we do not use MANIFEST.in for zulip_bots, it doesn't
make sense to distribute sdists, because sdists don't pick up
data files specified in the package_data argument to setup().

Also, it isn't a huge deal if we don't distribute sdists for our
packages. Most PyPI projects only release wheels and pip will also
use wheels if available. So, this made sense!
2018-01-08 21:17:28 -03:30
Eeshan Garg e20b754498 zulip_bots: Use package_data instead of MANIFEST.in.
This commit removes generate_manifest.py and package data files
are now included using the package_data kwarg to setup().

This is because, in certain situations, MANIFEST.in is a bit
finicky. For instance installing a package using:

python setup.py install

doesn't include files specified in MANIFEST.in, while using

pip install ./zulip_bots

does. package_data doesn't pose this problem, ergo it's better
for us.
2018-01-08 18:28:50 -03:30
Eeshan Garg 0e8a40b7c0 tools/release-packages: Document the release process.
This commit updates the command usage string to also document
the release process briefly.
2017-12-18 23:07:42 -03:30
Eeshan Garg 4dfa2d6f33 tools/release-packages: Add update-main-repo subcommand.
The ability to update the zulip/requirements/* files in the main
zulip repo has now been made a part of its own subcommand.

To update the requirements to install the packages off of the
0.4.0 tag, run:

./release-packages ZULIP_DIR_PATH 0.4.0

To update the requirements to install the packages off of the
commit hash abcdefg, but the version to be 0.4.0, run:

./release-packages ZULIP_DIR_PATh 0.4.0 --hash abcdefg
2017-12-18 22:47:42 -03:30
Eeshan Garg 3c23dd6c66 tools/release-packages: Remove the ability to push changes.
This commit removes the following:

* This script's dependency on gitpython, it is not maintained actively.
* The ability to push changes in this and the main zulip/ repo. Doing
  so automatically was turning out to be cumbersome and buggy and
  doing it manually doesn't take significantly longer anyway.
* The ability to automatically increment PROVISION_VERSION in
  zulip/version.py. Again, this was too buggy and it doesn't take
  much longer to just increment it by hand.

Removing the above features made the script a lot easier to maintain
and read.
2017-12-18 22:05:54 -03:30
Eeshan Garg 13985510b1 tools/release-packages: Isolate the build and cleanup commands.
This commit fixes a couple of things:

* Removes the command line argument called release_version, now
  one doesn't have to supply a version number when running just
  running --cleanup, for instance.
* Run --cleanup before building the wheels and sdists. This is so
  that outdated distributions are removed before generating new
  ones.
* Set IS_PYPA_PACKAGE back to False at the end of the --build
  process so that we don't accidentally set it to True. This was
  a huge bug in the previous version of the script.
2017-12-18 21:06:01 -03:30
Eeshan Garg 5235892aef release-packages: Fix glob pattern for twine.upload. 2017-10-09 14:07:19 -02:30
Eeshan Garg 81073f9234 packaging: Automate the package release process.
This commit adds a script to automate the PyPA release of the
zulip, zulip_bots and zulip_botserver packages.

The tools/release-packages script would take care of uploading
the packages to PyPA, and push commits to both repos updating the
package versions. If you have commit access to the repos, you
can --push upstream to master. If not, then you can --push
origin to a new branch on your fork and create a PR for those
changes.

Ideally, a release shouldn't take longer than however long it
takes one to type the above command. If you have SSH set up on
GitHub, you won't need to type in your GitHub username and
password. You can also store your PyPA credentials in a file
in your home directory; it isn't very secure, but it saves
time nevertheless.
2017-10-05 12:01:37 -07:00