Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cytoscape v4 -- planning for breaking API changes #2019

Open
18 tasks
maxkfranz opened this issue Nov 10, 2017 · 5 comments
Open
18 tasks

Cytoscape v4 -- planning for breaking API changes #2019

maxkfranz opened this issue Nov 10, 2017 · 5 comments
Labels
pinned A long-lived issue, such as a discussion
Milestone

Comments

@maxkfranz
Copy link
Member

maxkfranz commented Nov 10, 2017

Brainstorming of improvements that would cause breaking changes for a potential, future v4:

Modernising:

Improving formatting & naming:

  • ele.json() returns classes as an array
  • Make percent values be specified on [0, 1] when no units are specified, e.g. 0.5 is the same as 50%. In v3, if you specify 0.5, you will get 0.5%.
  • Make the { nodes: [], edges: [] } elements JSON format no longer the default for cy.json() export. Instead use, the plain array format.
  • Rename the core selector to cy, by default. The core value should still work, but it won't be returned by cy.json().

Improved defaults:

Removing deprecated features & other mistakes:

Moving features to external extensions or libraries:

  • Remove cose from the core bundle and make it an external extension. The force-directed layout that a programmer should choose by default is fcose.
  • Remove selectionType: 'additive' from the core lib and turn it into an extension
@pmackay
Copy link

pmackay commented Jan 31, 2018

ele.json() returns classes as an array

Does this mean that it would include classes as well as other data?

Is there any way currently to get the list of classes an element has?

@maxkfranz
Copy link
Member Author

Does this mean that it would include classes as well as other data?

classes: ['foo', 'bar'] versus classes: 'foo bar'

Is there any way currently to get the list of classes an element has?

ele.json().classes

@maxkfranz maxkfranz added this to the future milestone Mar 5, 2018
@StevenLangbroek
Copy link

Since a class is a concept in Javascript now, maybe it's better to use classNames? Ecosystem seems to be standardising on this.

@maxkfranz
Copy link
Member Author

maxkfranz commented Mar 13, 2018

Yes, but that wouldn't have to be a breaking (v4) change. The old key could still be supported.

Edit: We may want to use ele.classNames() with the ideal signature in v3 and then in v4 make a breaking change so that ele.classes() matches ele.classNames(). See #2110

@maxkfranz maxkfranz modified the milestones: future, 4.0.0 Oct 19, 2018
@maxkfranz maxkfranz added the pinned A long-lived issue, such as a discussion label Oct 1, 2019
@maxkfranz
Copy link
Member Author

This issue is for discussing v4 API -- i.e. breaking API changes. If you have a general feature in mind that is additive w.r.t. API, then feel free to make an ordinary feature request and the corresponding pull request.

@maxkfranz maxkfranz changed the title Cytoscape v4 changes Cytoscape v4 -- planning for breaking API changes Dec 19, 2019
This was referenced Nov 30, 2020
@maxkfranz maxkfranz mentioned this issue Sep 28, 2023
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pinned A long-lived issue, such as a discussion
Projects
None yet
Development

No branches or pull requests

3 participants