-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
51 lines (34 loc) · 2.53 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Release Handler Library & friends
=================================
Please note that this is not meant to be a general purpose library. This is created for my specific needs.
When I do development, I try to streamline the versioning and release process as much as possible. Primarily because it is a pain
to do manually, but also to make sure I don't forget a step and need to start all over to give my users a proper release.
With github and continuous integration and agile and all that stuff, there is a lot to keep in mind. With my various projects
I try to stick to the workflow and tools described here.
- REPOSITORY STRUCTURE
I use git and github, and basically use branches to control release management. The following branches always exist in each repo:
version - Not a public repository, but a branch that tracks public releases of the software
subversion - Public minor releases
beta - The latest beta version should always be in this branch
alpha - Same idea as above
development - Stuff I am currently working on
Since I do development on several computers, this makes it easy to keep up to date everywhere. I also have the following branches
that usually never leave the development computer they were created on:
dev/feature - Topic branches that are created for each feature spike
bug/xxx - Bug fix branches
- CONTINUOUS INTEGRATION
I use Hudson to do building, testing and releasing. In addition to getting updated stuff from github, it needs to know exactly
how to handle everything. That is where the tools in this project come in handy.
The following utilities are part of this repository:
GetFileVersion - Extract the file version from a file and write it to a file useable by the NSIS installer.
VersionBumper - Tracks version bumps in a certain way.
AssemblyInfoUpdater - Updates AssemblyInfo.cs files with new version information.
CheckReleaseName - Checks if the argument appears in the Version.ini file as a valid release name.
GetReleaseVersion - Returns the version information as a string based on the given argument.
The following script is also included:
release - The script that does all the heavy lifting.
There is a lot left to do here:
- Find out how these utils should be installed - be in the path etc.
- A script that initializes the repository with necessary stuff.
- Instructions on how to use it.
If you have opinions on this project, please let me know at [email protected]. Thanks!