Skip to content
Salvator Galea edited this page Sep 11, 2017 · 7 revisions

Introduction

The NetFPGA project is only as good as its community is, and contributing code to the NetFPGA repository is the best way to help the community!

You can contribute to the repository in many ways, including (but not limited to):

  • Whole projects
  • IP cores (modules)
  • Applications
  • Drivers
  • Scripts
  • Tests
  • Bug fixes
  • Code enhancements
  • Documentation (wiki, contrib-docs)

You do not need to be a professional FPGA engineer, nor does your code need to be perfect - every bit and piece can help.

What can be contributed?

Only code that you wrote can be contributed.

Do not include any code that you took from other sources. The way to handle such code is to provide a link to its source.

Do not include any outputs of tools (e.g. anything compiled, anything generated by Vivado, etc.). Instead, provide scripts to generate these outputs.

At this stage, bitfiles can not be part of the repository. We are happy to host the bitfiles on the NetFPGA servers and provide a link to them from within the repository. You can update these bitfiles if need be.

Contributing for the first time

If this is the first time that you are contributing to NetFPGA you will need to sign the Contributor License Agreement.

Once you have signed the "Contributor License Agreement", you will be able to access the Development repository.

For more details regarding the "Contributor License Agreement" refer to the license wiki page. Please send the signed form to the email address noted within the contributor agreement.

A contributor agreement needs to be signed only once.

How to contribute?

If you find a bug in a reference project you are using or you want to share your project, start by sending an email to the NetFPGA SUME mailing list, providing information on what you'd like to contribute. The NetFPGA community/team can then consult you on the contents of the contribution, location of the code within the repository etc.

Tips For Submitting Code.

If you are able to patch the bug or add a new feature or project – fantastic, here are some guidelines to follow in order to submit your code.

  • Fork the Development repository and clone it locally. Connect your local to the original ‘upstream’ repository by adding it as a remote. Pull in changes from ‘upstream’ often so that you stay up to date and when you submit your pull request, merge conflicts will be less likely.
  • From the master branch on your forked repository, create a new branch and make your changes. Always use a topic branch. Your new branch should describe briefly the feature or issue. Make sure that you have updated your fork to the latest upstream version.
  • Push your branch to your fork.
  • Open a pull request to the Development repository and ask for feedback.
  • At this point you're waiting on for the core development team to merge your pull request. They will review all pull requests, and make suggestions and changes if necessary.

Please make sure that the "NETFPGA_LICENSE_HEADER" has been appended to the start of every contributed source file.

NETFPGA_LICENSE_HEADER


 Copyright (c) [Your_Name]   
 All rights reserved.   
   

@NETFPGA_LICENSE_HEADER_START@

Licensed to NetFPGA C.I.C. (NetFPGA) under one or more contributor
license agreements.  See the NOTICE file distributed with this work for
additional information regarding copyright ownership.  NetFPGA licenses this
file to you under the NetFPGA Hardware-Software License, Version 1.0 (the
"License"); you may not use this file except in compliance with the
License.  You may obtain a copy of the License at:

http://www.netfpga-cic.org

Unless required by applicable law or agreed to in writing, Work distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.  See the License for the
specific language governing permissions and limitations under the License.

@NETFPGA_LICENSE_HEADER_END@

Finally, update the wiki's contributed code page with information regarding your contribution or add new pages as required (contrib-projects).

Don't forget to create the README file with important information about your project, a sample is given below:

README


NetFPGA-SUME http://www.netfpga.org

File : README

Project : project_name

Author : author_name

E-mail : email_address

NetFPGA-SUME release compatibility : release_x.y.z

Vivado Version : Vivado xxxx.xx

Licence:

@NETFPGA_LICENSE_HEADER_START@

Licensed to NetFPGA C.I.C. (NetFPGA) under one or more contributor
license agreements.  See the NOTICE file distributed with this work for
additional information regarding copyright ownership.  NetFPGA licenses this
file to you under the NetFPGA Hardware-Software License, Version 1.0 (the
"License"); you may not use this file except in compliance with the
License.  You may obtain a copy of the License at:

http://www.netfpga-cic.org

Unless required by applicable law or agreed to in writing, Work distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.  See the License for the
specific language governing permissions and limitations under the License.

@NETFPGA_LICENSE_HEADER_END@

For more information about this project, please visit

https://github.com/NetFPGA/NetFPGA-SUME-public/wiki/Projects

and select the correspondent project.


That's it. The NetFPGA community thanks you!

Clone this wiki locally