# CLI Team
* https://github.com/pulp/pulp-cli/pulls
* Untriaged: https://github.com/pulp/pulp-cli/issues?q=is%3Aissue+is%3Aopen+label%3ATriage-needed
* CI Check: https://github.com/pulp/pulp-cli/actions/workflows/nightly.yml
## "Interesting" branches
* 0.14 (katello packaged)
* 0.29 (current release)
## Pending action items
* We want an upper bound test
## Agenda
* [ON HOLD] For discussion: should we be at 1.0 now?
* let's not until import/export rework is merged
* not yet - deadlock investigation intervened
* Review supported workflows docs.
# 2024
## Jul 31
* DONE [mdellweg] get 0.27 out
* https://pypi.org/project/pulp-cli/0.27.0/
* DONE [ggainey] work w/ ppessoa to punt stale changelog file from pp.org
* working w/ #pulp-infra to figure out best approach for the problem
* oci images fail on rpm copy
* https://github.com/pulp/pulp-cli/pull/1027
* let's get this released to 0.27.N and see howthe image-publishing goes tonight
* discussion RE the "Copy OID problem" ensues
* rpm/deb/ansible all collide on same OID for advanced copy
* this is A Problem
* fixing it will destabilize bindings-users
* what's the best way way to fix this?
* NOTE: this is not a CLI-Thing - needs to be raised to the larger team. Monday team mtg?
* NOTE: "DO NOT 'pollute' the global namespace" should def be documented as A Rule for plugin-authors (also not a CLI Thing)
## Jul 17
* let's get a release out (0.27)
* --directory upload for RPM
* pulp-glue/converge
* pulp-glue/fake_mode
* cli changelog weirdness?
* https://pulpproject.org/pulp-cli/changes/changelog/
* https://pulpproject.org/pulp-cli/changes/
* let's get this cleaned up
* would be nice to have CLI support for the replicate-API
* discussion around tested-OIDs and what we're actually missing
* see https://hackmd.io/@ggainey/cli-test-oids for how-to-generate list of not-tested OIDs
## Jul 3
* https://github.com/pulp/pulp-cli/issues/994
* should I combine the two POC PRs ([1000](https://github.com/pulp/pulp-cli/pull/1000) and [1003](https://github.com/pulp/pulp-cli/pull/1003)) to give the user the option to choose "one atomic new version" vs "version per upload"?
* let's add two flags
* create-tmp-repo
* publish-at-end
* Responsibility for Squeezer.
* this is the obvious team to support squeezer/glue
* should have the pulp-cli group
* [decko] OAuth2 support - https://pastebin.com/DkxgUbkw
* what are the next steps to make this "official"?
* takes advantage of core's ability to add auth-services as a setting
* there's a hook in the AuthBase to deal with reauthenticating on fail
* needs a requests-compatible subclass - the POC above doesn't implement the whole flow yet (handle401)
* what's the right way for the CLI to prioritize which auth-process should be used in the face of a server that allows multiple auth workflows?
* proposal: CLI is opinionated about auth-preferences, and tries them in order based on provided client-info
* question: how to deal w/ pulp-service that provides multiple of the "same" security scheme
* first cut is "cli will do what it can, and if your backend is too complicated we may not be able to auth correctly"
* concern: providing tests for this is Complicated
* requires pulp-backend using OAuth2?
* test against oauth test systems "directly"?
* have the same problem with cert-auth (and lack-of-tests has already caused us a regression once)
* maybe look into Services-CI adding tests for this functionality
## June 5
* Discussion about supported workflow coverage
* `pulp debug openapi operation-ids` tells you all the id's.
* We could intercept `PulpContext.call` and report all the "used" id's in the tests.
* That comparison should give us a broad overview.
## May 8
* looks like plugins all support 0.25 now
## Apr 10
* docs updates in progress
* discuss what pulpcore branches do we support/want to support/need to support
* Sat-6.12 : core/3.18
* Sat-6.13 : core/3.21
* Sat-6.14 : core/3.22
* Sat-6.15 : core/3.39
* katello/4.13 : core/3.49
* We want to add 3.49 to the test matrix.
* We decided to drop 3.21 for it.
## Feb 28
* Convert to new docs-stack - [903](https://github.com/pulp/pulp-cli/issues/903)
* who wants to take this?
* should glue ~~continue "under" cli, or~~ be in its own namespace?
* glue docs are mostly auto-generated API docs currently
* glue is, otoh, used "on its own" in a number of places
* consensus: pulp-glue wants to be its own subsection
* cli-arch-doc is already about half pulp-glue
* versioning?
* not in Phase 1 - maybe later
* do we want to just link files?
* we *can*, but....why?
* "new docs" is The Place to make changes/additions going forward
* AI: pedro is going to submit PRs
* discussion about supported-branches
* let's leave things where we are
## Feb 14
* Improve contributor docs.
* https://github.com/pulp/pulp-cli/pull/901
* discussion RE auth and headers and Stuff
* https://simpleisbetterthancomplex.com/tutorial/2018/11/22/how-to-implement-token-authentication-using-django-rest-framework.html
* https://github.com/pulp/pulp-cli/issues/894
## Jan 31
* eager `--repository`
* https://github.com/pulp/pulp-cli/pull/847
## Jan 17
* discussion on some Unintened Consequences of moving away from setuptools et al
* Do we need a "plugin template"? What should it manage?
* https://github.com/pulp/pulp-cli/issues/821
* Possible solutions:
* Don't put the pwd in a cfg-file - enter on every line :)
* teach pulp-cli to require o-rw access on cfg-file or refuse to run
* like ssh files
* Pulp should provide api tokens.
* Maybe with limited access.
* CLI: `pulp login` requests and stores a token.
* Tokens can be time limited.
* Pulp-cli can implement an interface to DBUS secret service.
* This brings support for several password managers out of the box.
* for example : https://pypi.org/project/SecretStorage/
* could take advantage of server-side sessions, and keep a "cookie jar" around to store them
* pulp-cli would behave "more like a browser" (cookie jar) - also, depends on pulp-instance supporting this at the middleware level
* note that using cli-shell, you would only enter the pwd once per "session" (I think?)
# 2023
## Dec 6
* katello and bindings and multi-version issues
* katello patches bindings post-generation
* we're not going to rewrite pulp-glue in ruby
* is there a way to do ruby-to-python, so katello can use pulp-glue instead of the bindings?
* pybind?
* katello could use the CLI as subprocesses
* katello could use ansible/squeezer
* pulp-glue and docs
* we have generated API docs
* there needs to be a section on pulp-glue in the CLI docs
* work is in-progress
* https://github.com/pulp/pulp-cli/pull/837
* probably do **not** want a separate pulp-glue docs project
## Oct 25
* AI: ggainey to talk to mdellweg RE https://github.com/pulp/pulp-cli/issues/771
## Oct 11
* look at translation mechanics in glue
* fixed by mdellweg
* https://github.com/pulp/pulp-cli/pull/809
* do we want a pulp-glue talk at PulpCon?
* could be dkliban talking about using it in pulp-replicator?
* AI: mdellweg to ask dkliban if he'd like to do such a thing
* what would the focus of such a talk be?
* 30 min, DEV oriented
* what is it?
* why is it?
* where is it already in use?
* quick example of using it?
* compare to doing same in bindings?
* glue-support for some plugins live in diff packages (eg, ostree, maven, gem) - lib is extensible
* lookit the cool updates to the docs-page!
* https://docs.pulpproject.org/pulp_cli/
* pulp-glue API ref
* choose version from top-left
* reorganized
## Aug 16
* import/export work is alive again
* [ggainey] report back at next mtg
* Question: do we delete old release branches.
* older than 0.19?
* 0.19 is first with new release process
* 0.14 packaged for katello
* because there's already a 0.14.1
* 0.21.2 is latest-branch
* conditional "yes"
* keep 0.14 and 0.21
* if we want to release on 0.14, will need the new release-process backported
* installing CLI in same container as pulpcore Fun
* pip is dumb
* use the rpm dist
* install into a virtenv
* discussion w/ downstream around avoiding cross-version-conversations with client-bindings (not pulp-cli related)
* pulp-glue exists for exactly this reason
* except Ruby :(
## Aug 2
* release-workflow-improvements - DONE
* 0.20.2 released w/ "fix" for pyyaml/cython problem
* release-process needs a bit of tweaking - retry coming #soon
* patchback now works on pulp-cli!
* pulp-cli release-workflow now looks a lot more like everything else in /pulp/
* will use experience here, to improve experience in pulpcore/plugins
* click-8.1.4+ lint issues - DONE
* python-3.12 is incoming (to release in Oct) - be prepared
* A lot of versions of the CLI seem to be uninstallable for the PyYAML build issues.
* 0.18.2 is the oldest working one. Should we yank all older from pypi?
* prob should poke RPM Build Gang to RPM-ize something newer than 0.14.0
* Are we ready / Do we need to declare supported branches for the CLI?
* discussion ensues
* maybe let's not borrow trouble - don't worry about unless/until a stakeholder tells us they need specific branches
* Improve how a ca_cert is passed to pulp-glue
* currently supported only via ca-bundle-support from request-module
* dkliban to write up an issue
* make sure it is available in the cli-profile setup
* can we think of ways to make this a not-breaking change? Do we even care?
* https://github.com/pulp/pulp-cli/pull/758
## Jun 8
* core and plugins have added features that haven't been exposed to cli
* mini-teams should prob review and add issues (at least) to pulp-cli to get this work surfaced
* pulp_gem plugin
* cli-support should be moved to pulp/ org
* pulp-cli needs to support all the branches in pulp-oci-image
* what about pulp-maven?
* no support currently
* pulp-cli docs need another update review/work
* esp docs "for us", as opposed to "how to use pulp-cli" for users
* let's start thinking of higher-level/wizard/workflow commands that could be added to pulp-cli - get some RFEs open?
* example: a single cmd to create remote/repo/sync/publish/distribute
* squeezer and automation
* can we finish the use-pulp-glue pieces?
* how many plugins does squeezer currently support?
## Apr 12
* squeezer PR is desperate need of More Eyes
* https://github.com/pulp/squeezer/pull/106
* Even if you're not An Expert
* `pulp publication list` is broken.
* [ggainey] to write an issue
* https://github.com/pulp/pulp-cli/issues/665
## Mar 29
* not much progress to report this week
* api-quirks discussion
* AI: [mdellweg] open an actual issue
* https://github.com/pulp/pulp-cli/issues/658
* RE import/export CLI state
* don't deprecate current/half-baked impl, just replace it
* discussion RE pulp_python and import/export support
* waiting on submitter
## Mar 15
* API quirks
* https://github.com/pulp/pulp-cli/pull/647#pullrequestreview-1340118039
* We should move these (if entity specific) to their corresponding contexts. This will allow plugins to add their specifics.
## Mar 1
* For discussion: should we be at 1.0 now?
* ~~let's not till pulp-glue is merged~~
* let's not until import/export rework is merged
* look at translation mechanics in glue
* revisit at our next mtg
* Prio-list?
* https://github.com/pulp/pulp-cli/issues/631 [DONE]
* Pulp-maven - separate repo or part of pulp-cli?
* maven is part of container-image
* put it under pulp_maven? - **no**
* cli talks to multiple versions
* should have its own release-cycle
* separate repo?
* "not part of official images" - takes more work if it's in pulp-cli
* access/control of another group (eg pulp-deb)
* demonstrate to other projects that you can have cli-plugins
* [dkliban] will create plugin-repo for this, give all of us access
* Replication commands
* challenge: needs a pulpcore release
* can teach CLI "this functionality requires 3.23.dev"
* don't forget to add skip-clause to tests
* domains cli-PR - will get a proper review #asap
* cli-cfg-per-domain support discussion
* conflict between what pulp-replication needs, and what domains-cli-PR is currently doing
* dkliban/gerrod to get together and discuss later today
## FEB 15
* Out of free-to-take prio-list items
* let's not add any till pulp-glue is merged
* For discussion: should we be at 1.0 now?
* let's not till pulp-glue is merged
* let's not until import/export rework is merged
* revisit at our next mtg
* Filtering repositories by content
* https://github.com/pulp/pulp-cli/issues/631
* comment added by ggainey
* https://discourse.pulpproject.org/t/rfc-reunite-the-library-that-drives-pulp-cli-and-squeezer/262
* ggainey to raise w/ katello/pulp/build integration mtg
* AI: [dkliban] talk to pcreech/zhunting/odilon RE details
* we want pulp-glue to be released in pulp-cli/0.17, talk about pulp-cli/1.0 **after** that
## JAN 18
* Set up CodeQL here? https://github.com/pulp/pulp-cli/security/code-scanning
* https://github.com/pulp/pulp-cli/issues/612
* [DONE]
* 3.22 images still pending for CI to use it.
* ggainey to open filesystem-exporter-support issue
* https://github.com/pulp/pulp-cli/issues/619
* import/export commands for pulp/fs need to be made unified and sane
* ggainey to write up and ping for feedback
# 2022
## Nov 23
## Happened inbetween
* There are A LOT of changes since 0.15, and a lot of things closed by not in 0.16 milestone - Release Soon pliz? [DONE]
## Oct 26
* nightly shows a lot of deprecation/nodejs upgrade warnings - let's fix these
* is this a plugin-template Thing to fix?
* Maybe we need to update some GH actions.
* [ggainey] open a plugin-template issue
* https://github.com/pulp/plugin_template/issues/711
* fao89 fixed it
* [ggainey] nodejs only happens in pulp-cli - investigate why
* x9c4 updated a bunch of deps and we're clear now!
* https://github.com/pulp/pulp-cli/actions/runs/3342655095
## Jul 6
* AI: ggainey to take over [PR 485]
* AI: ggainey to nudge ppicka RE [PR 507]
* AI: mdellweg to respond to https://github.com/pulp/pulp-cli/issues/509
## Mar 16
* label:triaged? or new issues get label:Triage-Needed?
- Use the new label
- Adjust the issue templates first
- ggainey AI : [PR 487](https://github.com/pulp/pulp-cli/pull/487)
* look for PR-template, point to our "how to contribute" docs
- ggainey AI : [PR 487](https://github.com/pulp/pulp-cli/pull/487)
## Mar 02
* automerge discussion
* disappointed in GH
* will leave AM turned on (does no harm)
* dismissal of reviews on change will be kept on
* takeaway: be agressive about pushing the merge button
* if it's green - Do It!
* whoever pushes the button, isn't liable for bad reviews
* still implies "do not Approve PR unless you're willing for it to be merged **immediately** "
* What about a Release 0.14.0? Yes!
* moved outstanding issues to 0.15.0
## Feb, 16
* Implement automerge on approved PRs?
* Approve must be final
* A change must dismiss any approval
* request-for-change must be able to be reset/accepted by :the next reviewer", whoever that is
* and the approving-reviewer is on the hook to do it!
* Rules for auto-merge:
* 1 approval
* CI is green
* no merge-conflicts
* PR not in draft
* if approved, and PR author removes Draft - automerge immediately?
* Can we agree on a standard for "DO NOT APPROVE/MERGE THIS" in PR commit-message?
* if applied in check-pr workflow, needs to reject merging AFTER CI runs
* so it doesn't cancel CI like lint does
* Timeline/to-do
* x9c4 to experiment
* switch next Weds 23-FEB?
* Discussion RE container and differences in some commands from other plugins
* Example: modify allows base-version, but NOT in container
* should the command-name be same, even when "standard" arguments are not?
* OR should command-name be plugin-specific even when most args are similar?
* gerrod to sync up w/ ipanova to discuss and bring back to next mtg
# 2021
## Oct, 27
* different content is different (rpm) so it may need to go into different command groups
* polymorphy around the "--type" parameter looks like a mess
* https://github.com/pulp/pulp-cli/issues/407
* AI: ggainey to do POC of a different approach by next mtg
* Pulp shell would be super useful if you could `cd` into a context
* also capturing output for further processing would be nice
* Yay feature matrix
* https://github.com/pulp/pulp-cli/pull/404
* Please comment on the format
## Oct, 13
* Squeezer is currently built on the premise that it has no external dependencies, but reusing the openapi.py between the two projects may bring a lot of maintenance benefit. What would be the impact of having the squeezer collection depend on pulp-cli?
* This may need more thinking about impacts.
* No timeline for a change like this.
* Should we rename the base branch to main?
* Let's do this for consistency
* [mdellweg] to change the name. Done.
## Sep 29
* Reviewers: Please make sure every new user facing string gets a `_()`.
* Also we should gradually fix all the others we stumble over.
* State of the translation experiment
* https://github.com/pulp/pulp-cli/pull/328
* We are currently testing the CLI with pulpcore 3.11 - 3.15. Are we ready to drop any workarounds for <=3.10 ?
* Should we also install a global `needs_plugin("core", "3.11")` so users are aware and may use older versions?
* make sure we can at least update the cached-schema if current is "too old" to run the command
* the only significant potential consumer of pulp-cli pre-core-3.11 is Sat6.9, which is using core-3.7.
* the current pulp-cli functionality serves that need just fine
* +1 for 0.12 advancing the pulpcore requirement to 3.11+
* If needed desperately, we could make a 0.11 branch that even runs it's CI with core-3.7 as a target and accept backport PRs
* OSTree support - prob wants/needs to be its own package
* see the current (incomplete) state of deb-support for an example
* need an oci-image that includes 'external' plugins for testing
## Sep 15
* Nightly test is failing
* this is failing for async orm incompatibilities
* Should start working again with https://github.com/pulp/pulpcore/pull/1622
* container rebuild has been triggered
* Where to add ostree support?
* No strong opinions
* pulp_deb would like to see another external plugin
* To improve support of external plugins
## Sep 1
* Certguard plugin
* should certguard commands be separate from core package?
* how to deal with commands placement
* pulp content-guard rbac ... +1 +1+1
* pulp cert-guard -t rhsm ...
* 3 month planning in 2 weeks
* some FTEs may be freed up - do we want to raise cli-prio?
* content for rpm/ansible?
* ggainey AI - submit PR to generalize string/@ behavior
* filtering (for existing cmds) would be good
* field-selectivity can wait since you can be selective w/ jq after the fact
## Aug 19
* pulp-cli-deb
* Introduction to quba42
* transfer of the repo to pulp namespace; adding the pulp/debian team
* [mdellweg, davidd]
* upload to PyPi; add quba42 to that package
* pulp_rpm workflow docs still use httpie
* a good candidate for docs-day
* https://pulp.plan.io/issues/9259
* same for pulp_container
* Docs day
* General organization (structure, outline); probably before docs day
* Get the user started; point to workflow docs
* dev-user-hat needs "pip install -e ."
* pip-comfortable user needs pip-install
* rpm-comfortable user needs to know how to dnf-install
* Improve "how to add commands"
* Reminder: self-assign issues or check issue assignment
* unassignment _is_ possible
* check that github correctly links PR and issue
* assign issues to next-milestone please?
* can we do this as part of the merge-workflow?
## Aug 04
* Time slot for this meeting
* We get into conflicts quite often; can we move this meeting to a more stable slot?
* Feature gaps (e.g. lack of content commands) are problematic
* Translations
* How do we proceed?
* https://github.com/pulp/pulp-cli/pull/328
## July 21
* We need to rethink dependency version pinning
* https://github.com/pulp/pulp-cli/commit/d3491ef903a4d166124f546faee326851d29ab47#r52911382
### July 07
* ~~0.10.0 please!~~
* ~~preferably on new-click-shell/click-8~~
* released
* ~~where are we wrt package-namespace issue?~~
* done - rpms are built!
* https://yum.theforeman.org/pulpcore/3.14/el8/x86_64/python3-pulp-cli-0.10.1-1.el8.noarch.rpm
* Evgeni++ !!!
* Gave Grant the button to force merge
* Also added gerrod to the cli team
* [david] set up templates for Github Issues
* https://github.com/pulp/pulp-cli/pull/276
* we need a documentationm push, badly
* redo workflows using CLI examples
* better user-docs for CLI
* create feature-gap matrix to help community drive priorities (give to Mel?)
### June 23
* Github Issue templates https://github.com/pulp/pulp-cli/issues/templates/edit
* Offers some neat features like automatically assign labels
* https://github.com/pulp/pulp-cli/pull/267
* mypy (0.900) changed the policy that you need to install typing packages explicitly
* The shipped typing package for click (7.1.2) seems to be missing some types
* click-shell still doesn't support click 8
* https://github.com/pulp/pulp-cli/issues/256
* Use community fork https://github.com/clarkperkins/click-shell/issues/30#issuecomment-864613900
### June 9, 2021
* Packaging on Rhel/Centos 7 may not work with namespaced packages
* Maybe we cannot use namespaced packages
### May 26, 2021
* click 8
* we are not yet there
* click-shell
* waiting on https://github.com/clarkperkins/click-shell/pull/31
* bash completion stops working
* daviddavis to file a click-8 issue
* mypy linting is hard to impossible to fix for 7 and 8 simultaneously
* Evgeni has reported strange problems with old setuptools
* They struggle hard with namespace packages
* I would love to get some final review on this:
* https://github.com/pulp/pulp-cli/pull/161
* I want to base capabilities (primarily for pie code) on it
* mkdocs, publish them to docs.pulpproject.org?
* https://github.com/pulp/pulp-cli/pull/247
### May 12, 2021
* Click 8 (just released) breaks click_shell
* https://github.com/clarkperkins/click-shell/pull/29
* We decided to pin all dependencies to major versions at least
* and cut a release with it
* https://github.com/ryanlayer/ssshtest
* Look at bats
* https://opensource.com/article/19/2/testing-bash-bats
* https://github.com/sstephenson/bats
* Eric mentioned that in the Katello world the cli should be used with caution for any non-read-only operation
* https://community.theforeman.org/t/how-to-install-pulp-admin-on-rhel7-foreman-2-4-katello-4-0-0/23527/11
* We could add a flag that asks for confirmation
* Katello could configure the dry-run option
* we may need to add `--no-dry-run` acutally as `--force`
* [x9c4] Make a PR
### April 28, 2021
* Should we support plugin schema api changes?
* Absolutely
* We are doing it with `has_plugin`
### April 15, 2021
* Release 0.8.0
* Moving items to 0.9.0 milestone
### March 31, 2021
* We plan to create a feature gap matrix
* Feature, endpoint, plugin, implemented?, implementable?, priority
* Discuss (asynchronously) a release date for 0.8.0 next wednesday
* [mdellweg] start the thread
### March 17, 2021
* Better classification of options
* I realized, we have three different types of options referring to objects:
* filter options (used for list_command)
* lookup options (used for show, update, destroy)
* resource options (used in update, create, sync, ... to reference other options)
* https://github.com/pulp/pulp-cli/pull/161
* I see some potential for each of them to make the actual command definition even more descriptive than today.
* Easier command chaining/sequences
* Common workflows produce an href that needs to be manually copied to be inspected or used in other commands. (publish, sync)
* Suggestion: have Pulp context store output of previous command and have it be referencable through new resource language
* `pulp file publication create --repository foo`
* `pulp file distribution create --publication p:href ...`
* `pulp -b file repository sync --name foo`
* `pulp task show --href p:task`
* Reference language could use it's context features to have common shorthands, aka p:pulp_href == p:href, p:latest_version_href == p:latest
* This would need a notion of a session
* Maybe we can implement a pulp-shell
### March 3, 2021
* 3 month planning - March 17
* complete RPM and container commands
* install CLI in pulp_installer dev boxes
* [daviddavis] file against the installer
### February 17, 2021
* Tracking Katello issues?
* GH Labels it is [x9c4]
* How do we reference objects (like repos on a publication, or an exporter)?
* We should have a common language
* There must be a way to specify the object plugin and type
* `[[app_label:]type:]name`
* If the name has colons: `::name:with:colons`
* `/pulp/api/repositories/<app_label>/<type>/pk`
* use --repository-href
* Are there forbidden characters for the name, we can use?
* Migration support - https://github.com/pulp/pulp-cli/pull/142
* Yay!
* We do not have the migration_plugin in the container
* This is skipped in all CI tests
* Should we separate it and run tests in a special way?
* separating is good if someone wants to own it
* It allows for separate installation
* Do we want to use vcrpy to tests with prerecorded server communication?
* Can we test it at least nightly in the migration_plugin CI?
* Try this [daviddavis]
* [x9c4] Im happy to merge based on code review.
* I18N
* We are in `_`-land
* We need to find a way to support translations for plugins
* I intend to build extensive Makefile tooling for message extraction and catalog compilation
### Feb 3, 2021
* open PR's - https://github.com/pulp/pulp-cli/pulls
* Command Structure
* Do we want interspersed arguments (e.g. lookup parameters before the action to perform) (Our current technology should allow both)
* **examples**
`pulp <settings> file repository -t file --name foo show`
`pulp <settings> file repository -t file --name foo update --name bar --description "renamed"`
`pulp <settings> file repository -t file --href p/a/v3/repositories/file/file/<uuid>/ version --number 2 show`
* **pros:**
* this means the name-or-href lookup question will be handled in one place for each resource type
* the "same" option can be used for different purposes (lookup vs. payload)
* commands for a repository and it's versions start the same way
* **cons:**
* It can be confusing to know where an option needs to go
* Would it be possible for help screens to show all missing options and where they go?
* For example, if I run `pulp file repository show --help` it can show me `--name` and btwn `repository` and `show`
* collect all parameters at the end (all but settings and type)
* **examples**
`pulp <settings> file repository -t file show --name foo`
`pulp <settings> file repository -t file update --name foo --description "cannot be renamed"`
`pulp <settings> file repository -t file update --name foo --new-name bar --description "renamed"`
`pulp <settings> file repository -t file repository version show --repository-href p/a/v3/repositories/file/file/<uuid>/ --number 2`
* **pros:**
* may be more intuitive
* consistent with pulp-admin (pulp 2) and hammer
* **cons:**
* renaming things will become harder this way
* What does it mean to change the 'natural key' (eg, 'name') of an entity?
* AI: Choose Option 2, send email to list describing what we're doing and why and ask for feedback, revisit in a month
* pulp-cli project on redmine - archive?
* Issues will not be accessible
* AI: daviddavis to archive, fix changelog links to not-point to plan.io anymore
* 0.3.0 release
* AI: daviddavis to release this week or next
* gettext
* AI: x9c4 Yes please! at least get us into _() land
### Jan 20, 2021
* open PR's - https://github.com/pulp/pulp-cli/pulls
* How do we track issues?
* separate project (current: https://pulp.plan.io/projects/pulp-cli)
* add a query to the projects to see the issues
* category in pulpcore
* Nope
* category in every plugin (including pulpcore)
* Being the first to move to GHI +1 +1
* daviddavis to do the move
* Plugin bootstrapping?
* https://pulp.plan.io/issues/6620
* https://pulp.plan.io/issues/6619
* video demo (see ggainey)
* Lazy evaluation (WIP)
* https://github.com/pulp/pulp-cli/pull/71
* the goal is to be able to access all help screens with no access to any server
* [AI] please comment on the design
* User reported feature - https://pulp.plan.io/issues/8120
* This needs some design work around the question "How do we specify a lot of content?". [AI] Please comment on the ticket.
### Jan 6, 2021
* We need a release process +1
* Release on regular basis
* Add changelog/towncrier
* Do a manual release (0.1), note each step. Then automate.
* Create changelog
* tag commit
* build and push to pypi
* Which pulpcore releases should we support?
* Starting with 3.9, support 5 y releases back
* Follow LTS discussion and adjust based on decision
* Some resources can only be fetched by name but they are sometimes returned as hrefs (eg created_resources)
* Add an --href (or id?) option to commands that take name
* Command needs to validate that the href matches the resource
* [daviddavis] file a task
* Add a pulp show command that takes an href
* Next goals? Anything to discuss before 3 month planning?
* user-management? needs user-REST first
* [david] email that developers need to file CLI tasks as they add features
* pulp_ansible support - offer to gerrod
* Satellite wants
* https://pulp.plan.io/issues/7531
* Valid request
* https://pulp.plan.io/issues/7683
* This is probably not possible with the REST api atm
# 2020
### Nov-12, 2020
Context: reviewing [PR#27](https://github.com/pulp/pulp-cli/pull/27/)
Attendees: ggainey, x9c4
https://hackmd.io/hPligUXLRhSJBACNYLHNNw
* Context classes wrap the api for specific resources
* dictionary in common, 'type': ContextClass
* see file/repository.py:126, remote-access - would be redirected thru the ContextClass-by-type
* plugins would register their contextclasses as part of initialization
* add feature-flags to context - eg, "this repository type knows how to be exported'
* allow for more general code-paths
* Container has multiple repo-types - so it's the first more-complicated entity
* debian has multiple publisher-types
* discussion RE make_pass_decorators added in PR#27
* removes some of the boilerplate into decorators and signature instead of code - /me cheers wildly!
* every subcommand has a Context, every Context has/can have an object
Other notes:
* what about plugins we don't maintain?
* how to give comunity members the ability to extend without being dependent on 'us'?
* hybrid approach - 'we' ship lots of support, but can be 'plugged' from outside
* see setup.py L18-19 for current pluggability
* get ggainey merge-access to pulp-cli (x9c4 to ask daviddavis)
* next steps
* container-PR is refactoring a lot w/out breaking current interface
* let's do the generalized-context-dictionary PR next
* THEN refactor exporter/export to use ^^
* would be really handy to have a --dryrun flag - spit out the actual pulp-REST-calls but don't do them
* prob need to do the read-only calls to look things up - would not execute the 'unsafe' (PUT/POST/DELETE/PATCH)
### Nov 4, 2020
* pulp_migration support?
* No plans to support the migration plugin
* User stories
* Not really helpful ATM. Write them if you need them.
* Dealing with lint/checks
* mypy and shellcheck are picky and require ramp up
* Factor extra time into estimates
* What we have so far
* Most pulp_file commands
* No content commands
* Lots of missing options (eg filters) and no help text
* Exporters
* Tasks
* Artifacts
* Orphan cleanup
* Stuff to do
* Help text
* Another plugin (rpm or container)
* Recordings
* ggainey to demo creating a cli command from scratch
* Possible mypy demo?
* Help text
* Can we grab it from the schema?
* david to file ticket (https://pulp.plan.io/issues/7787)
### Oct 22, 2020
* Recorded talk?
* How to write a CLI command
* AI: ggainey to work on exporter commands and create presentation based on this work
* Timeframe: before end of November
* Adding type annotations
* https://github.com/pulp/pulp-cli/pull/15
* [david] will review and merge
* Settings feature has been merged
* https://github.com/pulp/pulp-cli#configuration
* Planning for next quarter?
* Create a 0.1.0 release milestone in redmine?
* for next quarter:
* pulpcore
* happy/main path through pulp_rpm
* packaging
* ddavis to write up user-stories. meet to discuss planning in mid/late november
* can we log the actual API calls?
* https://pulp.plan.io/issues/7729
### Oct 8, 2020
* Handling SSL
* https://pulp.plan.io/issues/7658 - turn off ssl verification (fixed)
* https://pulp.plan.io/issues/7652 - need to handle eventually
* Run CI every night?
* https://github.com/pulp/pulp-cli/pull/6
* Let's run 7 days a week for now
* Our first bug!
* https://pulp.plan.io/issues/7666
* Possible explanation: client is making a http request and being redirected to https and then does a GET request
* x9c4 to investigate
* Blog post and mailing list announcement are live
* Planning for next quarter (Dec-March)
* We'd like to have a usable CLI by spring. Get upstream feedback and for our personal use.
* What goals do we have?
* Easy to install/packaged
* Covers pulpcore and pulp_file
* pulp_rpm happy path (sync, publish, distribute, upload)
* How much time do we want to ask for?
* 3.5 FTEs
* Hard requirement: new features require a demo
* let's allow to use the cli to demo new features to get early contributions +1
* Meet again in 2 weeks after 3.8 release
### Sept 23, 2020
* [david] Finish CLI PoC and upload to asciinema
* Send out email to pulp-list about PoC?
* Include asciinema
* How to install, use CLI
* Ask for feedback
* Contact mcorr first and see what she recommends
* Should we meet regularly?
* Meet again in two weeks
* Hopefully have some user feedback
* We need a decision about where to have the cli code
* it's not urgent.
* for now, keep using a single repo
* Supporting multiple versions of pulpcore and plugins
* For now, use conditional statements when needed
* Versioning of the CLI
* Needs more thought
###### tags: `CLI`, 'minutes'