From 6356d08d1336c70711ac47151f80cab78ed8a0e8 Mon Sep 17 00:00:00 2001 From: "Benj. Mako Hill" Date: Sat, 4 Jun 2005 00:07:33 +0000 Subject: [PATCH 1/1] I fixed lots of little bugs, the subsections on choosing a license and Author: mako Date: 2001/03/26 01:38:50 I fixed lots of little bugs, the subsections on choosing a license and on version numbering. I also removed the last subsection of the starting section on "Nurtuing Future Development" because much of seems like it it was too small and the information that belonged under it could go into sections like presentation and under working with developers. :) --- FreeSoftwareDevelopmentHOWTO.sgml | 393 ++++++++++++++++++++---- FreeSoftwareProjectManagementHOWTO.sgml | 393 ++++++++++++++++++++---- 2 files changed, 664 insertions(+), 122 deletions(-) diff --git a/FreeSoftwareDevelopmentHOWTO.sgml b/FreeSoftwareDevelopmentHOWTO.sgml index 8c83f39..4499e57 100644 --- a/FreeSoftwareDevelopmentHOWTO.sgml +++ b/FreeSoftwareDevelopmentHOWTO.sgml @@ -401,9 +401,9 @@ Eric S. Raymond writes about how free software projects start in his paper, "The Cathedral and the Bazaar" which comes as required - reading for any free softare development. You can find it online - at - http://www.tuxedo.org/!esr/writings/cathedral-bazaar/. + reading for any free softare development. You can find it online + . @@ -475,68 +475,57 @@ freshmeat.net - - Located at at - http://freshmeat.net, freshmeat describes itself as, - the Web's largest index of Linux and Open Source - software and its reputation along these lines remains - unquestioned. If you can't find it on freshmeat, its doubtful - that you'll find it indexed anywhere else. - + freshmeat + describes itself as, the Web's largest index of Linux + and Open Source software and its reputation along + these lines remains unquestioned. If you can't find it on + freshmeat, its doubtful that you'll find it indexed anywhere + else. Slashdot - - Located at - http://slashdot.org, Slashdot provides News - for Nerds: Stuff that Matters, which usually includes - discussion of free software, open source, technology, and - geek culture new and events. It is not unusual for an - particularly sexy develpment effort to be announced here so - it definately worth checking. - + Slashdot + provides News for Nerds: Stuff that Matters, + which usually includes discussion of free software, open + source, technology, and geek culture new and events. It is + not unusual for an particularly sexy develpment effort to be + announced here so it definately worth checking. SourceForge - - Located at - http://sourceforge.net, SourceForge houses and - facilitates a growning number of open source and free - software projects, SourceForge is quickly becoming a nexus - and an necessary stop for free software - developers. SourceForge's - - software map and new releases - pages. should be necessary stops before embarking on a new - free software project. SourceForge also provides a - Code Snippet Library at http://sourceforge.net/snippet/ - which contains useful reusuable chunks of code in an array - of langauges which can come in useful in any project. - + SourceForge + houses and facilitates a growning number of open source and + free software projects, SourceForge is quickly becoming a + nexus and an necessary stop for free software + developers. SourceForge's software + map and new + releases pages. should be necessary stops before + embarking on a new free software project. SourceForge also + provides a at Code Snippet + Library which contains useful reusuable chunks of + code in an array of langauges which can come in useful in any + project. Google and Google's Linux Search - - Located at - http://www.google.com and - - http://www.google.com/linux, provide prowerful web - searches that may reveal people working on similar - projects. It is not a catalog of software or news like - freshmeat or Slashdot, but it is worth checking before you - begin pouring your effort into a redundant project. - + Google and + Google's Linux + Search, provide powwerful web searches that may + reveal people working on similar projects. It is not a + catalog of software or news like freshmeat or Slashdot, but + it is worth checking before you begin pouring your effort + into a redundant project. @@ -582,18 +571,308 @@ - + - - Deciding on a License - - + + Licensing your Software + + + On one level, the difference between a piece of free software and + a piece of propriety software is the license. A license helps both + you as the developer by protecting your legal rights to your + software and helps demonstrate to those who wish to help you or + your project that they are encouraged to join. + + + + Choosing a License + + + Any discussion of licenses is also sure to generate at least a + small flamewar as there are strong feelings that some free + software licenses are better than other free software + licenses. This discussion also brings up the question of + Open Source Software and the debate around + Open Source Software and Free + Software. However, because I've written the Free Software + Development HOWTO and not the Open Source Development HOWTO, my + own allegiences in this argument are out in the open. + + + + In attempting to reach a middle ground, I recommend picking any + license that conforms to the Debian Free Software + Guidlines. Examples of these licenses are the + GPL, the BSD, and the + Artistic License. Conforming to the definition of Free Software + offered by Richard Stallman in The Free + Software Definition, any of these licenses will + uphold, users' freedom to run, copy, distribute, study, + change and improve the software. There are other licenses + as well but sticking with a more common license will offer the + advantage of immediate recognition and undestanding. + + + + In attempting a more in-depth analysis, I agree with Karl Fogel's + description of licenses as falling into two groups: those that + are the GPL and those that are not the + GPL. + + + + Personally, I license all my software under the + GPL. Created and protected by the Free + Software Foundation and the GNU Project, the + GPL is the license for the Linux kernel, + GNOME, Emacs, and the majority of Linux software. Its an easy + choice but I believe it is a good one. However, there + is a viral aspect to the GPLthat prevents the + mixture of GPL'ed code with + non-GPL'ed code. To many people (myself + included), this is a benefit, but to some, it is a major + drawback. + + + + The three major license can be found at the following locations: + + + + + + The GNU + General Public License + + + The + BSD License + + + The Artistic + License + + + + + + In all cases, please read through any license before + your release your software. As the developer, you can't afford + any license surprises. + + + + + The Mechanics of Licensing + + + The text of the GPL offers a good + description of mechanics of applying a license to a piece + of software. A checklist for applying a license would include: + + + + + + + If at all possible, attach and distribute a full copy of + the license with the source and binary in a seperate + file. + + + + + At the top of each source file in your program, attach a + notice of copyright and information on where the full license + can be found. The GPL recommends that each + file begin with: + + +one line to give the program's name and an idea of what it does. +Copyright (C) yyyy name of author + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + + + The GPL goes on to recommend attaching + information on contacting you (the author) via email or + physical mail. + + + + + + + The GPL continues and suggests that if your + program runs in an interactive mode, you should have the + program output a notice each time it enters interactive mode + that includes a message like this one that points to more + information about the programs licensing: + + + +Gnomovision version 69, Copyright (C) year name of author +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details +type `show w'. This is free software, and you are welcome +to redistribute it under certain conditions; type `show c' +for details. + + + + + Finally, it might be helpful to include a + copyright disclaimer with the program from an + employer or a school if you work as a programmer or if it seems + like your employer or school might be able to make an argument + for ownership of your code. + + + + + + + + Final License Warning + + + Please, please, please, place your software under some + license. It may not seem important, and to you, it may not be, + but licenses are important. For a piece of software to be + included in the Debian GNU/Linux distrobution, it must have a + license that fits the Debian Free Software + Guidelines. If you have no license, your program can be + distributed in part of Debian until you rerelease it under a free + license. Please save yourself and others trouble by releasing the + first version of your software with a clear license. + + + + + Choosing a Method of Version Numbering - + + The most important thing about a system of numbering is + that there is one. It may seem pedantic to emphasize + this point but you'd be surprised at the number of scripts and + small programs that pop up without any version number. + + + + The second most important thing about a system of + numbering is that the numbers always go up. Automatic + versioning systems and people's sense of order in the universe + will fall apart if version numbers don't rise. It doesn't + really matter if 2.1 is a big jump and + 2.0.005 is a small jump but it does matter that 2.1 is more recent + than 2.0.005. + + + + Follow these two rules and you will not go wrong. Still there are + several versioning system that are well known, useful, and that + might be worth looking into before you release your first version. + + + + + Linux kernel version numbering: + + The Linux kernel uses a versioning system where the any + minor odd minor version number refers to an development or + testing release and any even minor version number refers to a + stable version. Under this system, 2.1 and 2.3 kernels were and + always will be development and testing kernels and 2.0, 2.2. and + 2.4 kernels are all production code with a higher degree of + stability. + + + + Whether you plan on having a split development model or only one version released at a time, my + experience with several free software projects and with the + Debian project has taught me taht use of Linux's version + numbering system is worth taking into consideration. In Debian, + all minor versions are stable distributions (2.0, 2.1, + etc). However, many people assume that 2.1 is an unstable or + development version and continue to use an older version until + they get so frusterated with the lack of development and + progress that they complain. If you never release an odd minor + version but only release even ones, nobody is hurt, and less + people are confused. + + + + + + Wine version numbering: + + Because of the unusual nature of wine's development where + it constantly improving but not working towards any immediately + achievable goal, wine is released every three weeks. Wine does + this by versioning their releases in Year Month Day format where + each release might be labeled wine-XXXXXXXX where + the version from Janurary 04, 2000 would be + wine-20000104. For certain projects, Year Month + Day format can make a lot of sense. + + + + + + Mozilla milestones: + + When one considers Netscape 6 and verdor versions, the + mozilla's project development structure is one of the most + complex free software model available. Their version numbering + has reflected the unique situation in which it is + developed. + + + + Mozilla's development structure has historically been made up + of milestones. From teh beginning of the mozilla project, the + goals of the project in the order and degree to which they were + to be achieved were charted out on a series of road + maps. Major points and achievements along this roadmaps + were marked as milestones. Therefore, mozilla was built and + distributed nightly as "nightly builds" but on a day when the + goals of a milestone on the roadmap had been reached, that + particular build was marked as a milstone release. + + + + While I haven't seen this method employed in any other projects + to date, I like the idea and think that it might have value in + any testing or development branch of a large free application + under heavy development. + + + + + @@ -610,13 +889,6 @@ - - - - Nuturing Future Development - - - @@ -625,7 +897,6 @@ Maintaining a Project: Interacting with Developers ->which fswd!developers diff --git a/FreeSoftwareProjectManagementHOWTO.sgml b/FreeSoftwareProjectManagementHOWTO.sgml index 8c83f39..4499e57 100644 --- a/FreeSoftwareProjectManagementHOWTO.sgml +++ b/FreeSoftwareProjectManagementHOWTO.sgml @@ -401,9 +401,9 @@ Eric S. Raymond writes about how free software projects start in his paper, "The Cathedral and the Bazaar" which comes as required - reading for any free softare development. You can find it online - at - http://www.tuxedo.org/!esr/writings/cathedral-bazaar/. + reading for any free softare development. You can find it online + . @@ -475,68 +475,57 @@ freshmeat.net - - Located at at - http://freshmeat.net, freshmeat describes itself as, - the Web's largest index of Linux and Open Source - software and its reputation along these lines remains - unquestioned. If you can't find it on freshmeat, its doubtful - that you'll find it indexed anywhere else. - + freshmeat + describes itself as, the Web's largest index of Linux + and Open Source software and its reputation along + these lines remains unquestioned. If you can't find it on + freshmeat, its doubtful that you'll find it indexed anywhere + else. Slashdot - - Located at - http://slashdot.org, Slashdot provides News - for Nerds: Stuff that Matters, which usually includes - discussion of free software, open source, technology, and - geek culture new and events. It is not unusual for an - particularly sexy develpment effort to be announced here so - it definately worth checking. - + Slashdot + provides News for Nerds: Stuff that Matters, + which usually includes discussion of free software, open + source, technology, and geek culture new and events. It is + not unusual for an particularly sexy develpment effort to be + announced here so it definately worth checking. SourceForge - - Located at - http://sourceforge.net, SourceForge houses and - facilitates a growning number of open source and free - software projects, SourceForge is quickly becoming a nexus - and an necessary stop for free software - developers. SourceForge's - - software map and new releases - pages. should be necessary stops before embarking on a new - free software project. SourceForge also provides a - Code Snippet Library at http://sourceforge.net/snippet/ - which contains useful reusuable chunks of code in an array - of langauges which can come in useful in any project. - + SourceForge + houses and facilitates a growning number of open source and + free software projects, SourceForge is quickly becoming a + nexus and an necessary stop for free software + developers. SourceForge's software + map and new + releases pages. should be necessary stops before + embarking on a new free software project. SourceForge also + provides a at Code Snippet + Library which contains useful reusuable chunks of + code in an array of langauges which can come in useful in any + project. Google and Google's Linux Search - - Located at - http://www.google.com and - - http://www.google.com/linux, provide prowerful web - searches that may reveal people working on similar - projects. It is not a catalog of software or news like - freshmeat or Slashdot, but it is worth checking before you - begin pouring your effort into a redundant project. - + Google and + Google's Linux + Search, provide powwerful web searches that may + reveal people working on similar projects. It is not a + catalog of software or news like freshmeat or Slashdot, but + it is worth checking before you begin pouring your effort + into a redundant project. @@ -582,18 +571,308 @@ - + - - Deciding on a License - - + + Licensing your Software + + + On one level, the difference between a piece of free software and + a piece of propriety software is the license. A license helps both + you as the developer by protecting your legal rights to your + software and helps demonstrate to those who wish to help you or + your project that they are encouraged to join. + + + + Choosing a License + + + Any discussion of licenses is also sure to generate at least a + small flamewar as there are strong feelings that some free + software licenses are better than other free software + licenses. This discussion also brings up the question of + Open Source Software and the debate around + Open Source Software and Free + Software. However, because I've written the Free Software + Development HOWTO and not the Open Source Development HOWTO, my + own allegiences in this argument are out in the open. + + + + In attempting to reach a middle ground, I recommend picking any + license that conforms to the Debian Free Software + Guidlines. Examples of these licenses are the + GPL, the BSD, and the + Artistic License. Conforming to the definition of Free Software + offered by Richard Stallman in The Free + Software Definition, any of these licenses will + uphold, users' freedom to run, copy, distribute, study, + change and improve the software. There are other licenses + as well but sticking with a more common license will offer the + advantage of immediate recognition and undestanding. + + + + In attempting a more in-depth analysis, I agree with Karl Fogel's + description of licenses as falling into two groups: those that + are the GPL and those that are not the + GPL. + + + + Personally, I license all my software under the + GPL. Created and protected by the Free + Software Foundation and the GNU Project, the + GPL is the license for the Linux kernel, + GNOME, Emacs, and the majority of Linux software. Its an easy + choice but I believe it is a good one. However, there + is a viral aspect to the GPLthat prevents the + mixture of GPL'ed code with + non-GPL'ed code. To many people (myself + included), this is a benefit, but to some, it is a major + drawback. + + + + The three major license can be found at the following locations: + + + + + + The GNU + General Public License + + + The + BSD License + + + The Artistic + License + + + + + + In all cases, please read through any license before + your release your software. As the developer, you can't afford + any license surprises. + + + + + The Mechanics of Licensing + + + The text of the GPL offers a good + description of mechanics of applying a license to a piece + of software. A checklist for applying a license would include: + + + + + + + If at all possible, attach and distribute a full copy of + the license with the source and binary in a seperate + file. + + + + + At the top of each source file in your program, attach a + notice of copyright and information on where the full license + can be found. The GPL recommends that each + file begin with: + + +one line to give the program's name and an idea of what it does. +Copyright (C) yyyy name of author + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + + + The GPL goes on to recommend attaching + information on contacting you (the author) via email or + physical mail. + + + + + + + The GPL continues and suggests that if your + program runs in an interactive mode, you should have the + program output a notice each time it enters interactive mode + that includes a message like this one that points to more + information about the programs licensing: + + + +Gnomovision version 69, Copyright (C) year name of author +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details +type `show w'. This is free software, and you are welcome +to redistribute it under certain conditions; type `show c' +for details. + + + + + Finally, it might be helpful to include a + copyright disclaimer with the program from an + employer or a school if you work as a programmer or if it seems + like your employer or school might be able to make an argument + for ownership of your code. + + + + + + + + Final License Warning + + + Please, please, please, place your software under some + license. It may not seem important, and to you, it may not be, + but licenses are important. For a piece of software to be + included in the Debian GNU/Linux distrobution, it must have a + license that fits the Debian Free Software + Guidelines. If you have no license, your program can be + distributed in part of Debian until you rerelease it under a free + license. Please save yourself and others trouble by releasing the + first version of your software with a clear license. + + + + + Choosing a Method of Version Numbering - + + The most important thing about a system of numbering is + that there is one. It may seem pedantic to emphasize + this point but you'd be surprised at the number of scripts and + small programs that pop up without any version number. + + + + The second most important thing about a system of + numbering is that the numbers always go up. Automatic + versioning systems and people's sense of order in the universe + will fall apart if version numbers don't rise. It doesn't + really matter if 2.1 is a big jump and + 2.0.005 is a small jump but it does matter that 2.1 is more recent + than 2.0.005. + + + + Follow these two rules and you will not go wrong. Still there are + several versioning system that are well known, useful, and that + might be worth looking into before you release your first version. + + + + + Linux kernel version numbering: + + The Linux kernel uses a versioning system where the any + minor odd minor version number refers to an development or + testing release and any even minor version number refers to a + stable version. Under this system, 2.1 and 2.3 kernels were and + always will be development and testing kernels and 2.0, 2.2. and + 2.4 kernels are all production code with a higher degree of + stability. + + + + Whether you plan on having a split development model or only one version released at a time, my + experience with several free software projects and with the + Debian project has taught me taht use of Linux's version + numbering system is worth taking into consideration. In Debian, + all minor versions are stable distributions (2.0, 2.1, + etc). However, many people assume that 2.1 is an unstable or + development version and continue to use an older version until + they get so frusterated with the lack of development and + progress that they complain. If you never release an odd minor + version but only release even ones, nobody is hurt, and less + people are confused. + + + + + + Wine version numbering: + + Because of the unusual nature of wine's development where + it constantly improving but not working towards any immediately + achievable goal, wine is released every three weeks. Wine does + this by versioning their releases in Year Month Day format where + each release might be labeled wine-XXXXXXXX where + the version from Janurary 04, 2000 would be + wine-20000104. For certain projects, Year Month + Day format can make a lot of sense. + + + + + + Mozilla milestones: + + When one considers Netscape 6 and verdor versions, the + mozilla's project development structure is one of the most + complex free software model available. Their version numbering + has reflected the unique situation in which it is + developed. + + + + Mozilla's development structure has historically been made up + of milestones. From teh beginning of the mozilla project, the + goals of the project in the order and degree to which they were + to be achieved were charted out on a series of road + maps. Major points and achievements along this roadmaps + were marked as milestones. Therefore, mozilla was built and + distributed nightly as "nightly builds" but on a day when the + goals of a milestone on the roadmap had been reached, that + particular build was marked as a milstone release. + + + + While I haven't seen this method employed in any other projects + to date, I like the idea and think that it might have value in + any testing or development branch of a large free application + under heavy development. + + + + + @@ -610,13 +889,6 @@ - - - - Nuturing Future Development - - - @@ -625,7 +897,6 @@ Maintaining a Project: Interacting with Developers ->which fswd!developers -- 2.39.5