First off, thanks for stopping by! At American, we're passionate about building products that improve the experience of our customers through technology.
Before getting started, please take a minute to read through our Open Source Code of Conduct.
Whether you found something that isn't working right, something that could be improved, or you'd like to suggest a feature, please start with the tasks below.
Search through this project's issues and see if your issue/suggestion is already being tracked. If you find something that matches your issue, join the conversation!
If you didn't find what you were looking for, create a new Bug report and fill in the required fields to help steer us in the right direction. We'll check it out and get back to you when we can.
If you didn't find what you were looking for, create a new Feature request with a title starting with [Feature Request] -
to help us differentiate it from a bug. Give us as much information as you can about the feature you'd like to see added. We'll review your request and get back to you. If we feel that it's something that fits well with our project goals, we'll add relevant labels and add any additional details we feel might be valuable to the community.
Interested in helping out? Awesome! Head on over to the issues page to see what we need help on. Highest priority items can always be found with the high priority label.
Need a little help to get started? We've marked some tasks with the help wanted
and good first issue
labels. You can find those items here. After you find something you can contribute to, follow these steps to make your contribution:
- Comment on the issue, letting us know that you want to take it.
- Fork the repo.
- Make your changes.
- Create a pull request when you're ready to have your code reviewed.
More info can be found in Forking and Pull Requests below.
When you're ready to start writing code, make sure you fork this repo and use that fork to make your changes. It's also helpful to turn on branch protection for your repo's main
branch and make sure to enforce the protection for admins as well.
To track and sync the main (upstream) repo, run this command to create a remote: git remote add upstream git@github.com:AmericanAirlines/Flight-Engine.git
. Whenever you need to sync your current branch with the upstream main
branch, run git pull upstream main
.
When you start development, sync your local main
with upstream using the command above, then create a new branch with git checkout -b yourNewBranchName
and begin making your changes.
When you are ready to commit code, please do so on a feature/bugfix branch and commit only the files that are relevant to your change (e.g., do not use git add .
or git commit -a
). After the first time you run npm i
to install dependencies, a git pre-commit
will be setup which will perform several actions when you run git commit
:
lint:fix
which will lint all changed files and perform corrections where possiblecheckstyle:fix
which will checkstyle all changed files and perform corrections where possiblegit add
which will re-add any files that were modified by these scriptstest
which will run through the full test suite If the above is unable to complete because of alint
,checkstyle
, ortest
error, the commit will fail and you will be required to address the problem before being able to commit successfully.
Finally, if you need to install a new dependency, please use git add --patch package-lock.json
to add any relevant hunks from package-lock.json
to your commit, instead of adding all changes in the file.
As soon as you're ready for a code review, create a pull request and follow the steps below:
- Use the
Flight-Engine:main
branch as your PR's base branch and select your branch as thecompare
branch - Make sure your PR branch is as up-to-date as possible (we'll handle merge conflicts if one arises)
- Fill out all fields suggested by the template, including links to issue(s) your PR addresses. This will help prevent duplication of efforts. For information on how to reference issues to close them, read up on closing issues using keywords here.
- If it's your first contribution, make sure your PR includes a modification to
AUTHORS.md
to include your first and last name as well as your email address or your GitHub handle
If your contribution uses code from another source, make sure you properly attribute it. Cite the source of your code where the code is used and include attribution in ThirdPartyNotices.md
. Both of these must be present in your PR before we'll merge.
By contributing to Flight-Engine, you agree to the terms of American’s Contributor License Agreement.