While porting to Redmine 2.1.x was not a very complicated task, two guys really helped me to coomplete it by testing the plugin on the recent Redmine, by researching reasons of issues and by providing patches to the code. These guys are Martin Corino and Takashi Okamoto. Thank you, guys! It’s worth mentioning, that it’s not the first time, when Takashi Okamoto contributes to the SCM Creator code...
Martin Corino, however, helped not only with porting... He found the bug #2102 and provided the fix for it. I guess circumstances, which make Martin find this bug, were not pleasant. Sorry for this, Martin, and thanks for the fix!
Perhaps, I hurried, when was working on the 0.4.1, as this release included another bug – #2095, or its duplicate #2120. Both issues included the patch fixing the bug. These issues were reported and patches were provided by Manfred Kröhnert and Christian Rishøj. Thank you, guys!
If you want to be among the first, who gets notified about upcoming versions of SCM Creator, subsribe to this project using the Subscription block on the sidebar.
SCM Creator 0.4.0 was aimed to support Redmine 2.0.x and Rails 3... So to port it I installed clean Redmine 2.0.x with SCM Creator 0.3.0 and the first thing I noticed was that I could not migrate the plugin because of error:
uninitialized constant RepositoryObserver
So I applied the fix:
1 Rails.configuration.active_record.observers << :repository_observer
After that the plugin migrated! Being happy with it I continued porting...
Then, almost before making the release, I discovered that
RepositoryObserver does not get called! And, to my surprise, returning to
ActiveRecord::Base.observers << :repository_observer worked for Redmine 2.0! I assumed that there was something else, that I had fixed along with this issue, and made the release...
But then it has been discovered that it does not work for all of us! Fixing this weird issue has ended with this emergency release!
Many thanks to Rob Landry for discovering the issue and assisting in fixing it!
Redmine 1.4.x and Redmine 2.0.x were released quite a long time ago and only now SCM Creator supporting these versions was released! And it is only the first my plugin for 2.0.x...
This release could not, perhaps, come so "early" without the kick of Takashi Okamoto! He assisted me a lot in porting SCM Creator to multiple repositories and Rails 3/Redmine 2. He even created a fork for doing this on Github: https://github.com/okamototk/redmine_scm_creator. Thanks Takashi Okamoto!
Before I planned to release it as 0.3.1. But thanks to Okamoto who suggested 0.4.0 I changed my mind. It’s too much changes for versioning it as 0.3.1. So it is 0.4.0!
So let’s talk about changes:
Support of multiple repositories, which appeared in Redmine 1.4.x, was not a feature for me... it was a headache!
Before there was a single repository and one, who was willing fo have all repositories created, could just set
true. This one could be sure that no one was going to add external repositories. Now this got broken!.. So as a workaround I added only_creator option which allows only creating repositories and denies adding, however SCMs not supported by this plugin should be disabled...
But that was not the main issue! How many repositories can one create?.. So I thought it’s not a good idea to let users creating infinite number of repositories. That’s why I also added max_repos option. This option specifies the limit of repositories which can be created using SCM Creator.
A long time ago Blaž Podržaj discovered an obvious issue which I missed for some reason... When
auto_create was set a user was suggested (or forced) to create a repository on project creation. And it got created despite the value of the "Repository" checkbox under modules list... With this release SCM Creator takes this value into account and won’t create repository if it is not checked! But...
What should those users do who liked this behaviour?.. Before they were getting repository despite of the "Repository" module availability. I can imagine that some users reckon on the old behaviour... So for such users I added force_repository option which just enables "Repository" module and does not let disabling it!
Note that it is still possible to disable the "Repository" module later in project settings! It’s not a bug - it’s current implementation as I want to see what users think about the
force_repository option... And by disabling "Repository" users will just hide it, not remove.
Also all the time in Redmine there was a security issue... Redmine guys name it "invalid configuration issue" and recommend giving the
:repository_manage permission only to users. I don’t agree. You can trust users but can you trust their passwords? Can you trust their Internet connection?.. With multiple repositories this issue became even more noticable so I decided to provide and enforce the solution. This solution uses two new options: allow_add_local and allow_pickup.
falseby default and therefore change default Redmine behavior!
This release of SCM Creator has also a special meaning for my other plugins - having practiced with porting Redmine plugins to Rails 3/Redmine 2, I’m sure, I will port other plugins faster (unless they contain some bugs)...
Also reminding that you can subscribe to news, new versions, commits etc by using Subscription block on the sidebar.
P.S. Redmine WikiNG, you come next!
SCM Creator is going Bazaar (1 comment)
From release to release the SCM creator becomes more powerful! Now it’s not only my personal plugin which was just shared... It has been extended mostly by community requests and patches. This release is not an exclusion - new breaking features were suggested or supported by Mario Luzeiro, Blaž Podržaj and Jonas Götze (thanks, guys!).
Traditionally new major version is released with the support of new SCM - this time Bazaar. Adding Bazaar support (and help in testing) was suggested by Mario Luzeiro! So without him this release would not happen!
To add Bazaar support I also did what I wanted to do a lot time ago: finally I did refactored the plugin to make adding new SCMs easier! This also made the code more clear and I hope more bug-proof.
Another breaking feature was suggested by Blaž Podržaj. Thanks to him new release allows specifying on creation and on deletion scripts. These scripts can be used for preparing repositories for usage and archiving repositories before deleting. By the way, thanks also to Jonas Götze for help in improving scripts!
These scripts can do the same what
hooks options introduced in the previous version do... Therefore hooks now should be treated obsolete and one using it should switch to on creation script (check this page how)! In one of further versions the
hooks support may be removed...
The last feature was needed by me but you can find it useful too if you use my Project Alias plugin. New version is able to rename repository when project identifier is renamed. Please note that this will also change repository access URL (old repository URL will stop working)! That is be sure to notify users before the change!
Also in this version other smaller improvements and bug fixes were made...
That seems to be all!.. Write me, suggest me new features! Let’s make this plugin better!
And thanks for using it!
SVN access URL change (2 comments)
As I had mentioned some time ago I changed the project identifier from the obsolete
svn to more correct and SEO friendly
scm-creator! Thanks to my another plugin old URLs will still work because the
svn identifier is now an alias. I have also added the alias
redmine-scm (similar to the plugin’s internal ID)...
Unfortunately this does not apply to SVN URLs - old SVN links stopped to work! Sorry for this!
New SVN URL is: http://svn.s-andy.com/scm-creator
To update the URL in your SVN working copy do:
$ svn switch --relocate http://svn.s-andy.com/redmine-svn http://svn.s-andy.com/scm-creator
http://svn.s-andy.com/redmine-svn- old URL
http://svn.s-andy.com/scm-creator- new URL
This change also precedes new SCM Creator release!.. So !
Like the version 0.1.0 version 0.2.0 comes with new SCM support - it’s now possible to create local Mercurial repository with just one click. This version also comes with hooks support for all currently supported SCMs - you can now specify a directory/file containing hook scripts and they will be automatically copied into a newly created repository.
The version 0.2.0 also introduces new features for Git: now it supports new option
update-server-info which is required for Redmine/Git integration (to let Git work through HTTP) and new option
git_ext which lets enabling/disabling
But there is also one thing you should note: in previous versions you could press on the "Delete" button under "Repository" tab in project settings and be sure that local repository created with the SCM Creator remains on the file system. You could even get used to this... It’s not so anymore! Now when you delete a repository created with the SCM Creator (e.g. remove project) it is also removed from the file system!
This release would not be possible without help of: John Blackwood and Etienne Savard (Mercurial), Takashi Okamoto (hooks patch), Paramvir Kaler (Git testing), Roland Firmont (Redmine 1.2.x), Fabricio Caseiro and Txinto Vaz (translations). Thank you, guys!
Here it goes - the SCM Creator 0.1.0 is released!Perhaps the most interesting features of the new version are:
- Git support
- Windows support
- Automatic creation of repositories on projects registration.
For full list check: Changes in 0.1.0.
This version (as it is) would not be released without contribution of: Bertrand Baudinet (initial Git patch), Varun Shoor (idea of automatic creation), Jean-Sebastien Bour (many patches and ideas) and Andrey Reeshkov (Windows testing)! Thank you, guys!
Right now I’m working on adding full Git support to the plugin (#1707). Besides the new version is going to support Windows (#1692) at least for Subversion (by the way, I need help in testing Windows support for both - SVN and Git).
So too much changes to preserve the current name and I decided to change it to "SCM Creator". In future I plan to add support for other SCMs as well...
P.S. Besides the Git and Windows and name change the upcoming release will have some new interesting features, for example, automatic repository creation on project registration (many thanks to Varun Shoor for the idea)!
Also available in: Atom