All contributions are welcome! 💖
For the safety and wellbeing of everyone, please be aware that we will expect you to abide by our Code of Conduct.
Before you make any changes to the project, make sure the tests are running for you!
💥 🤬 If the tests didn't pass before you made changes, how will you know if it was your changes that broke the tests?
If you haven't already, you will need to install CommandBox in order to run the tests.
$ git clone [email protected]:atuttle/semaphore.git
$ cd semaphore
$ box server start directory="tests" serverConfigFile="tests/server.json"
This gets the server running locally for you. It will need to be running whenever you want to run the tests. Now run the tests.
If you already have something using port 80, the tests won't work. You can either temporarily stop that service to run the tests, or you can submit a PR that makes our tests run on a nonstandard port. 😜
Once the server is running, if you prefer viewing the tests in a browser, they can be found at: http://localhost/runner.cfm
On the CLI:
$ box testbox run
does a one-time run$ box testbox watch
will re-run the tests when relevant files are saved
I've also included a Makefile with some helpful aliases for managing the test server, and running tests
make test
will run the tests once, starting the server for you if it's not already runningmake watch
will run the tests in watch mode, starting the server for you if it's not already runningmake up
will start the server for you without running the tests in the CLI, useful if you want to run the tests in your browsermake down
will stop the servermake clean
will remove the server from your CommandBox server cache- If it's easier for you to remember,
make start
is also an alias formake up
andmake stop
is an alias formake down
.
Once you're sure the tests are passing in your local environment with the latest code, you can go ahead and make your change. Be sure to use your own fork, and work in a branch (other than main
). If you've never made a pull request before, don't worry, it's pretty easy and this is a great and free course to help you through it.
This project uses All Contributors to recognize everyone that has helped create and maintain it. See the documentation on how to add yourself (but don't worry, we'll help you through it).