Skip to content

Latest commit

 

History

History
131 lines (93 loc) · 3.79 KB

CONTRIBUTING.md

File metadata and controls

131 lines (93 loc) · 3.79 KB

Contributing to RosaeNLG

Welcomed Contributions

Contributions of any kind are welcomed: code, ideas, etc.

You may start by improving the quality:

  • debug
  • code quality improvements
  • doc improvements

New languages require much more work. See add a new language.

Feel free to author a new NLG library. NLG libraries are useful for some kind of projects but should not be added to the core version. See rosaenlg-countries for instance (countries common names in various languages).

Contribute to the Roadmap.

Contribution Process

Ideation:

  • create an issue on GitHub: bug, idea, etc.
  • exchange with the other: what should be done, best approach etc.

Development:

  • create a feature branch; name it after the topic: my-feature or issue-#123
  • develop
  • write tests: stick to current coverage which is 99-100%
  • there must be no warnings in the nominal execution flow
  • lint your code following current configuration
  • if the code corrects vulnerabilities: CVE IDs must be indicated in the commit message and in the changelog.adoc
  • each commit MUST contain a sign off message (see below)
  • new code must be under Apache 2.0 license, new documentation under Creative Commons Attribution 4.0 International, unless specific exceptions (see below)
  • update changelog.adoc (leave == [Unreleased])
  • push your branch
  • check that github actions is green
  • check Sonar dashboard, correct everything
  • when done, create a PR
  • once accepted, code gets merged in master

Publish:

  • a new version is built by the core maintainers and integrate the changes in master: see Versioning, Releases

Sign off

For compliance purposes, Developer Certificate of Origin (DCO) on Pull Requests is activated on the repo.

In practice, you must add a Signed-off-by: message at the end of every commit:

This is my commit message

Signed-off-by: Random J Developer <[email protected]>

Add -s flag to add it automatically: git commit -s -m 'This is my commit message'.

License

RosaeNLG is released under Apache 2.0 license. New code must be release under Apache 2.0.

Documentation is under Creative Commons Attribution 4.0 International.

Exceptions:

  • some packages are forks from MIT, and remain under MIT (e.g. rosae-cli)
  • linguistic resources remain under their original license, but the code using them is Apache 2.0

For code files

Each file of code must contain, in a comment at the top:

  • an SPDX short-form identifier
  • the copyright (new or updated)

For a new file of code:

/**
 * @license
 * Copyright 2020, Random J Developer at Random Corp.
 * SPDX-License-Identifier: Apache-2.0
 */

For an existing file, just complete the copyright (put yourself first):

/**
 * @license
 * Copyright 2020, Random J Developer at Random Corp., 2019 Ludan Stoecklé, 2018 Other Contributor, etc.
 * SPDX-License-Identifier: Apache-2.0
 */

Note that TypeScript code, in addition to an @license tag, requires an empty line after the initial file comment.

/**
 * @license
 * Copyright ...
 * SPDX-License-Identifier: Apache-2.0
 */

// Note the empty line above.
class X { }

For documentation files

Asciidoc .adoc files:

// Copyright 2021 ...
// SPDX-License-Identifier: CC-BY-4.0

Markdown .md files:

<!--
Copyright 2021 ...
SPDX-License-Identifier: CC-BY-4.0
-->