Skip to content

Commit 46eca97

Browse files
release-2.1.0
Enhance Python Version Compatibility and Testing Workflow
2 parents 95bbde3 + 4deb565 commit 46eca97

File tree

9 files changed

+83
-49
lines changed

9 files changed

+83
-49
lines changed

.github/workflows/codecov.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
python-version: 3.11
2020

2121
- name: Install dependencies
22-
run: pip install -r requirements.txt
22+
run: pip install -r requirements-dev.txt
2323

2424
- name: Run tests
2525
run: pytest --cov --cov-branch --junitxml=junit.xml -o junit_family=legacy
@@ -36,4 +36,4 @@ jobs:
3636
if: ${{ !cancelled() }}
3737
uses: codecov/test-results-action@v1
3838
with:
39-
token: ${{ secrets.CODECOV_TOKEN }}
39+
token: ${{ secrets.CODECOV_TOKEN }}

.python-version

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
3.6.15
2+
3.7.12
3+
3.8.10
4+
3.9.16
5+
3.10.12
6+
3.11.4

CHANGELOG.md

Lines changed: 56 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,76 @@
11
# Changelog
22

3+
## [v2.1.0] - 2024-12-26
4+
5+
### **Compatibility Updates**
6+
- Updated **Python Compatibility**:
7+
- Lowered the minimum Python version requirement from 3.11 to 3.8 in `setup.py`.
8+
- Updated `README.md` to reflect compatibility with Python 3.8 and later.
9+
- Added `tox.ini` configuration to test across Python versions 3.8 to 3.11.
10+
- Added `.python-version` file specifying supported Python versions: 3.6.15, 3.7.12, 3.8.10, 3.9.16, 3.10.12, and 3.11.4.
11+
12+
### **Dependency Management**
13+
- Split development dependencies:
14+
- Moved development-specific dependencies to `requirements-dev.txt`.
15+
- Removed redundant dependencies from `requirements.txt`.
16+
- Added `tox` as a development dependency in `requirements-dev.txt`.
17+
18+
### **Testing Enhancements**
19+
- Introduced `tox` for managing tests across multiple Python versions.
20+
- Refactored GitHub Actions workflow (`codecov.yml`):
21+
- Updated to install dependencies from `requirements-dev.txt`.
22+
- Expanded testing configuration to include Python 3.8 compatibility.
23+
24+
### **Documentation Updates**
25+
- Enhanced **README.md**:
26+
- Updated Python badge to reflect compatibility with Python 3.8+.
27+
- Included a clear statement of compatibility with Python 3.8 and later versions.
28+
29+
### **Other Improvements**
30+
- Added classifiers in `setup.py` for Python 3.8, 3.9, and 3.10.
31+
- Improved project structure with the addition of `tox.ini` for environment management.
32+
33+
---
34+
335
## [v2.0.1] - 2024-12-25
436
- Added **CITATION.cff** file for citation information.
5-
- Removed the GitHub sponsor badge from the README
37+
- Removed the GitHub sponsor badge from the README.
638

739
## [v2.0] - 2024-12-25
840

941
### **New Features**
10-
1142
- Introduced **CLI Interface**:
12-
- Added `cli.py` for command-line usage of the GSP algorithm.
13-
- Supports input in JSON and CSV formats.
14-
- Allows configuration of the `min_support` threshold via CLI arguments.
43+
- Added `cli.py` for command-line usage of the GSP algorithm.
44+
- Supports input in JSON and CSV formats.
45+
- Allows configuration of the `min_support` threshold via CLI arguments.
1546
- Added **Parallel Processing for Support Calculation**:
16-
- Optimized support calculation using multiprocessing for better performance on large datasets.
47+
- Optimized support calculation using multiprocessing for better performance on large datasets.
1748
- Enhanced **Logging**:
18-
- Configurable logs to monitor progress and debugging.
49+
- Configurable logs to monitor progress and debugging.
1950

2051
### **Improved Documentation**
21-
2252
- Comprehensive updates to the `README.md`:
23-
- Detailed explanation of GSP with examples.
24-
- Added "What is GSP?" and "Planned Features" sections.
25-
- Expanded installation and usage guides.
53+
- Detailed explanation of GSP with examples.
54+
- Added "What is GSP?" and "Planned Features" sections.
55+
- Expanded installation and usage guides.
2656
- Added `CONTRIBUTING.md`:
27-
- Clear guidelines for contributing code, documentation, and bug reports.
57+
- Clear guidelines for contributing code, documentation, and bug reports.
2858
- Added badges for PyPI, code coverage, and security metrics.
2959

3060
### **Testing**
31-
3261
- Added a robust test suite:
33-
- Moved test cases to the `gsppy/tests` directory.
34-
- Comprehensive unit tests for the CLI, GSP algorithm, and utility functions.
35-
- Tests include edge cases, large datasets, and benchmarking.
62+
- Moved test cases to the `gsppy/tests` directory.
63+
- Comprehensive unit tests for the CLI, GSP algorithm, and utility functions.
64+
- Tests include edge cases, large datasets, and benchmarking.
3665

3766
### **Utilities**
38-
3967
- Introduced helper utilities for GSP:
40-
- `split_into_batches`: Efficiently split candidates into manageable batches.
41-
- `is_subsequence_in_list`: Improved subsequence matching logic.
68+
- `split_into_batches`: Efficiently split candidates into manageable batches.
69+
- `is_subsequence_in_list`: Improved subsequence matching logic.
4270

