Menu

Fuse 1.3.0 Release Plan

Fredrick Meunier Sergio Baldoví Philip Kendall

Required for 1.3.0 release:

  • Preliminary target date: weekend of the 24th September 2016
  • Commit to a version number (probably save 1.3 for a release with new user-facing features vs smaller bug fixes)
  • Documentation updates to reflect new release date/number
  • Check libspectrum ABI compatibilty and set new version-info/soname as required
    • Use rules of thumb from https://autotools.io/libtool/version.html as we have added two methods in no-glib mode
      • Always increase the revision value.
      • Increase the current value whenever an interface has been added, removed or changed.
      • Increase the age value only if the changes made to the ABI are backward compatible.
  • High level ChangeLog summaries
  • Recreated Spectrum keyboard support [patches:#358]
  • Map non-alphanumeric keys to appropriate spectrum characters on win32 UI [bugs:#361]

Notes:

The framebuffer, SVGAlib and Xlib UIs are deprecated and unmaintained
This means:

  • We'll keep them around only until they break
  • We will only take minimal effort to fix them
  • Patches that break them as a side effect will be accepted
  • Patches that fix breaks in these UIs will also be accepted
  • If they are broken when a release is performed, we are most likely to remove them to prevent confusion

Nice to have for next release:

The following are desriable features that have had some significant work done but are incomplete for one reason or another and need further development work to complete. All assistance to address the reamaing gaps to complete the features would be gratefully recevied.

  • Migration from subversion to git
    • See https://github.com/sbaldovi/fuse-git-migration for current work on conversion scripts
    • Will we break the Fuse repository into individual pieces (e.g. fuse, libspectrum, fuse-utils, website)
      • By the lack of opposing voices, this appears to be the preferred option (though will also lose tags and branch information)
      • Prefereably we will have a "full" migrated respository for historical reference as well as the individual pieces
  • Didaktik interface emulation
  • ULAplus
    • [patches:#323]
    • Development on branches/2014-09-07-ulaplus
    • Disable for fb, wii and X11 user interfaces?
      • Done
      • Palette handling needs refactoring
        • Palettes are used in various places inside and outside the Fuse executable (Display code, PNG file handling, FMF movie file conversion) etc.
        • Palettes can vary between hardware (ULAplus/Timex)
        • Supporting limited palette UIs (FB, SVGAlib, portions of Xlib) makes refactoring more difficult due to limited access/interest for development
        • Is it time to retire these UIs to allow easier modifications
    • PNG screenshot writing
    • SCR file read support
    • FMF movie support
      • Add support for mixed screen modes and Pentagon 16C mode to movie capture
      • Add support for new movie capture format to fmfconv
    • Snapshot support
  • Didaktik Gama emulation
  • SDL2 UI
    • [patches:#326]
    • Quite stable
    • We need to be happy with how the new scaler interacts with the old fixed scalers
    • Needs documentation
  • DISCiPLE interface emulation for 128K
  • RZX RollbackTo preview
    • [patches:#320]
    • Does not work for Timex and ULAplus modes
    • May be suitable to limit support to standard ZX Spectrum mode
  • Open recent files on the menu
    • [patches:#282]
    • Uses GtkUIManager which has been deprecated in GTK 3.10
    • The menu handling on GTK+ UI needs a rewrite
    • Defer until there is an alternate implementation that doesn't require GtkUIManager
  • OSD + Hotkeys
  • AMX mouse
  • Currah µSpeech
  • Multiface
  • Debugger
  • Core
    • I'd like to start working towards whatever changes are necessary to get our "forks" (mostly the OS X port and Spectacol, maybe libretro as well) closer to the core code. [patches:#355] has some stuff on this, but almost certainly isn't the whole story.
    • Make libspectrum thread-safe [patches:#356]
      • Add a "standard" thread-enabled vtable
      • Update fuse-utils etc. for the new API
      • Update the libspectrum documentation to describe the standard thread safety features

Related

Bugs: #286
Bugs: #361
Feature Requests: #88
Patches: #142
Patches: #282
Patches: #320
Patches: #323
Patches: #326
Patches: #327
Patches: #331
Patches: #333
Patches: #347
Patches: #355
Patches: #356
Patches: #358
Patches: #362
Patches: #87