Proposal: CLI to print helpful information about patches in Tutor

In the DevExp WG, we want to improve the experience for developers working on the Open edX platform. For example, we want to make it easier to implement tutor plugins and take advantage of using the patches (points of extension to allow additional configurations and customizations in the platform). So we started creating a command that print available patches and where they will be used (tutor config patches list). Still, now we want to add another command with more specific information, for example:

tutor config patches show <patch-name>
# Print the patch content

I want to ask the community:
Will that be helpful for you?
Do you have other proposals or valuable features to help you create and debug tutor plugins and their configurations?

cc @tutor-maintainers

6 Likes

Thanks @mafermazu for writing this topic! I think the tutor config patches show <patch-name> would be very useful. Other plugin developers might not be aware of the very new tutor config patches list command which you developed and was just released in v15.3.2… just two days ago!

Here is a sample of the new config patches list command:

$ tutor config patches list
PATCH                                          	LOCATIONS
caddyfile                                      	apps/caddy/Caddyfile
caddyfile-cms                                  	apps/caddy/Caddyfile
caddyfile-global                               	apps/caddy/Caddyfile
caddyfile-lms                                  	apps/caddy/Caddyfile
cms-env                                        	apps/openedx/config/cms.env.yml
cms-env-features                               	apps/openedx/config/cms.env.yml
common-env-features                            	apps/openedx/config/cms.env.yml
                                               	apps/openedx/config/lms.env.yml
dev-docker-compose-jobs-services               	dev/docker-compose.jobs.yml
k8s-deployments                                	k8s/deployments.yml
k8s-jobs                                       	k8s/jobs.yml
k8s-override                                   	k8s/override.yml
                                               	kustomization.yml
...

You can try it out today by upgrading tutor to v15.3.2.

As you can see, the new command makes it much easier to figure out the names of the patches, and where they are located.

The config patches show command that @mafermazu is suggesting would print the actual content of the patch. I think that would be really cool, and I know that it would help me in my daily plugin development workflow. But it would be great to hear what other plugin developers have to say.

1 Like

Hey @mafermazu tutor config patches list seems great, and I think tutor config patches show would be helpful as well! I could imagine that the output of tutor config patches show might be helpful for writing automated tests for Tutor plugins. It’s also nice that the patches are now listed in the docs.

As far as other helpful features, it could be nice to have a similar command to list config values and their sources in the current Tutor environment.

2 Likes

Seconding to what @michael said, I think it would be super useful if it can print the usage/content per plugin, i.e. somehting like this

tutor config patches show openedx-lms-common-settings 

in tutor-mfe: 
         ENABLE_X_SERVICE = True

in tutor-forum: 
         ENABLE_X_SERVICE = False

in tutor-x:
         SOMETHING = "3.14"  

Something like this would help alot finding inconsistency between config/setting among other things.

2 Likes