Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

How To Turn Your Pile of Code Into an Open Source Project

Soulskill posted about a year ago | from the learn-how-to-swear-at-people-on-mailing-lists dept.

Open Source 176

Esther Schindler writes "You've written some code, you think it would be useful to the world, and you'd like to give back to the open source world. But how do you do it? Andy Lester provides a checksheet for developers for how to release an open source project and get it noticed. For instance: Before you release the project to the wild, write some documentation, create a mailing list, create an issue tracker, and so on. 'Users require releases of your software. It’s a disservice to your users to point at the Git repo and say “Just pull from the master branch and install it.” Users don’t want to have to use version control just to get a release of the code. Create a proper tarball (.tar.gz) that is easily downloadable by anyone. Announce each release. Your announcements should not assume that the reader is familiar with your project.' You think he's missing anything?"

cancel ×

176 comments

You think he's missing anything? (5, Insightful)

Osgeld (1900440) | about a year ago | (#44816249)

yea, don't make a sourceforge page saying that "this will be" having written a grand total of a comment in a .h file

Re: You think he's missing anything? (-1, Flamebait)

Anonymous Coward | about a year ago | (#44816315)

Then why do all homosexuals worship Satan? You have no answer, do you!? It's because homosexuality, along with all the sinful little homosexuals, is pure evil! Now, homosexual, it is time for you to become a heterosexual, and now is the time to change! We live in an age of change! Now, change for the better! Become a heterosexual immediately! I demand it! I demand that you become a heterosexual! In your heart of hearts, you know that heterosexuality is righteous!

Re: You think he's missing anything? (0)

Anonymous Coward | about a year ago | (#44816985)

I have seen quite a few projects like that, and no update since 2006. You need to have a working model before going to sourceforge or anywhere else.

Re: You think he's missing anything? (4, Insightful)

Anonymous Coward | about a year ago | (#44817067)

Also, he has the order wrong. First, make sure that you have something that works. Then, make sure, it is well documented. This includes both good user documentation (and not just "some documentation", good documentation is even more important than good code!), and good developer documentation, as well as a short description that tells people what your code actually if good for. (this seems trivial, but I've seen open source projects where even after browsing the web site for ten minutes or more, I still had not the slightest idea what they actually try to accomplish). Then make sure it has at least a minimal test suite. And then, write up a roadmap where you want the project to go (it may well be a very rough roadmap, but it should be there).

And if all that is done, then you can start thinking about setting up a public code repository, web site, mailing list, bug tracker, etc.

Re: You think he's missing anything? (-1)

Anonymous Coward | about a year ago | (#44817849)

User documentation? On an open source project???

Fuck you, you ignorant, soft, moron. Open source software should make people work for whatever they get, especially the slovenly end users who aren't fit to suck the crumbs out of my, um our, keyboards.

Sincerely,
Linus

Approachable download for the way! (5, Insightful)

billyswong (1858858) | about a year ago | (#44816251)

Create a proper tarball (.tar.gz) that is easily downloadable by anyone.

Finally someone mentioned that. Git repositories asks users install extra software before even trying your code. Hate it a lot.

Re:Approachable download for the way! (4, Insightful)

Anonymous Coward | about a year ago | (#44816331)

You can usually download archives from github and sourceforge.

Re:Approachable download for the way! (-1)

Joce640k (829181) | about a year ago | (#44816427)

How about compiled binaries (for Windows users). How difficult is that...?

Compiled Windows Binaries (-1)

Anonymous Coward | about a year ago | (#44816517)

In most cases it's easy if you already know how and have the environment set up. Otherwise there are a lot of things to download, set up, and learn.

Re:Compiled Windows Binaries (1)

Joce640k (829181) | about a year ago | (#44816669)

In most cases it's easy if you already know how and have the environment set up.

So...basically nobody. Way to alienate a lot of potential users.

Re:Compiled Windows Binaries (5, Interesting)

Samantha Wright (1324923) | about a year ago | (#44816821)

Oh yeah, just let me download and build all these libraries your project requires... oh, what's that? One of the libraries requires Visual Studio 2003 Ersatzpress Edition to compile? And another one needs gcc-mingw-0.0.1-super-alpha-pre-release-dinosaur-version? Okay, let me just... get on that...

If Windows binaries aren't provided, it means no one on the dev team could get them to build. (Maybe they can't figure out how to un-#pragma the #pragging #pragma correctly?) That's a big warning sign.

Re:Compiled Windows Binaries (4, Insightful)

Anonymous Coward | about a year ago | (#44816911)

If Windows binaries aren't provided, it means no one on the dev team could get them to build. (Maybe they can't figure out how to un-#pragma the #pragging #pragma correctly?) That's a big warning sign.

Or maybe it means no one on the dev team uses Windows. Pretty much the same reason why you don't see a binary for Mac either.

What made your platform so damn special that we need to provide a binary for your platform when we don't provide binaries for any other platform?

Re:Compiled Windows Binaries (1, Insightful)

Samantha Wright (1324923) | about a year ago | (#44816929)

How does "not remotely POSIX compliant and hence generally not source compatible" sound?

Re:Compiled Windows Binaries (1)

Anonymous Coward | about a year ago | (#44816977)

How does "not remotely POSIX compliant and hence generally not source compatible" sound?

It sounds like your platform sucks, that's how.

If you want me to provide a binary for your crappy platform, are you at least willing to donate the money needed so I can purchase a license for the platform? Maybe even money for hardware too.

Re:Compiled Windows Binaries (5, Insightful)

Samantha Wright (1324923) | about a year ago | (#44817009)

Hey, you're welcome to say Windows isn't supported. That's totally your choice. Just don't say something is supported when it isn't. There are a lot of half-assed OSS projects out there that do this. (That being said, you don't need the hardware; VMware Player is close enough to native performance. And to some extent, even WINE and ReactOS can provide an alternative to getting a Windows licence if the software's simple enough.)

Re:Compiled Windows Binaries (1)

Anonymous Coward | about a year ago | (#44817235)

Actually most software you can compile on Linux using MinGW64 and do a basic test using WINE.
Yes, your users might run into unexpected issues. But if you want your project to be popular it is a good thing to do, getting a development environment working on Windows is a pain even for advanced users IMHO. And yes, that is entirely Window's fault, the reason Windows works reasonably well is because of all the people investing time into working around its issues.
And concerning tarballs: git often allows you to download snapshot tarballs directly from the web interface.

Re:Compiled Windows Binaries (2, Insightful)

Anonymous Coward | about a year ago | (#44817837)

What made your platform so damn special that we need to provide a binary for your platform when we don't provide binaries for any other platform?

Other than a 95% market share, nothing.

Re:Approachable download for the way! (2)

mwvdlee (775178) | about a year ago | (#44816561)

How about compiled binaries (for Windows users). How difficult is that...?

Either it's difficult enough that the developers didn't want to spend the time and money to make their code compatible with the most incompatible OS currently available or it's easy enough that you can already download compiled binaries. Know any example of a Windows-compatible open source project that doesn't distribute binaries?

Re:Approachable download for the way! (4, Informative)

miroku000 (2791465) | about a year ago | (#44816609)

Know any example of a Windows-compatible open source project that doesn't distribute binaries?

Almost all of the ones I have downloaded recently don't distribute binaries for Windows. Usually someone else forks the project and makes their own installer like http://rubyinstaller.org/ [rubyinstaller.org] for example. Or, http://www.activestate.com/activeperl/downloads [activestate.com] or http://strawberryperl.com/ [strawberryperl.com] or http://dwimperl.com/windows.html [dwimperl.com] . The makers of popular languages like Perl and Ruby don't bother making installers. They just put up links to other people who do it. Some times other projects lag significantly behind the main project.

Re:Approachable download for the way! (0)

Anonymous Coward | about a year ago | (#44817347)

So both. It's difficult enough that the developers didn't want to spend the time and money to make Windows builds, AND easy enough that you can already download Windows binaries. It's just that the Windows binaries were made by people with Windows and Windows compilers, rather than by the people with Linux and Linux compilers.

Re:Approachable download for the way! (1)

Joce640k (829181) | about a year ago | (#44816707)

Either it's difficult enough that the developers didn't want to spend the time and money to make their code compatible with the most incompatible OS currently available

I don't mean stuff that isn't compatible with Windows, I mean actual Windows programs where the authors expect you to compile it yourself with a particular version of VC++, or even with command-line gcc and makefiles (VC++ is a free download, what Windows developer in their right mind uses gcc?)

Why don't they just post a binary? There's only one Windows 'distro' (yes, there's various versions but they're all compatible).

It's like they don't want people to use their software.

Re:Approachable download for the way! (0)

Anonymous Coward | about a year ago | (#44816903)

Noone expects you to do anything. But you can if you want to. Perhaps not everybody can be bothered to port their stuff to and create binaries for platforms they don't use and/or cannot test.

Re:Approachable download for the way! (0)

Anonymous Coward | about a year ago | (#44817113)

What's wrong with using gcc on windows? The last time I tried to code in c++ (admittedly a few years ago) I took care to do everything by the book, try to code cross-platform and against standards, but as soon as I tried to port it to windows, VS gave a hissy fit because it got confused by perfectly valid code, it was missing basic STL stuff and for some reason they even marked some standard string manipulation functions as obsolete for some reason, which resulted in a ton of warnings because it felt I should be using 'their' new and improved variants only available on their platform. Don't even get me started on hunting down libraries compatible with edition X of VS. Compiling the same project on different systems and compilers is a royal pain in the arse, which is just one of the reasons I no longer use c++.

Re:Approachable download for the way! (0)

Anonymous Coward | about a year ago | (#44817253)

> what Windows developer in their right mind uses gcc?

Any that wants to use C99 features like designated initializers (a real big one) and many more?
If you want to do pure C, the Microsoft compiler is shit stuck in the last century.
Also, gcc allows you to cross-compile from Linux, so you can provide binaries even if you don't use Windows yourself.

Re:Approachable download for the way! (1)

semi-extrinsic (1997002) | about a year ago | (#44817505)

This. When a company says "our compiler will never support all of C99", that's a clue to avoid it like the plague, as it won't support all of either. C++11, I'm looking at you.

Re:Approachable download for the way! (1)

semi-extrinsic (1997002) | about a year ago | (#44817513)

Aaand /. eats up yet another "insert here". Jeez.

Re:Approachable download for the way! (1)

Jaruzel (804522) | about a year ago | (#44817195)

...code compatible with the most incompatible OS currently available

Also the most widely used on the desktop, which makes your argument invalid.

Unlike Linux, Windows enjoys (typically) a compile once, run anywhere model. Hence the desire from Windows users to obtain pre-compiled binaries - why should I waste time compiling source into the same binary that countless other Windows users have already got?

I want to enjoy using my platform of choice, not waste endless hours watching packages download, and compilers run.

-Jar

Re:Approachable download for the way! (1)

TheRaven64 (641858) | about a year ago | (#44817353)

What's in it for them? The point of releasing open source code is not to gain users, it's to gain contributors. If you're someone for whom having to download a tarball and build it is too high a barrier to entry, then you're probably not someone who is likely to contribute patches either (and if you don't already have a dev environment set up, then you're almost certainly not going to contribute code). Given that they have limited time to spend on the project, does it make more sense to spend that time catering to you, or to people who will build from source?

Re:Approachable download for the way! (1)

aitikin (909209) | about a year ago | (#44817873)

This is a great point. Another point I'd like to make is the people asking for a binary are far more often the people who will NOT be able to provide a decent bug report (as in, "Every time that I run the application within these conditions on kernel X.x.x in the foo environment, I reach error 42." and not a bug report of "It's not working! FIX IT PLZ!"). Most people who want something enough to follow instructions on how to compile it are at least technical enough to be able to provide a minimum of good bug reports.

Re:Approachable download for the way! (0)

Anonymous Coward | about a year ago | (#44816955)

Fuck windoze and its users.

Re:Approachable download for the way! (2, Interesting)

Anonymous Coward | about a year ago | (#44816967)

Having done this for a project, and spending a month of my life struggling with MSI and WIX to get a localized and MSI-compliant installable, I can say it's not easy. However, since it was targeted at beginners and the Windows version ended up being 90+% of the downloads (the other version was a Debian binary package), it was probably worth it.

Re:Approachable download for the way! (0)

Anonymous Coward | about a year ago | (#44817023)

If you don't have Windows: Very difficult.

Windows and Mac binaries: difficult (4, Informative)

xiox (66483) | about a year ago | (#44817169)

It can be very difficult. My scientific plotting package, veusz [gna.org] , was written using Python and Qt, so it should be easily portable. However setting up a sensible developer environment on Windows to compile the Python C extensions was a nightmare. Windows is pretty developer-hostile if you're used to Linux. Trying to find and install the correct version of Visual Studio Express was difficult. I had to learn far too many things about the registry, DLLs, building installers, etc. Mac OS X was rather more difficult, however. You have to download the massive Xcode and the non-standard way that Mac OS packages executables and libraries was very difficult to understand. It took a long time to get fat binaries working.

You do get a different class of user on Windows and Mac OS X, however. The Linux people are closer to being knowledgeable about development, whereas Windows and Mac OS people are primarily users, wanting more help and hand-holding.

Re:Windows and Mac binaries: difficult (1)

MobyDisk (75490) | about a year ago | (#44817807)

Allow me to help.

Trying to find and install the correct version of Visual Studio Express was difficult.

Well, there's Visual Studio Express 2005, 2008, 2010, and 2012. That's not so hard. You will want to use 2012 since that is the latest.

I had to learn far too many things about the registry, DLLs, building installers, etc

Don't use the registry. DLLs = .so, installers = installers. That's about it.

Re:Approachable download for the way! (1)

jellomizer (103300) | about a year ago | (#44817845)

Well I would say you actually try to get a few binaries.
Windows 32bit
Windows 64bit
a DEB package and RPM for Linux
and OS X.

The problem with a lot of open source projects especially ones made by a single person. Is that when they code it, many don't really know which library are part of the standard set, and what is placed on the OS for your convenience.

So if someone tries to compile your program that you wrote in say Fedora and say used a library that isn't used in Debian. Then the Debian user who is going off of source code may get stuck. With a rather unhelpful error message because the OS really doesn't know where or what that Library is.

I had this problem back when Perl was popular. If I downloaded a Perl program, and tried to run it on Solaris, It would say oh you need this library and that library. Because it was coded on a system that used a Linux Distribution with a bunch of Perl defaults loaded while Solaris has the base Perl installed.

Re: Approachable download for the way! (1)

Alkonaut (604183) | about a year ago | (#44817147)

I think "tarball" makes very few people enthusiastic. Most people run windows (honestly people who know what "tarball" is are a rounding error) and prefer a zip or installer for applications, and a zip or package (nuget/npm/gem/etc) for source. When running Linux I don't care whether I get a git repo url or a tgz, they are about equally cumbersome.

Re:Approachable download for the way! (0)

Anonymous Coward | about a year ago | (#44817719)

If you don't know how to pull from a git repo I don't want you using my code. You're not smart enough to understand it.

No .tar.gz, Get a package manager (4, Informative)

Kahn_au (1349259) | about a year ago | (#44816257)

Just releasing a .tar.gz is not enough for most users. To ease adoption of your "amazingProjectX" you really need to package it so someone can just yum install X || apt-get install X ect.

While I personally dont mind rpmbuild myself other tools exist like FPM (https://github.com/jordansissel/fpm). After that get it into a repo like fedora/epel/etc and your users will love you (maybe...)

Re: you forgot windows (1, Interesting)

Anonymous Coward | about a year ago | (#44816395)

Tar.gz is nice, and .deb is even better, but the hard truth is that most users use windows, so you really need to publish an MSI or an EXE.

Look into WiX [wikipedia.org] or NSIS [wikipedia.org] to create an installer for Windows.

Re:No .tar.gz, Get a package manager (3, Insightful)

Arker (91948) | about a year ago | (#44816993)

If it's in any way difficult for you to install from a proper tarball then there is something wrong. Perhaps you should try a sane distribution?

Re:No .tar.gz, Get a package manager (2)

buchner.johannes (1139593) | about a year ago | (#44817345)

Sorry, but it *is* difficult to get from a compilable program to a distributable program that Linux users can try out easily.

You suggest tarballs, meaning configure && make && make install. That means you need to deal with automake and friends which are insanely obscure and hard to learn.

The alternative is to make packages and get them into the offical repos. You have to do that for a couple of distributions, and probably test the installation on them as well. That is a large effort for a developer.

I think it is fine for developers to publish well-commented code with a README or documentation, without releasing installable packages. It's too hard. If the demand is there, that should be the business of package managers, who know best how to do it.

Re:No .tar.gz, Get a package manager (1)

Arker (91948) | about a year ago | (#44817859)

"Sorry, but it *is* difficult to get from a compilable program to a distributable program that Linux users can try out easily."

A bare assertion with no logic or evidence behind it that directly contradicts experience.

"You suggest tarballs, meaning configure && make && make install. That means you need to deal with automake and friends which are insanely obscure and hard to learn."

What 'deal with?' What on earth do you mean. You type a command and press enter, a command simple enough you embedded it in your first sentence. If that is 'difficult' for you to 'deal with' I suggest you try something a little simpler than a general purpose computer.

And anyway I said only tarballs I didnt say anything about source tarballs. Binary tarballs are another very easy way to install a program, even easier than source tarballs, although compatibility may be more limited.

"The alternative is to make packages and get them into the offical repos. You have to do that for a couple of distributions, and probably test the installation on them as well. That is a large effort for a developer."

No, as a developer, you should not be making packages (except possibly for the distro you personally use.) Many distributions these days are crufty with proprietary junk and keeping up with all the little peculiarities of each distribution IS actually a lot more effort than typing 'make'. That job is best left in the hands of people who are intimately familiar with their distribution and have the motivation to tolerate its insanities.

Re:No .tar.gz, Get a package manager (1)

aitikin (909209) | about a year ago | (#44817897)

Sorry, but it *is* difficult to get from a compilable program to a distributable program that Linux users can try out easily.

You suggest tarballs, meaning configure && make && make install. That means you need to deal with automake and friends which are insanely obscure and hard to learn.

I thought those were inherent to Linux users. I have never had a Linux install going for longer than a month where I hadn't at least once dropped to command line to put in some variant of configure && make && make install and get a new program running...

Guess this is my get off my lawn post...

Re:No .tar.gz, Get a package manager (0)

Anonymous Coward | about a year ago | (#44817007)

I woudn't mind compiling from the source if there was an easy way to uninstall an application afterwards.

Re:No .tar.gz, Get a package manager (0)

Anonymous Coward | about a year ago | (#44817285)

Install it in a special directory in your home so you can just delete it?
Though for most simpler programs: why would you want to install anything anyway? Compile, run from where it created the binary should work for most, this obsession with "installing" a single-file program is a Windows disease I wished would go away.

Re:No .tar.gz, Get a package manager (1)

semi-extrinsic (1997002) | about a year ago | (#44817527)

Use ArchLinux. There, you take the PKGBUILD template file, modify it to download the correct source (it even supports git and hg nicely), tell it how to make/configure, and you're done. Running makepkg on this PKGBUILD will then build and tar-up the result into a .tar.xz file which can be installed (and later uninstalled) using the system package manager (pacman).

Re:No .tar.gz, Get a package manager (3, Insightful)

TheRaven64 (641858) | about a year ago | (#44817359)

The tarball is not for casual users. The tarball is for packagers. Having a stable tarball (i.e. one with a published URL whose hash won't change between downloads) makes it much easier to create the package.

Missing anything? (0)

Anonymous Coward | about a year ago | (#44816279)

What about DEB/RPM files? Not everyone wants to build everything from source.

Re:Missing anything? (0)

Anonymous Coward | about a year ago | (#44816285)

I refuse to, its not my place to do a developers job

Re: Missing anything? (2)

corychristison (951993) | about a year ago | (#44816361)

Any distro with a repository, its up to the distro package managers.

In some cases this is the developer of the software, but usually not. Dependencies can be tricky.

"Before..." (2)

gmuslera (3436) | about a year ago | (#44816281)

Some of those things can come after it got released. You probably want to build a community around it, and that community could do some of that work, or have better ideas and feedback on how to do them. Be sure that don't contain anything that is not meant to be public, release and announce it. You could build some momentum before releasing it, gathering people very interested on it as betatesters or to give feedback before going fully public. I.e. Docker [docker.io] had some showing in presentations giving a hint of what it did, and how, and some weeks later released the base code, and documentation, tutorials, extra tools, and community contributions piled up with time. Delaying till everything is ready and perfect risk not releasing it at all.

Ensure it is licensed (1)

Anonymous Coward | about a year ago | (#44816283)

GPL, LGPL, MIT, etc etc

Re:Ensure it is licensed (3, Interesting)

Anonymous Coward | about a year ago | (#44816347)

And bear in mind that the license you choose may impact your target audience. Many devs who may want to use your project are working for companies in which the dev has little or no say about what licenses are acceptable. (Permissive licences like MIT/BSD/Apache2.0 are more likely to be acceptable, whereas in my experience GPL is more likely to meet resistance, or even immediately block people out).

Re:Ensure it is licensed (0)

Anonymous Coward | about a year ago | (#44816957)

Agreed. The type of license can dictate who can and will use the code. The key though is that it needs to have a license in the first place. If it doesn't specify one and I go ahead and use it, and a license is later slapped on it that conflicts with my existing code base, I'm in a difficult position. More likely is that I won't touch if it is unlicensed, because I don't know where I stand.

Re:Ensure it is licensed (1)

EvanED (569694) | about a year ago | (#44817003)

More likely is that I won't touch if it is unlicensed, because I don't know where I stand.

If it's unlicensed, it's very easy to know where you stand: nowhere, and legally speaking you have no permission to do anything with it.

(If it's on Github you have some token rights like the ability to look at the code and fork the repository -- whatever that means -- but probably don't have the right to, say, distribute it outside of Github. IANAL, YMMV.)

Missing one thing... (1)

djupedal (584558) | about a year ago | (#44816297)

It's your code.describe best how to test it, log it and bug it so it won't go untended as it grows.

Prepare for Debian (5, Insightful)

G3ckoG33k (647276) | about a year ago | (#44816325)

Prepare for Debian instead of Ubuntu so, that more users can enjoy your freedom. Starting our preparing for Debian will definitely reach out to more users. Ubuntu and Mint and many other distros are in many cases directly or indirectly based on one of the latest versions of Debian Sid. Preparing for Ubuntu directly is less attractive for that and other reasons.

Re:Prepare for Debian (1)

Anonymous Coward | about a year ago | (#44816485)

Also, consider planning for multi-arch as well. Both 32- and 64-bit intel, at least, in the source. Don't make people have to choose now, and then be stuck with it.

Re:Prepare for Debian (4, Informative)

Jezral (449476) | about a year ago | (#44816943)

I'd love to do that, but getting a package into Debian is a nightmare that I have simply given up on. Even the simple guides are 50 pages long and a mass of not quite up-to-date information.

Ubuntu makes it trivial. Even if you can't or don't want to get into Ubuntu base, you can just make a PPA on Launchpad and get automatic building for all supported editions and archs of Ubuntu.

Re:Prepare for Debian (1)

Anonymous Coward | about a year ago | (#44817011)

Ubuntu now reject new packages and tell people to put packages into Debian, which isn't that hard now:

http://mentors.debian.net/intro-maintainers

Re:Prepare for Debian (1)

Warbothong (905464) | about a year ago | (#44817471)

Getting a package into Debian is hard, but it's perfectly acceptable to release Debian packages standalone alongside your tarballs, or to host your own repository. The package format itself is pretty simple, and making them can be as easy as arranging your files, writing a few lines in a control file and running "dpkg-deb -b". I do this when I make changes to my system, since it makes them easy to undo.

The 50 page guides are for Debian's own standards, which you must follow to get a package into Debian. If you're providing it from your site, you don't have to follow them at all, although they contain good advice. Also note that the guides contains lots of optional sections: if your program doesn't use Python, Perl, compilation, setuid, etc. then you can skip those sections.

Re:Prepare for Debian (5, Insightful)

Arker (91948) | about a year ago | (#44817005)

That's bad advice. Publish a proper tarball and let Debian customise it for Debian, Ubuntu for Ubuntu, etc. Do one job well, dont try to do everything.

Build environment (4, Insightful)

Anonymous Coward | about a year ago | (#44816365)

Clearly documenting the required build environment and tools is a must - poor build environment documentation is a huge barrier to anyone wanting to jump in and make some small (but worthwhile) improvement, thus defeating a large part of the point of open source.

Too many O.S. projects take the attitude of "it builds fine on my setup", leaving potential contributors with a frustrating guessing game trying to work out what that setup might be.

Re:Build environment (1)

leuk_he (194174) | about a year ago | (#44817361)

The problem there is that a lot of developers do not understand their build environment. It just works. They are not aware that they use libray X Y and Z. You only need to be aware of that if something is not running.

But a few lines in the readme hinting what environment was used can get you a long way.

Tarballs? Go Back to the 80's (1)

Anonymous Coward | about a year ago | (#44816385)

I deliberately eschew tarballs. Especially for a young project, having the repo bootstraps the contribution process. Found a bug? Fork it and issue a pull request. Even if the maintainer gets hit by a bus at least you now have a sane way of tracking your customizations and bug fixes.

It's infinitely more useful. Tarballs make me think of shitty sourceforge days.

Packages OTOH can be nice. Until you can't figure out where the hell the Ubuntu package maintainer decided to put the config files. Until you're affected by a bug and need a bleeding edge release. Then you're back to downloading and compiling from source (or finding a 3rd party PPA) anyway.

In fact, I'd encourage others to compile from source so that you can work out any discrepancies there. For an open source project you want to breed as many contributors as you can. Get as many people running your test suite as you can in case there's oddball environment differences that mean you're the only person alive capable of compiling it.

Re:Tarballs? Go Back to the 80's (2)

TheRaven64 (641858) | about a year ago | (#44817389)

Tarballs make me think of shitty sourceforge days. Packages OTOH can be nice.

Tarballs are the input for most packaging systems. If you don't publish a tarball, then I have to create one before I even start packaging your code. So you get moved to the bottom of my list. And that's probably fine for a fast-moving project, where you don't want people running an old version and sending reports for bugs that are already fixed, but for a more mature project make sure you make life easier for packagers. That means:

  • Provide the tarballs
  • Provide a list of dependencies (don't make me run configure / CMake scripts, parse their output, and chase things down).
  • Ensure you specify minimum / maximum versions of dependencies for things you depend on, if they matter.
  • Ideally, provide a list of files you will install and where for each build configuration (I can generate this automatically if it's fixed, but it's harder if it's depends on the build configuration)
  • Provide a concise description of your project, both as a single-line summary and as a few paragraphs, for the descriptions in the packages.

If you provide all, or even most, of these then I can probably package your software in 5-10 minutes.

If the point is to get noticed⦠(-1)

Anonymous Coward | about a year ago | (#44816389)

Then sure, creating a website, mailing list, sourceforge, github, Eric will work.

But if your point is, "hey look at me employers, I'm an open source wizard, pay me pay me pay me!"

Then go fuck yourself.

Write a clear, concise definition (5, Insightful)

Anonymous Coward | about a year ago | (#44816419)

If you can't write one sentence that describes it and one paragraph that explains what it does, nobody will ever know what it is. Write for someone who doesn't have your experience, doesn't know how to code, but has the same problem. Specifically, include on the description page phrases that could describe the problem you're solving so that google will point people there.

The other big thing, write accesible error message. Today's best example. eLAIX is an extension to libreoffice that converts ODTs to EPUBS (see that easy to google phrase there). It barfed all over a word document that I imported into libreoffice. Known bug. However, google has no results for the error message. After an hour of searching, I figured out that it's a known issue with word documents, and that cut/paste as RTF into a new libreoffice writer will clear the whatever breaks it. If the error message had been "googleable" or the error message given a "this might be a word document import that failed" then I would have saved an hour chasing this down.

Yes, your users will break it in unimaginable ways.

Post it to Slashdot! (4, Funny)

gentryx (759438) | about a year ago | (#44816435)

*wink*library for computer simulations [libgeodecomp.org] *wink*

Re:Post it to Slashdot! (1)

bored_engineer (951004) | about a year ago | (#44816611)

I'm sorry to say that I've no use for what you've put together; I really wish I did, though. You made me chuckle at the end of a series of really long days. Thank you very much.

Re:Post it to Slashdot! (1)

gentryx (759438) | about a year ago | (#44816711)

Thanks, I appreciate it!

No worries though. I'm currently in the technology transfer phase of my PhD, meaning that the project has achieved most of its scientific goals and I'm now rolling it out to the users. We already have a couple of users and the project even gathered a certain momentum recently, so I'm fine. But attracting more obviously wouldn't hurt.

Re:Post it to Slashdot! (1)

bored_engineer (951004) | about a year ago | (#44816989)

. . .transfer phase of my PhD. . .

I That's farther than I guessed you were.

. . .couple of users. . .

You've astounded me further. My first guess after looking over your project was that you would be lucky to get any users at all. I'm not, by any possible stretch an expert in your field, so don't take my opinion with even a grain of salt. (I design safety improvements for roads in an arctic environment. It seems possible, though, that somebody might use your specialty to help with mine. I love convergence.)

Good luck with your project, and thanks for the hearty chuckle.

p.s. You inspired me to take a second look. Now, I *really* wish I had a use for your project. You've been extremely thorough. I couldn't finish your FAQ without other references, and I seriously doubt that I have even a rudimentary understanding of what you're doing. Again, I wish you luck, as you've clearly worked hard to make your own (luck.)

Re:Post it to Slashdot! (1)

StripedCow (776465) | about a year ago | (#44817071)

Very interesting. Do you use multigrid methods to solve the equations?

Re:Post it to Slashdot! (1)

gentryx (759438) | about a year ago | (#44817131)

The library is really built with the mindset "one grid to rule them all". Also, it's not limited to solvers. But yeah, you definitely can use it to write multigrid solvers. It's a bit unorthodox though, so I guess anyone trying that should send me an email so I can explain the methodology. The basic idea is simple: 1. define the iteration scheme, 2. create multiple grids (or levels), 3. couple them (for interpolation), 4. run :-)

Re:Post it to Slashdot! (1)

Anonymous Coward | about a year ago | (#44817107)

It looks decent, though I go to the FAQ, and I see "Please look here for a short review of how it relates to the competition.", and I go to that link, and there is no information about "the competition". And... "So far no one has come up with a language/compiler/library that could automatically parallelize any sequential code on any hardware."... have you seen Chapel [cray.com] ? It is not perfect, and it looks like you have a nicer polish to some things, but is actually quite good for many things. (I just code to MPI directly... I don't see what the big deal is for parallel processing for the vast majority of things, but I see why there would be a niche for what you do. Best of luck.)

Re:Post it to Slashdot! (3, Interesting)

gentryx (759438) | about a year ago | (#44817233)

It looks decent, though I go to the FAQ, and I see "Please look here for a short review of how it relates to the competition.", and I go to that link, and there is no information about "the competition".

Ah, sorry. As the text evolved, that paragraph was buried. I changed the layout and link so that it is more visible.

And... "So far no one has come up with a language/compiler/library that could automatically parallelize any sequential code on any hardware."... have you seen Chapel [cray.com] ? It is not perfect, and it looks like you have a nicer polish to some things, but is actually quite good for many things.

Yes, I'm aware of Chapel. This is a good example for the current state of generic auto-parallelization: it works well, as long as the user augments his sequential code so that the compiler/runtime/whatever can distill the parallelism from it. That's still not possible without augmentation. So the user needs to understand how a parallel system works and how his algorithm might be mapped to it. Trivial for someone who does this for his daily living, but difficult for someone who's new to parallel computing.

Also, for many applications the optimal algorithms to be used on the various target hardware architectures differ significantly (e.g. for stencil codes a 2.5D wavefront on multi-cores, but a horizontal iteration with 32-wide stride on GPUs...) Such different algorithms can't be "discovered" by some generic software (at least no one, not even the Chapel developers have achieved this), so those algorithms have to be encapsulated in specialized libraries. Which is what we do for our domain "computer simulations".

(I just code to MPI directly... I don't see what the big deal is for parallel processing for the vast majority of things, but I see why there would be a niche for what you do. Best of luck.)

Thanks. :-) Users of my library are mostly scientists who want to simulate something big, without having to spend months learning OpenMP and MPI and CUDA and so on. So yeah, there is a niche. And thanks to the stagnating clock speeds and growing heterogeneity of HPC hardware, that niche is growing fast. Exiting times.

Re:Post it to Slashdot! (1)

semi-extrinsic (1997002) | about a year ago | (#44817575)

I must say I am intrigued by your project. However, the main requirement for me (and many other scientists with semi-legacy codes) is Fortran interoperability. Can I use your project with my Fortran code? If not, that should be a goal for the project IMO.

Wrong side of the router... (-1)

Anonymous Coward | about a year ago | (#44816477)

I'm not worried about the NSA having a sniffer attached at google's peering point, because that's not how I'd attack. Two far easier solutions that carefully evade the whole "has no direct access to my network" answers that everyone has given:

- an html form that says "Get records for ?" - and from the NS - no direct access to the network, but the indirect is indiscriminant
- NSA contacts TW, Comcast and AT&T (and other large telcos) and says, let me put a sniffer on /your/ network, because then it doesn't matter, as the /people/ (our target) can be read, we can't read your data center traffic over privately owned links anyhow - but great misdirection!

Sign those releases! (0)

Anonymous Coward | about a year ago | (#44816495)

Some of us are more paranoid than others. I prefer my software to be signed with PGP, or at the very least, accompanied by a SHA-2 hash. It disappoints me how few open source projects regularly do this.

Entitlement (1)

Anonymous Coward | about a year ago | (#44816613)

It's nice to set up mailing lists, etc., but it's hardly something you should feel any obligation to do. If you have a relatively small, well-written, self-documenting library or utility, it's already a gift. If you've finished with the code, and you're no longer willing to invest time and effort beyond bug fixes, well, maybe that's an opportunity to take donations, or leave it in the wild for others to do with it as they please.

"Before you release ... write some documentation" (0)

Anonymous Coward | about a year ago | (#44816619)

He he. Ha ha ha. HAHAHAHA! Oh, my lord, that killed me. Ahhh, too funny. Oh my goodness, my sides hurt. Please, no, here I go again... HAHAHAHAHAHA!

And ship a goddamned executable (2, Insightful)

Anonymous Coward | about a year ago | (#44816637)

Nobody wants to track down 85 dependencies, half of which will no longer work with the rest of the code base, in order to run whatever software you are releasing. It's 2013, and you can afford to bloat the .tar.gz file with a precompiled build. It's not like you're paying for your own bandwidth. /rant

Re:And ship a goddamned executable (0)

Anonymous Coward | about a year ago | (#44817555)

I can only agree, noone (including me) want to trackdown 85 dependencies.
Please, is it to much to ask to actually develop your own code.
I understand it goes faster to include massive with 3pp libraries.
It's also very unintresting when you can not fix bugs, since the bugs is in the 3pp.
I'm sure you dont use 90% of the 3pp anyway.
Please, you do not need all these dependencies, I really mean it.
Use standard libraries, and only when you really need them.

Documentation, documentation, documentation (2)

emblemparade (774653) | about a year ago | (#44816639)

Writing (and maintaining) good documentation can easily take as much time as writing and testing the code, if not longer. But it's worth doing. Please, please document. Many more people will flock to your product, in turn giving you more influence and fame. It's worth it!

And do not use a Wiki (1)

Nemosoft Unv. (16776) | about a year ago | (#44817223)

Against Lester's suggestion, do not use a Wiki. I have seen way too many projects with a half-baked or even empty Wiki, since the programmer believed that if he created a Wiki, the documentation will be written "magically" by the users. That is not going to happen, period. The one and only who can actually write the documentation (be it the API spec, examples or user manual) is you, the original programmer. Everybody else is just a beginner...

agreed (-1)

Anonymous Coward | about a year ago | (#44816655)

It’s a disservice to your users to point at the Git repo and say “Just pull from the master branch and install it.”
AGREE +100

No (2, Insightful)

drwho (4190) | about a year ago | (#44816681)

Please don't. The world has enough crap code as it is. Unless your code is GOOD, keep it to yourself. You may think 'well, it may be bad, but someone will find a use for it' - but the very existence of bad code to solve a problem can keep goo code form evolving, as people adopt the crap. Please, fix your code before posting it for public consumption. If you can't, then find someone who can or mark it as 'crap code please fix - do not deploy!'. People will respect your for your honesty.

No, but. Re:No (1)

leuk_he (194174) | about a year ago | (#44817395)

Think again. why REALLY why do you want to put your source on the internet?

-Recognision. Your name? --> Then only post excellent code.

-To get some work done? -> post it, document it, expect notthing.

-Someone lese to debug your code? -> unlikely, but possible. Users are more likely to recompile and look for the
#define NUMBEROFBUGS 9
and change that value. Making a good build environment available helps a lot if you want more people compiling your code. Please include as much depenancies in your tar.gz as possible, even if that is not your code.

Do not expect miracles however. For every 1000 binary downloads, 30 people will bitch about the colors, 20 will put in feature request that are not feasable, 10 people will download the source, 5 will compile it, and 1 will give you really useful feedback on the source or patch it.

You can focus on makeing that "1000" number much bigger, or make the percentage of usefule feedback better. The latter requires documentation.

Re:No, but. Re:No (1)

leuk_he (194174) | about a year ago | (#44817403)

By the way, the number 1% download the source is from observations on sourceforge 5 years ago, never looked in this numbers in these GIT days.

Build a community around your product. (0)

Anonymous Coward | about a year ago | (#44816811)

Just having a mailing list is not enough, you need to build a community, which means 1. you need to be active on that mailing list and 2. provide support as well.
To get your project noticed, you'll likely have to shamelessly promote it. Your project is probably not the only one of its kind (typically, you're not that special). If you're building an open source alternative to a closed source project, you may want to join an existing mailing list of the closed source project to humbly announce your own; this worked well enough for Linus' little OS kernel as well, if I recall.

You may want to go a few steps further than releasing on git or building a tar ball. Releasing pre-compiled versions Windows and Mac can contribute greatly to the success of your project. Just think where popular open source projects such as Firefox would be if their users had to compile it themselves.

Write a manual, and make it available online - ideally not (only) as PDF but as a set of HTML pages. Users are not going to read it - most of them anyway, but you'll be able to link to the relevant sections when responding to frequently asked questions so you don't have to waste too much time supporting your software. Just don't be arrogant about things, "Jeez can't you people RTFM?" is quite blunt.

Finally, that song "Sing" is actually not from Sesame Street but by the Carpenters.

It's quite alarming that... (2)

rippeltippel (1452937) | about a year ago | (#44816817)

...He didn't mention how to choose an appropriate software license!

That's definitely something that impacts the popularity of any open-source project.

Re:It's quite alarming that... (1)

AHuxley (892839) | about a year ago | (#44816921)

Yes get that aspect down from day one :)
Get your anti-DRM clauses in early.

Re:It's quite alarming that... (0)

StripedCow (776465) | about a year ago | (#44817081)

Simple. Choose GPL if you want your project to be one day superseded by one which has a more liberal license.

Otherwise, choose a BSD license.

Don't wait, post the code now! (1)

Anonymous Coward | about a year ago | (#44817027)

Pick your FOSS license and get that code out there, don't wait. You can do all that other stuff, but if you want to contribute, get your code out there now!

Solve a problem that needs solved. (5, Interesting)

tlambert (566799) | about a year ago | (#44817219)

Solve a problem that needs solved.

For example, a guy wrote a Microsoft LAN Manager clone and talked about it on usenet. I spent six months harassing him to get the source pulled together and released so that I could run it on an Ultrix box for a lab full of AT&T PCs that our lab got as part of a grant from AT&T. The guy's name was Andrew Tridgell. His first message to me after that was "Help! I can't handle the volume of email I'm getting asking about it now!", so I suggested he set up a mailing list and let the people talk to each other instead of him.

But it all started because he wrote code that solved a problem I needed solved, and then talked about it in a forum I happened to read. Without actually solving a problem, it would have gone nowhere.

So your number one mission: Solve a problem that needs solved. Otherwise, you are just navel gazing.

Understand the commitment you're making (1)

paj28 (639884) | about a year ago | (#44817259)

So many bad open source projects come from the author underestimating the work in making a project work. It's easy to think "hey I wrote this, somebody gotta find it useful" It's a huge amount of work to make it an effective project. And you have to ask WHY you want to do this - it's a similar amount of work to making your software a viable commercial prospect, which would have the added benefit of putting food in your cupboard. His suggestions are a good start, but in this day and age you need to do more. For example, you really need video tutorials of your software. And once you start putting them together, you start to see more shortcomings in your software, so you stop the video, make some coding improvements, and continue. This is a long process! A lot of people think "hey, when people see this, I'll get contributors to help me" But if you really want things to work out, you need to project manage the contributors. Everyone has their own priorities, and the project lead needs to get everyone working in the same direction. And you've got some tough decisions. If someone sends you a useful patch that's lacking in tests and documentation, what do you do? It's a pain to reject it, but a pain to accept it too. What the project really needs is leadership, and that is a massive commitment.

required reading (1)

umafuckit (2980809) | about a year ago | (#44817673)

TFA really should be required reading for anyone developing a significant open source project. An area which seems particularly in need of help is OS projects in the sciences. Some are very good, but others (sometimes important ones) fail most of the items on the list. They end up being developed by one or two people, no mailing list, minimal docs, no issue tracker, and erratic to zero response from the developer(s). The result is that others download the code, fix the obvious bugs or implement improvements, but these fixes never get incorporated back into the original project because there's no mechanism for doing it. Everyone's reinventing the wheel.

Been doing it for decades (successfully) (-1)

Anonymous Coward | about a year ago | (#44817839)

Not via "Open 'SORES'", but normal routes used long before it on sites that features folks' wares, ala "e.g." currently for me:

---

APK Hosts File Engine 9.0++ 32/64-bit:

http://start64.com/index.php?option=com_content&view=article&id=5851:apk-hosts-file-engine-64bit-version&catid=26:64bit-security-software&Itemid=74 [start64.com]

---

* Some of my work over time's become part of commercially sold wares by certified Microsoft partners & did well in commercial products reviews in "Windows IT Pro" (then Windows NT magazine), & as a finalist @ Microsoft TechEd 2000-2002 as a FINALIST in the hardest category there: SQLServer Performance Enhancement.

(In other words - doing "Open 'SORES'" doesn't HAVE to be the route you need for your app to help others, and be successful @ getting you PAID for your efforts also...)

APK

P.S.=> IF I can do it? Most folks who are motivated properly can. IF they try hard enough & learn the platform they're programming on thoroughly... apk

Donations (0)

jcrada (1876280) | about a year ago | (#44817857)

I think another step is to set up a donation account and cross your fingers for donations. In this respect, may be a PayPal account would do, although they require you to do legal paperwork to register as a non-profit, or else pay higher fees. It would be great to have better _world-wide_ alternatives.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...