-
Notifications
You must be signed in to change notification settings - Fork 0
Home
The wiki is under heavy construction and (hopefully) a lot of the coming text will be an issue tagged as milestone in the next time.
Authors:
The release tool is supposed to be:
- easy to use
- fail safe
- robust
- very easy extensible
- documented in every aspect
- automated testable
The following enhancements and / or refactorings are in the backlog. The concrete things to do are provided as user stories in the following section
- remove the method and target definition by file name
- unit test the view implementations prompt and dialog
- split method.sh to artifact.sh and transport.sh
- rethink the config file format
The following subsections will be turned to either subpages of the wiki (probably during discussion) or even better into issues tagged with a specific mile stone or date tag. But this also is tbd.
As a user of the release tool, I don't want to specify the method to use and target of the configuration to be coded into the filename of the configuration. Rather I want to define these values in the configuration itself.
As the maintainer of the release tool, I want to be sure that the view implementation dialog defines all the declared variables of the interface script and assigns concrete functions to these.
- Fixed in 4017c3da9e592e6ebe879c6e9a078a4143ac92fc
As the maintainer of the release tool, I want to be sure that the view implementation prompt defines all the declared variables of the interface and assigns concrete functions to these.
As user of the release tool, I specifically want to choose between the kind of artifact produced on release and the transport I want to use to deliver the artifact to the target system.
Method | possible artifacts | possible transports | possible sources | possible targets
------- | --------------------- | --------------------- | --------------------------------- | -----------------
Packaging methods
------- | --------------------- | --------------------- | --------------------------------- | -----------------
deb | - debian package | - scp | - release workspace | - package repository server
| | - sftp | - vcs repository | - stage
------- | --------------------- | --------------------- | --------------------------------- | -----------------
rpm | - rpm package | - scp | - release workspace | - package repository server
| | - sftp | - vcs repository | - stage
------- | --------------------- | --------------------- | --------------------------------- | -----------------
tarball | - tar archive | - scp | - release workspace | - local filesystem
| - bzip2 archive | - sftp | - vcs repository | - remote filesystem
| - gzip archive | | |
------- | --------------------- | --------------------- | --------------------------------- | -----------------
Push-driven methods
------- | --------------------- | --------------------- | --------------------------------- | -----------------
rsync | - files | - ssh | - release workspace | - stage
| | | - vcs repository |
------- | --------------------- | --------------------- | --------------------------------- | -----------------
Synchronization methods
------- | --------------------- | --------------------- | --------------------------------- | -----------------
dump* | - files | - rsync | - local filesystem | - local filesystem
| - mysql dump | - sftp | - remote filesystem | - remote filesystem
| - other dbms dumps | | - local DBMS | - local DBMS
| | | - remote DBMS | - remote DBMS
------- | --------------------- | --------------------- | --------------------------------- | -----------------
- Rename to "sync" because this method - by applying the right combination of transport, source and target is able to downsync (aka "dump") and upsync data