Skip to content

Conversation

@thiagolmoraes
Copy link

Added support for UV, Docker, and setuptools.

What does it implement/fix? Explain your changes.

This PR adds multiple installation and deployment options to XSStrike:

New Files:

  • setup.py - Python package installation using setuptools
  • pyproject.toml - Modern Python project configuration with uv support
  • Dockerfile - Containerized deployment option
  • MANIFEST.in - Ensures package data files are included

Key Changes:

  • Added setup.py that reads version and dependencies from pyproject.toml to avoid duplication
  • Created pyproject.toml with PEP 621 standard format, supporting both setuptools and uv
  • Added Dockerfile using astral/uv
  • Updated README.md with 4 installation methods (traditional, setuptools, uv, Docker)
  • Version bumped to 3.1.7

Benefits:

  • Users can install XSStrike as a Python package
  • Command-line entry point xsstrike available after installation
  • Faster installation with uv package manager
  • Easy containerized deployment with Docker
  • Better package management and distribution

Where has this been tested?

Python Version: Python 3.9, 3.10, 3.11, 3.12, 3.14
Operating System: macOS (Darwin), Linux (tested in Docker)

Tested scenarios:

  • Traditional installation: pip install -r requirements.txt
  • Setuptools installation: pip install .
  • UV installation: uv pip install .

Does this close any currently open issues?

No specific issues closed,

Does this add any new dependenc?

No new runtime dependencies.

Does this add any new command line switch/option?

No new command-line options. The existing xsstrike command becomes available as an entry point after package installation, but all functionality remains identical. Users can still use python xsstrike.py when running directly from source.

Any other comments you would like to make?

  • The setup.py automatically reads version and dependencies from pyproject.toml to maintain a single source of truth
  • File path resolution (find_db_file()) works both when running directly and when installed as a package
  • Dockerfile uses uv for fast, reproducible builds
  • All changes are backward compatible - existing installation methods continue to work
  • Updated README maintains the same style and language as the original

Some Questions

  • I have documented my code.
  • I have tested my build before submitting the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant