Skip to content

Commit 795c314

Browse files
committed
PyThreadKiller build CHANGELOG.md dist .gitignore tests pythreadkiller.egg-info MANIFEST.in README.md setup.py
- Normalized package name to `pythreadkiller` for PyPI compliance - Fixed version mismatch caused by stale egg-info metadata - Added MANIFEST.in and .gitignore for clean source distributions - Removed unused build artifacts from repository - No functional code changes
1 parent 7cfcc45 commit 795c314

6 files changed

Lines changed: 91 additions & 41 deletions

File tree

.gitignore

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# Build and distribution directories
7+
build/
8+
dist/
9+
*.egg-info/
10+
pythreadkiller.egg-info/
11+
12+
# Virtual environments
13+
venv/
14+
.env/
15+
16+
# IDE/editor files
17+
.vscode/
18+
.idea/
19+
*.swp
20+
21+
# Logs
22+
*.log
23+
24+
# OS files
25+
.DS_Store
26+
Thumbs.db

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,36 @@
11
# Changelog
2+
23
## [0.1] - 2024-05-19
4+
35
### Added
6+
47
* Initial draft of `PyThreadKiller` with basic thread management and killing functionality.
58

69
## [3.0.4] - 2024-07-20
10+
711
### Fix
12+
813
* Test file for `PyThreadKiller` to test the package itself.
914

1015
## [3.0.6] - 2024-08-04
16+
1117
### Documentation and `CI/CD`
18+
1219
* Documentation update and `CI/CD` pipeline for automated testing
20+
21+
## [3.0.7] - 2025-12-21
22+
23+
### Maintenance
24+
25+
* Removed unused `requests` dependency from the project.
26+
* Cleaned up packaging metadata to reflect zero runtime dependencies.
27+
* Ensured `setup.py` and CI configuration install the package directly.
28+
* Minor project hygiene improvements (no functional code changes).
29+
30+
## [3.0.8] - 2025-12-21
31+
32+
### Added / Fixed
33+
34+
* Prepare package for next release.
35+
* Ensure MANIFEST.in includes correct files.
36+
* Update version to 3.0.8 for publishing.

MANIFEST.in

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Include important metadata
2+
include README.md
3+
include LICENSE
4+
include CHANGELOG.md
5+
6+
# Include package source
7+
recursive-include PyThreadKiller *.py
8+
9+
# Exclude tests from distribution
10+
prune tests
11+
12+
# Exclude build artifacts
13+
prune build
14+
prune dist
15+
prune *.egg-info

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ PyThreadKiller/
3333
│ ├── UnittestPyThreadKiller.py
3434
├── CHANGELOG.md
3535
├── README.md
36-
├── requirements.txt
3736
├── .github/
3837
│ └── workflows/
3938
│ └── python-app.yml

requirements.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

setup.py

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,53 @@
22
Setup file for the PyThreadkiller package.
33
"""
44

5-
__version__ = "2024.05.19.01"
5+
__version__ = "3.0.8"
66
__author__ = "Muthukumar Subramanian"
77

8-
import re
98
import os
109
from setuptools import setup, find_packages
1110

12-
# Paths to your README and change log files
13-
readme_path = os.path.join(os.path.dirname(__file__), 'README.md')
14-
changelog_path = os.path.join(os.path.dirname(__file__), 'CHANGELOG.md')
15-
requirements_path = os.path.join(os.path.dirname(__file__), 'requirements.txt')
11+
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
1612

17-
# Read README file
18-
with open(readme_path, encoding='UTF-8') as f:
13+
# Read README
14+
with open(os.path.join(BASE_DIR, "README.md"), encoding="utf-8") as f:
1915
readme_content = f.read()
2016

21-
# Read CHANGELOG file
17+
# Read CHANGELOG
18+
changelog_path = os.path.join(BASE_DIR, "CHANGELOG.md")
2219
if os.path.exists(changelog_path):
23-
with open(changelog_path, encoding='UTF-8') as f:
20+
with open(changelog_path, encoding="utf-8") as f:
2421
changelog_content = f.read()
2522
else:
26-
changelog_content = ''
23+
changelog_content = ""
2724

28-
# Combine README and CHANGELOG content for the long description
29-
long_description = readme_content + '\n\n' + changelog_content
30-
31-
# Read requirements file
32-
requirements_file_list = []
33-
if os.path.exists(requirements_path):
34-
with open(requirements_path, encoding='UTF-8') as f:
35-
requirements_file = f.read()
36-
requirements_file_list = [re.sub(r'(\w+)~.*', r'\1', i) for i in requirements_file.split('\n')]
25+
long_description = readme_content + "\n\n" + changelog_content
3726

3827
setup(
39-
name='PyThreadKiller',
40-
version='3.0.6',
41-
description='A utility to manage and kill threads in Python applications',
28+
name="pythreadkiller",
29+
version=__version__,
30+
description="A utility to manage and kill threads in Python applications",
4231
long_description=long_description,
43-
long_description_content_type='text/markdown',
44-
author='Muthukumar Subramanian',
32+
long_description_content_type="text/markdown",
33+
author=__author__,
34+
author_email="kumarmuthuece5@gmail.com",
4535
url="https://github.com/kumarmuthu/PyThreadKiller",
4636
project_urls={
4737
"Homepage": "https://github.com/kumarmuthu/PyThreadKiller",
4838
"Source": "https://github.com/kumarmuthu/PyThreadKiller",
4939
"Tracker": "https://github.com/kumarmuthu/PyThreadKiller/issues"
5040
},
51-
author_email='kumarmuthuece5@gmail.com',
52-
install_requires=requirements_file_list,
53-
packages=find_packages('.'),
41+
packages=find_packages(),
42+
python_requires=">=3.8",
5443
classifiers=[
55-
'Development Status :: 3 - Alpha',
56-
'Intended Audience :: Developers',
57-
'License :: OSI Approved :: MIT License',
58-
'Programming Language :: Python :: 3',
59-
'Programming Language :: Python :: 3.12',
60-
'Programming Language :: Python :: 3.11',
61-
'Programming Language :: Python :: 3.10',
62-
'Programming Language :: Python :: 3.9',
63-
'Programming Language :: Python :: 3.8',
44+
"Development Status :: 3 - Alpha",
45+
"Intended Audience :: Developers",
46+
"License :: OSI Approved :: MIT License",
47+
"Programming Language :: Python :: 3",
48+
"Programming Language :: Python :: 3.8",
49+
"Programming Language :: Python :: 3.9",
50+
"Programming Language :: Python :: 3.10",
51+
"Programming Language :: Python :: 3.11",
52+
"Programming Language :: Python :: 3.12",
6453
],
65-
python_requires='>=3.8',
66-
package_dir={'': '.'}
6754
)

0 commit comments

Comments
 (0)