Skip to content

Add "Add JabRef suggested groups" #12659

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
7 tasks
koppor opened this issue Mar 9, 2025 · 11 comments · May be fixed by #12997
Open
7 tasks

Add "Add JabRef suggested groups" #12659

koppor opened this issue Mar 9, 2025 · 11 comments · May be fixed by #12997
Assignees
Labels
📍 Assigned Assigned by assign-issue-action (or manually assigned) component: groups good first issue An issue intended for project-newcomers. Varies in difficulty. 📌 Pinned

Comments

@koppor
Copy link
Member

koppor commented Mar 9, 2025

Task: In the context menu of "All entries", there needs to be a new entry "Add JabRef suggested groups"

It should add following groups (if not already existing!) at the end of the groups:

  • "Entries without linked files"
  • "Entries without groups"

Image

Tasks:

  • Implement logic functionality
  • Add tests for logic functionality (can be done iteratively with task 1 to ensure test-driven development)
    • No group existing: both groups should be added
    • One group already existing: only other group should be added
    • ... and more ...
  • Implement UI functionality (add context menu entry and call functionality)
  • Disable UI context menu if the two groups already exist

The groups show as follows in JabRef:

Image

Image

@koppor koppor added the good first issue An issue intended for project-newcomers. Varies in difficulty. label Mar 9, 2025
@github-project-automation github-project-automation bot moved this to Free to take in Good First Issues Mar 9, 2025
@gepetton
Copy link
Contributor

/assign-me

@github-actions github-actions bot added the 📍 Assigned Assigned by assign-issue-action (or manually assigned) label Mar 10, 2025
Copy link
Contributor

👋 Hey @gepetton, thank you for your interest in this issue! 🎉

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀

⏳ Please note, you will be automatically unassigned if the issue isn't closed within 45 days (by 24 April 2025). A maintainer can also add the "📌 Pinned"" label to prevent automatic unassignment.

@subhramit subhramit moved this from Free to take to Assigned in Good First Issues Mar 11, 2025
@koppor koppor moved this from Assigned to In Progress in Good First Issues Mar 16, 2025
@github-actions github-actions bot removed the 📍 Assigned Assigned by assign-issue-action (or manually assigned) label Mar 25, 2025
Copy link
Contributor

📋 Assignment Update

Hi @gepetton, due to inactivity, you have been unassigned from this issue.

Next steps

If you still want to work on this:

  • Ask a maintainer to assign you again
  • If you're making progress, a maintainer can add the pin label to prevent future automatic unassignment

@koppor koppor moved this from In Progress to Free to take in Good First Issues Mar 25, 2025
@gepetton
Copy link
Contributor

Hello! @koppor
I’ve updated the PR with all the requested changes, but I noticed I’ve been unassigned from the issue. Could I kindly ask for some feedback on whether there’s anything specific in the PR that might need further attention? Thank you!

@koppor koppor added 📌 Pinned 📍 Assigned Assigned by assign-issue-action (or manually assigned) labels Mar 25, 2025
@koppor koppor moved this from Free to take to Assigned in Good First Issues Mar 25, 2025
@github-actions github-actions bot removed 📍 Assigned Assigned by assign-issue-action (or manually assigned) 📌 Pinned labels Apr 18, 2025
@koppor koppor moved this from Assigned to Free to take in Good First Issues Apr 18, 2025
@luks-santos
Copy link
Contributor

/assign-me

@github-actions github-actions bot added the 📍 Assigned Assigned by assign-issue-action (or manually assigned) label Apr 18, 2025
Copy link
Contributor

👋 Hey @luks-santos, thank you for your interest in this issue! 🎉

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀

@koppor koppor moved this from Free to take to Assigned in Good First Issues Apr 18, 2025
luks-santos added a commit to luks-santos/jabref that referenced this issue Apr 21, 2025
Implements a new context menu entry for the "All entries" group to add two
predefined groups if they don't already exist:
- "Entries without linked files" - A search group that finds entries with no file links
- "Entries without groups" - A search group that finds entries not assigned to any group

The menu item is disabled automatically when both suggested groups already exist in the library.
The implementation includes:
- A utility class with factory methods for creating the suggested groups
- Logic to check for existence of similar groups before adding
- UI integration with proper localization

Fixes JabRef#12659
@koppor koppor moved this from Assigned to In Progress in Good First Issues Apr 21, 2025
@HoussemNasri
Copy link
Member

This is fine for now, but I think for the future, when the "Add JabRef suggested groups" action is selected, we should show the list of suggested groups along a brief explanation of what these groups represent and the reasoning behind adding them, and let users select/deselect groups they are interested in.

@github-actions github-actions bot removed 📍 Assigned Assigned by assign-issue-action (or manually assigned) 📌 Pinned labels Apr 23, 2025
@koppor koppor moved this from In Progress to Free to take in Good First Issues Apr 23, 2025
@luks-santos
Copy link
Contributor

Hi, I accidentally squashed commits while pulling from main, so some commits now appear under my name. I’ll clean up the history and open a new PR. Sorry for the mix-up!

@luks-santos
Copy link
Contributor

/assign-me

