We do not generally worry about license agreements when doing assignments. However, since the team projects are prototypes that are being written for an external “client”, we should ensure that our work does not infringe on anyone else’s intellectual property. It is good, ethical software development practice for anyone who is working in software development, and it will be good practice for you!!
There are two areas in which I want you to pay particular attention to materials developed by others but used in your apps: images and gems.
If you use any images that are not the property of your community partner, you must:
- Check to see if the content owner/creator has stipulated a license for redistribution
- Give appropriate attribution to the content creator, following either the licensing information provided by the content owner OR, if there is none given, using a standard style guide citation format (such as MLA).
Ideally, you should include attribution text immediately after the appearance of the image on the page so that the citation is easy for anyone to see. See the article Giving credit where credit is due from Resource Media for how to do this.
In general, gems in the Ruby on Rails world are made available under open-source licenses. This is because Ruby on Rails is itself open-source, and there is a thriving community continuing to develop Rails and many of the common gems. However, we should check that the gems we integrate into our code are, in fact, distributed under such a license.
Most, if not all, gems that you will use in your team (and individual) project will be published at https://rubygems.org/gems. This is a central Ruby community’s distribution point.
For gems that you add to your team project, you must:
- Access the gem’s information and check the license. It should be given on the right-hand side of the gem’s information page. See the example in which the Rails gem license is an MIT license.
- Check that the gem’s license is one of the open-source licenses listed at the Open Source Initiative’s Licenses page.
- If the gem is not licensed under any of these, or if the information has been left blank, tell your instructor!! We should try to locate an alternative gem that has similar functionality. Or, we might be able to find licensing information on their GitHub repo.