google / google/codeworld

Blocks needs a definite compatibility story

Open
#258 5 comments 0 reactions 0 assignees View on GitHub
enhancement funblocks
Dominant language
Haskell
Stars
1.3k
Forks
201
PR merge metrics
No merged PRs in 30d

Description

I've noticed that if I use newer versions of CodeWorld Blocks to reopen projects built with earlier versions, I often get a bunch of black bits that no longer work. We certainly can't have future development similarly breaking old student code!

It would be great to:
1. Understand what caused this to happen, and
2. Adopt a set of rules or conventions to ensure that we don't break future student projects.

I'm guessing that this comes from renaming or changing XML formats or something like that with previous blocks. That seems to bring up an interesting point: Blockly versions come and go and things change, so it's important that CodeWorld takes ownership of the blocks that it expects to be available, so we can migrate and deprecate them on a carefully controlled schedule. It looks like right now, some of CodeWorld's blocks are built-in to Blockly... and I fear this is the wrong decision.

Contributor guide

Open the contributing guide

Research direction

No files or tests are identified in the issue. Start by tracing how CodeWorld Blocks projects are represented and reopened across Blockly versions, then define the compatibility and migration rules; done means older student projects reopen without broken blocks.

Written by the indexing model from the issue text.

Assessment

Domain
frontend
Issue type
Feature
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.