Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Contributing section and improved Development section in the README #624

Merged
merged 1 commit into from
Nov 24, 2024
Merged
Changes from all commits
Commits
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
51 changes: 41 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
[![Build Status](https://travis-ci.org/opengisch/qfieldsync.svg?branch=master)](https://travis-ci.org/opengisch/qfieldsync)

# QFieldSync

This plugin facilitates packaging and synchronizing QGIS projects for use with [QField](http://www.qfield.org).

It analyses the QGIS project and suggests and performs actions needed to make the project working on QField.
Expand All @@ -11,32 +12,62 @@ More information can be found in the [QField documentation](https://docs.qfield.

The plugin can be download on the [QGIS plugin repository](https://plugins.qgis.org/plugins/qfieldsync/).


## Contribute

QFieldSync is an open source project, licensed under the terms of the GPLv3 or later.
This means that it is free to use and modify and will stay like that.

We are very happy if this app helps you to get your job done or in whatever creative way you may use it.

If you found it useful, we will be even happier if you could give something back.
A couple of things you can do are:

- Rate the plugin at [plugins.qgis.org](https://plugins.qgis.org/plugins/qfieldsync/) ★★★★★
- Write about your experience (please let us know!).
- [Help with the documentation](https://github.com/opengisch/QField-docs/).
- Translate [the QFieldSync QGIS plugin](https://app.transifex.com/opengisch/qfieldsync/dashboard/), [the QField app](https://app.transifex.com/opengisch/qfield-for-qgis/dashboard/) or [the documentation](https://app.transifex.com/opengisch/qfield-documentation/dashboard/).
- [Sponsor a feature](https://docs.qfield.org/get-started/sponsor/)
- And just drop by to say thank you or have a beer with us next time you meet [OPENGIS.ch](https://opengis.ch) at a conference.
- [Develop a new feature or fix a bug](#development).


## Development

1) Checkout [qfieldsync](https://github.com/opengisch/qfieldsync/) locally:
### Getting the source code

```
1) Checkout [`qfieldsync`](https://github.com/opengisch/qfieldsync/) locally:

```shell
git clone --recurse-submodules [email protected]:opengisch/qfieldsync.git
```

2) Make a link of the QFieldSync checkout to qfieldsync directory in your current QGIS profile:
2) Make a link of the QFieldSync checkout to `qfieldsync` directory in your current QGIS profile:

```
```shell
ln -s ${PWD}/qfieldsync/qfieldsync ${HOME}/.local/share/QGIS/QGIS3/profiles/default/python/plugins
```

3) Checkout [libqfieldsync](https://github.com/opengisch/libqfieldsync/) locally:
3) Checkout [`libqfieldsync`](https://github.com/opengisch/libqfieldsync/) locally:

```
```shell
git clone [email protected]:opengisch/libqfieldsync.git
```

4) Install your local libqfieldsync as editable dependency (assuming you are in the same directory as step 3):
4) Install your local `libqfieldsync` as editable dependency (assuming you are in the same directory as step 3):

```
```shell
pip install -e libqfieldsync
```

NOTE On more recent Linux distributions you might get an error `error: externally-managed-environment` and you have to pass additional `--break-system-packages`.
> [!NOTE]
> On more recent Linux distributions you might get an error `error: externally-managed-environment` and you have to pass additional `--break-system-packages`.
> Despite the name, we promise this is not going to break system packages.

### Opening a PR

Make sure each new feature or bug fix are in a separate PR.

Despite the name, we promise this is not going to break system packages.
QFieldSync stores the respective `libqfieldsync` commit SHA in the bottom of [`requirements.txt`](https://github.com/opengisch/qfieldsync/blob/master/requirements.txt#L9-L10).
Sometimes changes in QFieldSync require modifications in [`libqfieldsync`](https://github.com/opengisch/libqfieldsync/).
In these cases please update the commit sha of `libqfieldsync` to point to the respective commit on `libqfieldsync`'s master branch.
Comment on lines +71 to +73
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If someone has a better clear way to say that, happy to get it rephrased.

Loading