Skip to content

Commit

Permalink
0.0.1 release
Browse files Browse the repository at this point in the history
  • Loading branch information
s-m-e committed Apr 11, 2019
2 parents 63508fe + aeff7ba commit 3017deb
Show file tree
Hide file tree
Showing 29 changed files with 802 additions and 284 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ dist/
downloads/
eggs/
.eggs/
lib/
# lib/
lib64/
parts/
sdist/
Expand All @@ -40,6 +40,7 @@ htmlcov/
.tox/
.coverage
.coverage.*
coverage_html
.cache
nosetests.xml
coverage.xml
Expand Down Expand Up @@ -94,3 +95,4 @@ test_suite
test_mount
test_logs
fsx-linux*
screenshots/
22 changes: 13 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,20 @@
# https://github.com/travis-ci/travis-ci/issues/1100#issuecomment-160169121
sudo: required

# Go for more 'recent' version of Ubuntu
dist: trusty

# Repository language
language: python

# Python version
python:
- "3.4"
- "3.5"
- "3.6"
# - "3.7-dev"
# Ubuntu & Python versions
matrix:
include:
- dist: trusty
python: "3.4"
- dist: xenial
python: "3.5"
- dist: xenial
python: "3.6"
- dist: xenial
python: "3.7"

# Install dependencies
addons:
Expand All @@ -54,6 +56,8 @@ before_install:
- sudo chown root:$USER /etc/fuse.conf
- sudo echo "user_allow_other" | sudo tee -a /etc/fuse.conf > /dev/null
- python --version
- pip install -U pip
- pip install -U setuptools
- uname -a

# command to install dependencies and module
Expand Down
4 changes: 2 additions & 2 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Changes
=======

0.0.1 (2018-XX-XX)
0.0.1 (2019-04-11)
------------------

* TBD
* First official BETA-release of *LoggedFS-python*
55 changes: 37 additions & 18 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,27 @@
:target: https://travis-ci.org/pleiszenburg/loggedfs-python
:alt: Build Status: development branch

.. |license| image:: https://img.shields.io/pypi/l/loggedfs.svg?style=flat-square
:target: https://github.com/pleiszenburg/loggedfs/blob/master/LICENSE
:alt: Project License: Apache License v2

.. |status| image:: https://img.shields.io/pypi/status/loggedfs.svg?style=flat-square
:target: https://github.com/pleiszenburg/loggedfs-python/milestone/1
:alt: Project Development Status

.. |pypi_version| image:: https://img.shields.io/pypi/v/loggedfs.svg?style=flat-square
:target: https://pypi.python.org/pypi/loggedfs
:alt: Available on PyPi - the Python Package Index

.. |pypi_versions| image:: https://img.shields.io/pypi/pyversions/loggedfs.svg?style=flat-square
:target: https://pypi.python.org/pypi/loggedfs
:alt: Available on PyPi - the Python Package Index

.. |loggedfs_python_logo| image:: http://www.pleiszenburg.de/loggedfs-python_logo.png
:target: https://github.com/pleiszenburg/loggedfs-python
:alt: LoggedFS-python repository

|build_master| |build_develop|
|build_master| |build_develop| |license| |status| |pypi_version| |pypi_versions|

|loggedfs_python_logo|

Expand All @@ -21,8 +37,9 @@ LoggedFS-python is a FUSE-based filesystem which can log every operation that ha
It is a pure Python re-implementation of `LoggedFS`_ by `Rémi Flament`_ maintaining CLI compatibility.
The project is heavily inspired by `Stavros Korokithakis`_' 2013 blog post entitled
"`Writing a FUSE filesystem in Python`_" (`source code repository`_).
The filesystem is fully `POSIX`_ compliant (passing the `pjdfstest test-suite`_)
and intended to be suitable for production systems (it is not yet!).
The filesystem is fully `POSIX`_ compliant, passing the `pjdfstest test-suite`_, a descendant of FreeBSD's `fstest`_.
It furthermore passes stress tests with fsx-linux based on the `fsx-flavor`_ released by the `Linux Test Project`_.
It is intended to be suitable for production systems.

.. _LoggedFS: https://github.com/rflament/loggedfs
.. _Rémi Flament: https://github.com/rflament
Expand All @@ -31,47 +48,49 @@ and intended to be suitable for production systems (it is not yet!).
.. _source code repository: https://github.com/skorokithakis/python-fuse-sample
.. _POSIX: https://en.wikipedia.org/wiki/POSIX
.. _pjdfstest test-suite: https://github.com/pjd/pjdfstest
.. _fstest: https://github.com/zfsonlinux/fstest
.. _fsx-flavor: http://codemonkey.org.uk/projects/fsx/
.. _Linux Test Project: https://github.com/linux-test-project/ltp


