Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1f75c64
Add MIT License file
kaapstorm Mar 5, 2026
4943d6a
Update Build Status badge from Travis CI to GitHub Actions
kaapstorm Mar 5, 2026
191aa5c
Move testing documentation from README.md to docs/testing.md
kaapstorm Mar 5, 2026
c6ed6f0
Move contributing and release process from README.md to CONTRIBUTING.md
kaapstorm Mar 5, 2026
b16eed1
Move output formats and dependencies from README.md to docs/output-fo…
kaapstorm Mar 5, 2026
7f3c6fb
Move MiniLinq reference from README.md to docs/minilinq-reference.md
kaapstorm Mar 5, 2026
df4408c
Move Python library usage from README.md to docs/library-usage.md
kaapstorm Mar 5, 2026
3d15883
Move scheduling documentation from README.md to docs/scheduling.md
kaapstorm Mar 5, 2026
ac7c8cc
Move user and location data docs from README.md to docs/user-location…
kaapstorm Mar 5, 2026
c565dac
Move query format documentation from README.md to docs/query-formats.md
kaapstorm Mar 5, 2026
9aa2df4
Move command-line usage docs from README.md to docs/cli-usage.md
kaapstorm Mar 5, 2026
419c5f0
Improve CONTRIBUTING.md structure and content
kaapstorm Mar 5, 2026
b9efccd
Improve docs/testing.md structure and content
kaapstorm Mar 5, 2026
fcd1b3b
Improve docs/library-usage.md with better structure
kaapstorm Mar 5, 2026
15b3185
Improve docs/minilinq-reference.md with organized function tables
kaapstorm Mar 5, 2026
4e0028b
Improve docs/output-formats.md, link to user documentation
kaapstorm Mar 5, 2026
7648a3a
Improve docs/query-formats.md, link to user documentation
kaapstorm Mar 5, 2026
2c5122b
Improve docs/user-location-data.md, link to user documentation
kaapstorm Mar 5, 2026
d2768e9
Improve docs/scheduling.md, link to user documentation
kaapstorm Mar 5, 2026
160f751
Improve docs/cli-usage.md, link to user documentation
kaapstorm Mar 5, 2026
52463ba
Rewrite README.md as a concise entry point
kaapstorm Mar 5, 2026
42713d2
Add docs/index.md as technical documentation entry point
kaapstorm Mar 5, 2026
bbd1a04
"API key" rather than "user"
kaapstorm Apr 9, 2026
cd10fe6
Consistent hostname
kaapstorm Apr 9, 2026
72f0468
What exchange?
kaapstorm Apr 9, 2026
6fc76e9
Drop Python 3.9
kaapstorm Apr 9, 2026
ef91921
Merge remote-tracking branch 'origin/master' into nh/docs_2
kaapstorm Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- 5432:5432
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -123,5 +123,5 @@ jobs:
uses: coverallsapp/github-action@v2
with:
parallel-finished: true
carryforward: "run-3.9,run-3.10,run-3.11,run-3.12,run-3.13"
carryforward: "run-3.10,run-3.11,run-3.12,run-3.13,run-3.14"
github-token: ${{ secrets.GITHUB_TOKEN }}
92 changes: 90 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,54 @@
# Contributing to CommCare Export
Contributing to the CommCare Data Export Tool
=============================================

## Coding style
Thank you for your interest in contributing! This document covers the
contribution process, coding standards, and release procedures.


Getting Started
---------------

1. Sign up for [GitHub](https://github.com) if you haven't already
2. Fork the repository at https://github.com/dimagi/commcare-export
3. Clone your fork, install into a virtualenv, and start a feature
branch:

```shell
git clone git@github.com:your-username/commcare-export.git
cd commcare-export
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e ".[test]"
git checkout -b my-feature-branch
```


Making Changes
--------------

1. Create a feature branch from `master`
2. Make your changes following the coding style below
3. Make sure the tests pass:
```shell
pytest
```
4. Check type hints (if modifying typed modules):
```shell
mypy --install-types commcare_export/ tests/ migrations/
```
5. Push and submit a pull request:
```shell
git push -u origin my-feature-branch
```
6. Visit https://github.com/dimagi/commcare-export and submit a pull
request.

For detailed testing instructions, including database setup and
troubleshooting, see the [Testing Guide](docs/testing.md).


Coding Style
------------

> Perfection is achieved, not when there is nothing more to add, but
> when there is nothing left to take away.
Expand Down Expand Up @@ -76,3 +124,43 @@ def test_doctests():
results = doctest.testmod(module, optionflags=doctest.ELLIPSIS)
assert results.failed == 0
```


Release Process
---------------

For maintainers only.

1. **Create a tag** for the release:
```shell
git tag -a "X.YY.0" -m "Release X.YY.0"
git push --tags
```

2. **Create the distribution**:
```shell
uv build
```
Ensure that the archives in `dist/` have the correct version number
(matching the tag name).

3. **Upload to PyPI**:
```shell
uv publish
```

4. **Verify the upload** at https://pypi.python.org/pypi/commcare-export

5. **Create a release on GitHub** at
https://github.com/dimagi/commcare-export/releases

Once the release is published, a GitHub workflow compiles executables
of the DET for Linux and Windows, adding them to the release as
assets.

For Linux-based users: If you download and use the executable file, make
sure the file has the executable permission enabled:

```shell
chmod +x commcare-export
```
23 changes: 23 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
MIT License
===========

Copyright (c) 2013-2026 Dimagi Inc.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Loading
Loading