Charter
It’s become clear that there is an acute need to support new Tutor users and plugin developers. It’s also clear that Tutor maintainers benefit from hearing feedback from people who are using the tool.
Please join our users’ group for sharing help, tips, and feedback on using Tutor and developing Tutor plugins. Bring your questions, and get ready for some live debugging! Expert or newbie, all are welcome.
Announcements will be posted to Slack in #tutor-maintenance
Recordings
All public Working Group meetings follow the Recording Policy for Open edX Meetings
https://drive.google.com/drive/folders/1jHyN3DMxwfNEgPxiUJOJS3Q3mb0Z0uMx
Agenda and Notes
We meet every other week. Our schedule and video conferencing link is on the Working Group Calendar. The meeting is usually hosted by Kyle McCormick .
You can add topics below ahead of time, or add them during the meeting.
2024-06-03
MFE build time (below)
Configuring open edx services with tutor
Moises and Maksim work on large instances group
Some of tutor’s default were meant to simplify setup
For large instances, they need to undo tutor’s defaults
example: celery queues
tutor uses one celery queue
at scale, the queue can fill up
using patches, large instances has been undoing tutor’s configuration changes
edx-platform is complex to follow, with all the indirection
related: OEP-45 simplification
could be better to have a blank slate
edunext had to replicate ansible installation settings, using tutor
they are using settings patches
yaml settings patch
common settings
production patches
some files don’t have patches
Having plugins expose configuration interfaces
tutor-contrib-pod-autoscaling
rather than add more config settings, the plugin
2024-05-20
MFE build time
1hr+ to build MFEs
Number of MFEs has not changed since Quince – 10 (https://github.com/overhangio/openedx-release-demo/blob/master/.github/workflows/deploy.yml#L101 )
Custom npm registries
Local deployment of an npm registry
vs. shared npm registry
devstack had devpi for python reqs
devpi is pretty easy to set up
install vs build - which is the problem?
both
building all MFEs (except Learner Dash) without cache on AWS spot fleet m5.xlarge
parallelism=4
Duration: 43 minutes 4 seconds
Max number of simultaneous connections to npm registry by IP address
why does the network connection break when we have too much parallelism in the build?
this seems different than the npm connection limitation. seems that the host’s network connection is failing
saturation of bandwidth?
to build mfes in sandbox, had to explicitly set max_parallelism=2
Solutions
Sharing dependencies across MFEs
“No New MFEs”
Remote registry
Axim-provided registry? network of registries, different providers in different regions
Local registry
This can definitely have multiple versions
Local cache. Two potential issues:
1. ensure that it’s actually caching anything at all:https://discuss.openedx.org/t/npm-clean-install-in-mounted-directories-sh-super-slow-on-tutor-nightly-dev-with-mounted-edx-platform/12761/3
2. version conflicts across MFEs may invalidate a shared cache
Other solutions (not currently following up on)
Pre-built image with some deps
Max has tried this
Install one mfe’s deps using previous mfe as a base
Used pnpm – can handle multiple different versions of package
pnpm didn’t work out of the box
pnpm , workspace for each mfe
2024-05-06
…
2024-04-22
Present: several people
2024-04-08
Meeting link: https://meet.google.com/rhs-veey-rrp
Present: Chintan Joshi , Danyal Faheem, Dave Ormsbee (Axim) , Dawoud Sheraz , Deimer Morales ,Maksim Sokolski, Maria Grimaldi, Qasim Gulzar , Régis Behmo
Integrate Tutor with IntelliJ IDEA/Pycharm (by Qasim Gulzar@edly)
Recording: https://drive.google.com/file/d/13yNuZktzCOIg6_Hym9_peZmD-RC-CgD_/view
The tutorial instructions will be published soon-ish in a dedicated space.
In the meantime, we can reproduce the instructions with the video recording.
Instructions are still hackish and a little brittle, we can definitely work to improve them.
How to track the eclipse with Tutor (byRégis Behmoif time permits)(it did not)
Notes:
MongoDb 7 upgrade: scheduled for Redwood
utf8mb3 upgrade. We reached the following decisions for Redwood:
upgrade the connection string and the database default charset to utf8mb4 for all platforms
For existing platforms, upgrade the default database charset (with
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
).For existing platforms, convert tables in a conservative manner, using instructions similar to:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
. The list of candidate tables is available here.Implementation of these decisions can be followed in this GitHub issue: https://github.com/overhangio/tutor/issues/938
MySQL high memory issue on Arch Linux: https://github.com/docker-library/mysql/issues/579#issuecomment-1075119349
It was suggested that Arch users manually create a docker-compose.override.yml file.
We should update the troubleshooting instructions for Arch Linux users. Deimer Morales can you please open a pull request to update the Tutor docs?
2024-03-25
Auto-mounted directories
Can we add mount keywords in our own plugin? → yes, or open a PR to upstream plugin
Do we list the keywords anywhere? example,
platform-plugin-
The exact list is not documented anywhere
MFE mounts
Tried to mount custom mfe – couldn’t do it
used command line mount
did not see the mfe on the port
seems like folder was mounted, but MFE filter wasn’t added to, so the tutor-mfe plugin didn’t know to build/run the mfe
How Zach did it:
Let’s talk about MFE image building… why we (usually) don’t need to re-build, and figuring out this Docker build cache madness. (Régis Behmo )
Theoretically, rebuild should only happen if (1) we change an MFE and (2) we’re pushing it to production
Errors when installing node_modules
npm error, socket reset, registry hangup
Docker build cache size needs to be set large enough so that it doesn’t get garbage collected between mfe builds
need to change a config item in $HOME/.docker/daemon.json
If you think you rebuild too often, try upping docker build cache max size
Talked about https://github.com/kdmccormick/tutor/pull/34 - kyle will continue to work on
Production vs dev flow in docs - docs nudge you towards production flow
Remote image building - anyone?
edunext has - they build tutor-nightly images on an ec2 instance
20-30 minutes for uncustomized mfe image
custom multiarch builder - regis builds macos images even though he doesn’t have a mac
Older Notes
Paste old notes here.