Main Idea

Looking at various open-source projects, I notice that most of them offer surprisingly little to get developers started. Most make no mention or hide very well which development tools and frameworks or underlying technologies the project uses.

Well, I was pleasantly surprised to stumble onto Filezilla's web page for developers with compile instructions that you can see here.  Not only that, it gives the URL of each file that needs to be downloaded, and instructions for getting the development environment running.

But there's about 50 files that have to be downloaded and unzipped.  And that's not counting the source code.

So, I set to work making something that would make that part easier and here it is:  the Windows Development Bootloader.

First, a project administrator would write a .wdb file that defines what to download from where.  It's an extremely simple file to write.
After saving the .wdb file in the correct folder with the correct name (we'll get into what "correct" means soon), A perl script is run. It does what the .wdb file says to and generates a project folder. You may wish to add a source code tree.

Then, make a zip file with the project folder as the top level, and post it on your web site. Voila! I intend to collect .wdb files and aggregate them in the wdb_files folder so a developer can set up development systems for multiple projects at the same time. My .zip file will ship with an empty prj file, though.

The nice thing about this is that if you version control the .wdb file, you have a version-controlled development system.

It comes as a zip file with wget compiled for Windows, 7-zip, and a little bit of PERL script for fetching the rest. There's a download language with an extremely simple SQL-esque grammar that lets you write a simple text file and run a PERL script on it that will download and decompress what you want, where you want, using ftp or http.

How it works:


What is needed:

PERL is needed to assemble a project folder.
Once a developer starts with your zipfile, though, he'll only need a unzip utility.


Some conventional wisdom:

Convention over configuration:
This simple notion is follwed thoughout the code.   The idea simply says that there is a standardized way of doing things, folders in their places, and variables set in such a pattern.  So, if you want to move files around and change how things are done, you're welcome to do that.   But it will take a lot more work and there will be a lot more things to fix, and I probably won't check in changes that somebody provides with a modified folder structure.

That's not to say that I won't ever change the convention, but there must be some very good reasons for doing it.

Project name:

The project name is a name of 3-20 characters, and may include hyphens and underscores. The first character must be a Number or capital letter. To be exact, the name of the project must match this regex:
^[0-9A-Z][0-9A-Za-z_-]{2,19}$

Folder layout:

The root folder is always called wdb. You may put wdb wherever you like. The folders under wdb must follow convention except under the project folder, which contains whatever the project needs.