NetLogo / NetLogo/LevelSpace

Problem with LS models being edited in tabs while also edited in real NetLogo instance

Open
#134 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
20
Forks
8
PR merge metrics
No merged PRs in 30d

Description

This is borderline user-issue, and not really a code issue. But given that we want the IDE-part of LS to be good, I still think this is something we should consider:

I was working on a model this morning and had to create a LS child model. I realized pretty quickly that I had to edit the interface of the child model, and I therefore had to open it in a full-fledged NetLogo instance, so that's what I did.

I worked on the child model for a while in a separate instance, closed it down, and then shut down the NetLogo instance with the main model in it, which ALSO contained the child model in a separate tab.

I didn't think too much about it when NetLogo asked me if I wanted to save changes to the model, because I thought it was asking me about the main model. Unfortunately it meant the child model, and all the work I had done on it in the other instance was overwritten.

I am not totally sure how we should handle this, but the easiest way is to make very clear that saving a model will also save the child model, or to pop up a special "HEY USER, PAY ATTENTION!!!!" message when it tries to save a LevelSpace model.

Alternatively we could check if there is a .tmp file that has been saved more recently than the one that LevelSpace child-tab. I can see all kinds of horrible issues with this solution, but I also like it.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. First clarify the intended behavior for saving a LevelSpace model when a child model was edited elsewhere, then identify the save and child-tab handling code; done means an agreed behavior prevents accidental overwrites and is covered by a reproducible test.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.