Difference between revisions of "Thread:Talk:ÉpéeistMicro/Bug/reply (10)"

From Robowiki
Jump to navigation Jump to search
(Reply to Bug)
 
(Edit: typing)
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
 
VCS it's something like source code storage with support of files versions. In case of git or mercurial you can use only local repositories or link them with remote repositories in free clouds (github or bitbucket). In case of local repository, main command is commit - this command pushes current state of yours files to storage and marks it with some identifier and you can always get exact state of all files in repository with identifier. Also vcs supports versioning and if you commit files before every release, you can see all differences in code between releases. It's very useful for robocoding. Read this books: http://git-scm.com/book/ or http://hgbook.red-bean.com/read/. It's a "holywar" choise between git and mercurial, but they are pretty equal and usage of any of them is much better then usage nothing:) I use git at home and mercurial at work and cannot give suggestion - they both cool and you need to try them both to choose for yourself
 
VCS it's something like source code storage with support of files versions. In case of git or mercurial you can use only local repositories or link them with remote repositories in free clouds (github or bitbucket). In case of local repository, main command is commit - this command pushes current state of yours files to storage and marks it with some identifier and you can always get exact state of all files in repository with identifier. Also vcs supports versioning and if you commit files before every release, you can see all differences in code between releases. It's very useful for robocoding. Read this books: http://git-scm.com/book/ or http://hgbook.red-bean.com/read/. It's a "holywar" choise between git and mercurial, but they are pretty equal and usage of any of them is much better then usage nothing:) I use git at home and mercurial at work and cannot give suggestion - they both cool and you need to try them both to choose for yourself
  
Also i recommend use some build system (i use gradle and i for sure ready to suggest to choose it from gradle, ant and maven) and enforce semantic versioning by them. You can see example in my new bot repository: https://github.com/aleksey-zhidkov/Violet/blob/master/build.gradle. In Violet i use follow versions:
+
Also i recommend to use some build system (i use gradle and i for sure ready to suggest to choose it) and enforce semantic versioning by them. You can see example in my new bot repository: https://github.com/aleksey-zhidkov/Violet/blob/master/build.gradle. In Violet i use follow versions:
 
* Build: <major>.<minor>.<branch>.<build number> - used to for testing (in hand mode or in batch mode in [[Distributed_Robocode]] (some kind of analog of [[RoboRunner]] with remote computing support), but each batch test enforces build number increase)
 
* Build: <major>.<minor>.<branch>.<build number> - used to for testing (in hand mode or in batch mode in [[Distributed_Robocode]] (some kind of analog of [[RoboRunner]] with remote computing support), but each batch test enforces build number increase)
 
* Release: <major>.<minor> - user for releases
 
* Release: <major>.<minor> - user for releases
Line 11: Line 11:
 
#Run robocode to see them
 
#Run robocode to see them
 
#If bugs exists, then go to 1
 
#If bugs exists, then go to 1
#"Install" Violet - copy it to "builds" dir and batch battles executor robots dir and incerment build number
+
#"Install" Violet - commit changes, copy build to "builds" dir and batch battles executor robots dir and incerment build number
#If batch testing shows APS gain, then release it: copy to "releases dir", increment minor version and reset build number
+
#If batch testing shows APS gain, then release it: commit changes, copy build "releases" dir, increment minor version and reset build number and push version to github
 +
 
 +
By the way, robocoders, lets make page with out development processes for noobies:)

Latest revision as of 06:06, 10 January 2013

They don't save from bugs, but they show all changes between versions:) VCS it's something like source code storage with support of files versions. In case of git or mercurial you can use only local repositories or link them with remote repositories in free clouds (github or bitbucket). In case of local repository, main command is commit - this command pushes current state of yours files to storage and marks it with some identifier and you can always get exact state of all files in repository with identifier. Also vcs supports versioning and if you commit files before every release, you can see all differences in code between releases. It's very useful for robocoding. Read this books: http://git-scm.com/book/ or http://hgbook.red-bean.com/read/. It's a "holywar" choise between git and mercurial, but they are pretty equal and usage of any of them is much better then usage nothing:) I use git at home and mercurial at work and cannot give suggestion - they both cool and you need to try them both to choose for yourself

Also i recommend to use some build system (i use gradle and i for sure ready to suggest to choose it) and enforce semantic versioning by them. You can see example in my new bot repository: https://github.com/aleksey-zhidkov/Violet/blob/master/build.gradle. In Violet i use follow versions:

  • Build: <major>.<minor>.<branch>.<build number> - used to for testing (in hand mode or in batch mode in Distributed_Robocode (some kind of analog of RoboRunner with remote computing support), but each batch test enforces build number increase)
  • Release: <major>.<minor> - user for releases

So my development process is:

  1. Do some changes
  2. Build them
  3. Run robocode to see them
  4. If bugs exists, then go to 1
  5. "Install" Violet - commit changes, copy build to "builds" dir and batch battles executor robots dir and incerment build number
  6. If batch testing shows APS gain, then release it: commit changes, copy build "releases" dir, increment minor version and reset build number and push version to github

By the way, robocoders, lets make page with out development processes for noobies:)