Skip to content

Latest commit

 

History

History
184 lines (172 loc) · 11.4 KB

ROADMAP.md

File metadata and controls

184 lines (172 loc) · 11.4 KB

Things to do, wishlists, plans, crimes committed, etc

Sun 03 Jan 2021 07:14:54 PM CET, version 2.3.6


  • Sun 27 Dec 2020 12:29:40 PM CET

    • 2.3.x
      • further Info array trimming
        • no reason to have
          • verb name - should be obvious from what you asked for and from the infinitive
          • pronouns
            • if you're using this software, you should be aware of the region dependent pronouns
            • if you're not, they're listed in the USAGE) document, take a look
            • use them or not in your own app, no reason to force them on everyone
        • so this is what we have left in the Info array
          • model
          • region
          • ortho? - only present if a verb is 1999/2010 orthography sensitive
          • defective? - only present if this particular conjugation is defective (doesn't mean that every conjugation of the verb is defective, only applies to the associated conjugation array)
  • Fri 25 Dec 2020 10:43:54 AM CET

    • 2.3.x
      • redo highlight
        • problem: ran into a problem with Vue and vuex
          • vue turned the tags inside of the conjugator into an Observer and later complained that I shouldn't be setting them outside of mutation. It does have a bit of a logic behind it since I store the result in vuex store, hence vue is determined to observe everything that goes in an out. Although I think that Vue has no business modifying my objects inside of my module.
        • solution: practicality vs flexibility, the question is why do I even have a get and set highlight tags functions? Who in their right mind will change them once set?
        • practicality:
          • the highlight tags are set to { start: '<mark>', end: '</mark>', del: '\u2027' }
          • they can still be set once, in the constructor call - the object must be complete now, no partials, all 3 of start, end and del tags must be defined in order to reset the default above
          • removing methods
            • setHighlightTags()
            • getHighlightTags()
            • getOrthography() - no need
          • highlighting is turned off by default
          • new method public useHighlight(use = true):void turns it on/off
  • Tue 01 Dec 2020 10:48:10 AM CET

    • 2.3.x work
      • (done) return a full list of verbs, include reflexives so getVerbList() returns both hablar and hablarse
      • (done) accept reflexives as a valid parameter to conjugate() - it gets rejected now
        • internal: we don't need to propagate the pronominalKey from conjugate() to factory to models. Zap.
        • prune the definitions file. It's 396k now, more than half of the package, it can be taken down to about 200k (12/4/2020 - nope not working, tried. It's doable but the runtime goes up 25%. Bad Idea™)
        • reorganize testing
  • Thu 12 Nov 2020 07:09:14 PM CET, version 2.2.1-experimental

    • (done in 2.2.1-experimental) every array, every conjugation has the pronominals, which is totally unnecessary, we know what the pronominals should be
      • (done) drop the pronominals, put just one list in the info object insted of repeating it 20x for each array, I think it's a Good Idea™
    • internal
      • reorganize tests
      • reorganize types, exports, imports - they're kind of scattered all over the place
  • Tue 10 Nov 2020 01:33:36 PM CET, 2.2.1

    • (done) I should probably obsolete / delete some old (and some broken) npm packages
    • We have
      • 2.2.0 Mon 09 Nov 2020 09:58:41 PM CET, tag v2.2.0, keep, stable, first stable that includes 1999 & 2010 ortho
      • 2.1.1 Thu 05 Nov 2020 07:38:28 PM CET, tag v2.1.1, obsolete, broken, changes concerning pre and past 2010 orthography rules
      • 1.2.1, Tue 27 Oct 2020 06:07:18 PM CET, tag v1.2.1, obsolete, broken, dev packages upgrade, TypeScript 4.0 updates - Bad Idea™
      • 1.2.0, Sun 07 Jun 2020 06:30:11 PM CEST, tag v1.2.0, keep, first & last 1.2.x, includes only RAE known/used verbs
      • 1.1.2, Fri 05 Jun 2020 02:20:07 PM CEST, tag v1.1.2, keep, stable, final 1.1.x, last version that includes verbs deemed unused or unknown by the RAE
      • 1.1.1, Fri 29 May 2020 11:57:28 AM CEST, tag v1.1.1, obsolete, stable, not needed
      • 1.1.0, Tue 19 May 2020 10:36:45 AM CEST, tag v1.1.0, obsolete, stable, not needed
      • 1.0.2, Mon 04 May 2020 02:55:30 PM CEST, tag v1.0.2, keep, stable, final 1.0.x
      • 1.0.1, Fri 01 May 2020 09:55:42 PM CEST, tag v1.0.1, obsolete, stable, initial version, not needed
      • 1.0.0, Fri 01 May 2020 07:29:54 PM CEST - initial version, obsolete not synched with repository
    • Should probably just leave 1.1.2, 1.2.0 and the upcoming 2.2.0 and nuke the rest
  • Tue 27 Oct 2020 07:56:09 PM CET, version 1.2.2

    • (last updated on Thu 05 Nov 2020 08:16:11 PM CET, version 2.1.2)

    • (done in 2.2.0) possible upcoming changes

      • 1999 & 2010 orthography rules - this concerns monosyllable orthographical changes as per la RAE

        • pre 1999 rió is the accepted version
        • 1999 through 2010 both rió and rio are tolerated
        • past year 2010 it is no longer acceptable to write rió, the new correct form is rio with no accent
        • will add a new info header entry and deliver pre-2010 orthography only if it's requested
        • will add a new optional parameter to conjugate() / conjugateSync() -that was a Bad Idea™
        • add new optional parameter to Conjugator::constructor(ortho: Orthography = '2010') instead and set & get methods
        • more info https://www.rae.es/espanol-al-dia/palabras-como-guion-truhan-fie-liais-etc-se-escriben-sin-tilde
        • affected verbs
          • chiar (vaciar)
          • ciar (vaciar)
          • criar (vaciar)
          • fiar (vaciar)
          • fluir (huir)
          • freír (reír)
          • fruir (huir)
          • gruir (huir)
          • guiar (vaciar)
          • huir (huir)
          • liar (vaciar)
          • luir (huir)
          • miar (vaciar)
          • muir (huir)
          • piar (vaciar)
          • puar (actuar)
          • reír (reír)
          • ruar (actuar)
          • triar (vaciar)
        • info header data will change (new info header entry) this should go to a major version update
      • (done in 2.0.1) dropping imprimir from model list and splitting dual participios

        • verbs that allow dual participio currently clump both participios together (imprimido/impreso, freído/frito, proveído/provisto and their derivatives). They really should be listed separately, should have their own array for each participio
        • affected verbs
          • imprimir, imprimido / impreso
          • reimprimir, reimprimido / reimpreso
          • sobreimprimir, sobreimprimido / sobreimpreso
          • freír, freído / frito - freír also has an orthography modification coming, see above
          • refreír, refreído / refrito
          • sofreír, sofreído / sofrito
          • proveer, proveído / provisto
          • desproveer, desproveído / desprovisto
        • should add new header data entry? Why? There isn't any reason for doing so, is there?
        • result data format will change, this should go into a major version update
      • (done in 2.0.0) model changes - choose models that also have a pronominal version whenever possible - see wishlist below

        • list of proposed changes from -> to and other models with no pronominal versions - no changes. Notes: no P == there are no pronominal verbs using this model
          • AR
            • agorar -> engorar/se
            • aullar -> aunar/se
            • cabrahigar - noP, self model
            • cazar -> rozar/se
            • desdar - no P, self model
            • desosar - no P, self model
            • empezar -> tropezar/se
            • pensar -> acertar/se
          • ER
            • caber - no P, self model
            • leer -> creer/se
            • placer - leave alone, dual conjugation, second conjugation only for itself
            • poder - no P, self model
            • prever -> rever/se
            • querer - no P, self model
            • raer - no P, self model, dual
            • responder - no P, self model, dual
            • roer -> corroer/se
            • ser - no P, self model
            • tañer - no P
            • yacer - no P, self model
          • IR
            • adquirir - no P
            • argüir - no P
            • balbucir - no P, self model
            • bendecir - np P, self model
            • colegir -> corregir/se
            • delinquir - no P, self model
            • discernir - no P, self model
            • imprimir - no P
            • oír - no P
            • prohibir -> cohibir/se
            • surgir -> dirigir/se
        • this should go into a major version update
    • (done in 2.2.1-experimental) investigating what would it take to insert highlight markers - something that can be used to highlight the irregular changes from what the verb would have looked like if it was regular. For example

      • if poner was a regular verb, the first person indicative presente would be 'pono', which of course it is not, it is pongo. If the conjugation is marked, let's say with a dot '.' character, we would get back 'po.n.go' - with a marker to indicate that the 'n' is the irregular deviation from regular conjugation that can be shown as "pongo" or whatever the consumer wants
      • colgar, subj. presente cuelgue would become 'c.ue.lg.u.e' (cuelgue) or should it be 'c.uelgu.e' (cuelgue)? Hmmmm
      • what to do with 'missing parts'? Hacer, futuro isn't 'haceré' but haré. 'h.ar.é' (haré) to mark the change so it can be visually noted?
      • the marker should be easily replaceable by a regex and would always come in pairs
      • will add new header data entry
      • likely additional parameter to conjugate() / conjugateSync(), meaning a minor version change but the result format change seems to require a major version update - Bad Idea™ again
      • add new optional parameter to Conjugator::constructor (highlight: Highlight = false), add set & get methods
  • 6/7/2020, version 1.2.0

    • new wishlist
      • reorganize / choose different models. Reasoning:
        • some models are utterly unknown verbs, it would be nice to use something useful instead
        • would be nice to have a pronominal version of each model. It's not possible because some models are only models for themselves and the pronominal version just doesn't exist. But we can try
        • would be nice to have a shortest possible version of each model to maximize screen space. It would also be easier to read and understand
        • optimization - the definitions file could be made smaller by joining the multitude of N & P duplicates into one NP or some such. Not going to worry about it now as it's under 340k anyway, not enough bang for the buck
    • things accomplished
      • async interface added some time ago
      • npm package published long time ago
      • as of v 1.2.0 we only have verbs known to be used as per la RAE
      • use pre 1.2.0 version for verbs unknown to la RAE
  • 4/27/2020 (0.5.0) - have all models implemented, what's next?

    • take a few days off
    • add async interface
    • clean up and publish to npm
    • there are 12815 known verbs, probably half of them are obsolete.
      • want to keep all of them to be able to match a verb or its form to old texts, however ...
    • things I'd like to have
      • build a trie to be able to search for any form of any verb
      • have a separate use only known (per la RAE) verbs interface option?
      • shrink the size
      • will keep adding options here