diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..c725305dd --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,31 @@ +## Contributing + +We love getting contributions to the app, in any form. If you're interested in committing code, read on. For bug reports, feel free to look through the existing [list of issues](https://github.com/beeminder/BeeSwift/issues) and add your own if it's not already there, using the BUG template. Feature requests can also go there using the RFE template. For more general questions or to discuss ideas for features try the [Beeminder Forum](https://forum.beeminder.com). + +#### Legal Schmegal + +Before contributing code, please read and sign [beeminder.com/cla](https://beeminder.com/cla). + +#### Set up + +See [Getting Started](GETTING_STARTED.md) for instructions on how to get the app running locally on XCode. + +#### Development flow + +We follow the [GitHub flow](https://guides.github.com/introduction/flow/) conventions for development. + +We recommend [forking](https://guides.github.com/activities/forking/) to your own repository as the first step. Add your repository as a remote named `origin` and add this repository (beeminder/BeeSwift) as a remote named `upstream`. + +To start work on a new feature/bug fix, make a branch off of master. + +``` +git checkout -b branch-name-here --no-track upstream/master +``` + +Before submitting a pull request, rebase your work off the current master branch. + +We have a (currently very limited) suite of tests set up on [Semaphore CI](https://andrewpbrett.semaphoreci.com/projects/BeeSwift). Pull requests that add to the test suite are very welcome and encouraged! Submitting a pull request from your fork will trigger a build on Semaphore. If the pull request looks good and everything is green on Semaphore, the PR will be merged after a review. + +#### Deployment + +We have [Fastlane](https://fastlane.tools) set up to manage uploading builds to TestFlight and the App Store and tagging commits as appropriate. diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md new file mode 100644 index 000000000..37f929f56 --- /dev/null +++ b/GETTING_STARTED.md @@ -0,0 +1,21 @@ +## Getting Started + +This is a guide to getting the Beeminder app running in your Xcode Simulator/test device. + +#### Installation/Setup + +The file BeeSwift/Config.swift is ignored by git since it has sensitive info like keys in it. Copy BeeSwift/Config.sample.swift to BeeSwift/Config.swift and uncomment the struct it contains so that the project can reference the struct. + +There's a Run Script build phase that references BeeSwift/Sentry.sh, which is also ignored by git since it has an auth token. Either create an empty shell script at that location (preferable) or delete the Run Script - Sentry build phase (if you do delete it, make sure not to check in the modified project.pbxproj file). + +The project should build at this point and run in the simulator. + +If it's still not building, or if you find other noteworthy dependencies not listed here, please create a new issue! Or a pull request with a modified version of this file. + +#### Testing + +Since the Beeminder backend/web application isn't open source (yet), you'll need to ask us to be added to the private repo if you want to be able to point the iOS app at localhost:3000. You can also create a test account/goal on beeminder.com to test against. + +#### Contributing + +See [Contributing](CONTRIBUTING.md) for more. diff --git a/README.md b/README.md index 328b1c5ba..2f15e15bc 100644 --- a/README.md +++ b/README.md @@ -46,21 +46,10 @@ Using Apple Health as a source, data can be syncronized from the Apple Health ap [![Download on the App Store](https://linkmaker.itunes.apple.com/en-us/badge-lrg.svg?releaseDate=2012-08-30&kind=iossoftware&bubble=ios_apps)](https://apps.apple.com/us/app/beeminder/id551869729?mt=8) -## Development - -### Installation/Setup -The file `BeeSwift/Config.swift` is ignored by git since it has sensitive info like keys in it. Copy `BeeSwift/Config.sample.swift` to `BeeSwift/Config.swift` and uncomment the struct it contains so that the project can reference the struct. - -There's a Run Script build phase that references `BeeSwift/Sentry.sh`, which is also ignored by git since it has an auth token. Either create an empty shell script at that location (preferable) or delete the `Run Script - Sentry` build phase (if you do delete it, make sure not to check in the modified `project.pbxproj` file). - -The project should build at this point and run in the simulator. +## Bug reports and feature requests -If it's still not building, or if you find other noteworthy dependencies not listed here, please create a new issue! Or a pull request with a modified Readme. +For bug reports, feel free to look through the existing [list of issues](https://github.com/beeminder/BeeSwift/issues) and add your own if it's not already there, using the BUG template. Feature requests can also go there using the RFE template. For more general questions or to discuss ideas for features try the [Beeminder Forum](https://forum.beeminder.com). -### Testing - -Since the Beeminder backend/web application isn't open source (yet), you'll need to ask us to be added to the private repo if you want to be able to point the iOS app at `localhost:3000`. You can also create a test account/goal on beeminder.com to test against. - -### Contributing +## Development -Read and sign [beeminder.com/cla](https://beeminder.com/cla). Then make a branch off of master and send a pull request! +See [Getting Started](GETTING_STARTED.md) and [Contributing](CONTRIBUTING.md) for details.