CAVEATS
=======

* PROJECT STATUS: **BETA**
* THE FILESYSTEM HAS RECEIVED **SOME STRESS TESTS WITH FSX-LINUX**
BASED ON THE `FSX-FLAVOR`_ RELEASED BY THE `LINUX TEST PROJECT`_.
**FSX REPORTS WRITE HOLES!**
FULL TESTS UND RELATED BUG-FIXES ARE UNDER WAY.
* A `CUSTOM BUG-FIXED VERSION OF FUSEPY`_ IS REQUIRED FOR FULL POSIX COMPLIANCE.
IT IS AUTOMATICALLY INSTALLED FROM GITHUB AS A DEPENDENCY OF THIS PACKAGE.
IF THE LATEST OFFICIAL RELEASE OF FUSEPY IS USED INSTEAD, TIMESTAMPS WILL BE
INACCURATE ON A NANOSECOND TO MICROSECOND SCALE AND UTIME_NOW AS WELL AS
UTIME_OMIT WILL NOT BE HONORED. THERE IS A `PENDING PULL REQUEST`_.
UTIME_OMIT WILL NOT BE HONORED. THERE WAS A `PULL REQUEST`_ TO FIX THIS,
WHICH HAS BEEN REJECTED. ALTERNATIVE APPROACHES ARE BEING RESEARCHED.
* THE FILESYSTEM IS CURRENTLY **ONLY** BEING DEVELOPED FOR AND TESTED ON **LINUX**.
ANYONE INTERESTED IN ADDING MAC OS X AND/OR BSD SUPPORT?

.. _FSX-FLAVOR: http://codemonkey.org.uk/projects/fsx/
.. _LINUX TEST PROJECT: https://github.com/linux-test-project/ltp
.. _CUSTOM BUG-FIXED VERSION OF FUSEPY: https://github.com/s-m-e/fusepy
.. _PENDING PULL REQUEST: https://github.com/fusepy/fusepy/pull/79
.. _PULL REQUEST: https://github.com/fusepy/fusepy/pull/79


Installation
============

From the `Python Package Index`_ (PyPI):

.. code:: bash
pip install git+https://github.com/pleiszenburg/loggedfs-python.git@master
pip install loggedfs
From GitHub:

This project has intentionally not yet been published in the `Python Package Index`_ (PyPI).
It will be released on PyPI once critical changes have been merged into `fusepy`_,
a dependency of LoggedFS-python.
.. code:: bash
pip install git+https://github.com/pleiszenburg/loggedfs-python.git@master
**Supports Python 3.{4,5,6}.**
**Supports Python 3.{4,5,6,7}.**

**Supports Linux.**
Support for MAC OS X and BSD likely requires minor changes only, but has yet not been added.
Support for MAC OS X and BSD requires a minor change only, but has yet not been added: Access to the system log is currently being achieved through ``logging.handlers.SysLogHandler(address = '/dev/log')``, a Linux-only solution.

.. _Python Package Index: https://pypi.org/
.. _fusepy: https://github.com/fusepy/fusepy


Simple usage example
Expand Down
58 changes: 44 additions & 14 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
# makefile: GNU makefile for project management
#
# Copyright (C) 2017-2018 Sebastian M. Ernst <[email protected]>
# Copyright (C) 2017-2019 Sebastian M. Ernst <[email protected]>
#
# <LICENSE_BLOCK>
# The contents of this file are subject to the Apache License
Expand All @@ -21,15 +21,29 @@

T = ""

