cubicweb issueshttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues2024-01-30T13:29:07Zhttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/951Investigate the possibility of creating a RQL parser2024-01-30T13:29:07ZArnaud VergnetInvestigate the possibility of creating a RQL parserWhat we want
============
We want to have a Typescript library providing a RQL **AST** (Abstract Syntax Tree) and parser usable when developping in JS/TS, for example when writing node scripts or react/angular applications.
It would be ...What we want
============
We want to have a Typescript library providing a RQL **AST** (Abstract Syntax Tree) and parser usable when developping in JS/TS, for example when writing node scripts or react/angular applications.
It would be nice to find a solution which could be reused to write an AST/parser in python without having to maintain two grammar files or duplicate logic between JS/TS and python. Indeed our python parser and AST are based on [YAPPS](https://github.com/smurfix/yapps) which is unmaintained python library.
Solutions to explore:
=====================
- [ ] Tree-Sitter : seems to be able to generate parsers useable from many-languages
- [ ] Antlr
- [ ] Handmade recursive descent parser
- [ ] ...
[Tree-Sitter](https://tree-sitter.github.io/tree-sitter/)
===========
Repo to a simple RQL grammar made with tree-sitter: https://forge.extranet.logilab.fr/fbessou/tree-sitter-rql
Pros:
- it is really easy to write the grammar for a parser;
- the AST can be easily manipulated to build tools like formatters or linters
- it is easy to write highlighting rules based on an AST;
- parser is resilient to syntax errors;
- the parser is a c library with binding with rust, js, python, etc. (**not tested**)
Cons:
- it is hard to get meaningful errors, it seems that the teem is working on it.
- the generated AST is only a big data structure without "domain specific" methods, it means that if we want a rich Object Oriented AST like the one we have in python, we would have to write a algorithm to convert from/to a more interesting abstraction ([comment which share the same conclusion](https://github.com/tree-sitter/tree-sitter/discussions/831#discussioncomment-5797368)
)
- the fact that the parser is a c library means that embedding it in a web application would requires webassembly which can be more performant but also less debuggable;
**Conclusion**: Writing a subset of the RQL grammar was rather easy but it seems that the generated AST is not really practical for use as a basis for an RQL interpreter, RQL validator or RQL AST.
HandMade Recursive Descent Parser in Typescript
===============================================
FIXME: Continue describing the RDP pros/cons.
A Typescript implementation of an RQL parser has been initiated in https://forge.extranet.logilab.fr/open-source/rqljs.
Pros:
- Error handling can be as rich as we want;
-
Cons:
- The grammar is not explicit;
-Frank BessouFrank Bessouhttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/971ActivityPub and CW2024-01-17T11:29:01ZArnaud VergnetActivityPub and CW- [ ] étape 1: avoir une instance blog qui permet de s’abonner à un compte sur mastodon.logilab.fr et recopie les articles en local sous forme de microblogentry
- [ ] étape 2: avoir une instance blog à laquelle on peut s’abonner avec mas...- [ ] étape 1: avoir une instance blog qui permet de s’abonner à un compte sur mastodon.logilab.fr et recopie les articles en local sous forme de microblogentry
- [ ] étape 2: avoir une instance blog à laquelle on peut s’abonner avec mastodon.logilab.fr
- [ ] étape 3.a: essayer de remplacer les mécanismes génériques de dataimport par du activitypub (cf cubicweb.server.sources.datafeed)
- [ ] étape 3.b: voir comment transformer l’onglet “historique” de la vue principale des affaires en un flux activitypub de façon à ce qu’on voit la même chose si on se met à suivre une affaire crm depuis son compte mastodon.intra.logilab.fr
- [ ] etape 3.c: pouvoir s’abonner à un flux des “Link” ajoutés à l’intranet2024-01-18https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/972Use Ontop to communicate with CW2024-01-17T11:28:39ZArnaud VergnetUse Ontop to communicate with CWhttps://ontop-vkg.org/https://ontop-vkg.org/2024-01-18https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/501study Cubicweb migration in Python 3.102024-01-17T10:15:09ZFrançois Ferrystudy Cubicweb migration in Python 3.10Find implications of this, for instance, logilab-mtconverter isn't compatibleFind implications of this, for instance, logilab-mtconverter isn't compatiblehttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/709Find if cubicweb.devtools.instrument.PropagationAnalyzer and cubicweb.devtool...2023-09-27T09:32:35ZFrançois FerryFind if cubicweb.devtools.instrument.PropagationAnalyzer and cubicweb.devtools.instrument.CubeTracer can be usefulland remove them if we don't need them
used here:
- https://forge.extranet.logilab.fr/cubicweb/cubes/localperms/-/blob/branch/default/cubicweb_localperms/ccplugin.py
- https://forge.extranet.logilab.fr/cubicweb/cubes/nosylist/-/blob/bran...and remove them if we don't need them
used here:
- https://forge.extranet.logilab.fr/cubicweb/cubes/localperms/-/blob/branch/default/cubicweb_localperms/ccplugin.py
- https://forge.extranet.logilab.fr/cubicweb/cubes/nosylist/-/blob/branch/default/cubicweb_nosylist/ccplugin.pyhttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/653How authenticate when cubes web and API are not available?2023-05-23T13:04:18ZAlexandre RichardsonHow authenticate when cubes web and API are not available?* Définir les users stories
* Quelle interface par défaut? Comment exposer le service d'authentification /login de pyramid?* Définir les users stories
* Quelle interface par défaut? Comment exposer le service d'authentification /login de pyramid?CubicWeb 4 plushttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/738comparer à FastAPI2023-05-02T21:25:09ZNicolas Chauvatnicolas.chauvat@logilab.frcomparer à FastAPIlire la documentation de https://fastapi.tiangolo.com/ et comparer avec CubicWeb et Pyramidlire la documentation de https://fastapi.tiangolo.com/ et comparer avec CubicWeb et Pyramidhttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/526Think about a better configuration system2023-04-06T14:12:26ZFrançois FerryThink about a better configuration systemhttps://hedgedoc.logilab.fr/YrfaeaMSSAWu772zq-DiIg#https://hedgedoc.logilab.fr/YrfaeaMSSAWu772zq-DiIg#https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/655[SOLID] Utiliser l'authentification WebID2023-02-14T13:18:12ZAlexandre Richardson[SOLID] Utiliser l'authentification WebIDFabien Amargerfabien.amarger@logilab.frFabien Amargerfabien.amarger@logilab.frhttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/617Estimate the mypy fixes2023-01-24T13:42:34ZAlexandre RichardsonEstimate the mypy fixeswhat is the amount of work needed to get the mypy job in the CI to turn green ?what is the amount of work needed to get the mypy job in the CI to turn green ?https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/611Think about communication around CubicWeb2022-10-25T15:26:22ZFrank BessouThink about communication around CubicWebhttps://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/610How could we minimize surprises when working with registries2022-10-25T15:25:22ZFrank BessouHow could we minimize surprises when working with registries