summaryrefslogtreecommitdiffstats
path: root/docs/source/devguide/packaging
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/devguide/packaging')
-rw-r--r--docs/source/devguide/packaging/index.md9
-rw-r--r--docs/source/devguide/packaging/launchpad-recipe.md43
-rw-r--r--docs/source/devguide/packaging/release.md54
-rw-r--r--docs/source/devguide/packaging/windows.md10
4 files changed, 116 insertions, 0 deletions
diff --git a/docs/source/devguide/packaging/index.md b/docs/source/devguide/packaging/index.md
new file mode 100644
index 0000000..aa7293a
--- /dev/null
+++ b/docs/source/devguide/packaging/index.md
@@ -0,0 +1,9 @@
+# Packaging documentation
+
+```{toctree}
+:titlesonly:
+
+release
+launchpad-recipe
+windows
+```
diff --git a/docs/source/devguide/packaging/launchpad-recipe.md b/docs/source/devguide/packaging/launchpad-recipe.md
new file mode 100644
index 0000000..7d48727
--- /dev/null
+++ b/docs/source/devguide/packaging/launchpad-recipe.md
@@ -0,0 +1,43 @@
+# Launchpad recipe
+
+The launchpad build recipes are for build from source automatically to provide
+Ubuntu packages. They are used to create daily builds of a Deluge git branch.
+
+Note these don't have the same control as a creating a publishing to PPA.
+
+Main reference: <https://help.launchpad.net/Packaging/SourceBuilds/Recipes>
+
+## Deluge Launchpad build recipes
+
+Recipe configuration: <https://code.launchpad.net/~deluge-team/+recipes>
+
+An example for building the develop branch:
+
+ # git-build-recipe format 0.4 deb-version 2.0.0.dev{revno}+{git-commit}+{time}
+ lp:deluge develop
+ nest-part packaging lp:~calumlind/+git/lp_deluge_deb debian debian develop
+
+There are two parts, first to get the source code branch and then the `debian`
+files for building the package.
+
+## Testing and building locally
+
+Create a `deluge.recipe` file with the contents from launchpad and create the
+build files with `git-build-recipe`:
+
+ git-build-recipe --allow-fallback-to-native deluge.recipe lp_build
+
+Setup [pbuilder] and build the deluge package:
+
+ sudo pbuilder build lp_build/deluge*.dsc
+
+Alternatively to build using local files with [pdebuild]:
+
+ cd lp_build/deluge/deluge
+ pdebuild
+
+This will allow modifying the `debian` files to test changes to `rules` or
+`control`.
+
+[pbuilder]: https://wiki.ubuntu.com/PbuilderHowto
+[pdebuild]: https://wiki.ubuntu.com/PbuilderHowto#pdebuild
diff --git a/docs/source/devguide/packaging/release.md b/docs/source/devguide/packaging/release.md
new file mode 100644
index 0000000..e02a09a
--- /dev/null
+++ b/docs/source/devguide/packaging/release.md
@@ -0,0 +1,54 @@
+# Release Checklist
+
+## Pre-release
+
+- Update [translation] `po` files from [Launchpad] account.
+- Changelog is updated with relevant commits and release date is added.
+- Docs [release notes] are updated.
+- Tag release in git and push upstream e.g.
+
+ git tag -a deluge-2.0.0 -m "Deluge 2.0.0 Release"
+
+## Release
+
+- Create source and wheel distributions:
+
+ python setup.py sdist bdist_wheel
+
+- Upload to PyPi (only accepts `tar.gz`):
+
+ twine upload dist/deluge-2.0.0.tar.gz dist/deluge-2.0.0-py3-none-any.whl
+
+- Calculate `sha256sum` for each file e.g.
+
+ cd dist; sha256sum deluge-2.0.0.tar.xz > deluge-2.0.0.tar.xz.sha256
+
+- Upload source tarballs and packages to `ftp-osl.osuosl.org`.
+
+ - Ensure file permissions are global readable: `0644`
+ - Sub-directories correspond to _major.minor_ version e.g. all `2.0.x` patch
+ releases are stored in `source/2.0`.
+ - Change release version in `version*` files, create a new version file for
+ any major releases.
+ - SSH into OSUOSL FTP site and run `trigger-deluge` to sync files.
+
+- Create packages (Ubuntu, Windows, OSX).
+ - Ubuntu: <https://code.launchpad.net/~deluge-team/+recipe/stable-releases>
+ - Ensure launchpad git repo has sync'd to get latest version
+ - Update version in recipe (reset any dash number to 0)
+ - Check for new distribution series needing selected.
+ - Request build for selected series.
+
+## Post-release
+
+- Update with version, hashes and release notes:
+ - Publish new docs version on [ReadTheDocs].
+ - [Wikipedia]
+- Close Trac milestone and add new milestone version for future tickets.
+- Ensure all stable branch commits are also applied to development branch.
+
+[readthedocs]: https://deluge.readthedocs.io
+[wikipedia]: http://en.wikipedia.org/wiki/Deluge_%28software%29
+[launchpad]: https://translations.launchpad.net/deluge
+[translation]: ../../contributing/translations.md
+[release notes]: ../../releases/index.md
diff --git a/docs/source/devguide/packaging/windows.md b/docs/source/devguide/packaging/windows.md
new file mode 100644
index 0000000..253eac0
--- /dev/null
+++ b/docs/source/devguide/packaging/windows.md
@@ -0,0 +1,10 @@
+# Packaging for Windows
+
+Currently there is no working package for Deluge 2.0. The previous Python freezing
+application `bbfreeze` is not compatible with Python 3 and the project is no longer
+maintained.
+
+There are two alternatives `cxfreeze` and `pyinstaller` but neither is trivial with
+the GTKUI application.
+
+See [#3201](https://dev.deluge-torrent.org/ticket/3201)