@github-actions github-actions bot added the 📍 Assigned Assigned by assign-issue-action (or manually assigned) label Apr 23, 2025
Copy link
Contributor

👋 Hey @luks-santos, thank you for your interest in this issue! 🎉

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀

@koppor koppor moved this from Free to take to Assigned in Good First Issues Apr 23, 2025
luks-santos added a commit to luks-santos/jabref that referenced this issue Apr 24, 2025
Implements a new context menu entry for the "All entries" group to add two predefined groups if they don't already exist:
- "Entries without linked files" - A search group that finds entries with no file links
- "Entries without groups" - A search group that finds entries not assigned to any group

The menu item is disabled automatically when both suggested groups already exist in the library.
The implementation includes:
- A utility class with factory methods for creating the suggested groups
- Logic to check for existence of similar groups before adding

Fixes JabRef#12659
@luks-santos luks-santos linked a pull request Apr 24, 2025 that will close this issue
6 tasks
@koppor koppor moved this from Assigned to In Progress in Good First Issues Apr 24, 2025
@ThiloteE
Copy link
Member

ThiloteE commented Apr 25, 2025

I've been writing a lot lately, using JabRef and argue the suggested groups should be:

  • "entry import" (maybe could be called "Entries to collect" or "Queued") and
  • "entries with a linked file"
  • "entries without a linked file"
  • "entries without groups" --> Only/most useful, if users do not have automatic search and keyword collection groups.

I will give reasons down below in my workflow.

Here are all my groups btw.:

Image

Here are the settings and regexes for some of the groups:

entry import = explicit selection
paywalled = explicit selection
entries without a group: groups !=~ .+
entries with a linked file: file =~ .+ AND file !=~ www.semanticscholar.org
entries without a linked file [exclusions]: file !=~ .+ AND groups !=~ paywalled AND groups !=~ "0003 Restrictive Copyright"
not read yet: readstatus !=~ .+ AND file=~ .+
cited = explicit selection

Most important groups

Over the weeks I have zoned in on using only two groups that have maximized the speed of my workflow.

  • entry import
  • entries with a linked file
  • entries without a linked file

My workflow is therefore:

  1. go to entry import group
    • Reasoning: I don't want to be in a group with many entries to avoid confusion, when I drop the entry and I am not sure, where it is in that group. Basically avoids having to scroll and search for the entry once I have dropped it. Avoids confusion, if I already have that entry in the library and the entry merge dialogue pops. Allows me to select other entries and go back to entry import for most recently imported entries. It's like a buffer zone. A temporary memory to hold the entry, until I am not going to need that entry as often anymore, then I remove that entry from the entry import group.
  2. I collect the entry data
    • often by copy pasting bibtex data that I found on the scientific journals website on the internet. Then I clean that data by using import data from ID and check, if everything is correct. Very often, I have to add a URL manually to the bibtex data.
    • If bibtex data is not available, such as what happens when citing a newspaper, I enter the data manually via the entry editor.
    • JabRef offers other methods to import data, but those are the ones that I think are the most reliable, as they are semi-manual.
  3. I download the pdf or file that is associated with that entry from the internet and drop the file on the entry to link the entry with the file. (The order here is important. Importing the file and then adding entry data is worse, because I usually have to go through the entry merge dialogue, because the imported data from the pdf files was wrong)
  4. I read the pdf, write and cite the entry that I just imported.
  5. Search for text passages within entries with linked files. and cite those entries
  6. Collect a file post mortem using the "paywalled" or "entries without a linked file" groups.
    • Reason: Sometimes I collect entry data without having a file that goes along with it, then come back to that entry later to finally update the entry to have a linked file. Often, when the entry was paywalled and the paywall is gone. Or when I didn't have the time to download the file. Or when I was searching for entries outside my institutions VPN (therefore being paywalled out from some sites).

Explanation of step 5 (search within entries linked files) in more detail

When I am writing and I argue for something that I know I have read somewhere in the scientific articles I have in my JabRef bibliography, I usually use linked file search to find out where exactly I have read that and find related passages in other papers about that particular search term. I end up with one or more citationkey(s) and page numbers. Those are the two things that I need in my paper to cite the entry.

For this to work properly and in a fast way, I exclusively ended up using the group "entries with a linked file".
Why? Because it doesn't make sense to search in any other group.

  • all entries: It will contain entries that I cannot cite, because I haven't read the paper.
  • entries without a group will contain entries without a linked file.
  • not read yet: will contain entries without linked files
  • read: is a explicit selection group and I often forget to mark an entry that I have read it, then I have to check what I have read and what not. Marking an entry as read slows down my workflow. This group wastes my attentionspan and brainpower.
  • skimmed: is a explicit selection group and I often forget to mark an entry that I have skimmed it and then I have to check what I have read and what not. Marking an entry as skimmed slows down my workflow. This group wastes my attentionspan and brainpower.

All entries with linked files are usually entries that I am allowed to and can cite from, because I actually can read the paper, unless there are some copyright issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📍 Assigned Assigned by assign-issue-action (or manually assigned) component: groups good first issue An issue intended for project-newcomers. Varies in difficulty. 📌 Pinned
Projects
Status: In Progress
5 participants