Carsten Brandt
8 years ago
4 changed files with 113 additions and 19 deletions
@ -0,0 +1,73 @@
|
||||
Releasing a new version |
||||
======================= |
||||
|
||||
The list of steps needed to make a release of the framework has grown over time and became |
||||
hard to manage manually, so we have created a command line tool to ensure no step is forgotten. |
||||
|
||||
Release steps overview |
||||
---------------------- |
||||
|
||||
- ... |
||||
|
||||
The release command |
||||
------------------- |
||||
|
||||
These steps are automated in the [release console command](../../build/controllers/ReleaseController.php) |
||||
which is included in the framework development repository. |
||||
|
||||
The release command can be invoked using the Yii application contained in the `build` directory of |
||||
the framework: |
||||
|
||||
./build/build help release # run this in framework repo root |
||||
|
||||
> Info: You can run the command with the `--dryRun` option to see what it would do. Using this option, |
||||
> no changes will be made and no commits or tags will be created or pushed. |
||||
|
||||
### Requirements |
||||
|
||||
The release command depends on the development environment introduced in |
||||
the [Git Workflow Document](git-workflow.md#extensions), i.e. the application |
||||
templates must be located under `/apps/` and extensions must be located under `/extensions/`. |
||||
This structure is preferably created using the `dev/app` command. |
||||
|
||||
### Version overview |
||||
|
||||
To get an overview over the versions of framework and extensions, you can run |
||||
|
||||
./build/build release/info |
||||
|
||||
You may run it with `--update` to fetch tags for all repos to get the newest information. |
||||
|
||||
### Make a release |
||||
|
||||
Making a framework release includes the following commands (apps are always released together with the framework): |
||||
|
||||
./build release framework |
||||
./build release app-basic |
||||
./build release app-advanced |
||||
|
||||
Making an extension release includes only one command (e.g. for redis): |
||||
|
||||
./build release redis |
||||
|
||||
The default release command will release a new minor version from the currently checked out branch. |
||||
To release another version thatn the default, you have to specify it using the `--version` option, e.g. |
||||
`--version=2.1.0`, or `--version=2.1.0-beta`. |
||||
|
||||
|
||||
#### Release a new major version e.g. 2.1.0 |
||||
|
||||
Releasing a new major version includes a branch change as described in the |
||||
[versioning policy](versions.md). |
||||
The following describes an example of releasing version `2.1.0` which has been |
||||
developed on the `2.1` branch derived from `master`. `master` has contained the `2.0.x` versions |
||||
before. |
||||
|
||||
- create a new branch `2.0` from `master` |
||||
- ensure composer.json does not contain a branch alias on this branch anymore. |
||||
- merge necessary changes from `master` to `2.1` |
||||
- point `master` to the lastest commit on `2.1` |
||||
- delete `2.1` branch |
||||
|
||||
Now check out `master` and run the release command with the `--version=2.1.0` option. |
||||
|
Loading…
Reference in new issue