Skip to content

Release notes

Jeremy B edited this page Jan 10, 2024 · 18 revisions

The NetTango core library is published to the npm directory. It's primary user-facing product is in the beta release of the NetTango Builder, that is included as part of NetLogo Web. The notes here contain information on both the core library and the builder web application.

Updates to NetTango core library and the NetTango Builder are published to the NetLogo Web staging site for testing before release. If a production NetLogo Web release hasn't gone out with a new NetTango feature, you may still be able to use it (and test it) in the staging site.

Builder with NetLogo Web 2.10.7 (1.0.4, production)

  • Small bug fixes.

Builder with NetLogo Web 2.10.4 (1.0.3)

  • Small bug fixes.

Builder with NetLogo Web 2.10.3

  • Better support for right-to-left languages in block definitions, chains, and attributes.
  • Changes to block definitions could cause erroneous errors to occur.
  • Fix the display of the view widget border.

NetTango 0.16.5 (production) - Designated 1.0.2 for reporting and future releases

  • Better support for right-to-left languages
  • Fix bug with NetLogo view border display
  • Fix bug with project updates causing silent errors

Builder with NetLogo Web 2.9.11

NetTango 0.16.4

  • Show code tips for menu blocks in play mode
  • Use NetLogo syntax highlighting for code tips

NetTango 0.16.3

  • Add quote settings to attributes

NetTango 0.16.2

  • Wrap text in code tip pop-ups

Builder with NetLogo Web 2.9.10

  • Fix typo in the export project JSON quick help.
  • Support for variables and code format defaults.

NetTango 0.16.1

  • Code format defaults for NetLogo code like procedure end and control statements [ and ] are no longer provided by NetTango core, they are set by the builder. Existing projects will be auto-updated to have the defaults set. This way they can be more easily changed, especially to be blank.

NetTango 0.16.0

  • Clicking a menu group header can collapse or show the blocks.
  • Variables are loaded and displayed in expression attributes, filtered by tags.

NetTango 0.15.5

  • Don't create extranseous dialog HTML elements.
  • Make sure new chains obey code tip settings.

Builder with NetLogo Web 2.9.9

  • Includes drag tolerance change.

NetTango 0.15.4

  • Reduce tolerance for drag start when clicking block instances.

Builder with NetLogo Web 2.9.8

  • No longer use the NetLogo model recompile overlay when NetLogo code fails to compile. It's no longer needed with other changes to NetTango Web.
  • Support NetTango 0.15.0 to 0.15.3 features, creation and editing of block menu groups and setting code tip options.
  • Update the official NetTango Web tutorial link to the new location.

NetTango 0.15.3

  • Do not start drag events when clicking on an attribute value.

NetTango 0.15.2

  • Add option to disable block code tips.

NetTango 0.15.1

  • Raise events on menu group clicks.

NetTango 0.15.0

  • Add menu groups that contain all blocks with the configured tags.
  • Block code tips now show using right-click or long press on the title.
  • Keep block menu vertical scroll offset when changes are made

NetTango 0.14.11

  • The block menu items can be re-ordered by drag and drop.
  • Add options parameter to the restore method, and a parameter to disable block drag and drop re-ordering.
  • Rename BlockChangedEvent to BlockInstanceEvent.

NetTango 0.14.10

  • Internal refactoring only.

Builder with NetLogo Web 2.9.7

  • Fix spacing on submenu items in the workspace menus.
  • The block edit form preview will now properly reset when changes to the block are made.
  • Rework how NetTango Web starts up to work with Safari.

Builder with NetLogo Web 2.9.6

  • Fix issue with loading the NetTango Web projects library when running outside of netlogoweb.org.
  • Change default NetTango project to display side-by-side with NetLogo and have some default NetLogo code.
  • Keep the NetTango menu at the top of the work area at all times.
  • Visual tweaks to the menu bar and popup menus to make them "feel" more like proper menus.
  • Keep the NetLogo model as compact as possible.
  • When creating or editing blocks with tag restrictions, sample blocks with those tags will be added to the preview.
  • The block preview will always stay in view in the block edit form.

