4.7-rc.md 4.59 KB
Newer Older
1
2
# CiviCRM v4.7.x: Publish a release candidate

totten's avatar
totten committed
3
4
#  <span style="color:red">__WARNING__: Not updated since 5.x</span>

5

6
## Prerequisites
7

8
See [Prerequisites](any-prereq.md)
totten's avatar
totten committed
9

10
11
## 1: Sanity checks

totten's avatar
totten committed
12
13
14
15
16
17
18
19
20
* Note the original branch, such as `master`.
* Note the intended version, such as `4.7.8` or `4.7.9`. (In the rest of this document, we'll refer to `4.7.X`, but `4.7.X` should be adjusted to circumstance.)
* In `civicrm-core.git` repo, check that the code in `master` correctly references `4.7.X`:
    * https://github.com/civicrm/civicrm-core/blob/master/xml/version.xml
    * https://github.com/civicrm/civicrm-core/blob/master/sql/civicrm_generated.mysql
    * https://github.com/civicrm/civicrm-core/tree/master/CRM/Upgrade/Incremental
*  In Jenkins, review the scheduled tests for `master` and determine if anything should block the RC.
    * https://test.civicrm.org/job/CiviCRM-Core-Matrix/
    * https://test.civicrm.org/job/CiviCRM-Ext-Matrix/
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

## 2: Make a branch

For each git repo, we want to create a new branch for the RC. This follows a naming convention:


| repo | original branch | new branch |
|------|-----------------|------------|
|civicrm-core|master|4.7.X-rc|
|civicrm-packages|master|4.7.X-rc|
|civicrm-backdrop|1.x-master|1.x-4.7.X-rc|
|civicrm-drupal|6.x-master|6.x-4.7.X-rc|
|civicrm-drupal|7.x-master|7.x-4.7.X-rc|
|civicrm-drupal|8.x-master|8.x-4.7.X-rc|
|civicrm-joomla|master|4.7.X-rc|
|civicrm-wordpress|master|4.7.X-rc|

The commands `git scan branch` and `git scan push` will do this – if you have a copy of each repo.

totten's avatar
totten committed
40
A safe way to make a clean copy of every repo is to create a new `dist` build (`civibuild create dist`). On `latest.civicrm.org`, there's already a copy in `~/src/4.7`. Either way, you should make sure it's up-to-date on all relevant branches -- then make new branches:
41
42

```bash
totten's avatar
totten committed
43
## Ensure that you have a clean, up-to-date copy of the `master` branch.
totten's avatar
totten committed
44
cd ~/src/4.7
45
git scan foreach -c 'pwd; git branch; echo'
totten's avatar
totten committed
46
git scan up
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
## Fixme: for now you need to manually add the extra drupal branches
cd drupal
git checkout 6.x-master && git pull origin 6.x-master
git checkout 8.x-master && git pull origin 8.x-master
git checkout 7.x-master && git pull origin 7.x-master
cd ..
 
## Make branches (preview)
git scan branch 4.7.X-rc master -p -n -T
 
## Make branches (for real)
git scan branch 4.7.X-rc master -p
 
## Push the branches (preview)
git scan push -p origin 4.7.X-rc -n -T
 
## Push the branches (for real)
git scan push -p origin 4.7.X-rc
```

totten's avatar
totten committed
68
69
You might want to spot-check a few URLs to ensure the branches were published, e.g.

totten's avatar
totten committed
70
71
72
73
74
75
76
77
* https://github.com/civicrm/civicrm-backdrop/tree/1.x-4.7.X-rc
* https://github.com/civicrm/civicrm-core/tree/4.7.X-rc
* https://github.com/civicrm/civicrm-drupal/tree/6.x-4.7.X-rc
* https://github.com/civicrm/civicrm-drupal/tree/7.x-4.7.X-rc
* https://github.com/civicrm/civicrm-drupal/tree/8.x-4.7.X-rc
* https://github.com/civicrm/civicrm-joomla/tree/4.7.X-rc
* https://github.com/civicrm/civicrm-packages/tree/4.7.X-rc
* https://github.com/civicrm/civicrm-wordpress/tree/4.7.X-rc
totten's avatar
totten committed
78

totten's avatar
totten committed
79
## 3: Setup automated processes
80

totten's avatar
totten committed
81
82
83
84
* Go to https://test.civicrm.org/job/CiviCRM-Core-Matrix/configure
    * In the list of `CIVIVER`s, remove any old RC's. Add the current RC. (ex: `4.6 4.7.24-rc master`)
* Go to https://test.civicrm.org/job/CiviCRM-Ext-Matrix/configure
    * In the list of `CIVIVER`s, remove any old RC's. Add the current RC. (ex: `4.6 4.7.24-rc master`)
85
* Go to https://test.civicrm.org/job/CiviCRM-Publish-Schedule/configure
totten's avatar
totten committed
86
    * In the list of `branchNames`, remove any old RC's. Add the current RC. (ex: `master 4.6 4.7.24-rc`)
totten's avatar
totten committed
87
   
88
## 4: Publish tarballs
89

totten's avatar
totten committed
90
91
92
93
94
* Go to https://test.civicrm.org/job/CiviCRM-Publish/
* Check to see if the new branch is being built automatically. If not:
    * Login (if you haven't already)
    * Click "Build with parameters"
    * For the branch name, enter your chosen `4.7.X-rc`.
95

totten's avatar
totten committed
96
97
98
99
## 5: Enable branch protection

To prevent someone from accidentally deleting the new RC branch, enable protection:

totten's avatar
totten committed
100
101
102
103
104
105
* https://github.com/civicrm/civicrm-core/settings/branches
* https://github.com/civicrm/civicrm-packages/settings/branches
* https://github.com/civicrm/civicrm-backdrop/settings/branches
* https://github.com/civicrm/civicrm-drupal/settings/branches
* https://github.com/civicrm/civicrm-joomla/settings/branches
* https://github.com/civicrm/civicrm-wordpress/settings/branches
totten's avatar
totten committed
106
107

## 6: Bump version number on `master` to  `4.7.Y`
108
109
110
111

The original branch, "master", should continue development with the next version, e.g. "4.7.Y".

```bash
totten's avatar
totten committed
112
cd ~/src/4.7
113
git checkout master
114
git pull --ff-only origin master
115
./tools/bin/scripts/set-version.php 4.7.Y --commit
116
git push origin master
117
```