Skip to content
This repository was archived by the owner on Sep 12, 2022. It is now read-only.
Tommy Juhnke edited this page Oct 30, 2015 · 4 revisions

bytepark release WIKI

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:

Mission Statement

The release tool is supposed to be:

  • easy to use
  • fail safe
  • robust
  • very easy extensible
  • documented in every aspect
  • automated testable

Current Backlog

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

User Stories

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.

Remove the method and target definition by file name

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.

Unit test the dialog view

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

Unit test the prompt view

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.

Split the interface method.sh

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

Add an artifact implementation for debian packackes

Add an artifact implementation for rpm packages

Add an artifact implementation for tarballs

Add the gzip compression as option for tarballs

Add the bzip2 compression as option for tarballs

Add an artifact implementation doing nothing

Add a transport implementation for scp

Add a transport implementation for rsync

Add a transport implementation for sftp

Add a transport implementation for ftp

research the simplest way to include a config file format

masthowasli