Part of #617.
What to build
The plugin skeleton and the command that creates a learner workspace.
plugins/l/learn/
xmake.lua package("learn") set_kind("plugin")
src/
xmake.lua task("learn") + set_menu
main.lua entry point
modules/ (added by later issues)
workspace/xmake.lua copied into the learner's workspace
xmake learn init [dir] creates:
<dir>/
xmake.lua add_repositories(...) + add_requires("enginesquared", {configs = {core_only = true}})
exercises/ copied from the plugin payload
.progress/ state, gitignored
.learn-mode "tutor"
The generated xmake.lua derives one target per exercise directory from the numeric folder prefixes, each set_default(false) so nothing broken ever builds by accident. No git anywhere in the flow.
Done when
- xmake plugin --install of this repository registers a working xmake learn
- xmake learn init dir produces a workspace that configures and builds a placeholder exercise on Linux, macOS and Windows
- the workspace needs no xrepo add-repo from the learner
Depends on
EngineSquared/xrepo#1, #618, #619
Reactions are currently unavailable
Part of #617.
What to build
The plugin skeleton and the command that creates a learner workspace.
plugins/l/learn/ xmake.lua package("learn") set_kind("plugin") src/ xmake.lua task("learn") + set_menu main.lua entry point modules/ (added by later issues) workspace/xmake.lua copied into the learner's workspacexmake learn init [dir] creates:
<dir>/ xmake.lua add_repositories(...) + add_requires("enginesquared", {configs = {core_only = true}}) exercises/ copied from the plugin payload .progress/ state, gitignored .learn-mode "tutor"The generated xmake.lua derives one target per exercise directory from the numeric folder prefixes, each set_default(false) so nothing broken ever builds by accident. No git anywhere in the flow.
Done when
Depends on
EngineSquared/xrepo#1, #618, #619