4371
### **Workflow and Configuration**
44-
4572
- Integrated GitHub Actions workflows:
46-
- Added workflows for testing, linting, and publishing to PyPI.
73+
- Added workflows for testing, linting, and publishing to PyPI.
4774
- Added `.editorconfig` for consistent code formatting.
4875
- Integrated Dependabot for automated dependency updates.
4976

@@ -52,32 +79,26 @@
5279
## **[v1.1]** - 2020-05-01
5380

5481
### **Features**
55-
5682
- Initial release of the **GSP-Py** library.
5783
- Basic implementation of the Generalized Sequential Pattern (GSP) algorithm:
58-
- Single-threaded support calculation.
59-
- Basic candidate generation and pruning.
84+
- Single-threaded support calculation.
85+
- Basic candidate generation and pruning.
6086
- Test cases for supermarket transactions.
6187

6288
### **Documentation**
63-
6489
- Basic `README.md` with:
65-
- Installation instructions.
66-
- Example usage of the GSP algorithm.
90+
- Installation instructions.
91+
- Example usage of the GSP algorithm.
6792

6893
### **Miscellaneous**
69-
7094
- Added setup files (`setup.py`, `setup.cfg`) for publishing to PyPI.
7195
- Licensed under MIT.
7296

7397
---
7498

7599
## **Summary of Changes**
76100

77-
### From v1.1 to v2.0
78-
79-
- **Performance**: Introduced parallel processing for faster support calculation.
80-
- **Usability**: Added CLI and extensive logging.
81-
- **Documentation**: Improved and expanded documentation.
82-
- **Testing**: Robust test suite added.
83-
- **Workflow**: Automated CI/CD workflows integrated.
101+
### From v2.0 to v2.1.0
102+
- Enhanced compatibility with earlier Python versions (3.8+).
103+
- Improved testing and dependency management.
104+
- Updated workflows and documentation for broader support and clarity.

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ authors:
66
given-names: "Jackson Antonio do"
77
orcid: "https://orcid.org/10.5281/zenodo.3333987"
88
year: 2024
9-
version: "2.0.1"
9+
version: "2.1.0"
1010
doi: "10.5281/zenodo.3333987"
1111
url: "https://github.com/jacksonpradolima/gsp-py"
1212
repository-code: "https://github.com/jacksonpradolima/gsp-py"

README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[![PyPI License](https://img.shields.io/pypi/l/gsppy.svg?style=flat-square)]()
2-
![](https://img.shields.io/badge/python-3.11+-blue.svg)
2+
![](https://img.shields.io/badge/python-3.8+-blue.svg)
33
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3333987.svg)](https://doi.org/10.5281/zenodo.3333987)
44

55
[![PyPI Downloads](https://img.shields.io/pypi/dm/gsppy.svg?style=flat-square)](https://pypi.org/project/gsppy/)
@@ -14,6 +14,9 @@
1414
**GSP-Py**: A Python-powered library to mine sequential patterns in large datasets, based on the robust **Generalized
1515
Sequence Pattern (GSP)** algorithm. Ideal for market basket analysis, temporal mining, and user journey discovery.
1616

17+
> [!IMPORTANT]
18+
> GSP-Py is compatible with Python 3.8 and later versions!
19+
1720
---
1821

1922
## 📚 Table of Contents
@@ -62,10 +65,6 @@ sudo apt install python3
6265

6366
For package dependencies of GSP-Py, they will automatically be installed when using `pip`.
6467

65-
> [!IMPORTANT]
66-
> GSP-Py is compatible with Python 3.11 and later versions.
67-
> We didn't test it on Python 3.10 or earlier versions.
68-
6968
---
7069

7170
## 🚀 Installation

requirements-dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ pylint==3.3.3
33
pytest==8.3.4
44
pytest-benchmark==5.1.0
55
pytest-cov==6.0.0
6+
tox==4.23.2

requirements.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +0,0 @@
1-
pylint==3.3.3
2-
pytest==8.3.4
3-
pytest-benchmark==5.1.0
4-
pytest-cov==6.0.0

setup.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
setup(
1818
name='gsppy',
19-
version='2.0.1',
19+
version='2.1.0',
2020
description='GSP (Generalized Sequence Pattern) algorithm in Python',
2121
long_description=README,
2222
long_description_content_type='text/markdown',
@@ -27,7 +27,7 @@
2727
license='MIT',
2828
url='https://github.com/jacksonpradolima/gsp-py',
2929
packages=find_packages(exclude=['test_']),
30-
python_requires='>=3.11',
30+
python_requires='>=3.8',
3131
install_requires=[
3232
# No additional runtime dependencies are required since the project uses standard library modules only.
3333
],
@@ -40,6 +40,9 @@
4040
],
4141
},
4242
classifiers=[
43+
'Programming Language :: Python :: 3.8',
44+
'Programming Language :: Python :: 3.9',
45+
'Programming Language :: Python :: 3.10',
4346
'Programming Language :: Python :: 3.11',
4447
'Operating System :: OS Independent',
4548
'License :: OSI Approved :: MIT License',

tox.ini

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[tox]
2+
envlist = py38, py39, py310, py311
3+
4+
[testenv]
5+
deps =
6+
pytest
7+
pytest-benchmark
8+
commands = pytest

0 commit comments

Comments
 (0)