Modernize building and CI and fix bugs due to SymPy upgrades#22
Modernize building and CI and fix bugs due to SymPy upgrades#22chenpeizhi merged 47 commits intomasterfrom
Conversation
…d has been deprecated, functionality tested and no changes on tests 2) Slight wording change on comment of EnumSymbs class 3) Added __getstate__() and __setstate__() functions to EnumSymbs class as pickling was using default __getstate__() provided by basic which just returns null. This allows pickling to account for and store slotted variables and fixes basic_wick_test.py::test_ancr_character_has_basic_properties
…ted README badges (#21) Also attempt to fix the Windows build, without success.
|
@Wholinator Hi Matthew, could you try to figure out what's going on with the Windows build? I don't have a Windows machine. It will be easier if you could build Drudge locally on Windows. I'll tell you tomorrow how to use |
There was a problem hiding this comment.
Pull Request Overview
This pull request modernizes the project's build infrastructure by migrating from legacy CI systems to modern GitHub Actions workflows and adopting PEP 621 standards for Python packaging. It also includes several code fixes for compatibility with newer SymPy versions and improves C++ extension handling.
- Replaced legacy Travis CI and old GitHub Actions with new platform-specific workflows (Ubuntu, macOS, Windows)
- Migrated from setup.py-only packaging to pyproject.toml with PEP 621 compliance
- Fixed SymPy compatibility issues and updated test configurations
Reviewed Changes
Copilot reviewed 21 out of 30 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/*.yml |
New GitHub Actions workflows for cross-platform CI/CD |
pyproject.toml |
New PEP 621 compliant project configuration |
setup.py |
Simplified setup script with platform-specific compiler flags |
tests/*.py |
Test fixes for SymPy compatibility and fixture scoping |
drudge/*.py |
Code fixes for SymPy upgrades and Python compatibility |
drudge/*.cpp |
C++ code improvements for better Python integration |
Files not reviewed (7)
- .idea/dictionaries/tschijnmo.xml: Language not supported
- .idea/drudge.iml: Language not supported
- .idea/encodings.xml: Language not supported
- .idea/inspectionProfiles/profiles_settings.xml: Language not supported
- .idea/misc.xml: Language not supported
- .idea/modules.xml: Language not supported
- .idea/vcs.xml: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
The failed unit tests were mostly due to SymPy upgrades. All the tests now pass on Ubuntu and macOS. |
gauravharsha
left a comment
There was a problem hiding this comment.
Requesting minor changes before we can merge
gauravharsha
left a comment
There was a problem hiding this comment.
Small question with ci.yml, but otherwise we should merge it.
Also, regarding the windows.yml, we can make an executive decision to not support native windows platform, but instead offer support through WSL or Anaconda?
Yes, let's ask Windows users to use WSL for now. |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 21 out of 30 changed files in this pull request and generated 3 comments.
Files not reviewed (7)
- .idea/dictionaries/tschijnmo.xml: Language not supported
- .idea/drudge.iml: Language not supported
- .idea/encodings.xml: Language not supported
- .idea/inspectionProfiles/profiles_settings.xml: Language not supported
- .idea/misc.xml: Language not supported
- .idea/modules.xml: Language not supported
- .idea/vcs.xml: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
This pull request modernizes, streamlines, and fixes the project's configuration, CI/CD workflows, documentation, and unit tests. It replaces legacy CI files and Python setup logic with new, platform-specific GitHub Actions workflows for Ubuntu, macOS, and Windows, utilizing the latest actions and dependency management tools. The documentation is updated to reflect these changes, and several obsolete IDE and CI configuration files are removed. A few code improvements have also been made for compatibility, maintainability, and correctness.
Continuous Integration Modernization:
uvfor dependency management. Coverage reporting is now handled via Coveralls in the Ubuntu workflow. (.github/workflows/ubuntu.yml,.github/workflows/macos.yml,.github/workflows/windows.yml) [1] [2] [3].travis.yml,.github/workflows/pythonapp.yml) [1] [2]Documentation Updates:
README.mdwith badges, revised descriptions, and updated installation instructions for the new workflows and tools; removed the oldREADME.rst. [1] [2]README.md.Repository and Build Configuration Cleanup:
.idea/*,.ycm_extra_conf.py) [1] [2] [3] [4] [5] [6] [7] [8]pyproject.tomltogether withsetup.pyandMANIFEST.infor building and packaging in accord with PEP 621.uvto lock the versions of the dependencies.Codebase Maintenance:
drudge/canonpy.cpp) [1] [2] [3] [4] [5] [6]drudge/drs.pyby usingcollections.abc.Sequence.SymPyupgrades Some tests fail with SymPy 1.5 #14, Fix DrsSymbol and DrsIndexed pickle compatibility with SymPy v1.9+ #25.