-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvements to the AWX development experience #13737
Comments
build for ARM so people on the new M1 mac dont have to keep rebuilding the images |
Fail fast
Makefile improvements
|
ability to run "e2e-test" against docker-compose development environment within vscode |
ability to use vscode debugger against docker-compose development environment vscode dev container |
#13641 (comment) that threw me off when I ran the tests locally :) |
|
It is documented, but almost impossible to follow the docs. I'll start from the README and walk our way through the key parts of the documentation, and then maybe it will become more obvious how things need to get reshaped. Starting at https://github.com/ansible/awx/blob/devel/README.md#contributing We get taken to: https://github.com/ansible/awx/blob/devel/CONTRIBUTING.md After some scrolling, we end up at https://github.com/ansible/awx/blob/devel/CONTRIBUTING.md#build-and-run-the-development-environment Which sends us over to https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md Buried deep down on that page are the instructions for building the UI: https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md#clean-and-build-the-ui At the end of the day, as long as make / ansible / docker-compose are installed, you really just need to run:
...and then wait for initial migrations to run. After that, a randomized admin password will be printed in the terminal output. Note how we didn't need to build any image as is described in our documentation. This is because we publish a pre-built devel image which should work most of the time. |
[Makefile/build]: probably a small thing, but the setuptools-scm dependency seems like a wart to me. 1. We don't support anything other than git anywhere else and 2. it fails for me all the time. One or two of the recipes have conditionals for getting it, but a lot of them fail because it's so implicit (VERSION macro always needs it, and it's at the top level). If I understand correctly, we can get the same version strings we're after by running git or checking the dir instead of relying on setuptools-scm. |
[Makefile/build]: Nearly every place where the Makefile checks for VENV_BASE is wrong. They all expand to just |
There needs to be documentation and a complete package installer for people behind very strong corporate policies. Other app/packages I have worked with release a bundle RPM (or .dev) installer that contains all of the dependency files and will install the packages in order needed. I realize this is a big task however there are many engineers out here that will never have command line access in prod environment for git and Pypi, etc. This issue of no complete installer combined with hundreds of old documentation repos that contain instructions to install AWX V17 and older which are completely different make for a very long untangle of a big install mess. |
Good point by @jjwatt Similar to that, the Makefile is opinionated about PYTHON. This leads to error messages when running any target which are distracting
Personally, I have done fairly well with my workaround which is calling things like |
ability to use vscode debugger against docker-compose kube development environment |
switching branches while running development environment break the environment and cause us to start over again (due to db migration miss match between the branch) |
|
this is annoying and clutter up our makefile |
ansible/awx-operator#1308 need this to make CI pass for awx and awx-operator on feature branches |
#13901 - we didn't even know or understand that tests do not work the same when ran in the local environment as when ran on github. |
I just updated #13521 to add some clarity to another persistent error from our Makefile. This logic throws errors on all checks, and is used to generate the version, but logically... the version must not be necessary for checks if it's not failing the checks, just throwing up a non-fatal error. I do think it will make things a lot smoother for contributors if we can clean up our own mess with things like this. |
I want to also call out #13938, which will get people accurate check results if they make pull requests against other people's forks, which sometimes happens. |
[Makefile/docker-compose-container-group]: Starting Kubernetes 1.24, Secrets are not automatically generated when Service Accounts are created, I suggest we create a secret of the type "service-account-token" with the same name as the service account and use that for the rest of the conf #14596 |
Thank you for your efforts on AWX! I've been trying to get into AWX development for a few days and it's been a bumpy journey. I'm writing this not as a screed but in the hope that it will be useful. Starting here: https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md The page says "clone the latest stable tag" which is 24.6.1. Note that you must create a branch, NOT check out a detached head, as the Makefile's git version sniffing breaks if you're on a detached head. Make a branch at tag 24.6.1, then:
Looks like it has something to do with JIRA AAP-23449. Is there a way that I can see that? The page says "You can skip this target if you want to use the latest ghcr.io/ansible/awx_devel:devel image rather than build a new one." Unfortunately, that crashes. See #15614 OK, there's commit 82b8f7d which looks relevant, I'll cherry-pick that and try again:
This is mentioned in few comments like c85fa70 Commit c85fa70 looks like it might be relevant but it won't cherry-pick so I hand-applied it and now I can build. Evidently, though, I'm not finished building because there's a "Clean and build the UI" subsection that's part of the "Run AWX" section. Both of the make targets in that note (clean/ui and ui) are wrong, but I haven't figured out how that works yet so I can't suggest fixes. A few suggestions:
Again, this isn't a diss - AWX is a big project with a lot of moving parts so I hope that my "naive-developer" experience is helpful. |
Please confirm the following
Bug Summary
Let's use this GitHub Issue to brain-dump problems we've seen.
Including:
AWX version
devel
Select the relevant components
Installation method
kubernetes
Modifications
no
Ansible version
No response
Operating system
No response
Web browser
No response
Steps to reproduce
n/a
Expected results
Easier to develop.
Actual results
Not as easy as it could be
Additional information
No response
The text was updated successfully, but these errors were encountered: