agentos-project/agentos

Separate freezing components from publishing them

Opened this issue · 0 comments

andyk commented

Currently agentos freeze and Component.to_versioned_component() with fail if the Component's repo is a GithubRepo and the local HEAD is different than the github remote HEAD. It prints an error (as shown below).

We should wait to check if the local git HEAD exists in the github remote until we try to publish, instead of checking when we do the freeze.

Traceback (most recent call last):
  File "/opt/homebrew/Caskroom/miniforge/base/envs/agentos_dev2/bin/agentos", line 33, in <module>
    sys.exit(load_entry_point('agentos', 'console_scripts', 'agentos')())
  File "/opt/homebrew/Caskroom/miniforge/base/envs/agentos_dev2/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/agentos_dev2/lib/python3.9/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/agentos_dev2/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/homebrew/Caskroom/miniforge/base/envs/agentos_dev2/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/agentos_dev2/lib/python3.9/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/Users/andyk/Development/agentos/agentos/cli.py", line 258, in freeze
    frozen_reg = component.to_frozen_registry(force=force)
  File "/Users/andyk/Development/agentos/pcs/component.py", line 615, in to_frozen_registry
    versioned = self.to_versioned_component(force)
  File "/Users/andyk/Development/agentos/pcs/component.py", line 495, in to_versioned_component
    repo_url, version = self.repo.get_version_from_git(
  File "/Users/andyk/Development/agentos/pcs/repo.py", line 150, in get_version_from_git
    return self.GIT.get_public_url_and_hash(full_path, force)
  File "/Users/andyk/Development/agentos/pcs/git_manager.py", line 59, in get_public_url_and_hash
    curr_head_hash = self._check_remote_branch_status(
  File "/Users/andyk/Development/agentos/pcs/git_manager.py", line 194, in _check_remote_branch_status
    raise BadGitStateException(error_msg)
pcs.exceptions.BadGitStateException: Current head hash 845a553739b7805c2a7df2f7145fd30a076b7b3a in PCS repo <Repo at '/Users/andyk/Development/agentos'> is not on remote git@github.com:andyk/agentos.git. Push your changes to your remote!