Skip to content

Conversation

@leferrad
Copy link
Owner

Overview

Complete modernization of the PyOSELM project to prepare for PyPI publication with modern Python packaging standards and improved developer experience.

📦 Packaging & Dependencies

  • Migrated to Poetry for dependency management (replaced setup.py)
  • Modern pyproject.toml configuration following PEP 518/621
  • Updated dependencies to latest versions:
    • Python 3.10+ (was 3.6+)
    • numpy ^2.2.6, scipy ^1.14.1, scikit-learn ^1.7.1
  • Organized dependency groups (main, test, docs, dev)

🛠️ Development Workflow

  • Added comprehensive Makefile with common commands
  • Created activation script (scripts/activate.sh) for easy environment setup
  • Enhanced testing with separate unit/system test commands
  • Added code quality tools: black, isort, flake8, bandit
  • Streamlined publishing with Poetry build/publish commands

🧪 Testing Improvements

  • Fixed system tests - resolved BDD step definition conflicts
  • Updated deprecated datasets (removed load_boston usage)
  • Fixed OS-ELM online learning to handle n_hidden constraint properly
  • All tests passing: 173 unit tests + 10 system tests

📚 Documentation Updates

  • Updated Sphinx configuration with intersphinx mapping
  • Modernized setup instructions with Poetry workflow
  • Added changelog for version tracking
  • Fixed build warnings (reduced from 62 to 27)
  • Updated Python version requirements throughout docs

🔧 Project Structure

  • Organized scripts in dedicated scripts/ directory
  • Added development guides (Poetry setup, activation workflow)
  • Created MANIFEST.in for proper package distribution
  • Added py.typed for type hint support

Ready for PyPI

  • Modern packaging standards
  • Comprehensive test suite
  • Professional documentation
  • Clean development workflow
  • All dependencies resolved

🎯 Breaking Changes

  • Python 3.10+ required (was 3.6+)
  • Poetry required for development (replaces pip-tools)
  • Updated minimum dependency versions

📋 Commands

# Setup
poetry install
poetry shell

# Development
make test           # Unit tests
make test-system    # System tests  
make lint           # Code quality
make build          # Build package
make publish-test   # Publish to TestPyPI

Ready for PyPI publication! 🎉

@leferrad leferrad merged commit 7ec81ce into master Aug 17, 2025
6 checks passed
@leferrad leferrad mentioned this pull request Aug 17, 2025
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.

3 participants