[GH-ISSUE #1308] Improve the UX of the Sieve filter editor #625

Closed
opened 2026-02-25 21:35:32 +03:00 by kerem · 19 comments
Owner

Originally created by @cptsanifair on GitHub (Oct 31, 2024).
Original GitHub issue: https://github.com/cypht-org/cypht/issues/1308

🚀 Feature

Actually the Sieve Filter is hard to handle.

Max be its possible to implement things from the following project to upgrade sieve filter technics

Design, Layout, Architecture

https://github.com/thsmi/sieve

Originally created by @cptsanifair on GitHub (Oct 31, 2024). Original GitHub issue: https://github.com/cypht-org/cypht/issues/1308 ## 🚀 Feature Actually the Sieve Filter is hard to handle. Max be its possible to implement things from the following project to upgrade sieve filter technics ### Design, Layout, Architecture https://github.com/thsmi/sieve
kerem closed this issue 2026-02-25 21:35:32 +03:00
Author
Owner

@marclaporte commented on GitHub (Oct 31, 2024):

Thank you @cptsanifair for the suggestion.

https://github.com/thsmi/sieve is AGPL so we can't reuse any code, but we certainly get inspiration for features to implement.

Can you give one example of something better done in thsmi/sieve?

<!-- gh-comment-id:2449655606 --> @marclaporte commented on GitHub (Oct 31, 2024): Thank you @cptsanifair for the suggestion. https://github.com/thsmi/sieve is AGPL so we can't reuse any code, but we certainly get inspiration for features to implement. Can you give one example of something better done in thsmi/sieve?
Author
Owner

@cptsanifair commented on GitHub (Oct 31, 2024):

The UI with drag and drop, and switch to source without any metadata-header.
it parse existing source and show it in the UI

<!-- gh-comment-id:2449858346 --> @cptsanifair commented on GitHub (Oct 31, 2024): The UI with drag and drop, and switch to source without any metadata-header. it parse existing source and show it in the UI
Author
Owner

@marclaporte commented on GitHub (Aug 20, 2025):

Here is a demo: https://thsmi.github.io/sieve-demo/

If we'd really prefer to intergrate, we can reach out to author about a potential license change.

<!-- gh-comment-id:3207167849 --> @marclaporte commented on GitHub (Aug 20, 2025): Here is a demo: https://thsmi.github.io/sieve-demo/ If we'd really prefer to intergrate, we can reach out to author about a potential license change.
Author
Owner

@marclaporte commented on GitHub (Aug 20, 2025):

Current situation:
Image

<!-- gh-comment-id:3207330387 --> @marclaporte commented on GitHub (Aug 20, 2025): Current situation: <img width="1899" height="1419" alt="Image" src="https://github.com/user-attachments/assets/2c9a0457-87e7-46fa-8964-0bae664ce0a8" />
Author
Owner

@marclaporte commented on GitHub (Aug 20, 2025):

More info:

General info about Sieve: http://sieve.info/
Find implementations: https://implementations.modernemail.org/

The Sieve filters need to work nicely within Cypht of course.

But do keep in mind that Cypht is also embeddable. Nowadays in https://doc.tiki.org/Cypht and we are making it easier and easier to integrate within other applications.

When we added Sieve support to Cypht, we created a new PHP library:
https://github.com/cypht-org/php-sieve-manager
https://github.com/cypht-org/cypht/pull/569
https://github.com/cypht-org/cypht/issues/1308

As for filters: We need to to keep in mind that they can be extended. For example: In Tiki, there are filters for filters not available in Cypht: https://doc.tiki.org/Email-filters

<!-- gh-comment-id:3208317369 --> @marclaporte commented on GitHub (Aug 20, 2025): More info: General info about Sieve: http://sieve.info/ Find implementations: https://implementations.modernemail.org/ The Sieve filters need to work nicely within Cypht of course. But do keep in mind that Cypht is also embeddable. Nowadays in https://doc.tiki.org/Cypht and we are making it easier and easier to integrate within other applications. When we added Sieve support to Cypht, we created a new PHP library: https://github.com/cypht-org/php-sieve-manager https://github.com/cypht-org/cypht/pull/569 https://github.com/cypht-org/cypht/issues/1308 As for filters: We need to to keep in mind that they can be extended. For example: In Tiki, there are filters for filters not available in Cypht: https://doc.tiki.org/Email-filters
Author
Owner

@marclaporte commented on GitHub (Aug 20, 2025):

The UI with drag and drop, and switch to source without any metadata-header.
it parse existing source and show it in the UI

@cptsanifair We will soon start working on this, so any more feedback you have, the better.

<!-- gh-comment-id:3208335746 --> @marclaporte commented on GitHub (Aug 20, 2025): > The UI with drag and drop, and switch to source without any metadata-header. > it parse existing source and show it in the UI @cptsanifair We will soon start working on this, so any more feedback you have, the better.
Author
Owner

@marclaporte commented on GitHub (Aug 24, 2025):

SnappyMail (fork of RainLoop) is another one to look at:
https://github.com/the-djmaze/snappymail

<!-- gh-comment-id:3217492587 --> @marclaporte commented on GitHub (Aug 24, 2025): SnappyMail (fork of RainLoop) is another one to look at: https://github.com/the-djmaze/snappymail
Author
Owner

@marclaporte commented on GitHub (Sep 1, 2025):

@jeremiah The monthly Cypht community meetings are a great opportunity to discuss this: https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings

<!-- gh-comment-id:3240686869 --> @marclaporte commented on GitHub (Sep 1, 2025): @jeremiah The monthly Cypht community meetings are a great opportunity to discuss this: https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings
Author
Owner

@jeremiah commented on GitHub (Sep 1, 2025):

@marclaporte Okay, I'll see if I can join. It's on my calendar.

Regarding AGPL licensed code - there is no reason Cypht can't use AGPL licensed code, one simply provides a "complete and corresponding" copy of the original code.

<!-- gh-comment-id:3242667730 --> @jeremiah commented on GitHub (Sep 1, 2025): @marclaporte Okay, I'll see if I can join. It's on my calendar. Regarding AGPL licensed code - there is no reason Cypht can't use AGPL licensed code, one simply provides a "complete and corresponding" copy of the original code.
Author
Owner

@jeremiah commented on GitHub (Sep 1, 2025):

With regard to UI and UX, this is pretty impressive: https://mpa.nuejs.org/app/?rust

<!-- gh-comment-id:3242671180 --> @jeremiah commented on GitHub (Sep 1, 2025): With regard to UI and UX, this is pretty impressive: https://mpa.nuejs.org/app/?rust
Author
Owner

@marclaporte commented on GitHub (Sep 2, 2025):

there is no reason Cypht can't use AGPL licensed code

My understanding is that LGPL code can be included in AGPL but not the other way around, as per:

<!-- gh-comment-id:3243592109 --> @marclaporte commented on GitHub (Sep 2, 2025): > there is no reason Cypht can't use AGPL licensed code My understanding is that LGPL code can be included in AGPL but not the other way around, as per: - https://dwheeler.com/essays/floss-license-slide.html - https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
Author
Owner

@jeremiah commented on GitHub (Sep 2, 2025):

Here's the approach I took when doing license compliance for one of the largest software companies in the US; the AGPLv3 is just like the GPLv3, but for SaaS projects. The FSF itself says; "The GNU Affero General Public License is a modified version of the ordinary GNU GPL version 3. It has one added requirement: if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.”

As long as you release the AGPLv3 code, you're fine. If you're modifying the AGPLv3 code into a combined work, the combined work has to be AGPLv3.

In any case, if we're referring to the "Sieve editor" web app, there are different portions of this app since it includes third-party code. The third party code is licensed MIT, GPLv3, and likely other licenses. So if Cypht is interested in using the MIT licensed parts of the Sieve editor, it is free to do so. (FWIW I've filed a bug upstream in the Sieve repo so they mention the GPLv3 perl code in the LICENSING_INFO.md file.)

I apologize for being so pedantic. All I really want to say is Cypht should try to remain open source and that there is a lot of flexibility with other FOSS licenses if you are already open source.

<!-- gh-comment-id:3244853389 --> @jeremiah commented on GitHub (Sep 2, 2025): Here's the approach I took when doing license compliance for one of the largest software companies in the US; the AGPLv3 is just like the GPLv3, but for SaaS projects. The FSF itself says; "The GNU Affero General Public License is a modified version of the ordinary GNU GPL version 3. It has one added requirement: if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.” As long as you release the AGPLv3 code, you're fine. If you're modifying the AGPLv3 code into a combined work, the combined work has to be AGPLv3. In any case, if we're referring to the "Sieve editor" web app, there are different portions of this app since it includes third-party code. The third party code is licensed MIT, GPLv3, and likely other licenses. So if Cypht is interested in using the MIT licensed parts of the Sieve editor, it is free to do so. (FWIW I've [filed a bug upstream](https://github.com/thsmi/sieve/issues/1054) in the Sieve repo so they mention the GPLv3 perl code in the LICENSING_INFO.md file.) I apologize for being so pedantic. All I really want to say is Cypht should try to remain open source and that there is a lot of flexibility with other FOSS licenses if you are already open source.
Author
Owner

@marclaporte commented on GitHub (Sep 2, 2025):

So if Cypht is interested in using the MIT licensed parts of the Sieve editor, it is free to do so

I agree with this. So we seem to be in agreement that Cypht can't continue to claim being LGPL if it includes AGPL code.

We could ask https://github.com/thsmi/sieve to dual license or relicense the code. This happened to Cypht itself: https://github.com/cypht-org/cypht/issues/333

But before we get to that, we need to determine

  1. if it's better to just improve what we have or replace all/part it with an external dependency
  2. if we decide for an external dependency, is https://github.com/thsmi/sieve our best option?

@Baraka24 Please add to the agenda for our next https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings

<!-- gh-comment-id:3245208570 --> @marclaporte commented on GitHub (Sep 2, 2025): > So if Cypht is interested in using the MIT licensed parts of the Sieve editor, it is free to do so I agree with this. So we seem to be in agreement that Cypht can't continue to claim being LGPL if it includes AGPL code. We could ask https://github.com/thsmi/sieve to dual license or relicense the code. This happened to Cypht itself: https://github.com/cypht-org/cypht/issues/333 But before we get to that, we need to determine 1. if it's better to just improve what we have or replace all/part it with an external dependency 2. if we decide for an external dependency, is https://github.com/thsmi/sieve our best option? @Baraka24 Please add to the agenda for our next https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings
Author
Owner

@marclaporte commented on GitHub (Sep 26, 2025):

There is some progress here: https://github.com/cypht-org/cypht/pull/1661

We discussed a bit at today's meeting, but @cptsanifair please come to the next meeting :-)
https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings

<!-- gh-comment-id:3338976015 --> @marclaporte commented on GitHub (Sep 26, 2025): There is some progress here: https://github.com/cypht-org/cypht/pull/1661 We discussed a bit at today's meeting, but @cptsanifair please come to the next meeting :-) https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings
Author
Owner

@marclaporte commented on GitHub (Oct 31, 2025):

@cptsanifair @camilevahviraki

Can you please both come to https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings next month?

<!-- gh-comment-id:3473354486 --> @marclaporte commented on GitHub (Oct 31, 2025): @cptsanifair @camilevahviraki Can you please both come to https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings next month?
Author
Owner

@jeremiah commented on GitHub (Nov 21, 2025):

Hi,

Yes, I'll attend. Thanks for the invite.

Best regards,

Jeremiah

On Fri, Oct 31, 2025 at 07:31:52AM -0700, Marc Laporte wrote:

marclaporte left a comment (cypht-org/cypht#1308)

@cptsanifair @camilevahviraki

Can you please both come to
https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings next
month?


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID:
@.***>

<!-- gh-comment-id:3563296216 --> @jeremiah commented on GitHub (Nov 21, 2025): Hi, Yes, I'll attend. Thanks for the invite. Best regards, Jeremiah On Fri, Oct 31, 2025 at 07:31:52AM -0700, Marc Laporte wrote: > marclaporte left a comment (cypht-org/cypht#1308) > > @cptsanifair @camilevahviraki > > Can you please both come to > https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings next > month? > > — > Reply to this email directly, view it on GitHub, or unsubscribe. > You are receiving this because you were mentioned.Message ID: > ***@***.***>
Author
Owner

@marclaporte commented on GitHub (Nov 28, 2025):

Related: https://github.com/cypht-org/cypht/pull/1726

<!-- gh-comment-id:3589523678 --> @marclaporte commented on GitHub (Nov 28, 2025): Related: https://github.com/cypht-org/cypht/pull/1726
Author
Owner

@marclaporte commented on GitHub (Nov 28, 2025):

At the 26th minute of the 2025-11 Cypht Monthly Community Meeting, @camilevahviraki showed a demo of some improvements to the filters. You can find link to the recording via
https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings

<!-- gh-comment-id:3589555647 --> @marclaporte commented on GitHub (Nov 28, 2025): At the 26th minute of the 2025-11 Cypht Monthly Community Meeting, @camilevahviraki showed a demo of some improvements to the filters. You can find link to the recording via https://github.com/cypht-org/cypht/wiki/Monthly-Community-Meetings
Author
Owner

@Baraka24 commented on GitHub (Nov 28, 2025):

Recording available: https://videos.evoludata.com/w/nDoMCVEPBAYND9FfQQtyHB

<!-- gh-comment-id:3590193181 --> @Baraka24 commented on GitHub (Nov 28, 2025): Recording available: https://videos.evoludata.com/w/nDoMCVEPBAYND9FfQQtyHB
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cypht#625
No description provided.