Closed timmw closed 12 years ago
csharp is in its own repo :D
I already thought about that in issue #77.
I'm really not sure at the moment. Generally I think it's a good idea and it's technically possible. There could be other repositories for each implementation included as submodules in this repository. But I'd really like to have the wiki and the issue tracker in a common place (i.e. here). Maybe I just ask GitHub support if it is possible to redirect those buttons (and not just disable them). If it works, I may really start thinking about it. :)
Why not git submodules? I believe their behavior is more than perfect for this task. Also, it would be easy to integrate each build with a proper continuous integration job, either with Travis or maybe a custom-made Jenkins setup.
I agree with @klaussilveira. In fact, we have this conversation at lunch today. Also it will be easy for some developers to follow what is really going on. Like, PHPDevelopers could follow just the PHP submodule, the same for JAVA and what ever flavor do you intent to build.
@koraktor considered using a master repo with a subtree split, and have each language in its own repo/submodule? Could also do it as a github organization as well.
Though in all honesty, having issues for all the submodules together under one repo is less than ideal - most often you'll have an issue just affecting one repository - if it affects multiple repos, you can just create an issue for each and mention the related issue in the other repo in the issue description - github's issues tracker automatically does a traceback on the original issue when mentioned. For example: https://github.com/koto/phar-util/pull/14#issue-ref-5072644
Steam Condenser can be one big repo, holding the Wiki, Major Issues, Documentation and other information about the project as a whole. This big repo would include three submodules, PHP, Java and Ruby. These three submodules are normal GitHub repositories, with their own issues and wiki.
Having everything in one repo is a problem... right now i don't know where to put the .travis.yml for the PHP build. :(
how about using branches for each language, like "ruby", "php" etc.? That would also solve problems with multiplatform Travis CI integration, because each branch would have its own .travis.yml with tis own settings specific for that language.
And on top of that you retain the issue tracker, wiki and everything else in just one repo
I don't think that branches should be used for holding completely different codebases... not only it's easier to mess things up, it's pretty confusing.
Anyway, do you guys agree that having issues, wiki and other features in one repo is a good or bad thing? In my opinion, it's bad... issues and other information should be related to the specific language codebase. Examples, API, issues for PHP should be tracked with PHP only.
I don't like it. That would generate even more problems when we try to deal with feature branches. And also will not be obvious for newcomers, like me!
Guto Maia @gutomaia
2011/11/22 Mike Połtyn < reply@reply.github.com
how about using branches for each language, like "ruby", "php" etc.? That would also solve problems with multiplatform Travis CI integration, because each branch would have its own .travis.yml with tis own settings specific for that language.
Reply to this email directly or view it on GitHub: https://github.com/koraktor/steam-condenser/issues/119#issuecomment-2841591
@gutomaia not just newcomers, but anyone used to how git is normally used.
Independent codebases belong in their own repositories, not in separate branches. Branches are for codebase variations, tags are for specific releases, and repositories are for codebases.
Just a quick update on this one: The repository will be split in the not so far future, using a submodule for each implementation and a main repository that includes them and holds at least some basic information like a global README.
Branches would technically be fine too, but are problematic to handle. Additionally, you have to choose a default branch. Although I do prefer Ruby, I don't want to impose that choice to anyone.
Regarding issues I'd really prefer a single contact point. The basic implementations for each language are equivalent and thus share the same flaws (hopefully not that much any more). This is obvious throughout the whole development of Steam Condenser. That said, I don't see a reason to split issues too. I'm open to other opinions, but I think it would inherently complicate handling of issues for users and developers alike.
Well, enable the issues and wiki module on the main repository and disable those modules in the submodules. The admin page of each repository allows you to do so.
@koraktor in case you've not seen it, this'll be how to do it (I recently found it myself and needed it, figured it'd help to link): http://help.github.com/split-a-subpath-into-a-new-repo/
@koraktor I've done some script tests with github, and I was able to clean up a repository with only commits related to Java and Ruby.
Course in order to do that. I've have to erase everything related to something, and erasy empty commits.
I belive that this issue could be fixed sonner in order to use travis continuos integration for php project, and jenkins more out-of-the-box for java.
Look on my user. There is a specific java-project and a specific ruby-project.
Thanks, but I would recommend you to not put more time into this. I will split the repositories soon and I'll probably make more changes than just the split itself (as I'm rewriting the history anyway).
Stay tuned.
Ok, I started new repositories at:
All three contain the whole history of one implementation (done using git filter-branch
). All old tags are still in place, although they are not signed. I decided to not tag and sign again, because the real tags remain in the old global repository. To mark the start of the "split" development I created a lightweight tag called repo-split
in all four repositories. Finally, I added the three implementation repositories as Git submodules into the global repo, currently in branch repo-split
.
The split is now also active in the master
branch and the 1.1.0 release just used the submodules.
Is there any chance that each implementation be put into its own repo? It would make it much easier to pull updates to our own projects I understand that you want to keep the implementations the same as each other, maybe that's why you've chosen to put them all in the same repo.