How to create an open source repository [closed] - open-source

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Time ago I started to develop a project and now I would like to make it open source. I am not familiar with open source contribution so I would really appreciate if anyone of you could suggest any good source (book or web tutorial) where I could learn how to setup a repository and arrange everything neccesary in order to make possible open source development.
Thanks!

Easiest way to start, create and maintain a repository is to open a project on SourceForge, or CodePlex (if you intend to have a .Net project). You can also try Google Code.

Visit Google Code. Setup a project there and learn how to use Subversion. When you're comfortable using Subversion and Google Code, you can setup your own Subversion/Trac server.

These days one of the more popular ways of running an open source project is to let a website such as SourceForge or Google Code (and there are many others) host the project. Most provide services such as code hosting using a variety of repository formats (CVS, Subversion, Git, Mercurial, etc...), mailing lists, bug trackers, wikis and more. The idea is that you are busy writing code, you shouldn't have to deal with mundane system administration tasks like maintaining source control or web servers.

In addition to SourceForge, Google Code, and Codeplex, I would add GitHub.
As others have indicated letting someone else host this for you is the easiest way to go about getting an open source project up and started. As for guidance on the different options out there:
Source Forge - Never used them, but
I know they've been around for a
long time and they claim to be the
largest.
Google Code - Can use subversion or
mercurial for version control. Good
code review tool too. Good option
for choice and tools.
Codeplex - .NET stuff goes here.
Hosted version of team foundation
server.
GitHub - Centered around git, the
distributed source control system
developed by Linus for Linux
development. Great for parallel
development if you plan on having
lots of folks working on it, but to
be fair mercurial offered by Google
Code is also parallel.
Here's an interesting article by Rob Conery about moving his .NET based open source project to github. If I remember right he had used Google Code and Codeplex previously. Have I successfully plugged my favorite? :)
In any case, don't worry about doing it yourself, a lot of hosting companies have one click installs for subversion. However hosting it will give you the following advantages:
Source control system set up and managed for you
Code review, and other collaboration tools are common
Generally you get a page to provide downloads to potential end users
Visibility and a community of potential contributors. I'm assuming you'd like other people to help you.
Hope that helps.

Related

white-label collaborative open-source development (e.g. github/sourceforge/google-code in a box)? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Does anyone have a recommendation for an open-source or paid (either packaged or SaaS) solution for integrating collaborative development features into your own website? Here's more details:
We currently host an online plugin gallery for our product. Users can upload and download plugins. But users can't easily collaborate on a plugin's development, can't easily report and track bugs on a plugin, can't easily track a plugin's versions or roadmap, etc.
Of course, contributors can host their plugin development on github, sourceforge, google code, codeplex, etc. But keeping users on our website has some advantages. For example:
We can use single-sign-on to avoid yet another username/password required
we can integrate end-user issue tracking into our existing online issue-tracking systems
we can get integrated analytics so we can better meet the needs of top contributors as well as downloaders
We can easily reward reputation points to committers just like we do for people who answer lots of questions
Anyone know a good solution for white-label sites for open-source project developer collaboration?
Atlassian Studio might be what you're after:
Subversion - Source Control
JIRA -Issue tracking
FishEye - Source Code Search
Confluence - Enterprise Wiki
Greenhopper - Agile Planning
Bamboo - Continuous Integration
Crucible - Peer Code Review
All hosted in the cloud, prices start at $125 for 5 developers.
http://www.atlassian.com/hosted/studio/
Alternatively for a cheaper alternative, Atlassian offer open source licenses which would allow you to use each of the above for free, however you'd need to host them yourself, and configure them to talk to each other manually (whereas Studio is a hosted SaaS environment with interoperability already configured out of the box).
If you don't qualify for an Open Source license, and you've got 10 developers or less, you can get a Starter License for every product except Crucible for $10 - full commercial license, with support etc.
(This isn't meant to be an ad for Atlassian, and I don't have any connection with them, I just love their products for this kind of solution).
My recommendation would be RedMine or Trac; Trac would require you to set up a separate instance for each project (TracForge can, I believe, help with that). Another option would be Gitorious (I believe its code is all open-source).
There's also GForge, but I wouldn't recommend it (its UI is like old-school SourceForge; I find that rather clunky).
Since you mentioned GitHub and SourceForge:
GitHub:FI is a white-label version of GitHub
SourceForge used to be available as a white-label version at some point, I have no idea whether that is still true though (Hmm, it seems it is called CollabNet TeamForge now)
before that, SourceForge actually was Open Source up until version 3, and there exist multiple forks of the original software:
Savane, a fork started by the GNU project, the software powering GNU Savannah and Gna!
GForge, a fork started by one of the SourceForge developers, the software powering Alioth (until recently) and RubyForge
FusionForge, a fork of GForge by three of the developers after the parent company took GForge proprietary, the software powering Alioth
Gitorious is an open source competitor to GitHub. Launchpad is going to be released as open source sometime this year, and is also available or sale and/or rent right now, I believe. FogBugz launched Kiln, a Mercurial hosting and code review service.