clean:
-rm -r build/*
-rm -r dist/*
-rm -r src/*.egg-info
# -rm -r htmlconv/*
# -rm .coverage*
coverage erase
find src/ tests/ -name '*.pyc' -exec rm -f {} +
find src/ tests/ -name '*.pyo' -exec rm -f {} +
# find src/ tests/ -name '*~' -exec rm -f {} +
find src/ tests/ -name '__pycache__' -exec rm -fr {} +
# find src/ tests/ -name '*.htm' -exec rm -f {} +
# find src/ tests/ -name '*.html' -exec rm -f {} +
# find src/ tests/ -name '*.so' -exec rm -f {} +

# docu:
# @(cd docs; make clean; make html)

release:
-rm dist/*
-rm -r src/*.egg-info
make clean
python setup.py sdist bdist_wheel
gpg --detach-sign -a dist/literatur*.whl
gpg --detach-sign -a dist/literatur*.tar.gz
gpg --detach-sign -a dist/loggedfs*.whl
gpg --detach-sign -a dist/loggedfs*.tar.gz

upload:
for filename in $$(ls dist/*.tar.gz dist/*.whl) ; do \
Expand All @@ -42,31 +56,47 @@ upload_test:
done

install:
pip install --process-dependency-links .[dev]
pip install .[dev]
make install_fstest
make install_fsx

install_link:
pip install --process-dependency-links -e .[dev]
pip install -e .[dev]
make install_fstest
make install_fsx

install_fstest:
python3 -c 'import sys; import os; sys.path.append(os.path.join(os.getcwd(), "tests")); import loggedfs_libtest; loggedfs_libtest.install_fstest()'
python3 -c 'import tests; tests.lib.install_fstest()'

install_fsx:
python3 -c 'import sys; import os; sys.path.append(os.path.join(os.getcwd(), "tests")); import loggedfs_libtest; loggedfs_libtest.install_fsx()'
python3 -c 'import tests; tests.lib.install_fsx()'

mount:
python3 -c 'import sys; import os; sys.path.append(os.path.join(os.getcwd(), "tests")); import loggedfs_libtest; loggedfs_libtest.quick_cli_mount()'
cleanup:
python3 -c 'import tests; tests.lib.quick_cli_clean()'
init:
python3 -c 'import tests; tests.lib.quick_cli_init()'
init_parentfs:
python3 -c 'import tests; tests.lib.quick_cli_init_parentfs()'
init_childfs:
python3 -c 'import tests; tests.lib.quick_cli_init_childfs()'
destroy:
python3 -c 'import tests; tests.lib.quick_cli_destroy()'
destroy_parentfs:
python3 -c 'import tests; tests.lib.quick_cli_destroy_parentfs()'
destroy_childfs:
python3 -c 'import tests; tests.lib.quick_cli_destroy_childfs()'

test:
make test_posix
make test_stress

test_posix:
# make docu
-rm tests/__pycache__/*.pyc
-rm tests/loggedfs_libtest/__pycache__/*.pyc
-rm tests/lib/__pycache__/*.pyc
# USAGE: make test T="-T chmod/01.t -T chmod/02.t"
# REFERENCE TEST WITH EXT4: make test T="-M ext4"
pytest $(T)

umount:
python3 -c 'import sys; import os; sys.path.append(os.path.join(os.getcwd(), "tests")); import loggedfs_libtest; loggedfs_libtest.quick_cli_umount()'
test_stress:
tests/scripts/fsx
2 changes: 0 additions & 2 deletions requirements.txt

This file was deleted.

13 changes: 5 additions & 8 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
setup.py: Used for package distribution
Copyright (C) 2017-2018 Sebastian M. Ernst <[email protected]>
Copyright (C) 2017-2019 Sebastian M. Ernst <[email protected]>
<LICENSE_BLOCK>
The contents of this file are subject to the Apache License
Expand Down Expand Up @@ -43,13 +43,13 @@


# Bump version HERE!
_version_ = '0.0.0'
_version_ = '0.0.1'


# List all versions of Python which are supported
confirmed_python_versions = [
('Programming Language :: Python :: %s' % x)
for x in '3.4 3.5 3.6'.split(' ')
for x in '3.4 3.5 3.6 3.7'.split(' ')
]


Expand Down Expand Up @@ -98,12 +98,9 @@
license = 'Apache License 2.0',
keywords = ['filesystem', 'fuse', 'logging', 'monitoring'],
include_package_data = True,
dependency_links = [
'https://github.com/s-m-e/fusepy/tarball/master#egg=fusepy-2.0.99'
],
install_requires = [
'click',
'fusepy==2.0.99',
'fusepy @ git+https://github.com/s-m-e/fusepy@master#egg=fusepy-2.0.99',
'xmltodict'
],
extras_require = {'dev': development_deps_list},
Expand All @@ -113,7 +110,7 @@
''',
zip_safe = False,
classifiers = [
'Development Status :: 3 - Alpha',
'Development Status :: 4 - Beta',
'Environment :: Console',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
Expand Down
2 changes: 1 addition & 1 deletion src/loggedfs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
src/loggedfs/__init__.py: Module init
Copyright (C) 2017-2018 Sebastian M. Ernst <[email protected]>
Copyright (C) 2017-2019 Sebastian M. Ernst <[email protected]>
<LICENSE_BLOCK>
The contents of this file are subject to the Apache License
Expand Down
2 changes: 1 addition & 1 deletion src/loggedfs/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
src/loggedfs/cli.py: Command line interface
Copyright (C) 2017-2018 Sebastian M. Ernst <[email protected]>
Copyright (C) 2017-2019 Sebastian M. Ernst <[email protected]>
<LICENSE_BLOCK>
The contents of this file are subject to the Apache License
Expand Down
Loading

0 comments on commit 3017deb

Please sign in to comment.