UniFormal / MMT

The MMT Language and System
https://uniformal.github.io/
Other
68 stars 23 forks source link

Streamline MMT setup for new developers #518

Open katjabercic opened 4 years ago

katjabercic commented 4 years ago

@lambdaTotoro @tkw1536 @Jazzpirate @ComFreek

There are currently lots of small things that can go wrong when new developers set up MMT.

In my observation, different things go wrong for different students, and if a single thing goes wrong, students are foten lost. Even worse, they start trying different things, which makes their setup un-debuggable, especially remotely.

Possible issues include:

We need to streamline this process with a single, simple setup that works for everybody.

Possibilities:

Use the same folder structure for MMT/UniFormal and MathHub for everybody. When installing MMT, this is currently

Handcraft some files in .idea and all *.iml files using relative paths only and check those in. Then update the documentation to make new developers import an existing IntelliJ project.

tkw1536 commented 4 years ago

See also: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

ComFreek commented 4 years ago

Modern versions of sbt do not always build MMT correctly even though the sbt specification says they should.

I think we should fix this anyway regardless of any other issue raised here.

Some people run sbt from within IntelliJ, possibly also using it to import the project in the first place. Others install sbt separately and run it on the command line.

Also watch out that building in IntelliJ, building with SBT from within in IntelliJ, and building with SBT from command-line are three different things. (IntelliJ comes with bundled with an internal SBT installation)

If possible, I'd always avoid touching SBT on my own and just let IntelliJ do its import/building.

Re your suggested relative layout of MMT and archives:

florian-rabe commented 4 years ago

Ideas from systems meeting today:

Jazzpirate commented 4 years ago

Currently existing sbt tasks:

florian-rabe commented 4 years ago

install: I think only jedit/install does anything, that's helpful but replacible

deployLFCatalog: not sure but probably not needed soon; at least preserve it as a commented out target

cleandoc: presumably needed in conjunction with apidoc

apidoc: might be work to redo differently; so probably has to be kept

ComFreek commented 4 years ago

For the record (already talked with @Jazzpirate), the SBT file has been previously adapted such that MMT can be pulled as an SBT dependency in other projects (e.g. FrameIT's server). Details can be found at my StackOverflow question for that.

I think we want to remain compatible with external projects depending on MMT.

Jazzpirate commented 4 years ago

It actually looks like there's no way to specify an artifact build in an sbt file such that IntelliJ adds it to its artifacts after importing... if anyone can find out something that would be great, but google seems to not yield any helpful results

tkw1536 commented 4 years ago

Closest thing I'm aware is running an "sbt task" from within IntelliJ. But that does require some manual configuration, see https://stackoverflow.com/a/39408495/11451137.

ComFreek commented 4 years ago

IMO, #477 is on the critical path of streamlining, too. As of now, Windows users need to install Bash and put it on PATH to be able to use the MMT IntelliJ plugin.