Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'m a PHP developer for a living but have never worked on or contributed to any

ID: 660418 • Letter: I

Question

I'm a PHP developer for a living but have never worked on or contributed to any open source projects before.

I am developing a CMS for my own use. I have a working prototype and I think that once it's ready (probably a couple of months time) this could be something the PHP community would be interested in.

I'm a fairly confident developer but there are areas where my knowledge is lacking, especially when it comes to open source issues:

What's the best way to publicise the project and/or find others who might be interested in collaborating

My CMS is powered by CakePHP and basically sits as a layer on top of it. I've forked the CakePHP project on GitHub: I've used version control systems (SVN) before but I'm fairly new to GIT so want to be sure I'm doing things in "the best way"

How can I find out about licensing issues? Which open source license would be best for my app? Also, my project borrows from a lot of other open source projects, for example I have sections of code (which I have heavily modified) but which had copyright/licensing notices in place- I've no idea what my obligations are in terms of keeping these in

These are just a couple of examples of the questions I have, but I feel like there must be some resources out there which would be useful to me. Where's the best place to get started, what are the best communities/sites out there which cover these issues? I've had a look around but haven't been able to come up with much...

Explanation / Answer

I'm no Lawyer, but I'll give this one a try.

CakePHP is licensed under the MIT license, which basically means it permits reuse within proprietary software on the condition that the license is distributed with that software. It is compatible with GPL licenses, which a lot of open source projects released under.

As for the other projects you "borrow", you'll have to check their license types and check their compatibility with each other and the license type you decide to use. If any of them use a GPL license, you'll also have to release with GPL, as the terms of the license state

The GPL is the first copyleft license for general use, which means that derived works can only be distributed under the same license terms.

...

The GPL is the first copyleft license for general use, which means that derived works can only be distributed under the same license terms.

My suggestion is to release under the GNU GPL v3 license as it gives you adequate ownership rights over your work while allowing others to potentially use it in both commercial and open projects. Remember, though, the licenses of the "borrowed" projects must be compatible.

As for best practices with Git and Github, use git submodule to include other projects in your own library. This is better than including the files directly as you aren't recommiting the work as your own.

$ git submodule add git://github.com/cakephp/cakephp.git vendor/cake-php
$ git submodule update --init

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote