Skip to content

Things for Next Release

davidbannon edited this page Jan 13, 2022 · 30 revisions

Release Plan

With v0.34 out now, tomboy-ng release cycles are a little longer. Given that basic functionality is almost all there now, we can afford the luxury of a beta release cycle before formal release, the extra testing period will ensue a quality release and avoid bugs that sometimes creep in that require an unexpected (to me) combination to demonstrate.

New Features

Any, all or even none of these may make it into v0.35 or beyond.

Calc separator

In the calculator, many countries use the comma instead of a period as a decimal separator. Turns out this could be quite a challenge, my apologies to people from locales where this is an issue. https://forum.lazarus.freepascal.org/index.php/topic,56305.msg418384.html#msg418384

Reindex when note added externally. Done, in 0.35

When adding a file as a note in the repo, from the command line, we should be able to notify the existing instance that it should reindex ?

Run autosave in a separate thread (Done in v0.34).

This will deliver two advantages :

  1. Will be less obtrusive to a user busily typing away, may help with some existing issues.
  2. By taking save out of a critical timing loop, I can do a better job of saving, in particular, make the xml pretty.

I have already made the Normalising code from commonmark a separate unit. So, the current SaveNote unit will just scan the kmemo putting appropriate content into a TStringList and returning that to editBox. That will still be done in the main thread, has to as its accessing KMemo. But once that is done, we fork a new thread and it will tidy up the xml, add header and footer to TStringList and save it. All Done.

Run auto sync and snapshot in separate thread

Will avoid a few seconds of non responsiveness, particularly at startup.

Run indexing in separate thread (done in 0.33)

Ctrl-Z, Ctrl-Y (done in 0.33)

Ctrl N

When focus is on the Search Window, seems that a Ctrl-N can go to a number of controls with being acted on, that is, a new note please. Done in v0.32b - confirm this, I don't think its working ???

Sorting of Notebook List

Hmm, just alphabetical I guess ? Done in v0.32b (done in 0.33)

Exporting (and importing ?) Done, in 0.35

Update - TomboyTools has now been prettyied up, has a nice installed and auto build system.

Also available is TomboyTools it provides a means to import or export notes individually, as members of a Notebook or in a directory. A range of formats include Markdown, plain text, HTML (following tomboy style links) and Man Page. Some units from TT may make it into -ng ??

Commonmark and importnote units from TT now shared with tomboy-ng.

New plan (target v0.35) - All Done

  • import-txt=, import-md=, import-note= will make a new note from the indicated file (or template). First line will become title.

  • adding --title-fname will get the title from file name.

  • in every case, note will be imported, an existing instance of tomboy-ng advised to reindex and this instance exits.

  • The new notes are directed to the Notes repository BUT if you also provide a --config-dir on the command line pointing to a dir with an alternative tomboy-ng.cfg file it will be used to determine where the imported notes end up. You can use tomboy-ng to make that config file for you (just by starting it with eg tomboy-ng --config-dir=my-special-dir and then changing its default note path. Or just make a dummy config file, all it needs is the NoteDir path. eg

[BasicSettings]

NotesPath=/home/dbannon/myspecialdir/

  • the use of a filename on the commandline without switches will be limited to note format only, single note mode, note saved back to same place. This is not an import operation.

This is intend as a one note at a time model and is probably only appealing to Linux users, how to cater to Windows and Mac ? , Linux user will also be able to do a shell for loop and process a directory. Might be workable under PowerShell. Technically workable under bash on MacOS but who knows what Apple has put in our way ? TT is still the answer for bulk imports/exports.

Aim for a 'release' of TomboyTools about same time as v0.33 of tomboy-ng. Done.

Nextcloud Notes

While Nextcloud has now apparently fixed the issue that worried me, I believe the github sync is a better fit for tomboy-ng.

I am still unconvinced that their API is suitable. So, this one is likely to be on hold. https://github.com/nextcloud/notes/issues/627 It may well be looked at in he future. Once the Nextcloud API is stable.

Tomdroid sync

While working nicely for Linux user (who don't have too many notes), clunky and difficult to extend to Windows and MacOS. Unless I hear from users that they need this capability, I will drop it out and save some code. V 0.35 will be the last to have it.

Selective Sync

Useful if we could associate (each separate) sync with a Notebook. Especially so now that we have a function (for Linux) users Tomdroid sync. That way, a user can declare a sync only involves certain notes. Need to model this a bit to ensure its safe.

Selective Sync now works with Github Sync and could be extended to work with File Sync reasonably easily. Is there a need ?

PO tools

It would be nice to be able to manage the Help Notes via the .po system. This would make maintaining them a lot simpler for translators. But there are some issues. While a start has been made, did not make it it to 0.32.

  • Add an export in .po format.
  • Add an import from .po format.
  • Add an export to man page, html.....
  • But must have some means of merging existing translated content with new content, ie what happens to *.es.po when *.po is overwritten ? That is starting to sound like an implementation of POEdit. Can we find a way to use POEdit to do that syncing ?

It appears msgmerge, part of gettext, might do it all. So, I propose a workflow to make / manage help notes like this -

  • I add a dumb .po import/export capability.
  • create a (disposable) tomboy note, either from scratch or by importing the appropriate (English) .po file.
  • edit as required.
  • Export that content from tomboy-ng to a .po or .pot file containing a limited sub set of common mark. This file becomes part of git distro.
  • Use msgmerge to generate new *.XX.po files for each supported language. Normally, little will have changed, most of existing translations will be valid. New content will be, of course, by default in English.
  • Translators will, at some stage, pull down their .po file, edit some or all and return it.
  • At package time, I 'import' (cli desirable) each *.XX.po file generating a regular Tomboy format help note to distribute in the package.
  • Man pages, pdf, html can be generated in the same way, to broaden appeal. Maybe ??

Progress Report : I have added (to TomboyTools) the ability to export a note in a sort of .pot file. It still has the xml markup in there so is quite hard to read IMHO. aguador is looking at some other tools that might be more suited to flowing, marked up text than poedit.

All seems a lot of work, and may end up too complicated to use anyway......

Roy (who knows far more about translation than I ever hope to) does not seem excited. Very back, back burner.

Clone this wiki locally