NetTango 0.14.9

  • Bugfix: Handle null version fields as "version 0".
  • Compatibility: Add some version 1 conversions for starter blocks being required and pre-quoted select option values being never-quote.

Builder with NetLogo Web 2.9.5

  • Fix bug in the Tortoise compiler that caused blocks using extension commands to fail to recompile properly.

Builder with NetLogo Web 2.9.4

  • Updates to the 0.14.8 NetTango core release.

NetTango 0.14.8

  • Remove empty chains on initialization when a block definition and its instances were removed from a project.
  • Hide the scroll bar overflow in the menu for the rounded corners.

Builder with NetLogo Web 2.9.3

  • Updates to the 0.14.7 NetTango core release.
  • Automatically recompile the NetLogo model when the NetTango blocks change.
  • Let the NetLogo code tab comment/uncomment hotkey work in NetTango Web as it does in NetLogo.
  • Updates to the Wolves and Sheep sample project to use the new default styles and expressions from NetTango core.
  • Better handle NetTango project errors on load that also cause NetLogo code errors at the same time.
  • Added a NetTango models library, available from the Files menu.
  • NetTango models will now automatically recompile their NetLogo code whenever block chains are updated. The recompile button is now only needed when errors occur in the NetTango blocks code when a model is loaded.
  • Added observer as one of the default tags, in addition to turtles, patches, links, and breeds.

NetTango 0.14.7

  • Properly use chosen border colors on block instances inside clauses.

NetTango 0.14.6

  • Switch to more accessible default colors for blocks.
  • Maintain a list of default expressions internally so they don't have to be provided with the workspace.

NetTango 0.14.5

Internal changes only.

NetTango 0.14.4

  • The escape key can banish the attribute dialogs.
  • Expression values can be properly reset.

NetTango 0.14.3

  • Added a none-of tags option for allowed tags properties. It includes a tags array of strings that will not be allowed to be dropped on a chain/clause.
  • Added a number input box to range attributes, so they can be directly type in instead of only using the slider.

Note that version 0.14.1 was improperly released, so it is published as 0.14.2. It included refactors and bugfixes only.

NetTango 0.14.0

I switched to using the Zod library for validation and parsing of JSON data instead of the bespoke serialziation code we had. This gives us a better strongly-typed basis for working with NetTango project data. I made the split between block definitions and block instances more deliberate and clearer. I also better differentiated between the NetTango project data and the NetTango UI components that render that data.

As usual, on import models version 5 or less will be auto-updated to the format. You can now see the expectations for the version 5 model in the types-5.ts file, and the new and current types in the types.ts file. One of the benefits of the switch is the clear documentation of the format. These types files will continue to be added and updated as the data format gains new versions.

Model changes for block definitions:

  • Blocks that were part of the workspace.blocks collection are now referred to as block definitions. They no longer have the now instance-only fields: instanceId and propertiesDisplay.
    • Also, required is renamed to isRequired.
  • Clauses in block definitions no longer have a children field, it was moved to the clause instance as blocks.
  • Attribute definitions no longer have the id, value, or expressionValue fields.
    • Instead of having unique attribute IDs per block, attributes are now referenced simply by their index in the block's containing collection, params or properties.
  • Number attribute definitions (int and range) formerly allowed strings as their defaultValue, but now they must be numbers.

Model changes for block instances:

  • Blocks that were in chains in the workspace.program.chains collection are now referred to as block instances. They now only retain these fields: instanceId, clauses, params, properties, propertiesDisplay, with the clauses, params, and properties getting instance-specific data as well.
    • The definitionId field replaces the id field for determining which block definition an instance was made from.
    • Additionally, block instance IDs will be reset when the model is updated to version 6.
  • Clause instances have their children field renamed blocks and that is the only field they retain.
  • Attribute instances retain the type, value, and expressionValue fields only.
  • The text and select attribute instances will have string value fields.
  • The int and range attribute instances will have number value fields. Formerly strings were allowed.
  • The num and bool attribute instances will have Expression value fields. Formerly strings were allowed.

Previously when saving a model out of NetTango many fields that had default values would be removed. This is no longer the case and default values will still be in the saved model. New models generated outside of NetTango can continue to omit any defaults when restoring the workspace, so you can still do things like NetTango.restore("my-workspace-id", {}).

API changes:

  • The NetTango.relayCallback() method has been removed. It was only used internally.
  • The NetTango.formatAttributeValue() method signature has changed, it now takes in the block definition and instance IDs as well as a boolean isProperty value that indicates if an attribute is a parameter or a property on a block.
  • A NetTango.hasWorkspace() method has been added that takes in the container ID of a workspace and returns true if the workspace exists or false otherwise.

Builder with NetLogo Web 2.9.0 release

  • Centralize error reporting, properly report on a few more errors.

Builder with NetLogo Web 2.8.4 release

  • Put duplicated blocks in the same workspace after the original in the menu.
  • Changes to support the TypeScript conversion.

NetTango 0.13.5

  • Take menu scroll into account for menu block drag start.
  • Use the precision of the step size when calculating values for number attributes.

NetTango 0.13.4

  • Properly serialize expression definition formats to and from JSON.

NetTango 0.13.3

  • Properly make dropdown click handlers for properties.
  • Tweak the select attribute dropdown to work better when overlapping CodeMirror elements.

NetTango 0.13.2

  • Bug fixes from the TypeScript conversion.
  • Note that version 0.13.1 was published incorrectly, so is not used.

NetTango 0.13.0

  • Convert the NetTango core project from Dart to TypeScript

Builder with NetLogo Web 2.8.2 release

  • Update the NetTango URLs to not be abbreviated, so https://staging.netlogoweb.org/nettango-builder A redirect is in place for the /ntango-build URL, and existing use of the /ntango-play URL should continue to work, but /nettango-player is the preferred spot now for hot-linking an embedded model.
  • Blocks now have tags that can be added to restrict their placements in a program, either to enforce the rules of the model domain or to avoid syntax errors from out-of-place blocks. All non-starter blocks have a Tags section, and starter blocks and clauses have a section to set the Allowed Tags that can be placed in them. The Allowed Tags can be locked down to all tags, any of a set list of tags, or to use the allowed tags setting of the container (only useful for clauses).
  • Allow non-procedure blocks to be designated as terminal, meaning no blocks can be added afterwards in the chain - useful for things like die.

NetTango 0.12.0 (production)

  • Support for context tags and allowed tags.
  • Highlight the allowed drop location for blocks based on tags and allowed tags when dragging with an arrow.
  • Do not output totally blank lines to code for empty chain/clause formats.

Builder with NetLogo Web 2.8.0 release

  • Hide the NetLogo tabs area border when no tabs are shown.
  • Add syntax highlighting for all NetLogo code areas as well as JSON definitions and custom CSS.
  • Make sure JSON definition manual changes can be undone and redone.

NetTango 0.11.6

  • Check for NetLogo color values when updating a select attribute, and set quoteValues to never-quote if they're found.

Builder with NetLogo Web 2.7.3 release

  • Include NetTango up to 0.11.6.
  • Support multiple-clause blocks, like if-else-else...
  • Add a NetTango block preview area to the block edit form
  • Add a wrapping procedure default block
  • Don't open block prop/param sections with 0 items by default
  • Add support for setting terminal blocks and close chain code format
  • Move the per-space recompile button to the title area
  • Make the block styles section resemble the other sections in the block edit form
  • Rounded off any UI elements with square broders, cleaned up some UI elements/colors, move the recompile button to the workspace title area, keep the rounded borders of the NetLogo tab area.

NetTango 0.11.5

  • Bugfix: Properly set background color for caps
  • Bugfix: Make sure attribute buttons don't submit edit forms
  • UI: Round off the OK/Cancel attribute change buttons
  • UI: Do not default to code as clause divider text

