Skip to content

Latest commit

 

History

History
57 lines (39 loc) · 3.66 KB

CONTRIBUTING.md

File metadata and controls

57 lines (39 loc) · 3.66 KB

How to contribute to Underscore.js

  • This project adheres to a code of conduct. By participating, you are expected to uphold this code.

  • Please do not open an issue to report a security issue. Consult the security policy on what to do instead.

  • Before you open an issue or send a pull request, search for previous discussions about the same feature or issue. Add to the earlier ticket if you find one.

  • If you're proposing a new feature, make sure it isn't already implemented in Underscore-Contrib.

  • When contributing code, make sure that you edit the source code in the modules/ directory. Also, run npm install before committing any changes to ensure that our commit hooks can do their work.

  • Before sending a pull request for a feature, be sure to have tests.

  • Use the same coding style as the rest of the codebase.

  • In your pull request, do not add documentation or re-build the minified underscore-umd-min.js file. We'll do those things before cutting a new release.

"Help, cloning fails with fatal: fsck error in packed object"

This error is caused by zero-padded file modes in the commit history. As fixing this is highly destructive, we suggest ignoring these warnings. The simplest way is to instruct git to do so when cloning. For example, to clone from jashkenas/underscore, run the following command: git clone --config transfer.fsckobjects=false git@github.com:jashkenas/underscore.git. If cloning from a different user or organization, replace jashkenas with their name in the previous command.

AI policy

We are very critical of generative AI. Please see the LLVM AI Tool Use Policy for a detailed account of how we feel about value and effort and Codeberg's Protecting our FLOSS commons from LLMs for a comprehensive overview of negative aspects of generative AI.

That being said, we reluctantly allow the use of generative AI in contributions, for two reasons. Firstly, because some people have demonstrated that these tools have a real value to them and that they can use them responsibly. Secondly, because we believe that use of generative AI is not necessarily recognizable as such when done responsibly, which means that we would not be able to enforce a complete ban on this practice, anyway. If you want to use generative AI assistance, please observe the following rules.

  • Never allow your tools to publish anything on your behalf, including code, documentation, issues, pull requests, reviews and comments.

  • In general, consider generative AI part of your private workflow. Just like with code completion or a spell checker, the fact that you are using generative AI is no reason to burden other people with additional work.

  • All changes must be humanly motivated. If your tool finds a quirky corner case in an automated scan, this by itself is not enough reason for an issue ticket or a pull request, even if the finding is correct.

  • It is your job to fully review, understand, correct and polish anything that was generated by your tools. The end result of your work, which you share with the community, should meet your own highest standards.

  • If you fail to follow the rules in this section, your issue or pull request may be closed without a review and without further notice.

  • If you are contributing to learn, we strongly recommend that you skip AI assistance entirely.