Skip to content

Conversation

@tcdent
Copy link
Collaborator

@tcdent tcdent commented Dec 17, 2024

All package management done with uv.
Initialize project now creates a virtual enviroment for you.

All package management done with `uv`.

TODO: `packaging.remove` and `packaging.upgrade` still need to be implemented.
…ls to packaging.install_project and provide a gernalizable install command.
@tcdent tcdent marked this pull request as ready for review December 18, 2024 00:39
@tcdent tcdent requested a review from bboynton97 December 18, 2024 00:39
@bboynton97
Copy link
Contributor

so after playing with this a bit, I fear that using uv becomes a blocker to the primary goal of AgentStack. when running agentstack init, it took me 40+ seconds to create the venv and install dependencies. im okay with creating the virtual environment, but that installation took a long time and didnt show any progress updates which made the CLI feel very clunky

@bboynton97
Copy link
Contributor

do we want to activate the virtual environment for them when they create the project too?

im not 100% sure im on board with us managing their virtual environment for them. i know there's not a great solution here without it and some devs may be lost, but it feels weird being that heavy-handed. maybe we should have an offline conversation about it more.

Copy link
Contributor

@bboynton97 bboynton97 left a comment

Choose a reason for hiding this comment

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

un-approving this for now until we discuss it

@tcdent
Copy link
Collaborator Author

tcdent commented Dec 23, 2024

so after playing with this a bit, I fear that using uv becomes a blocker to the primary goal of AgentStack. when running agentstack init, it took me 40+ seconds to create the venv and install dependencies. im okay with creating the virtual environment, but that installation took a long time and didnt show any progress updates which made the CLI feel very clunky

oh, interesting, from my end it went from 90 secs to resolve and install using poetry to 1 sec with uv.

I originally wanted to wrap the install progress in a graphic progress bar, but since it's not able to estimate how long dependency resolution and install will take, it's really just a guess.

I hid most of the output so the user doesn't have to scroll back up to see where they were. previously, instructions for next steps print, then the wall of test from the package manager prints, and there's no indication of what to do next without scrolling back up through a couple pages of output.

do we want to activate the virtual environment for them when they create the project too?

they've got to run source from within their own shell, not inside our python app, so they have to do this manually.

im not 100% sure im on board with us managing their virtual environment for them. i know there's not a great solution here without it and some devs may be lost, but it feels weird being that heavy-handed. maybe we should have an offline conversation about it more.

since the user project pins itself to a specific agentstack version, and has framework-specific and tool-specific dependencies added, I think it makes sense for each project to have it's own venv. saves users from a bunch of headache if they try to share venvs with other projects, because it will probably break.

let's explore this more offline

@bboynton97
Copy link
Contributor

change the docs to install via uv only

create a detailed installation explanation

@bboynton97
Copy link
Contributor

do we consider a hosted install script?
curl -LsSf https://agentstack.sh/install.sh | sh

@bboynton97
Copy link
Contributor

From feedback email

Poetry vs UV: Regarding dependencies, I find Poetry excessively slow compared to UV. While there might be a good reason to use Poetry, I forked the repository and migrated everything to UV, including the CLI tools. This change reduced my project startup time from several minutes to just a few seconds.

# Conflicts:
#	agentstack/main.py
#	agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/pyproject.toml
@ranvier2d2
Copy link

ranvier2d2 commented Jan 10, 2025

Some checks were not successful
1 failing and 7 successful checks

"The issue is a temporary rate limit with Codecov's API. The tests themselves passed successfully (97 passed, 17 skipped) in both Python 3.10 and 3.11 environments, but the coverage report upload failed due to rate limiting.
Options:
Wait approximately 249 seconds (about 4 minutes) as specified in the error message and then re-run the workflow
Add a Codecov repository upload token to bypass the rate limiting
Recommendation
Since this is just a rate limit issue and all tests passed successfully, the simplest solution is to wait about 4 minutes and then re-run the workflow. The actual code quality and test results are good, with:
97 passed tests
17 skipped tests
52% code coverage
Successful test execution in both Python environments
You can re-run the workflow through GitHub Actions interface after the rate limit cooldown period has passed."

@bboynton97 bboynton97 merged commit af7403d into agentstack-ai:main Jan 10, 2025
8 of 9 checks passed
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