I've made something that might be useful to the community. Now what? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
If the specifics are important, I made a cruisecontrol.net publisher plugin that notifies a series of phone numbers via voice, announcing the current state of the build. It uses Twilio to do so.
I'd like to avoid getting hung up on the specifics of what it is I've made, as I have this question a lot, with a number of little hobby one-offs. What's the state of the art as far as making my hobby output available to the world at large?
There seem to be a lot of options for open-source project hosting, community features, and what role to take in all of this. It's a little bewildering. What I'm looking for is to put this out into the wild for free and basically take a hands-off approach from there. Is that realistic? Which project hosting service can I use for free to allow developers to at least download the code, report issues and collaborate with each other to improve the product?
What snags have you run into that could make me regret this decision? I'm interested in war stories, advice and guidance on making this little product available to the community where it can be used.
GoogleCode is a decent self repository for open source code. Very easy to use and contains the ability to create a wiki for the project. It also has a very easy to use and understand bug reporting/forum style issue management system.
One easy way to quickly get code on a publicly accessible host is github.com. Hosting is free if everything you host is available to the public. People would be able to grab latest, and notify you when they have updates they think are worth merging.
You would include documentation as a README.
CodeProject is cool, sites like that would allow more community discussion then what I've seen on Github.
If it's just a small example, or a small piece of code, you might think about just posting an ariticle on a site like "Code Project", or a blog.
There's a lot of overhead with releasing an open-source project, and if you want to be hands-off, you might have an easier time just writing an article, and providing a .zip to download the code example.
Take a look at SourceForge.net, which is a website where programmers can create their open-source projects. It allows you to add new users which may have different rights on your project (from just being a contributer to being a full administrator) and it features many tools which you might want to use for your project, such as a bug tracker and SVN.
CodePlex is another good place for posting projects. There's lot's of C#/.NET there. In addition to all the basic project hosting stuff one of the nice things about it is that they support a whole slew of source control clients.

