-
Notifications
You must be signed in to change notification settings - Fork 1
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
[DEPR] Devstack #247
Comments
Relates to openedx/wg-build-test-release#138 |
Since this is primarily a 2U project right now, we are planning on announcing this and gathering feedback. 2U is still planning on using this for the near to medium term until we're confident we can migrate successfully onto Tutor, but we can move it out of the openedx GitHub org to minimize confusion. |
In general, sounds great! Only thing is... MFE development currently sucks in Tutor >.< So nearly all frontend devs still use Devstack when they're trying to change MFEs. Brian Smith is actively working on rectifying this, with promising results. Would you be willing to delay the deprecation further until Tutor has MFE dev sorted out? |
Yup! I think we're still trying to understand the requirements needed here. I'll push out the acceptance date for another few months. |
Discuss posting: https://discuss.openedx.org/t/deprecation-devstack/10703 |
@dianakhuang So, I know I had originally been a proponent of deprecating both configuration and devstack "into the edx org", under the understanding that if only 2U is using some parts of the project, then it's easier for both sides if we transfer those parts over to 2U. Since then, I've talked about this with my team at Axim, and come to understand that the situation is more nuanced than that. The code in the openedx org is built from a mix of Axim-owned contributions and community-contributor-owned contributions (licensed to Axim under the CLA). We hold the code in this org for the good of all current & former Open edX contributors and users, and as the project's stewards we have a mandate to maintain ownership and ensure availability of all its repositories, even unsupported repositories. Our procedure of archiving repos by transferring to the openedx-unsupported org lets us mark a repo as "unsupported" while still guaranteeing the repo's availability and keeping its ownership clear. So, if/when devstack and configuration are deprecated, we'll need to move them there. |
@kdmccormick that sounds reasonable! 2U/edX.org should be able to then clone the repositories for our own use case after they are put into unsupported, then? Obviously, this is our first stab and understanding how this process is going to work going forward. |
Yes, you could fork from openedx-supported after that full deprecation & archival process. Even in that case, though, I'd be curious what we could do to help keep 2U involved with community tooling. Would you be forking devstack & configuration as a temporary stop-gap until you're able to transition off of them, or with the intent of using them indefinitely?
Same here :) learning as we go! |
We are going to block acceptance because devstack is still used heavily by people who need to do development on MFEs outside of 2U. @arbrandes @kdmccormick could you add more context on this? |
@arbrandes , I know you mentioned that RaccoonGang are heavy users of Devstack. I wonder if they'd be willing to take on maintenance. If not, and if nobody else is willing to, then we should probably let this DEPR move forward and help MFE developers move towards Tutor. |
@dianakhuang given recent changes at 2U, is 2U still willing to maintain this repository? Or should we complete the deprecation and remove this from the |
@feanil 2U is still willing to maintain this repository for now. We would like to keep in in the |
I think this is fine for now but since we're trying to move away from devstack for the community, at some point it will make senses to move it out. In the meantime, I'd like to mark this ticket and the repo as deprecated and make sure the relevant messaging exists in the README for this. What do you think? |
Yup, let's add some text to the README and move this ticket to the deprecated column. |
Cool, is that something you can take on as maintainers? |
Yup, I'll try to get on it today and spread the info around 2U so no one freaks out. |
We should move this back to Proposed and re-communicate that 2U wants to stop maintaining this as a part of Open edX. Either someone else needs to maintain this for the community or we can archive and 2U and any other interested parties can fork it. |
Re-communication happened here: https://discuss.openedx.org/t/deprecation-removal-devstack-update/12384 Aaaand it's archived: https://github.com/openedx-unsupported/devstack I moved this ticket to public-engineering, since we have a few more clean-up steps before we can close it out. |
With the devstack repository archived, the obvious next question is: When will devstack.py, env.devstack, and any other devstack-specific files be removed from upstream repositories? I realize that removing those files will break any forks of devstack, unless the forks adapt by loading the files from somewhere new. I propose that the files should remain in-place until the Sumac branch cut on October 9th, after which they are fair game for removal. Happy to discuss different dates, a phased removal, or something else. Let me know what you think @dianakhuang @regisb @cmltaWt0 @felipemontoya @robrap @feanil . |
^ @brian-smith-tcril @arbrandes @adamstankiewicz , pinging you guys on behalf of the frontend :) |
October 9th seems like plenty far int the future, but I think we should put deprecation warnings in those files now with the agreed upon dates so people who touch them have some chance of knowing that they're gonna disappear. |
Thanks @kdmccormick. I'm hopeful we can work that into our plan at this point, but tagging @jristau1984 and @spencertiberi, who need to be involved in any deadline agreements. Thanks. |
I'd like to settle on a timeline for removal of these auxillary files. If there any objections or alternative suggestions to Oct 9 for the "OK to start removing date", please raise them by the end of next week (Apr 5). |
At this time, I have no concerns with having the removal work begin after the Sumac cut, currently scheduled on Oct 9. Can this date be added to the timeline section of the issue above? Thanks! |
@jristau1984: Just to ensure you are aware, this is not just busy work, but requires designing a plan for how we can accomplish this. |
Done. When I get a chance, I'll start a draft PR of these changes for edx-platform, so that devstack users can get a sense of which files will be going away. |
Note: I had originally implemented this as a `warnings.warn()` call directly in lms/envs/devstack.py and cms/envs/devstack.py, but for whatever reason, those warnings were getting swallowed. System checks display more prominently, anyway. Part of: openedx/public-engineering#247
Deprecation warnings for devstack settings files in edx-platform: openedx/edx-platform#34795 |
Note: I had originally implemented this as a `warnings.warn()` call directly in lms/envs/devstack.py and cms/envs/devstack.py, but for whatever reason, those warnings were getting swallowed. System checks display more prominently, anyway. Part of: openedx/public-engineering#247
Timeline
Proposed: 2022-03-01
Updated Acceptance Date: 2024-03-12
Archived: 2024-03-19 (pre-Redwood)
Removal of devstack support from application repositories: 2024-10-10 (post-Sumac)
Replacement
The replacement for Devstack is Tutor. Tutor is "the Docker-based Open edX distribution designed for peace of mind". It is both a deployment tool and a development environment. Tutor has been the only community-support production deployment method since Maple, although the Open edX docs and website do not officially recommend it as a development environment yet.
Rationale
Devstack has several issues:
Tutor shows promise in many of these areas:
tutor dev
segment of the CLI is implemented entirely on top ofdocker-compose
and transparently prints out the underlyingdocker-compose
commands that it runs to aid in user debugging, using terminal colors to call out commands vs tutor logging vs actual output.tutor local quickstart
) and runs fairly quickly. Provisioning can be safely re-run without destroying existing data.For areas where Tutor could be improved, there is an ongoing Tutor Adoption Initiative which aims to support the transition from Devstack to Tutor through a mix of education, plugin development, and core Tutor improvements. Within the initiative roadmap, the "Dev Quality-of-Life" epic contains stories that should ideally close any existing gaps between Tutor and Devstack.
Migration
Many developers can start using Tutor now, and many already are). Particularly, developers whose projects are encompassed by the LMS, CMS, MFEs, and IDAs covered by existing official plugins can generally transition their workflows over to Tutor. On the other hand, for teams that run IDAs with less community adoption (notably, teams at 2U), several new Tutor plugins will be needed in order for Tutor to fully replace Devstack.
There are no plans to help users migrate data from a Devstack instance to a Tutor instance. We recommend that folks start fresh when switching from Devstack to Tutor.
Deprecation & Removal
Deprecation steps
Ctrl+F
the docs for "Devstack", and where appropriate, update them to point at Tutor.dev.up
Makefile target print a deprecation warningRemoval steps
The text was updated successfully, but these errors were encountered: