Automated packaging
Every time we make a release, we stay doing the same things over and over again. And every time, we need to find out how they work again. Let's invest a bit of extra time during the beta by automating the packaging. The goal:
python openteacher.py -p package-windows-msi win.pydistpack openteacher-
python openteacher.py -p package-
python openteacher.py -p package-debian openteacher-
python openteacher.py -p package-macosx mac.pydistpack openteacher-
python openteacher.py -p package-source openteacher-
python openteacher.py -p package-
python openteacher.py -p package-rpm openteacher-
Might be interesting to use the Windows Installer on windows, since this allows easy deployment in e.g. schools. (Wix + Wixedit?)
Blueprint information
- Status:
- Complete
- Approver:
- OpenTeacher Maintainers
- Priority:
- Medium
- Drafter:
- Marten de Vries
- Direction:
- Approved
- Assignee:
- OpenTeacher Maintainers
- Definition:
- Approved
- Series goal:
- Accepted for 3.x
- Implementation:
- Implemented
- Milestone target:
- 3.1
- Started by
- Marten de Vries
- Completed by
- Marten de Vries
Related branches
Related bugs
Sprints
Whiteboard
During the last release, all packages were auto-generated. We're even at the level where OT automatically boots the required VM's, builds the packages, and then downloads them to the host computer shutting the VM down again, so time to move this from beta available to implemented. :D
Work Items
Work items:
- Build a module which copies the complete source into a temporary directory (which is deleted on program quit): DONE
- Build a source packaging module (which just makes a zip of the temp dir): DONE
- Build a source packaging module which is the same as above but includes a setup.py: DONE
- Build a module that runs PyInstaller on the source, with the option of doing that for windows or mac (if doing that is more than trivial code): DONE
- Build a windows packaging module (PyInstaller result + setup creator): DONE
- Build a windows portable packaging module (PyInstaller result + zip): DONE
- Build a debian packaging module (which gets the tarball, adds a debian directory, and makes a deb. Is this integratable with the official way of packaging for debian?): DONE
- Build a mac packaging module (PyInstaller + make a .dmg file (see http://
- Build a rpm packaging module (setup.py bdist_rpm), for at least openSUSE and fedora: DONE
- Build a .tar.xz (arch) packaging module: DONE