Seeking advice for taking a project open-source [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I currently have a few closed-source applications that I have developed to learn a particular technology or experiment with a programming technique. As a result, I have some software that is useful to others and that I have made freely available, but in closed-source format.
Some of the users of the software have asked if I would be willing to go open-source with the software so they could contribute to it. I'm all for it, but haven't had any previous experience working on open-source projects, much less starting one.
Ideally I'd get my feet wet by contributing to an existing project first, but I don't want quell enthusiasm of these volunteers by delaying too long. So I am going to forge ahead slightly blindly.
What I am looking for is a crash-course in managing an open-source project for someone just starting out on this track.
So let me phrase this as a question:
What advice do you have for someone
starting up their first open-source
project?
I'm also interested in recommendations for books/links that you think would be helpful
You have two important choices to make initially.
Firstly which licence should you use? There are dozens of Open Source licences, but it basically boils down to whether you want copyleft (GPL/AGPL) or non-copyleft (BSD, MIT, Apache) and that depends on your own objectives.
Secondly, you need to choose a version control system and, assuming you won't be hosting it yourself, a provider. This is effectively a choice between Subversion or one of the distributed version control systems (Git, Mercurial, Bazaar, etc.). A DVCS may make it easier for you to manage contributions from other people if you don't want to give them write access to your master repository.
Choice of VCS will influence your choice of host and vice versa as most providers only offer one VCS. A provider that will also host a website and/or wiki for you would be ideal. Most will provide some kind of rudimentary issue tracker and possibly mailing lists. You can also get mailing lists from Librelist.
I would recommend that you take a look at GitHub or Launchpad. I'm not particularly keen on Google Code or Sourceforge. Nothing against Subversion, I just don't like their UIs.
If you want your project to become popular, and that might not be important to you, you'll have to promote it. You can register it with Ohloh and Freshmeat. Writing blog articles about your project and submitting them to sites like Reddit and DZone would increase visibility. Remember also that Jeff is offering free advertising on StackOverflow for Open Source projects.
Anyway, as long as you have a public source repository and a website for people to download the software from, just write code and the rest will follow.
If you're already familiar with VCS (Versioning Control System) you should be fine. I recommend www.github.org to host the repository, and maybe at some point a website to talk about the app. Github is nice because it makes it especially easy for people to contribute code. It's ridiculously simple, although git has a bit of a learning curve.
And then, a way to communicate! A mailing list.. Maybe googlewave.. Maybe a forum.
Don't miss the great e-book from Karl Fogel, Producing Open Source Software available at no cost online.
I don't have any personal advice on hand, but I found the following video very interesting. It's a recollection of the experiences of some Google employees and the lessons they learned whilst managing their open source projects.
How Open Source Projects Survive Poisonous People (And You Can Too)
https://www.youtube.com/watch?v=Q52kFL8zVoM
Read this book: Wikinomics
In one of the chapters, for example, the author explains the challenges faced by IBM when they first joined open source projects on Linux.
Some code repository sites do a lot of the management work for you. They provide the licenses, they handle versioning (in some cases) and they obviously handle the repository.
look at these sites:
http://www.codeplex.com/
http://www.codeproject.com/
http://sourceforge.net/
The very minimum that you need to do is post the code as a zip, with a suitable license file. You can do that at Google Code - it's really easy to use. As for which license, start with an unrestrictive one such as MIT (Google Code has all the license texts) - you can always re-license later, provided you haven't accepted any updates.
As for books/links, take a look at Producing Open Source Software - it's not perfect, but I don't know of anything better.

I'm starting an opensource project. Any advice? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
First of all, I reviewed this question, but I think I need a little more information since I've never worked on an opensource project before.
I'm starting an opensource project, currently hosted on Google code. It is a framework for creating flash games in ActionScript3 (programmer oriented). So far, so good, but I want to start building a community around it. The project is 60% finished from it's first official stable release (I am using Scrum to guide the development process, currently we are 3 people on the development team). By the way, the project has the MIT licence.
Do you have any advice on how to guide the development, any tools that I should look at?
Assembla vs Google code vs Trac vs Pivotal tracker?
What are you experiences on this?
If you're looking to build a community, it's not always about the tools, more about the processes you can use to build a community. There are plenty of people who will use whatever tool you give them or will choose (or refuse) to participate in a project based on the tools, but if the community stinks very few people will hang around.
I'd recommend spending some time thinking about how you're going to embrace a community. Are you ready to take the time to respond to bug reports? How will you handle enhancement requests? Are you willing to let something into the code if several people want it, but you don't? These are all critical issues that in the end will be far more important then Assmebla vs Trac.
You may want to check out Karl Fogel's book Producing Open Source Software or Jono Bacon's The Art of Community for more hints on managing and building a community.
First, big obvious download buttons so that a person can download your project, make it just plain easy. Secondly, forums so that people can give you feedback good and bad about the project.
Good luck on your project!
I would suggest checking out this book: http://producingoss.com/
I believe there is a free online and pdf version.
I have messed around with Trac some and it can certainly get the job done but if you are already doing an agile development process I would check out Pivotal Tracker. I use it on a side project and it's pretty slick, not to mention free to use. Pivotal has all the things you would expect: stories, backlog, velocity calculation, a few charts, etc.
Strive for adoption. The more users you get, the more people will contribute back.
Include lots of code samples on the wiki and let users download a sample application.
Make sure your API is well-documented with ASDoc.
Provide a roadmap to so that potential users can see your direction and intentions.
Be diligent about prioritizing feature requests and bugs. You and your team don't have time to do everything.
Make integration as seamless as possible. Hopefully users will be able to simply download a .swc (Flash library) and link it into their application.
Release early, release often. I hate having to download and use the HEAD revision from a repository because a team has only officially released one version of their project and it's a year old.
To me, guiding the development is more a matter of prioritizing what has to be done so I'm tempted to say: why don't you just use Google Code issue tracker as your project is already hosted there? I think it's offering all you need. Customize it to add a Estimates field if you want (for Scrum) and there you go.
Why do you think you would need something else? You already have a source repository, code reviews facilities, a wiki, mailing lists, an issue tracker, secured access for contributors. You don't need much more for collaborative work. What are you missing? Instant Messaging? Use Skype or Gtalk. IRC? You don't need it for now. No, really, I don't think a tool is gonna solve anything more here (even if you can't draw your burndown chart, not a big deal for a non full time project IMO).
So, because any other tool would be less well integrated with other Google Code services (e.g. I like to link my commits to issues using "Issue #ID" in comments which is automatically linked), I'd stick with what you currently have (maybe just add Gtalk/Skype to ease the communication/collaboration) and I'd start creating issues and prioritizing them. Good prioritization of work is the key to a successful project, there is no silver bullet tool that will do this for you. Then, plan fixed date milestones (releases) and assign most important issues to the upcoming milestone. Close as many issues as you can before the deadline. When the release time has come, release what has been done, postpone non implemented issue to the next milestone and start again.
If you need a software to support your scrum project... agile42 offers free Licenses of Agilo for Scrum Pro for open source projects.
Don't host your code on codeplex. I recently started an open source project as the basis of an article series on DotNetSlackers.com to show people how to build a site like SO. I mistakenly hosted this project on CodePlex. My automated build will periodically send me broken build emails as CodePlex will randomly go down for hours at a time. IT DRIVES ME NUTS!
If you plan to develop code that is free to the world but don't plan on letting anyone and everyone submit code to your project...host your own source control (perforce is free for a couple of users) or use something like google to host your code.

Codeplex/Sourceforge for internal use [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm looking for a free/open source collaborative project manager that can be deployed internally in my workplace that would act similar to Codeplex or Sourceforge. Does anyone know of something like this, and if so do you have experience with it.
Requirements:
Open Source or Free
Locally Deployable
Has the same types of features found in Sourceforge / Codeplex
Issue/Feature Tracking
Community Interaction (ie. Voting, Roles, etc.)
SCM Integration (Optional)
.NET/Windows Friendly (Optional)
Every business ends up having internal utilities, and domain specific apps that developers create to make life easier. Given the input of the internal developer community they have the potential to become much better (can you say GMail...), and I would simply like to foster such an environment internally by providing an easy place for that interaction to take place.
UPDATE:
So I like what I am seeing in both Trac and GForge, but both are heavily geared towards UNIX/Subversion environments. I should have specified this, but we are a MS shop from top to bottom. How practical do you think it is going to be to try and use these in a MS .NET environment? Would that be like trying to shove a square peg through a round hole?
I like redmine for this: http://www.redmine.org. The only thing it's missing from your criteria is voting, but there might even be a plugin for this.
Trac is also popular (http://trac.edgewall.org) but it lacks suport for aggregation of data across projects.
Try GForge, it's a SourceForge fork and has most of its features.
I agree, Trac should work. IMHO setting up Subversion should be relatively easy on Windows too, there are great Windows clients for it (tortoiseSvn), and Trac runs on python, so it will work on Windows too.
Other advantages of Sourceforge Enterprise are these plugins. There are extra plugins for Visual Studio wich can be found here and here.
SourceForge Enterprise Edition 4.4 is available for free for up to 15 users. We use it for our development team and another development team where I work.
It's been working great for us. It has subversion and cvs built in (whichever you wish to use). If you plan on accessing it over the internet you might want to enable HTTPS. I had to do a little finagling to get HTTPS to work correctly (finding the right CentOS packages to install). If you wanted to use this solution with HTTPS I wouldn't mind if you sent me a message asking for help.
It comes with a VM for VMWare Player:
http://www.collab.net/downloads/sfee/index4.4.html
Launchpad has support for Code Hosting and version control, Bug tracking, Blueprints, Answers, Polls, Translations, etc.
Launchpad is used by the Ubuntu Project.
A few weeks ago, Launchapad was released as open source.
I was just wondering the same thing, something like Trac but in .NET, after a quick GOOGLE search (I have never tried these tools) I found
sharpforge (This no longer looks free!)
I like how the site .netTiers looks.
They use screwturn wiki.
It is totally free if you fulfill all GPLv2 statements.
Assembla and BeanStalk are nice, both have things like; wiki, discussion, alerts, chat, ticketing, Trac, Git and Subversion
What about Trac? It's pretty simple, but does it's Job for a lot of Open Source projects.
I would concur on the Trac suggestion. I use it both for an open source project and for an internal project. It has decent issue tracking and integration with Subversion which allows links between tickets and subversion checkins. It also has an integrated wiki, which can be of some use for documentation. Although we do not use it for voting / community type features, I know there's a number of addons to it that might serve this purpose.