Skip to content

Clean up repo for first ASF release #1371

Closed
cswartzvi wants to merge 22 commits intoapache:mainfrom
cswartzvi:clean_up_repo
Closed

Clean up repo for first ASF release #1371
cswartzvi wants to merge 22 commits intoapache:mainfrom
cswartzvi:clean_up_repo

Conversation

@cswartzvi
Copy link
Contributor

@cswartzvi cswartzvi commented Aug 10, 2025

Hi all - I was looking through the codebase to help create the first ASF release (#1336) and thought we might benefit from a little clean-up. Please have a look and let me know if I went too far with anything - happy to roll things back!

Changes

  • Moved top-level images to new assets folder. Do we need to keep these?
  • Moved top-level md files to either docs or writeups. Maybe these should be fully integrated with the docs?
  • Deleted setup.py, removing the legacy Python packaging script and related logic
  • Remove unused configuration files (.style.yapf, .flake8, ...)
  • Update manifest (remove non-existent requirements files)
  • Update min required python to 3.8.1. This allows contributors to use uv sync without allowing prereleases (as per the last meetup, I would like bump the min required python to 3.9 next)
  • Update uv configuration. Since pip now has support, I moved dev dependencies to dependency-groups (PEP 735)
  • Fix broken tests (maybe out of scope for this PR)

How I tested this

No changes to codebase

Notes

N/A

Checklist

  • PR has an informative and human-readable title (this will be pulled into the release notes)
  • Changes are limited to a single goal (no scope creep)
  • Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
  • Any change in functionality is tested
  • New functions are documented (with a description, list of inputs, and expected output)
  • Placeholder code is flagged / future TODOs are captured in comments
  • Project documentation has been updated if adding/changing functionality.

@cswartzvi cswartzvi requested a review from Copilot August 10, 2025 14:58
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR cleans up the repository structure in preparation for the first ASF release by removing legacy configuration files and reorganizing repository assets. The changes focus on removing outdated build tools and updating documentation paths.

  • Removes legacy Python packaging configuration (setup.py, MANIFEST.in entries)
  • Deletes unused code formatting configuration files (.style.yapf, .flake8)
  • Updates documentation to reflect moved build scripts

Reviewed Changes

Copilot reviewed 5 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
File Description
writeups/developer_setup.md Updates script path references to reflect moved conda build script
setup.py Removes legacy setuptools configuration file
MANIFEST.in Removes references to deleted requirements files
.style.yapf Removes yapf code formatting configuration
.flake8 Removes flake8 linting configuration
Comments suppressed due to low confidence (1)

MANIFEST.in:1

  • The MANIFEST.in file is removing references to requirements.txt and requirements-test.txt, but it's unclear if these files still exist or are needed for packaging. If these files are still present in the repository, removing them from MANIFEST.in could break package installation.
include LICENSE

@skrawcz
Copy link
Contributor

skrawcz commented Aug 22, 2025

Thanks @cswartzvi what's left to do?

@cswartzvi
Copy link
Contributor Author

Hi @skrawcz, honestly just those failing tests.

  • The failing Python 3.9 unit test is strange - something with pyreadstat's dependency on libiconv. I think we might need zlib when builidng from source - trying this now
  • I was going to ask about the permissions issue with the failing doc test. Any ideas?

@skrawcz
Copy link
Contributor

skrawcz commented Aug 24, 2025

Hi @skrawcz, honestly just those failing tests.

  • The failing Python 3.9 unit test is strange - something with pyreadstat's dependency on libiconv. I think we might need zlib when builidng from source - trying this now
  • I was going to ask about the permissions issue with the failing doc test. Any ideas?

Oh yep. For permissions as the dev@ mailing list? One of the mentors might know.

@skrawcz
Copy link
Contributor

skrawcz commented Aug 24, 2025

@cswartzvi github copilot suggests:

The job failed because the build process for pyreadstat==1.3.1 could not find the required iconv shared library on the runner. The error message recommends installing libiconv-dev for Linux systems.

Solution:
Update the workflow to ensure the correct library is installed. In your workflow file, the step for installing iconv uses:

sudo apt-get update && sudo apt-get install -y build-essential libc6-dev libiconv-hook-dev zlib1g-dev

You should replace libiconv-hook-dev with the actual libiconv-dev package:

sudo apt-get update && sudo apt-get install -y build-essential libc6-dev libiconv-dev zlib1g-dev

This will provide the missing iconv library required by pyreadstat.

Code Suggestion:
Edit the relevant step in .github/workflows/hamilton-main.yml to:

- name: Install libiconv on Linux
  if: runner.os == 'Linux'
  run: sudo apt-get update && sudo apt-get install -y build-essential libc6-dev libiconv-dev zlib1g-dev

This should resolve the build error for pyreadstat.

@cswartzvi
Copy link
Contributor Author

@skrawcz Ah yes, I saw that message and tested it on my machine ... turns out libiconv-dev is not a ubuntu package, apparently iconv is bundled in the GNU C lib libc6-dev, but for some reason the package build process does not find it. Rather than installing in manually, I came up with a different solution - conditional pin pyreadstat to the last version with py38 and py39 wheels. This appears to have worked!

I will ask the dev mailing list about the permissions issues.

@skrawcz skrawcz requested a review from Copilot August 25, 2025 04:56
@skrawcz
Copy link
Contributor

skrawcz commented Aug 25, 2025

@cswartzvi I wonder if the failed docs is because it's coming from your hamilton fork repo?

If you instead check out this repo directly and create a branch with your commits, then I think that it should work then.

And since you're a committer that would be my suggestion for the future to work directly off this repo :)

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@cswartzvi
Copy link
Contributor Author

Haha, 🤦‍♂️I didn't even realize I was still on my fork. I will do that! Question (maybe just for future consideration): won't this be an issue for outside contributors.

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