- From: Melvin Carvalho <melvincarvalho@gmail.com>
- Date: Fri, 10 Nov 2023 21:52:08 +0100
- To: Pete Edwards <pete.edwards@inrupt.com>
- Cc: public-solid <public-solid@w3.org>, vid_w3c@zooid.org
- Message-ID: <CAKaEYhLXCHioE7wNgYVnDEDm6CzZTd-uvNyzGd3h57_a5G9gVQ@mail.gmail.com>
pá 10. 11. 2023 v 12:15 odesílatel Pete Edwards <pete.edwards@inrupt.com> napsal: > David > > But I wanted to ask the community, rather than everyone creating their own >> front end applications, which may create corner cases, is there any >> reference >> Solid client? It's nice to have something hands on. As well, is there a >> subset, or a way to manage expected fails for the existing Karate tests >> that >> can be easily run against new implementations? > > > There is a mechanism in the Karate-based test suite that could help you > run a subset of tests for a Solid Lite implementation. When you use the > docker image it comes with a test manifest which runs all available tests > against the Solid Protocol spec. However, you can mount your own test > manifest into the image to change this behaviour. This would allow you to > create a smaller manifest which only runs the tests you were interested in. > Since it would be loading the current solid spec it would show you which > requirements were untested. However, it could also reference a different > version of the spec as long as the requirements were still annotated with > RDFa so that the Conformance Test Harness can load the spec & manifest in > order to build a list of tests to run. Then the report would only show > results for requirements defined in that version of the spec. > * > https://github.com/solid-contrib/specification-tests/blob/main/README.md#creating-a-script-for-a-ci-workflow > - how to run tests with your own manifest/spec > * > https://github.com/solid-contrib/specification-tests/blob/main/README.md#test-manifest > - more about the test manifest > * > https://github.com/solid-contrib/specification-tests/blob/main/README.md#annotations > - how to create your own list of requirements in Turtle instead of relying > on a spec with RDFa annotations, this would allow you to extract a subset > of requirements for testing even before they are gathered into their own > spec > Thanks alot for the brilliant Test Suite, Pete! I've started my journey on trying to pass the tests, unsure what the best route is. So I just picked something, and started with CRUD tests. At the moment I have got up to 2 of 9. Quite fun to try and increase coverage. 100% would be nice if possible. Any suggestions for plan of attack welcome! > > Pete > > > On Fri, 10 Nov 2023 at 02:59, Jesus Noland <jesusnoland@gmail.com> wrote: > >> Would you be willing to share a link to the Python implementation? >> >> On Mon, Nov 6, 2023 at 7:20 AM Melvin Carvalho <melvincarvalho@gmail.com> >> wrote: >> >>> >>> >>> po 6. 11. 2023 v 15:52 odesílatel David Mason <vid_w3c@zooid.org> >>> napsal: >>> >>>> >>>> Hi Aron, nice to meet you. >>>> >>>> On Sun, Oct 29, 2023 at 01:07:38AM +0800, Aron Homberg wrote: >>>> > I was also thinking about implementing the spec myself aka. "If >>>> you can >>>> > build it, you truly understood it"..., but given the size of of >>>> the spec, >>>> > it seems like quite alot of work. Having a defined set of features >>>> for an >>>> > MVP-style Solid server would be much appreciated. >>>> > The tech-set I'm thinking about is Astro + TypeScript + React for >>>> the >>>> > frontend, and the backend implemented with Node.js + TypeScript in >>>> a more >>>> > functional and "serverless" architecture (lamba functions, >>>> basically, and >>>> > as horizontally scalable as possible, even though this is probably >>>> not >>>> > necessary atm.; just as a fancy design goal). The impl. I imagine >>>> would be >>>> > modern, less complex and able to be one-click deployed & hosted on >>>> Vercel, >>>> > Netlify & co. with a single click (fork on Github, depoy via cloud >>>> based >>>> > CI/CD), and for free (for personal use at least). >>>> > I think something like a Lite spec + most simple impl. could maybe >>>> also >>>> > attract a wider developer community... >>>> > However, I'd like to suggest that such a Lite spec should better >>>> not >>>> > derail from the main spec too much but rather just pick the >>>> important >>>> > parts (if thats even feasible), if it is intended to be compatible >>>> with >>>> > existing implementations. "Derailing" would probably create chaos >>>> and >>>> > effectively become a spec fork, as soon as the diff is too large. >>>> "Lite" >>>> > implementations would then become non-interoperable with NSS, CSS >>>> etc. >>>> > The test suite is pretty amazing, I must say. If defining the >>>> "Lite" >>>> > subset of the spec would start with marking the necessary >>>> paragraphs with >>>> > a tag and simply providing only the relevant subset of the tests >>>> as a >>>> > "lite" testsuite subset, it would be a pretty straight-forward and >>>> > pragamatic approach that I'm sure, would help developers like me, >>>> > navigating the most important parts. >>>> >>>> I thought Melvin did a pretty good job of condensing it. >>>> >>> >>> Thank you, though it's only a week old and v0.0.1 >>> >>> >>>> >>>> I am inching toward a backburner/corner of desk implementation. So I >>>> wouldn't >>>> expect fast progress. But there might be some useful overlap. I would >>>> take the >>>> lead from Melvin's Javascript implementation as much as possible. >>>> >>> >>> FWIW I made a full implementation in JS in a day. >>> >>> Someone approached me (not on this list) and did a full implementation >>> in python over the weekend. >>> >>> He is now already building his first solid app >>> >>>> >>>> >>>> My focus is very specificallly high level specification/test driven, >>>> and adding >>>> functionality to a core through interfaces, so that the results are >>>> highly >>>> focused, reusable and not bound to any environment (serverless is an >>>> planned >>>> target; right now it supports local and Azure storage, my current work >>>> is >>>> re-using test scripts for load tests). >>>> >>>> In this approach, implementations are bundled with BDD "steppers," >>>> which can be >>>> mapped to specification documents for accessible tests and >>>> functionality. >>>> I work for a government, and am trying to create a way forward that is >>>> responsibly transparent, educational even (on the principle of full and >>>> informed consent), and does not bind to any environment (local, cloud, >>>> etc).. >>>> >>>> Interesting in this approach is that it's well suited to "AI" team >>>> members; a >>>> person writes the spec, which creates a basis for the AI to write BDD >>>> tests, >>>> code, unit tests, all of which people and AI can refine in a test based >>>> iterative workflow that results in versioned specifications, high level >>>> tests, >>>> and environment neutral code with their own unit tests. It still >>>> requires >>>> expertise to specify and evaluate the work, but contemporary AI can be >>>> leveraged in a responsible way that builds out the offering. >>>> >>>> Still, there is a lot to work out in even a Solid lite approach, >>>> especially >>>> strict data definition. >>>> >>>> I don't want to clog the list with side-ideas, so will write you >>>> separately. >>>> >>> >>> It will be more productive to work in other areas until it gets mature, >>> and to v0.1. I'm cautiously optimistic that it can reach v1.0 no later >>> than Big Solid 1.0 becomes a REC. >>> >>> While too early for the vast majority of this list, if there are >>> intrepid implementers that want to work in a constructive way we can >>> continue discussion off-list. >>> >>>> >>>> >>>> But I wanted to ask the community, rather than everyone creating their >>>> own >>>> front end applications, which may create corner cases, is there any >>>> reference >>>> Solid client? It's nice to have something hands on. As well, is there a >>>> subset, or a way to manage expected fails for the existing Karate tests >>>> that >>>> can be easily run against new implementations? >>>> >>>> David >>>> >>>> >>>> >> >> -- >> Jesús Noland >> > > This e-mail, and any attachments thereto, is intended only for use by the > addressee(s) named herein and may contain legally privileged, confidential > and/or proprietary information. If you are not the intended recipient of > this e-mail (or the person responsible for delivering this document to the > intended recipient), please do not disseminate, distribute, print or copy > this e-mail, or any attachment thereto. If you have received this e-mail in > error, please respond to the individual sending the message, and > permanently delete the email.
Received on Friday, 10 November 2023 20:52:28 UTC