NetTango 0.11.4

  • Model: Add a starter block chain close code format override field, closeStarter
  • Model: Let some blocks be terminal, isTerminal, to end chains or clauses
  • Model: Add an action field to label clauses in a chain
  • Model: Add a closeClauses field for blocks to insert after clauses
  • Refactor/UI: Clauses draw their dividers and uniform appearance for clause blocks
  • Refactor/UI: Change CSS class names for block headers to first and last
  • Replace attribute placeholders in all code format locations
  • Bugfix: Properly clone clauses to chain blocks

Builder with NetLogo Web 2.7.2 release

  • Include NetTango up to 0.11.3.
  • Bugfix: Properly set HTML element IDs on select attribute form elements to avoid duplicates.
  • Bugfix: Avoid loading model dropdown in standalone/play mode.
  • Bugfix: Make sure to update undo/redo stacks when block changes occur in NetTango core.
  • Bugfix: Allow repeated upload of the same NetLogo model for a NetTango builder project.
  • Bugfix: Properly hide the NetLogo Code area in standalone pages.
  • Bugfix: Properly set HTML element IDs on some attribute form elements to avoid duplicates.
  • Updates to make sure all attribute values are properly quoted in excecuted code and in the displayed code.
  • Add an export NetLogo model option to the Files menu.
  • Move the wolves and sheep sample model load to the Files.
  • Include procedures from NetTango in exported NetLogo models for easier offline editing. Also, strip the included procedures on re-import to NetTango.
  • Increase the maximum settable workspace height.
  • Remove the darkening overlay when the option and block edit forms are active so colors from existing blocks can be chosen with a system color-picker.
  • Add a menu-item to duplicate blocks between workspaces.

NetTango 0.11.3

  • Model: Save and restore extra definition properties that are given with the model JSON.
  • API: Swap the placement property to be string-based, update the exported NetTango.blockPlacementOptions values. The number-based code was never released, so no need for a version manager update here.
  • API: Also export the quoteValues options for the select attribute type as NetTango.selectQuoteOptions.

NetTango 0.11.2

  • Docs: Some README.md updates, copyright notice updates, remove out-of-date examples.
  • Model: Split the required property on blocks out into required and placement. Before every required block was assumed to be a starter, this is no longer forced to be true.
  • Model: Remove the children property from blocks in favor of multiple clauses. Now the number of clauses a block has is directly determined by the number of entries in the clauses property.
  • Model: Add optional open and close properties to the clause objects, which can include extra code to be written when the clause is opened or closed by the formatter.
  • Model: Add a quoteValues property to the select attribute type to control if its values should be left bare in code (as with language-specific literal values like NetLogo's colors) or quoted.
  • API: Export a NetTango.formatAttributeValue() function that will get the same quoted code value the formatter would generate.
  • Improve the quoting of attribute values that are inserted into code, leaving number and expression type attribute values unquoted, quoting text attribute type values, and "smart quoting" select attribute type values depending on apparent type.

NetTango 0.11.1

  • Bugfix: Give proper display values for select attributes.
  • Bugfix: Properly handle converted expressions with non-string values.
  • Use the block text color as attribute background color for better readability with light colors.

NetTango 0.11.0

  • Bugfix: Set a proper height for top-drop fragment chains when blocks are dragging.
  • Model: Move the x/y position for each chain to the chain itself and out of the blocks entirely.
  • Model: Make the select attribute use a structure option class.
  • Refactor: Move all serialization/deserialization to JSON code to centralized locations.

NetTango 0.10.6

  • Bugfix: Make sure to allow only integers when loading older models.
  • Increase the size of the top/bottom block drop zones.

NetTango 0.10.5

  • Model: Standardize on integer values for block chain positions.
  • Model: Maintain the shown or hidden state of the properties list in a chain block with model save and load.
  • Use a touch-aware drag and drop library so blocks can be dragged and dropped.

Builder with NetLogo Web 2.7.1 release

  • Bugfix: Properly get project title for export.
  • Include NetTango 0.10.4
  • Undo and redo for NetTango operations.
  • Unify the NetTango file operations into a Files menu.
  • Add support for editing the block note field for code tips.

NetTango 0.10.4

  • Model: Add a note field for blocks to display along with the code tip hover.
  • Display a code tip hover on menu blocks in addition to program chain blocks.