summaryrefslogtreecommitdiff
path: root/docs/hacking
diff options
context:
space:
mode:
Diffstat (limited to 'docs/hacking')
-rw-r--r--docs/hacking/index.rst77
-rw-r--r--docs/hacking/release.rst102
2 files changed, 179 insertions, 0 deletions
diff --git a/docs/hacking/index.rst b/docs/hacking/index.rst
new file mode 100644
index 0000000..f1991af
--- /dev/null
+++ b/docs/hacking/index.rst
@@ -0,0 +1,77 @@
+:LastChangedDate: $LastChangedDate$
+:LastChangedRevision: $LastChangedRevision$
+:LastChangedBy: $LastChangedBy$
+
+Hacking
+=================================
+blah blah
+
+Running tests
+---------------------------------
+
+Tox is all you need::
+
+ tox
+
+Test when changes are made to common/soledad
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+If you modify soledad or leap.common packages::
+
+ tox -e py27-dev
+
+Setting up the development environment
+--------------------------------------
+
+Dependencies::
+
+ apt install ...
+
+There are different requirements files::
+
+ ...
+
+How to contribute
+---------------------------------
+
+Merge requests to https://0xacab/leap/bitmask-dev
+
+Coding conventions
+---------------------------------
+* pep8
+* pre-commit hook (more utils in docs/hooks folder)
+
+Pinning
+----------------------------------
+Only in the requirements files.
+
+Signing your commits
+---------------------------------
+* For contributors with commit access
+
+Developing on the gui
+---------------------------------
+blah blah. see some other README
+
+Developing on the Javascript UI
+---------------------------------
+blah blah. see the main README
+
+Developing on the Thunderbird Extension
+---------------------------------------
+blah blah
+
+Making a new release
+--------------------
+A checklist for the release process can be found :ref:`here <release>`
+
+Contribution ideas
+------------------
+Want to help?
+
+Some areas in which we always need contribution are:
+
+* Localization of the client (talk to elijah).
+* Multiplatform gitlab runners
+* Windows and OSX packaging
+* Windows Firewall integration for VPN
+* Migrating components to py3 (look for vshyba or kali).
diff --git a/docs/hacking/release.rst b/docs/hacking/release.rst
new file mode 100644
index 0000000..20f7c6e
--- /dev/null
+++ b/docs/hacking/release.rst
@@ -0,0 +1,102 @@
+.. _release:
+
+Bitmask Release Checklist
+=========================
+
+CI check
+--------
+* [ ] Check that all tests are passing!
+* [ ] Fix any broken tests.
+
+Version bumps and Tagging
+-------------------------
+* [ ] Update pkg/next-release
+* [ ] Update release-notes.rst in leap.bitmask if needed.
+* [ ] Update version in bitmask_client/pkg/linux/bitmask-root if needed.
+
+* [ ] Tag everything. Should be done for the following packages, in order:
+* [ ] 1. leap.common
+* [ ] 2. leap.keymanager
+* [ ] 3. leap.soledad
+* [ ] 4. leap.mail
+* [ ] 5. leap.bitmask
+* [ ] 6. leap.mx
+
+* NOTE: It's assumed that origin is the leap.se repo
+
+* [ ] git fetch origin
+* [ ] git tag -l, and see the latest tagged version (unless it's not a minor version bump, in which case, just bump to it)
+* [ ] export version: export RELEASE=0.9.0
+* [ ] git checkout `release/0.9.x`
+- NOTE: the release branch is created when the first release candidate
+ is tagged, after that the bugfixes and features that are meant to be
+ shipped with the specific version that we are targetting are merged in that branch
+* [ ] git checkout -b release/$RELEASE (this is a LOCAL branch, never published).
+* [ ] (maybe) cherry-pick specific commits
+* [ ] (maybe) add special fixes for this release
+
+* [ ] Review pkg/requirements.pip for everything, update if needed (that's why the order).
+ - See whatever has been introduced in changes/VERSION_COMPAT
+ - Reset changes/VERSION_COMPAT
+ - Bump all the leap-requirements altogether.
+* [ ] git commit -am "Update requirements file"
+
+* [ ] Merge changes/next-changelog.rst into the CHANGELOG
+ - NOTE: in leap.soledad, 3 sections (common, client, server).
+* [ ] reset changes/next-changelog.rst
+* [ ] git commit -S -m "[pkg] Update changelog"
+
+* [ ] git tag --sign $RELEASE -m "Tag version $RELEASE"
+
+* If everything went ok, push the changes, and merge back into master&develop:
+* [ ] git checkout release/0.9.x && git merge $RELEASE
+* [ ] git push origin release/0.9.x
+* [ ] git push origin $RELEASE
+* [ ] git checkout master && git pull origin master && git merge --no-edit $RELEASE
+* [ ] git checkout develop && git merge $RELEASE && git push origin develop
+
+Bundles
+-------
+* [ ] Build and upload bundles
+* [ ] Use 'make pyinst-linux' to build bundles.
+* [ ] Sign: make pyinst-sign
+* [ ] Upload bundle and signature to downloads.leap.se/client/<os>/Bitmask-<os>-<ver>.(tar.bz2,dmg,zip)
+* [ ] make pyinst-upload
+* [ ] Update symbolic link for latest upload and signature:
+* [ ] ~/public/client/Bitmask-<os>-latest
+* [ ] ~/public/client/Bitmask-<os>-latest.asc
+
+TUF: Relese candidate bundles: RC# (skipped for now)
+----------------------------------------------------
+
+* [ ] Upload the TUF unstable repo
+* [ ] Upload bundle to staging for release-candidate
+* [ ] Sign the bundles, move it to client downloads (micah)
+* [ ] Update symlinks for -latest
+* [ ] Fix all show stoppers
+
+TUF: Stable bundles (skipped for now)
+-------------------------------------
+* [ ] Upload the TUF Stable Repo to staging
+* [ ] Upload bundle to staging for stable
+* [ ] move and sign the TUF repo (kwadro)
+* [ ] Sign the bundles, move it to client downloads (micah)
+* [ ] Update symlinks for -latest
+
+Debian packages
+---------------
+* TBD...
+
+Pypi upload
+---------------
+* [ ] python setup.py sdist upload --sign -i kali@leap.se -r pypi
+
+Announcing
+---------------
+* [ ] Announce (use release-notes.rst)
+ * [ ] Mail leap@lists.riseup.net
+ * [ ] Twitter
+ * [ ] Gnusocial
+ * [ ] Post in leap.se
+ * [ ] reddit
+ * [ ] hackernews