OLE Contribution Information
OLE Contribution Requirements
Enhancement/Functional Bug Process | Technical Bug Process | Documentation Process |
---|---|---|
|
|
|
Contribution Checklist
You must have a CLA/CCLA agreement signed.
Proposal
Provide functional requirements (template) and acceptance criteria so others know how the contribution is supposed to work.
Note the expected delivery date for the functionality on the JIRA ticket
- What technologies are being used (KIM, KNS, KRAD, other libraries, and why?). See "Additional Resources for Contributions" below
- What access would we have to the contributor for questions? - Add to note section
Contribution
The contributor must be available for the code review process
Include documented architecture
Provide unit tests. Note any gaps in testing.
Include documentation as needed.
- Include any known issues, gaps, bugs, etc.
- If the code is not included in the base code, include in the JIRA notes the appropriate OLE release number
OLE Contribution Process for Enhancements and Functional Bugs
1) Contribution Proposal
The first step in contributing to OLE is to create an issue in JIRA per the following guidelines.
If a JIRA already exists, update the JIRA ticket fields:
- Contribution
- Contributing Developer
- Contributing Institution
If a JIRA does not exist:
- Create the JIRA ticket in OLEFDBK
- Be sure to include information in these fields:
- Contribution
- Contributing Developer
- Contributing Institution
Attach all requirements or design documents to the JIRA. A template is available, if needed.
Review planned 3rd party licenses to ensure compatibility with ECLv2
All contribution proposals are reviewed by the QA Manager. If approved, the OLEFDBK ticket is moved to OLE. The status of the ticket becomes FSPEC DEV and handed off to the Implementation Team for functional review.
2) Functional Review
The contribution development may be an iterative process with Implementation Team.
Implementation Team determines if the contribution should be part of the base code or a local option
Considerations for making the decision:
- Implementors must understand the intended contribution (probably through a functional specification)
- Approved by the Implementation team to go into the base code.
- functional spec may be less formal for a bug versus an enhancement but there needs to be clear statements that SMEs and the contributor understand what the current problem is and what the fix is going to do, how it is going to look and work.
Implementation Team updates the JIRA:
- Update Contribution Type field - Local Option or Base Code
- Moves JIRA to Coding status in the workflow
- Assigns JIRA to the Contributor
3) Contributor Codes
If Local Option
If the contribution is determined to be a local option, contributor closes the JIRA when coding is complete. Include access to the code, documentation and instructions in the JIRA notes.
Considerations:
Nice to include Acceptance Criteria and test cases.
Nice to meet functional standards (UI standards for example)
Nice to meet Technical Standards (coding design/conventions)
could include unit tests and show that it does not fail existing unit tests
could include documentation of database changes
- could include User Documentation
If Base Code
If the contribution is determined to be part of the base code, contributor moves the JIRA to Dev Complete and issues GitHub pull request. The ticket is then assigned to the Development Manger for the technical review.
Note - Any time you pull code to the OLE project, you must specify the *associated JIRA key (e.g. OLE-XXXX)* for the corresponding work
4) Technical Review
Once code is complete, the Development Manager will coordinate a code review. There could be some changes recommended during the review steps before the contribution can be accepted (JIRA status will return to Coding). Any objections that come up during the review process must be resolved.
Considerations
Does it meet licensing requirements
Currently all code licenses must be compatible with ECL2
Personal and/or institutional CLA on file
Does it meet Technical Standards, e.g. coding design/conventions
Does it pass a code review
Does it include unit tests and show that it does not fail existing unit tests
Does it include documentation of database changes and an upgrade path to make those changes.
Must pass regression tests
Does it create any security risks
The Development Manager will honor the pull request (merges into base code) and moves the JIRA to QA Review
5) QA Review
The QA Manager will oversee the review. If it fails at any time, the JIRA is returned to the contributor for corrections (Coding status).
Considerations
Does it include Acceptance Criteria and test cases based on that Acceptance Criteria
Does it pass Acceptance Testing
- Does it meet functional standards, e.g. UI standards
The QA Manager moves the JIRA to Documentation Review upon completion.
6) Documentation Review
Documentation Lead will conduct a review of the documentation to ensure documentation is complete. For documentation types and instructions, see Documentation Standards and Best Practices. Once satisfied, documentation is incorporated into the core documentation code by the Documentation Lead.
Considerations
- Is user Documentation complete - could be joint product of contributor and SME
The JIRA remains in the status Documentation Review until all pieces are complete. Then the ticket is closed.
Technical Bug Fixes
The Contributor creates an OLEFDBK JIRA AND a GitHub pull request
Contributor adds pull request URL to the JIRA
- Be sure to include information in these fields:
- Contribution
- Contributing Developer
- Contributing Institution
The QA Manager will verify CLA or CCLA on file
Then, QA Manager moves the OLEFDBK JIRA to OLE and assigns ticket to Development Manager
The Development Manager determines if it’s actually a technical bug or has functional implications
If there are functional implications, the contribution needs to follow above contribution process
Development Manager determines if the contribution goes into the base code or should remain local
Development Manager may bring issue to SII group (and/or others) for input
Development Manager does a code review
Development Manager merges code
JIRA is assigned to contributor for testing/confirmation
If fixed, Contributor closed JIRA
Additional Resources for Contributions
Review the License Agreement Process.
- Follow the 3rd Party Evaluation Process if you are considering using 3rd party code in work for the Kuali OLE.
Refer to the Kuali Application Security Working Group for security training and recommendations
Refer to the Kuali Rice Policies and Standards including the Kuali Rice Development Standards for code coherence tips.
Other Ways to Contribute
Code contributions are not the only things we might seek from project members or outside organizations. Documentation and testing should also be accepted.
Operated as a Community Resource by the Open Library Foundation