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

Miscellaneous TODOs #29

Open
9 of 32 tasks
ekuiter opened this issue Feb 14, 2019 · 0 comments
Open
9 of 32 tasks

Miscellaneous TODOs #29

ekuiter opened this issue Feb 14, 2019 · 0 comments
Milestone

Comments

@ekuiter
Copy link
Owner

ekuiter commented Feb 14, 2019

Some TODOs and ideas for future extensions.

  • cross-tree constraint editor (=> moved to Constraint editor #16)
  • provide other techniques for drawing links (not only curved, but also straight lines etc.) as settings in the settings panel
  • BDD updating (i.e., do not always recompute SAT, but only update (not reconstruct) a BDD) for analysis instead of SAT (is it feasible in spite of space complexity?)
  • abstract away things like a Concurrency- or SynchronizationStrategy, if we implement different ones (=> use different kernels)
  • let users decide which undo/redo model to use (at least: global undo +
    some sort of local undo) (=> only chronological undo)
  • currently, we identify features by name. DarwinSPL identifies features by
    reference (i.e., UUID), which simplifies renaming operations and allows
    duplicate feature names. is this a good idea? => yes, simplifies concurrency.
  • handle missing elements of FeatureIDE's feature model format: struct, constraints, properties, calculations, comments, feature-order, rule (=> replaced by our own feature model format tailored to collaborative editing)
  • publish project, add logo (favicon, readme, github deploy button)
  • when project is public, add Travis CI (and maybe coverage) badge to README.md (possibly also deploy batches for Netlify, Bluemix and Azure)
  • might combine with a configuration recommender system (which features are chosen often together, see Pereira et al.)
  • EFM (extended/attributed feature model) support
  • auto-calculate metrics for configurations (from extended attributes)
  • recommend good/often-used configurations
  • minimap for big feature models (like Sublime Text)
  • analysis results webrtc? how to guarantee certain analysis results? i.e., the editor should have a mode in which it's guaranteed that the FM will never be inconsistent (no products) and otherwise edits will be rejected
  • "share feature model" via link so that others can see it (i.e., routing for projects and artifacts - e.g., http://.../project/artifact)
  • a nice way to visualize kernel state in our editor? visually integrated into the editor (debug mode)?
  • logging and statistics for operation types, conflicts, kernel performance (garbage collection), undo etc.
  • SPLOT seems to be used in a lot of literature, especially for its feature model repository. maybe it would be good to add the SPLOT feature model format as input type to variED/FeatureIDE
  • PDF export seems to work, but PDF is then broken in LaTEX export
  • for validity and sanity checks in the kernel, use :pre and :post of defn (https://github.com/bbatsov/clojure-style-guide#pre-post-conditions)
  • in the kernel, use alter-var-root instead of def (https://github.com/bbatsov/clojure-style-guide#alter-var)
  • instead of implementing feature models once in Clojure, implement them both in TypeScript and Java. This way, no more conversions to/from Clojure are necessary (better performance for bigger feature models, can avoid FM-encodecall) (see Optimize kernel performance #32)
  • display a * in the window title whenever unflushed messages exist (consistent with the onBeforeUnload handler)
  • make the command palette touch friendly (scrollable)
  • use code spliting to load the kernel only when requested (dynamic import). This is useful to shorten the initial load time. When a user requests to join, the dynamic import can be issued simultaneously with the JOIN_REQUEST (Promise.all), which needs some time anyway.
  • add a "feedback box" where users can suggest improvements etc.
  • make a general notification scheme, where the server notifies the client (error or info level) and the client displays the message as a toast (e.g., "booting up kernel" etc.)
  • import SPLOT models (has a rich feature model repository)
  • move subtree only shows non-collapsed features, is this intentional?
  • the vertically split constraint view vanishes in Firefox when the command palette is opened
  • collapsing, then expanding a feature does not remove the feature number indicator below
@ekuiter ekuiter added this to the Long-term milestone Feb 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant