GNOME Bugzilla – Bug 641185
rename from banshee-1 to banshee
Last modified: 2011-03-14 19:11:14 UTC
We are going to toward Banshee 2.0 and now might be a good time to merely labeling our files banshee rather than banshee-1
I support this.
My team (College of Charleston SE students) has a growing interest in addressing this issue. We are trying to decide on the best way of attacking this problem. We have discovered many instances of ‘banshee-1’ in the source code and make files, it would be practical to automate the replacement process with a script. Do you agree that this would be the best way to handle this situation? If not, do you have any suggestions? If you agree the best solution for this process is to write a script, is there a preferred language to use, in case we submit the script? Do you know a specific language that would work better than others? Also, since the release of Banshee 1.9.3, should we craft our solution to this release? We have 1.9.2 in our repository now. Thanks in advance for all of your advice!
The submission should be in the form of a git formated patch against banshee git master. Git is a bit hard to make friends with but as the aim of the exercise is to learn interaction with the community this is the primary tool we use. The change itself could easily be done using a script but take care not to change things like occurances of banshee-1 in old changelog entries. Changes though should be made to both instances in content and in file names. rough guide: Introduce yourself to git http://spheredev.org/wiki/Git_for_the_lazy#Linux clone the banshee repo (see www.banshee.fm/download/development) then make the change, commit it locally using git commit -a and add reasonable changelog such as "Change banshee-1 to banshee (fixes bgo#641185)" then use git format-patch origin to generate the patch. Attach the resulting 0001-<something>.patch file to this bug report for review. Once your patch has been reviewed and accepted, your change will be committed by one of our developers and you will officially be a Banshee contributor. Having mastered the art of open source we will also teach you the secret handshake. Learning git basics is the hardest bit about contributing to Banshee for most people, so do spend an afternoon playing with it to gain some confidence. It is required for most open source projects these days so I would suggest taking it up as a class lesson perhaps.
I know this isn't banshee it gnome specific (or related to this big directly), but many open source projects use Bazaar version control instead of git, and is very similar to got in many ways. It could probobly be covered in tjw same lesson. A nice guide: doc.bazaar.canonical.com/latest/en/mini-tutorial/
Sorry for the few typos - I typed that on my phone.
Banshee or gnome, not banshee it gnome. Same lesson, not tjw lesson. This bug, not this big. Instead of git, not instead of got. Again sorry for the typos.
Another important place where s/banshee-1/banshee/g would break things is the name of the directory where Banshee settings are kept. Blindly renaming it is not an option. We should either detect and move ~/.config/banshee-1 to ~/.config/banshee on start up or just leave it as is. In general, you can get all instances where "banshee-1" is used with: % git grep "banshee-1" As for the git intro, I would suggest reading, or at least skimming through Pro Git: http://progit.org/book/ Good luck and thanks for tackling this issue.
Thank you all for the helpful advice! I looked over the git documentaion you provided and have previously obtained the source code. I decided to go ahead and make the changes to the source code but have come up with some questions. 1. To start, the below line from a previous comment has confused me. Forgive me if this is obvious, but this is my first time working in Linux and on a project this size. So if some of my questions seem trivial please have patience. "We should either detect and move ~/.config/banshee-1 to ~/.config/banshee on start up or just leave it as is." I have found one instance of 'config/banshee-1' in the file 'XMLConfigurationClient.cs', not sure if this is what you are referring to but I have left it alone for now. Also, I have not touched 'YeOldeChangeLog' as speified. 2. I changed all instances of 'banshee-1' in the 'src' folder except for the above mentioned then moved outside of this folder. I am unsure of what to change outside of this folder. There are many unfamiliar files and some with foreign characters and I am just unsure of what needs changed and what does not. Any advice on this? 3. One thing confused me, well it is apparent many things confused me BUT...ONE of the MANY things that confused me is that I changed all instances of 'banshee-1' in the makefiles, but after attempting a build many of these instances had changed back. I am new to the build process and I am sure this is expected behavior...but I was not expecting it. Can anyone enlighten me? Thanks again! :)
1. .config/banshee-1 is where Banshee looks for it's database and general configuration on startup. Naturally if you have an existing install, and you tell it that these are now in .config/banshee then it is going to find nothing. So you need to provide a migration path. This is the single hardest task of this project. 2. I am guessing you are confused by things in the po/ directory. These are translations. It should be safe and recommendable to change these. If you make a mistake, our fine translators will catch them. We can always warn them that they need to take extra care to ensure that this is done correctly once the patch is merged. 3. I am nor sufficiently knowledgeable regarding autotools to explain this, but it sounds reasonable that this is the source of the issue. This seems to be what Aaron did originally and will perhaps give some indication of where to look: http://git.gnome.org/browse/banshee/commit/?id=86535011a520caefbab5f6fa7c446a18f7ec8fc4 Likewise simply searching the log for banshee-1 throws up all the changes we made when this change was initially made. You should not be worried about being confused by this one, autotools makes grown men cry on a regular basis. It is normal to be confused.
Hello Banshee Contributors! I'm apart of the College of Charleston Software Engineering class team with Brandon here and we have a question regarding the ~/.config/banshee-1 folder. We are in the process of creating a migration path that way those who have existing installs will not have to restore their settings and also re-import their media. We were wondering if anyone could point us in the direction of where in the source, this folder is created when the software is installed? Thanks! You guys have been a great help.
Created attachment 181548 [details] [review] Changes from "Banshee-1" to "Banshee" We left the instances of .config/banshee-1 in XmlConfigurationClient.cs and nuke-core-tables. This is because we did not create a migration path from .config/banshee-1 to .config/banshee
What exactly do you mean by a "migration path"? A script to move ~/.config/banshee-1 to ~/.config/banshee (after install, not in the source, and if ~/.config/banshee-1 exists)? A symlink (soft link) from ~/.config/banshee-1 to ~/.config/banshee-1 (this wouldn't work on Windows.)? Something more exotic? Personally something that simply renames ~/.config/banshee-1, if it exists, to ~/.config/banshee at start-up seams good enough (although it would have to be included for a number of releases)
Comment on attachment 181548 [details] [review] Changes from "Banshee-1" to "Banshee" Please don't change the gconf base key or the ~/.config/ location. I think that will prevent all those .po changes, and the test-perf and nuke-gconf-keys changes. Also, the patch shows some files as deleted and then added instead of renamed, so it's hard to see the actual changes. Please fix that. Thanks for your work!
Did you produce this patch by committing your changes and then running `git format-patch HEAD~`? That is the preferred way.
One of my teammates produced the patch and submitted. I will get with him to check the process used and we will get this cleaned-up soon!
Created attachment 183363 [details] [review] hyperair's rename patches Can be applied with `git am rename.patch`. This modified Application.InternalName, which is used by Paths.ApplicationName, which is used to produce the ~/.config/ path and also the /usr/share/banshee/icons/ path etc. We need to either migrate the ~/.config/banshee-1 dir, or handle this some other way.
Ok, I pushed hyperair's patches, with an additional patch to Hyena to allow us to keep using ~/.config/banshee-1 and ~/.cache/banshee-1 since migrating them would be possibly painful (~/.config/banshee might already exist, from pre-1.0 users). Jesse, Kyle, Brandon, Shaun: I'm sorry about how this worked out. A couple things went wrong: 1) It wasn't clear what the scope of this change should be -- eg to not include po/ files and to not change the cache/config dirs 2) Aaron changed the configure.ac package name, which broke quite a few things, which prompted hyperair to come up with many of the same changes you all did, but he wasn't aware of this bug I really appreciate you guys working on this, and I'll work hard to make sure miscommunication like this doesn't happen next time.