#Stacks
A stack is a named, ordered list of modules. Use one when a set of modules is really a sequence: a networking unit taught over three weeks, a contest prep ladder, the labs that make up a semester. The stack keeps that order in the product instead of in a spreadsheet, and it shares as a single unit.
Stacks live under Library > Stacks in the sidebar, next to Modules. Both teachers and organization admins can create and edit them.
#Creating a stack
- Go to Library > Stacks and select New Stack.
- Give it a name and a description. The name is unique within your organization.
- On the stack page, select Add modules and pick the modules you want.
- Reorder with the arrows, then select Save order.
A stack can hold any module your organization can see: modules you own, modules shared with you, and public modules. Nothing is copied. A stack points at the live modules, so an edit to a module shows up everywhere the module appears.
#Sharing a stack
Sharing works the same way module sharing does, at consumer or maintainer level, and it carries the modules with it.
When you share a stack, every module in it that your organization owns becomes readable by the receiving organization at consumer level. You do not have to share those modules one at a time. Add a module to a stack that is already shared and the receiving organization can see it immediately. Remove the share and that access goes away with it.
Two limits are worth knowing:
- Only your own modules travel. If your stack contains a module owned by a different organization, that module does not become visible to whoever you share the stack with. You cannot pass on access you were given. The share dialog lists any modules in this position before you confirm.
- The cascade grants read access only. A maintainer share on the stack still gives the other organization consumer access to the modules inside it. Receiving a curriculum is not permission to rebuild the modules in it. To grant that, share the module itself at maintainer level.
Only the organization that owns a stack can share it. A maintainer can curate the list but cannot decide who else receives it.
As with modules, the share dialog lists organizations you have already shared with. To reach a new one, use Add an organization and their admin's email address. See Adding an organization you have not shared with before.
#Making a stack public
A public stack is visible to every organization in the deployment, exactly like a public module.
Every module in the stack must already be public before the stack can be. If any are not, publishing is refused and the offending modules are named. For modules you own, the stack page offers to publish them and the stack together in one step. For a module owned by another organization, only that organization can publish it, so remove it from the stack or ask its owner.
This is deliberate. Making a module public hands it to every organization in the deployment and is not meaningfully reversible, so it stays an explicit choice rather than a side effect of publishing a stack.
#Archiving a stack
Archiving hides a stack from every view, including the owner's, and revokes its shares. The modules in it are untouched. Archiving a stack never archives a module.