You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,3 +2,21 @@
2
2
3
3
Thank you for considering contributing to *refuse*!
4
4
**Contributions are highly welcomed!**
5
+
6
+
## Branching model
7
+
8
+
Development happens in the `develop` branch. Please issue pull requests against `develop`. The `master` branch is supposed to be kept at the least, more or less stable *preview release*.
9
+
10
+
## Language level & interpreters
11
+
12
+
This project targets Python 3 exclusively. Python 3.4 support is optional and can be dropped if required. Python 3.5 and later are mandatory as Python 3.5 is still widely used and supported. The primary target so far is CPython, although PyPy support is highly welcome.
13
+
14
+
## Operating system support
15
+
16
+
*refuse* is meant to be as generic as possible. Support for new operating systems and/or new platforms is always welcome. Have a look at the current support matrix in [README.md](https://github.com/pleiszenburg/refuse/blob/develop/README.md).
17
+
18
+
## General workflow
19
+
20
+
If you are planning on working on a "larger" issue or feature, please add yourself to the corresponding issue on GitHub or create a new one there - before you start working. This helps to reduce duplicate effort and allows to coordinate developers.
21
+
22
+
Everything is supposed to be tested. However, right now, *refuse* does not have a single test on its own. It can merely be tested through filesystems relying on it. This is currently done based on [LoggedFS-python](https://github.com/pleiszenburg/loggedfs-python) for x86_64 Linux. **The main objective therefore is to add a testing infrastructure.** New features are welcome, too, but tests come first. Tests based on Qemu are the likely way to go because Qemu can emulate all kinds of architectures on a single machine. Anything else that helps testing *refuse* is also highly welcome. Static code analysis comes to mind, for instance.
`refuse` originated as a fork of [`fusepy`](https://github.com/fusepy/fusepy). This fork will break with its origins in (at least) the following aspects:
14
14
15
-
* Dropping Python 2 support
16
-
* Dropping the monolithic single-file-design
17
-
* Adding ``libfuse3`` support
18
-
* Marking ``libfuse2`` support as deprecated
19
-
* A test suite
15
+
-[x] Dropping Python 2 support
16
+
-[ ] Dropping the monolithic single-file-design
17
+
-[ ] Adding ``libfuse3`` support
18
+
-[ ] Marking ``libfuse2`` support as deprecated
19
+
-[ ] A test suite
20
20
21
21
**If you have a pending pull request against `fusepy` that you would like to see included into `refuse` please open an issue here.**
22
22
23
+
**If you want to contribute to `refuse`, please have a look at the [contributing guidelines](https://github.com/pleiszenburg/refuse/blob/develop/CONTRIBUTING.md).**
24
+
23
25
## Project status
24
26
25
-
THIS PROJECT HAS **ALPHA** STATUS. The high level API has been tested through [`LoggedFS-python`](https://github.com/pleiszenburg/loggedfs-python) with [`pjdfstest`](https://github.com/pjd/pjdfstest/) and [`fsx`](https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/fs/fsx-linux/fsx-linux.c), but not in all possible modes of operation. The low level API is completely untested at this point.
27
+
THIS PROJECT HAS **ALPHA** STATUS.
26
28
27
-
## Installation
29
+
The high level API has been tested through [`LoggedFS-python`](https://github.com/pleiszenburg/loggedfs-python) with [`pjdfstest`](https://github.com/pjd/pjdfstest/) and [`fsx`](https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/fs/fsx-linux/fsx-linux.c) on x86_64 Linux only, but not in all possible modes of operation. The low level API is completely untested at this point.
28
30
29
-
`refuse` requires `libfuse` 2.8 or 2.9 (highly recommended), `FUSE for macOS` or `WinFsp`. It (theoretically) runs on:
31
+
## Installation
30
32
31
-
* Linux (i386, x86_64, PPC, arm64, MIPS)
32
-
* Mac OS X (Intel, PowerPC)
33
-
* FreeBSD (i386, amd64)
34
-
* OpenBSD (all architectures, high level bindings only)
35
-
* Windows (?)
36
-
* Windows/Cygwin (?)
33
+
`refuse` requires `libfuse` 2.8 or 2.9 (highly recommended), `FUSE for macOS` or `WinFsp`. The [`master` branch](https://github.com/pleiszenburg/refuse/tree/master) of its git repository is always kept at the latest *preview release*. It should be "sort of stable" (still ALPHA). Development happens in the [`develop` branch](https://github.com/pleiszenburg/refuse/tree/develop).
34
+
35
+
You can install the *preview releases* from PyPI:
36
+
37
+
```bash
38
+
pip install refuse
39
+
```
40
+
41
+
You can alternatively also install the current `HEAD`, most likely very unstable:
0 commit comments