Get Involved

Ways to Contribute

There are many ways to contribute.

General

Code

 

General

Help Write Documentation

One of the most important aspects reflecting the quality of an open source project is the availability of high quality documentation.  You can help the DocTeam improve documentation and even help to write new documentation. 

Submit Bugs

Like good documentation, code quality is an essential ingredient for success.   The Core team is dedicated to making sure high priority bugs are fixed, and we need your help to get an accurate account of oustanding issues.

If you run across an issue with the software release or documentation, or this site, do the following:

  • Check with the ccnx-users mailing list to see if other people have experienced a similar problem.  Sometimes the issue is related to configuration or involves messages or symptoms that are hard to interpret.  A quick check with the community can help get you past such problems faster, or at least help you to figure out whether the issue is with documentation, diagnostics, or real implementation bugs. 
  • Don't be shy about filing issues in the project Bugtracker (regardless of which kind they are)!  We do ask that you  perform a quick search of the database first, to see if the issue has already been filed.  This can be tricky, and we recognize that the same bug can manifest in different ways or may be described differently by different people.  When in doubt, go ahead and file the bug.
  • Please see the Guide to Issue Tracking for more information.

Submit Feature Requests

While we're making the effort to deliver the most important functionality in CCNx, there are many things that need improvement.  Please file a feature request for thing you particularly notice missing.  Review our Bug Filing Guidelines, and then proceed to file your request.  

Create a New Project

As you start to learn about CCNx, you will find that we've only scratched the surface on what can be done.  In order to leverage the expertise of the community, we offer this site as a great place to start your CCNx project, to organize your project team, socialize the project, and get support from the community.  Creating a project is simple.  From the navigation menu, select Create Content->Project Group.  Once you've created a project, you can add members to the project, configure the project settings, and start adding new Project Pages.  Feel free to upload your important project documents, and share these with the project members as well.  Of course, if you need to keep aspects of your project private, you can do this.  For hosting any source code, we strongly recommend GitHub, BitBucket, or Google Code (if you must use Subversion). 

Help Moderate the Mailing Lists

Another way you can get involved is to help others.  A successful Open Source community needs a strong group of domain experts who can help fill in the resource gaps by answering questions and sharing wisdom about the project.  While the Core Team will do this as well, it can be a huge way to help provide rapid response to user and developer related questions.  As this is a community, we'd ask you review the CCNx Community Principles.  Ultimately, mailing lists provide the first level of support for an Open Source project after the docs or the code has failed.  Sure, users don't always have a handle key concepts, or haven't read the docs, but we'd like encourage questions with thoughtful answers.   No flames or throwing the manual at users.  Also, works for me doesn't work as an answer.  Usually there is a deeper issue,  usually with the environment, but if we can identify new bugs, we'd like to drill down into every problem we find so we can improve the project. 

Tweet About This Project

One way to support the CCNx project is to help spread the word.  Have something interesting to say about CCNx?  Having problems with the latest build?  Want to tell people about something interesting you are doing with CCNx?  Tweet it.  When doing so, use the #ccnx hash tag with your tweets.  This helps contextual search and increases the visibility of your posts.

Come across an interesting tweet about Project CCNx?  Re-tweet it.

Code

We encourage contributions to the source code, and we are developing a contributor agreement to assure that contributed code may be redistributed consistent with the open source licenses used in Project CCNx.

Fix A Bug

Ready to sharpen your teeth on some juicy bugs?  Have at it.  While The Core Dev team won't be allowing write access to the code repository, we will accept patches from the comunity.  If you'd like to pick up a bug, we suggest you do the following:

  • Join ccnx-dev if you are not already on the alias
  • Get involved in the technical discussion
  • Scan the bug database to see if there are any bugs suitable for you to try out.  Write down the bug ids.
  • Take your bug id to ccnx-dev and check with the Core Dev team to ask if there are any plans for the bug.  Once you've received a confirmation from the dev team, the bug will be assigned to you. 
  • Your help on the bug can range from evaluation, suggesting workaround or fixes, to performing a fix and generating a patch. 
  • If you get going and find you need help, or get into trouble, Redmine has features to accomodate the collaboration.  You can pose a question to specific individuals on the core dev team.  You can also reassign the bug back to "unassigned" if you find you won't have time to finish, or get stuck.  Of course, please let the Core dev team know.
  • Submitting patches can be tricky and l time consuming.  Every project has its own approach for how to take submissions.  We'd ask you to follow our Bug Fix Submission Guidelines (Coming Soon).  All work needs to be tested before we close anything as fixed, as there is no extended QA team to verify the work. 

Submit a Patch

Perhaps you have a feature enhancement that you would like to contribute.  As in the case of bug fixes, we ask that you join the mailing list and participate in discussion of potential features before doing a lot of work.  You can submit a patch for consideration by the Core Development team.  See the Guide To Creating A Patch (Coming Soon) for more information.

Get Involved With Core Development

If you've been working with the code and feel comfortable with providing your own enhancements, perhaps you'd like to get involved with Core Development.  Generally speaking, the Core Development team is made up of individuals who meet one or more of the following criteria:

  • Expert understanding of Project CCNx source and concepts
  • Expert understanding of TCP/IP internetworking
  • Expert understanding of computer security
  • Established relationship with the existing Core Dev team
  • Proven track record on delivery of code
  • A member of ccnx-dev mailing list

It may seem like we're asking for a lot, but realistically, it is difficult to jump into any project and get up to speed developing using the technology, much less enhancing existing features.  We'd like to encourage everyone who wants to get involved in core development to start with bug fixes, writing docs, submitting a conference paper, or sharing your work by creating a new project under the CCNx.org website.

 

Slide 3

We want to encourage contributions to the source code, and we are developing a contributor agreement to assure that contributed code may be redistributed consistent with the open source licenses used in this project