109 lines
4.6 KiB
Markdown
109 lines
4.6 KiB
Markdown
# Contributing
|
|
|
|
[fork]: https://github.com/actions/ai-inference/fork
|
|
[pr]: https://github.com/actions/ai-inference/compare
|
|
[code-of-conduct]: CODE_OF_CONDUCT.md
|
|
|
|
Hi there! We're thrilled that you'd like to contribute to this project. Your
|
|
help is essential for keeping it great.
|
|
|
|
Contributions to this project are
|
|
[released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license)
|
|
to the public under the [project's open source license](LICENSE).
|
|
|
|
Please note that this project is released with a [Contributor Code of
|
|
Conduct][code-of-conduct]. By participating in this project you agree to abide
|
|
by its terms.
|
|
|
|
## Found a bug?
|
|
|
|
- **Ensure the bug was not already reported** by searching on GitHub under
|
|
[Issues](https://github.com/actions/ai-inference/issues).
|
|
- If you're unable to find an open issue addressing the problem,
|
|
[open a new one](https://github.com/actions/ai-inference/issues/new). Be sure
|
|
to include a **title and clear description**, as much relevant information as
|
|
possible, and a **code sample** or a **reproducible test case** demonstrating
|
|
the expected behavior that is not occurring.
|
|
- If possible, use the relevant bug report templates to create the issue.
|
|
|
|
## What should I know before submitting a pull request or issue
|
|
|
|
This project is written in [TypeScript](https://www.typescriptlang.org/), a
|
|
typed variant of JavaScript, and we use [Prettier](https://prettier.io/) to get
|
|
a consistent code style.
|
|
|
|
Because of how GitHub Actions are run, the source code of this project is
|
|
transpiled from TypeScript into JavaScript. The transpiled code (found in
|
|
`lib/`) is subsequently compiled using
|
|
[NCC](https://github.com/vercel/ncc/blob/master/readme.md) (found in `dist/`) to
|
|
avoid having to include the `node_modules/` directory in the repository.
|
|
|
|
## Submitting a pull request
|
|
|
|
1. [Fork][fork] and clone the repository
|
|
1. Configure and install the dependencies: `npm install`
|
|
1. Create a new branch: `git checkout -b my-branch-name`
|
|
1. Make your change, add tests, and make sure the tests still pass:
|
|
`npm run test`
|
|
1. Make sure your code is correctly formatted: `npm run format`
|
|
1. Update `dist/index.js` using `npm run bundle`. This creates a single
|
|
JavaScript file that is used as an entrypoint for the action
|
|
1. Push to your fork and [submit a pull request][pr]
|
|
1. Pat yourself on the back and wait for your pull request to be reviewed and
|
|
merged.
|
|
|
|
Here are a few things you can do that will increase the likelihood of your pull
|
|
request being accepted:
|
|
|
|
- Write tests.
|
|
- Keep your change as focused as possible. If there are multiple changes you
|
|
would like to make that are not dependent upon each other, consider submitting
|
|
them as separate pull requests.
|
|
|
|
## Releasing a new version
|
|
|
|
All the concepts from
|
|
[the actions/toolkit release docs](https://github.com/actions/toolkit/blob/main/docs/action-versioning.md)
|
|
apply. Please read that first!
|
|
|
|
Once the changes are merged into main, a repository maintainer should:
|
|
|
|
1. Bump the package version by running
|
|
[`npm version [major|minor|patch]`](https://docs.npmjs.com/cli/v7/commands/npm-version).
|
|
We adhere to [SemVer 2.0](https://semver.org/spec/v2.0.0.html) to the best of
|
|
our ability. Commit the changes to `package.json` and `package-lock.json` and
|
|
push them to main.
|
|
1. [Draft a new release](https://github.com/actions/ai-inference/releases/new)
|
|
pointing to the ref of the version bump you just made. Publish the release to
|
|
the marketplace when complete.
|
|
1. Finally: update the corresponding "major tag" (v1, v2, v3, etc) to point to
|
|
the specific ref of the release you just made. For example, if we just
|
|
released `v1.1.0`, we would rewrite the `v1` tag like this:
|
|
|
|
```bash
|
|
git tag -fa v1 v1.1.0 -m "Update v1 tag to point to v1.1.0"
|
|
git push origin v1 --force
|
|
```
|
|
|
|
## Licensed
|
|
|
|
This repository uses a tool called
|
|
[Licensed](https://github.com/github/licensed) to verify third party
|
|
dependencies. You may need to locally install licensed and run `licensed cache`
|
|
to update the dependency cache if you install or update a production dependency.
|
|
If licensed cache is unable to determine the dependency, you may need to modify
|
|
the cache file yourself to put the correct license. You should still verify the
|
|
dependency, licensed is a tool to help, but is not a substitute for human review
|
|
of dependencies.
|
|
|
|
## Resources
|
|
|
|
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
|
|
- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
|
|
- [GitHub Help](https://help.github.com)
|
|
- [Writing good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
|
|
|
Thanks! :heart: :heart: :heart:
|
|
|
|
GitHub Actions Team :octocat:
|