JENA-2282: Fuseki2 Query Store - #1459
Conversation
|
Hi @jamiefeiss! Great to see this! It is showing as having a conflict with the main branch of the codebase. There is major maintenance PR #1307and we've made some version upgrades due to a security alert. Your PR branch is showing as 77 commits behind main so it looks (please confirm) that it is just behind on main and isn't a PR relative to the Vue upgrade work. @kinow what order of PRs should we work with? We're approaching a release (early August?) - I'm neutral as to whether this goes in before or after. Mostly, Jena releases are done on a regular tick, and not feature driven. Features take the time they take! |
If @jamiefeiss doesn't mind, I think it'd be easier to get the #1307 in first, as that one also adds the e2e tests. Later, if needed, I can help converting this PR from Bootstrap 4 to Bootstrap 5, and help with e2e tests as well. I haven't reviewed the code yet, but if it changes the Query editor we can add some tests first to |
|
#1307 has merged. I'd like to get a Jena release because it has been slipping for multiple reasons, none due to any UI work. There are several PRs queued and we can't wait for them to complete because while that happens, others appear! So I'll wait a few days then release what is ready at the time. |
|
Happy to help with the conflicts if needed 👍 |
kinow
left a comment
There was a problem hiding this comment.
Rebased onto main, updated libraries, fixed conflicts, and tested locally:
@jamiefeiss I can see the Save and Load option that was added 🙂
Unfortunately, besides Vue 3, we also ditched Bootstrap-Vue. So the new components need to be updated as well, to remove Bootstrap-Vue code (like the modal, failing in the screenshot above).
I did that not too long ago, so I think I might be able to convert it and finish testing this new feature 🎉 Probably in a few days (doing that during the breaks of the world cup matches 😬 ).
Cheers
Bruno
| "vue-router": "^4.1.5", | ||
| "vue-upload-component": "^3.1.2" | ||
| "vue-upload-component": "^3.1.2", | ||
| "vuex": "^4.1.0", |
There was a problem hiding this comment.
Updated the version of Vuex as we are using Vue 3 now too.
| import VuexPersistence from 'vuex-persist' | ||
| import { queryLibraryStore } from './queryLibraryStore' | ||
|
|
||
| export default createStore({ |
There was a problem hiding this comment.
Used createStore (Vuex 4.x + Vue 3)
| const app = createApp(App) | ||
|
|
||
| app.use(router) | ||
| app.use(store) |
There was a problem hiding this comment.
|
@kinow does this PR need anything other than the obvious merge conflict to progress? You mentioned above (in 2022!) that you might "convert it and finish testing this new feature", could you still do that? |
Sorry the delay. I think there are no other pressing issues for Jena UI, so perfect time to get this one sorted out and merged. I can review the conflicts and push a separate commit with the conflict fixes and test it and maybe write tests if pending (or provide a skeleton if it's too complex to test). Then you can review my commit and we squash it later if the changes look good to you. Or if you prefer to fix the conflicts, that's fine by me too. I'll be overseas for 1 week, but have one week per month now to work on Jena (3 in Dec/Jan 😬 🎉 ), so quite sure we can get this reviewed/merged in one of these weeks/months, @nicholascar . |
|
I'm looking at this issue having since reflected on the prefix service fuseki-ui work. In addition to storing the queries on local storage, what if we created a new query service for users with rw permissions to persist the queries across the repository? This would bring a model similar to GraphDB where there's local "scratch" queries and also global repository level queries. Users with rw access would be able to write and create new queries, while read only users wouldn't be able to persist their queries beyond local storage. I think the changes in this PR would still be relevant because would form the backbone for the local storage cache feature. If there's still interest in this pull request I can try resolving the merge conflicts in this branch |
|
That sounds like a good plan, @ThomasThelen . Probably the hardest here would be to implement this service (in a secure, and optimal way). The UI shouldn't be too difficult, but it'd be great to have a few persisted queries as a user :) thanks! |
|
@OyvindLGjesdal - would you be up for a bit of a partnership on this one? I see you're an active committer and it could be fun to do some work together. You have more experience with the codebase and from @kinow, it sounds like there are some blind spots that I'll have when implementing the service portion. I think an ideal pairup would be you building the store and I hook it up in fuseki-ui. Then again, I'd be passing the more difficult portion to you. If you're currently busy though, no worries! |

Jira issue: https://issues.apache.org/jira/browse/JENA-2282
Pull request Description:
An initial implementation of a query library for the Fuseki2 Vue UI using Vuex. Adds two buttons to the dataset query page for saving & loading queries. From there, users can save queries to a query library that persists in local storage in the browser.
By submitting this pull request, I acknowledge that I am making a contribution to the Apache Software Foundation under the terms and conditions of the Contributor's Agreement.
See the Apache Jena "Contributing" guide.