5ef18e8
Name: fmf
9767318
Version: 0.13
9767318
Release: 1%{?dist}
5ef18e8
5ef18e8
Summary: Flexible Metadata Format
5ef18e8
License: GPLv2+
5ef18e8
BuildArch: noarch
5ef18e8
5ef18e8
URL: https://github.com/psss/fmf
ee03733
Source0: https://github.com/psss/fmf/releases/download/%{version}/fmf-%{version}.tar.gz
5ef18e8
5ef18e8
# Depending on the distro, we set some defaults.
5ef18e8
# Note that the bcond macros are named for the CLI option they create.
5ef18e8
# "%%bcond_without" means "ENABLE by default and create a --without option"
5ef18e8
ee03733
# Fedora or RHEL 8+
ee03733
%if 0%{?fedora} || 0%{?rhel} > 7
57c6a47
%bcond_with python2
5ef18e8
%bcond_with oldreqs
5910de0
%bcond_with englocale
57c6a47
# RHEL 7
5ef18e8
%else
57c6a47
%bcond_without python2
ee03733
# The automatic runtime dependency generator doesn't exist yet
5ef18e8
%bcond_without oldreqs
ee03733
# The C.UTF-8 locale doesn't exist, Python defaults to C (ASCII)
5910de0
%bcond_without englocale
5ef18e8
%endif
5ef18e8
ee03733
# Main tmt package requires the Python module
faf981e
Requires: python%{python3_pkgversion}-%{name} == %{version}-%{release}
5ef18e8
5ef18e8
%description
5ef18e8
The fmf Python module and command line tool implement a flexible
5ef18e8
format for defining metadata in plain text files which can be
5ef18e8
stored close to the source code. Thanks to hierarchical structure
5ef18e8
with support for inheritance and elasticity it provides an
5ef18e8
efficient way to organize data into well-sized text documents.
5ef18e8
This package contains the command line tool.
5ef18e8
5ef18e8
%?python_enable_dependency_generator
5ef18e8
5ef18e8
57c6a47
# Python 2
57c6a47
%if %{with python2}
57c6a47
%package -n     python2-%{name}
57c6a47
Summary:        %{summary}
57c6a47
BuildRequires: python2-devel
57c6a47
BuildRequires: python2-setuptools
57c6a47
BuildRequires: pytest
57c6a47
BuildRequires: PyYAML
57c6a47
%{?python_provide:%python_provide python2-%{name}}
57c6a47
Requires:       PyYAML
57c6a47
57c6a47
%description -n python2-%{name}
57c6a47
The fmf Python module and command line tool implement a flexible
57c6a47
format for defining metadata in plain text files which can be
57c6a47
stored close to the source code. Thanks to hierarchical structure
57c6a47
with support for inheritance and elasticity it provides an
57c6a47
efficient way to organize data into well-sized text documents.
57c6a47
This package contains the Python 2 module.
57c6a47
%endif
57c6a47
57c6a47
57c6a47
# Python 3
5ef18e8
%package -n     python%{python3_pkgversion}-%{name}
5ef18e8
Summary:        %{summary}
5ef18e8
BuildRequires: python%{python3_pkgversion}-devel
5ef18e8
BuildRequires: python%{python3_pkgversion}-setuptools
5ef18e8
BuildRequires: python%{python3_pkgversion}-pytest
5ef18e8
BuildRequires: python%{python3_pkgversion}-PyYAML
5c7c4b4
BuildRequires: git-core
5ef18e8
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}}
5ef18e8
%if %{with oldreqs}
5ef18e8
Requires:       python%{python3_pkgversion}-PyYAML
5ef18e8
%endif
5ef18e8
5ef18e8
%description -n python%{python3_pkgversion}-%{name}
5ef18e8
The fmf Python module and command line tool implement a flexible
5ef18e8
format for defining metadata in plain text files which can be
5ef18e8
stored close to the source code. Thanks to hierarchical structure
5ef18e8
with support for inheritance and elasticity it provides an
5ef18e8
efficient way to organize data into well-sized text documents.
5ef18e8
This package contains the Python 3 module.
5ef18e8
5ef18e8
5ef18e8
%prep
ee03733
%autosetup
5ef18e8
5ef18e8
5ef18e8
%build
ee03733
%if %{with englocale}
ee03733
export LANG=en_US.utf-8
ac375e4
%endif
5ef18e8
57c6a47
%if %{with python2}
57c6a47
%py2_build
57c6a47
%endif
57c6a47
5ef18e8
%py3_build
5ef18e8
5ef18e8
5ef18e8
%install
ee03733
%if %{with englocale}
5ef18e8
export LANG=en_US.utf-8
ac375e4
%endif
5ef18e8
57c6a47
%if %{with python2}
57c6a47
%py2_install
57c6a47
%endif
57c6a47
5ef18e8
%py3_install
5ef18e8
5ef18e8
mkdir -p %{buildroot}%{_mandir}/man1
5ef18e8
install -pm 644 fmf.1* %{buildroot}%{_mandir}/man1
5ef18e8
5ef18e8
5ef18e8
%check
ee03733
%if %{with englocale}
5ef18e8
export LANG=en_US.utf-8
5ef18e8
%endif
5ef18e8
57c6a47
%if %{with python2}
57c6a47
%{__python2} -m pytest -vv -m 'not web'
57c6a47
%endif
57c6a47
5c7c4b4
%{__python3} -m pytest -vv -m 'not web'
5ef18e8
5ef18e8
5ef18e8
%{!?_licensedir:%global license %%doc}
5ef18e8
5ef18e8
%files
5ef18e8
%{_mandir}/man1/*
5ef18e8
%{_bindir}/%{name}
5ef18e8
%doc README.rst examples
5ef18e8
%license LICENSE
5ef18e8
57c6a47
%if %{with python2}
57c6a47
%files -n python2-%{name}
57c6a47
%{python2_sitelib}/%{name}/
57c6a47
%{python2_sitelib}/%{name}-*.egg-info
57c6a47
%license LICENSE
57c6a47
%endif
57c6a47
5ef18e8
%files -n python%{python3_pkgversion}-%{name}
5ef18e8
%{python3_sitelib}/%{name}/
5ef18e8
%{python3_sitelib}/%{name}-*.egg-info
5ef18e8
%license LICENSE
5ef18e8
5ef18e8
5ef18e8
%changelog
9767318
* Wed Nov 18 2020 Petr Šplíchal <psplicha@redhat.com> - 0.13-1
9767318
- Enable copr builds from master, simplify config
9767318
- Adjust documentation for the new Context class
9767318
- Add documentation for the new Context class
9767318
- Add a new Tree.adjust() method for handling rules
9767318
- Context: Better operator names, comments
9767318
- Adjust the new Context implementation
9767318
- Context implementation
7983db5
a6118fc
* Thu Jun 04 2020 Petr Šplíchal <psplicha@redhat.com> - 0.12-1
a6118fc
- Do git pull in utils.fetch
a6118fc
- Make fetch._run official as utils.run
d37ca15
57c6a47
* Tue Mar 17 2020 Petr Šplíchal <psplicha@redhat.com> - 0.11-2
57c6a47
- Enable back python2-fmf subpackage for RHEL7
57c6a47
5c7c4b4
* Fri Feb 14 2020 Petr Šplíchal <psplicha@redhat.com> - 0.11-1
5c7c4b4
- Add git to BuildRequires (now required by tests)
5c7c4b4
- Use coveralls to report coverage results
5c7c4b4
- Adjust Tree.node() implementation, extend tests
5c7c4b4
- Get metadata for unique id [fix #67]
5c7c4b4
- Use the fedora-all target in packit config (#72)
5c7c4b4
- Define the full fmf identifier [fix #52]
5c7c4b4
- A minor cleanup of the concept documentation
5c7c4b4
- Always ignore special system directories
5c7c4b4
- Filesystem root and inaccessible dirs [fix #70]
5c7c4b4
- Rename the 'testsets' directory to 'plans'
24f4c86
5910de0
* Wed Oct 30 2019 Petr Šplíchal <psplicha@redhat.com> - 0.10-1
5910de0
- Mock is not needed for docs, fix missing new line
5910de0
- Provide a public static method Tree.init()
5910de0
5910de0
* Wed Oct 09 2019 Petr Šplíchal <psplicha@redhat.com> - 0.9-1
5910de0
- Support custom conjunction like 'or' in listed()
5910de0
- Update smoke testset to the latest L2 spec
5910de0
- Fix build conditional default for englocale
5910de0
- Use raw strings for regular expression patterns
5910de0
ee03733
* Mon Sep 30 2019 Petr Šplíchal <psplicha@redhat.com> - 0.8-1
ee03733
- Update spec to build Python 3 packages only
ee03733
- Move unit tests into a separate directory
ee03733
- Move testsets, include a super simple smoke test
ee03733
- Initial set of stories and tests
ee03733
- Enable beakerlib smoke test in the testing farm
ee03733
- Add a simple beakerlib test for command line help
ee03733
- Clean up the docs build folder directly
ee03733
- Enable packit
d0045c4
f908d50
* Fri Jul 26 2019 Petr Šplíchal <psplicha@redhat.com> - 0.7-1
f908d50
- Support both old and new yaml loader
f908d50
- Add advanced python filtering [fix #55]
f908d50
- Drop explicit locale setting during build and install
9777ed7
- Drop Python 2 subpackage on Fedora 30+ (#1647798)
f908d50
- Better handle yaml errors [fix #50]
f908d50
- Support reducing attributes using the "-" suffix
f908d50
- Prevent extra new lines in the show() output
f908d50
- Adjust FullLoader to load all strings as unicode
f908d50
- Suppress yaml warnings by specifying the loader
f908d50
- Support Tree.find() for non-leaf nodes as well
ac375e4
faf981e
* Mon Oct 08 2018 Petr Šplíchal <psplicha@redhat.com> 0.6-1
faf981e
- Ignore directories with no metadata defined
faf981e
- Give a nice error when .fmf file exists [fix #37]
faf981e
- Ignore metadata subtrees [fix #43]
faf981e
- Support for direct deep dictionary value retrieval
faf981e
- Separate exception for missing tree root [fix #42]
faf981e
- Move data merging into a separate method [fix #41]
faf981e
- Ensure that data or parent are provided for Tree
faf981e
- Test coverage for yaml syntax and finding root
faf981e
- Do not walk through the whole directory hierarchy
faf981e
- Example typo, handle yaml parse errors [fix #38]
faf981e
- Require the same version of the rpm package
4d79e13
83f72eb
* Tue Jun 12 2018 Petr Šplíchal <psplicha@redhat.com> 0.5-1
83f72eb
- Add support for subcommands [fix #32]
83f72eb
- Define metadata tree root [fix #26]
83f72eb
- Enable regular expressions in --filter [fix #35]
83f72eb
- Support merging dictionary values as well
83f72eb
- Build Python 3 package for pip as well
83f72eb
- Add more detailed logging for easier debugging
83f72eb
- Correctly handle deep inheritance [fix #31]
83f72eb
- Load all strings from YAML files as Unicode
83f72eb
- Prevent data modification in filter [fix #30]
83f72eb
- Fix inheritance of scattered files [fix #25]
83f72eb
5ef18e8
* Wed May 09 2018 Petr Šplíchal <psplicha@redhat.com> 0.4-1
5ef18e8
- Do not gzip the man page, fix the source link [BZ#1575645]
5ef18e8
5ef18e8
* Wed Apr 25 2018 Petr Šplíchal <psplicha@redhat.com> 0.3-1
5ef18e8
- Remove the unreliable syntactic sugar [fix #2]
5ef18e8
- Add a simple example of a BeakerLib test
5ef18e8
- Improve the output, fix the encoding issue [#21]
5ef18e8
- Add sources as value for string formatting
5ef18e8
- Show source files in debug mode [fix #15]
5ef18e8
- Allow deeper one-line hierarchy [fix #17]
5ef18e8
- Update the list of supported Python versions
5ef18e8
- Use name 'root' for directory where Tree is rooted
5ef18e8
- Fix the full path custom format example
5ef18e8
- Move documentation to the fmf rpm package
5ef18e8
- Remove entry_points, custom format merged into fmf
5ef18e8
- Add a few custom format examples
5ef18e8
- Update docs with the custom format support
5ef18e8
- Run both Python 2 and Python 3 tests locally
5ef18e8
- Make eval() work with with Python 3 as well
5ef18e8
- Integrate custom formatting into base & cli
5ef18e8
- The first draft of output formatting
5ef18e8
- Enable python3 tests, python3 executable in Fedora
5ef18e8
- Python 3 compatibility changes
5ef18e8
- Show nothing if there are no metadata [fix #12]
5ef18e8
- Clean up before preparing the source files
5ef18e8
- Make setup methods compatible with older pytest
5ef18e8
5ef18e8
* Mon Apr 09 2018 Petr Šplíchal <psplicha@redhat.com> 0.2-1
5ef18e8
- Build a separate fmf package for the executable
5ef18e8
- Add docs example for setting up storage
5ef18e8
- Improve command line test coverage
5ef18e8
- Smoke tests for logging and coloring
5ef18e8
- Tests for pluralize, listed and split
5ef18e8
- Include a simple example of python code
5ef18e8
- Separate base tests, forgotten asserts, cleanup
5ef18e8
- Several adjustments for the attributes adding
5ef18e8
- Adding ability to add value to parent attribute
5ef18e8
- Fix Tree.get() to correctly return data
5ef18e8
- Make the spec do python2 & python3 and EPEL & Fedora
5ef18e8
- Ignore hidden files and directories when searching
5ef18e8
- Add test coverage for the filter function
5ef18e8
- Extend the list of examples, fix hierarchy typos
5ef18e8
- Enable Travis Continuous Integration
5ef18e8
5ef18e8
* Mon Jan 22 2018 Petr Šplíchal <psplicha@redhat.com> 0.1-1
5ef18e8
- Initial packaging.