Skip to content
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

763 does not work with thunderbird 102 b1 #768

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

thsmi
Copy link
Owner

@thsmi thsmi commented Jun 10, 2022

No description provided.

@thsmi thsmi linked an issue Jun 10, 2022 that may be closed by this pull request
@jmgiaever
Copy link

jmgiaever commented Jul 18, 2022

Version 102 (102.0.2) is out and released. This release broke Sieve Message Filters. Eager to get this working again, especially now during the summer holidays, where we use filters a lot.

@elyograg
Copy link

I tried to build this myself after getting the PR. It took a while for me to find the right command (npm pack) to make the tarball. But the tarball won't install into Thunderbird 102 snap on Ubuntu, and I cannot figure out how to create XPI instead of TGZ.

@jmgiaever
Copy link

Hi. I've only installed plugins thru the extension feature, so dont know how to install them manually. However, I will check the location of where it's installed, if that helps?

@thsmi
Copy link
Owner Author

thsmi commented Jul 23, 2022

I tried to build this myself after getting the PR. It took a while for me to find the right command (npm pack) to make the tarball. But the tarball won't install into Thunderbird 102 snap on Ubuntu, and I cannot figure out how to create XPI instead of TGZ.

What you are writing is very confusing. If you want to build it just follow the steps described in https://github.com/thsmi/sieve/blob/master/BUILD.md, install npm then call npm install and then run npm run gulp wx:package this will package an xpi.

Instead of building it by our own you can also use a CI build:

Click on the green arrow behind the desired commit. Then click on details behind the WebExtension build.
image

This will open the details.
image

Click there on View more details on Azure Pipelines this will open a new tab . Then follow this instruction how to download the build https://github.com/thsmi/sieve/wiki/FAQ---General-Questions#nightly-build-artifacts

@elyograg
Copy link

I did look at BUILD.md, but somehow I didn't catch that part of it.

Just tried npm install followed by gulp wx:package. Got this:

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'fs' imported from /home/sheisey/git/sieve/gulp/gulpfile.common.mjs

So I did "npm install fs" (total guess on my part) which changed the error message:

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/sheisey/git/sieve/node_modules/fs/promises' imported from /home/sheisey/git/sieve/gulp/gulpfile.common.mjs

Tried npm install fs.promises, which does install a package, but the error remains.

@elyograg
Copy link

Progress, but ultimately no success.

I tried the route of grabbing the latest nightly build. Extracted the .xpi file from that and installed it. Now it finds the hostname and connects, but when I click "Edit" on the script, it opens a new tab with a completely blank page.

@elyograg
Copy link

Currently I can edit my script using a managesieve plugin for Roundcube, so I do have another option. I wanted to be able to edit my script right in Thunderbird, because I use that a LOT more than webmail.

@thsmi
Copy link
Owner Author

thsmi commented Jul 23, 2022

I did look at BUILD.md, but somehow I didn't catch that part of it.

Just tried npm install followed by gulp wx:package. Got this:

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'fs' imported from /home/sheisey/git/sieve/gulp/gulpfile.common.mjs

So I did "npm install fs" (total guess on my part) which changed the error message:

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/sheisey/git/sieve/node_modules/fs/promises' imported from /home/sheisey/git/sieve/gulp/gulpfile.common.mjs

Tried npm install fs.promises, which does install a package, but the error remains.

You need a decent node version, current TLS or up. In your case look as if your node does not provide fs.promises which means your npm it is really really old...

Progress, but ultimately no success.

I tried the route of grabbing the latest nightly build. Extracted the .xpi file from that and installed it. Now it finds the hostname and connects, but when I click "Edit" on the script, it opens a new tab with a completely blank page.

Well this is why there is no release yet and this branch is not merged into the master, there are still open bugs and issues which have to be fixed and addressed before it is release ready.

Currently I can edit my script using a managesieve plugin for Roundcube, so I do have another option. I wanted to be able to edit my script right in Thunderbird, because I use that a LOT more than webmail.

You can also use the standalone application it is available for Windows as well as Linux and has no thunderbird dependency and thus is way more stable. Both standalone and web extension are based on the same code.

For linux just just download the most recent appImage form here https://github.com/thsmi/sieve/releases/download/0.6.1/sieve-0.6.1-linux-x64.AppImage . After downloading call chmod +x on the downloaded file and run it. When started import you configuration from thunderbird and you are ready to go.

@elyograg
Copy link

I'm using what's available to UIbuntu Desktop 22.04. Usually Ubuntu is a lot better than this when it comes to packaging recent software versions:

sheisey@sheisey-desktop:~$ dpkg -l | egrep "npm|gulp|nodejs" | awk '{print $2 $3}'
gulp4.0.2+~cs54.26.36-5
node-builtins4.0.0-1
node-global-modules2.0.0-2
node-global-prefix3.0.0+~3.0.0-1
node-growl1.10.5-4
node-gulplog1.0.0-2
node-npm-bundled1.1.2-1
node-npm-package-arg8.1.5-1
node-npmlog6.0.1+~4.1.4-1
node-read-package-json4.1.1-1
node-validate-npm-package-license3.0.4-2
node-validate-npm-package-name3.0.0-4
node-yargs16.2.0+~16.0.4-2
nodejs12.22.9~dfsg-1ubuntu3
nodejs-doc12.22.9~dfsg-1ubuntu3
npm8.5.1~ds-1

I downloaded the standalone windows app, and couldn't find a way to do something that works in the Roundcube plugin: Add an additional clause to an if statement. I wanted to add another email address to an if that already had several "header :contains" clauses in it. Finally got what I needed by editing and saving the source.

@thsmi
Copy link
Owner Author

thsmi commented Jul 23, 2022

I'm using what's available to UIbuntu Desktop 22.04. Usually Ubuntu is a lot better than this when it comes to packaging recent software versions:

Ubuntu Jammy is shipped with a node 12.22.9 which is really old in the fast pacing java script world. The current Node version is 18.x the current LTS 16.x. And 12.x does not ship with fs.promises.

I downloaded the standalone windows app, and couldn't find a way to do something that works in the Roundcube plugin: Add an additional clause to an if statement. I wanted to add another email address to an if that already had several "header :contains" clauses in it. Finally got what I needed by editing and saving the source.

Did not quite get what you mean.

Is this about the web extension behaving differently than the standalone application? If so then please open a bug and add more detailed information because both use the very same code base. And thus should behave exactly the same.

If this is about RoundCube failing to display sieve scripts edited with this editor? Then the answer is very easy, RoundCube uses a very simplified, proprietary and non portable subset of the sieve syntax. This makes it incompatible to any other sieve editor and thus is miserably fails in case a script is edited with a different editor. There is no way to fix this, it can be considered as a design flaw or limitation in RoundCube. And the sad news is RoundCube is one of the better sieve editors. SquirrelMail is way worse, it does not even parse sieve, instead it just parses proprietary comments embedded into to the sieve script...

All webmailer UIs implementing sieve I know use a simplistic UI, which naturally limits the sieve syntax to a tiny and non portable subset. Non of those is compliant to the Sieve specification, and any deviation from their subset makes them fail.

At the same time all backends are typically fully sieve compliant and implement the full sieve feature set.

This editor was designed to be fully sieve compliant. So that it can handle arbitrary complex sieve script. The trade off is the graphical UI is way more complex, more difficult and not so user friendly.

If you want the full powers and flexibility of the sieve, then use this editor, but your webmailer's sieve editor will get useless. In case you just want a simplistic UI to edit trivial filters, which are non portable then stick with your webmailer's UI. You can't have both worlds at the same time. It is pushing a square peg though a round hole.

@elyograg
Copy link

Both can read my script just fine. But this project is missing something I use often when changing the script. I wanted to add a new address to an if statement, to have the rule match another email address.

In the roundcube plugin, clicking on ANY of the plus sign buttons adds a new line right below the one with the button that was clicked:

roundcube-sieve

There is no equivalent to that plus sign button in this project.

@thsmi
Copy link
Owner Author

thsmi commented Jul 23, 2022

There is no equivalent to that plus sign button in this project.

This is getting off way topic and is not related to this pull request and should be a Discussion

But for the sake of completeness. The equivalent is just drag the header, address or envelop test (or whatever roundcube uses) from the sidebar to the place where you want to add the new test.

image

If you drag it onto an existing test it will be automatically converted into a nested anyof statement.

image

which will result in the following:
image

The most efficient way and reliable way is an envelope test instead of an header or address test. And instead of duplicating the test you can just pass the "From" and "To" parameter as an array instead of a string. Looks like this.
image

But this is very certainly way beyond roundcubes sieve uis's capabilities.

@elyograg
Copy link

Yep, it has gotten off topic. Is there a good way to assure users know about the drag and drop nature? It would be awesome if the UI somehow indicated that items can be dragged.

I actually had a similar problem with the roundcube plugin. To re-order rules, it is a drag and drop interface. I had to ask for help on that too, because it was not at all obvious.

@stale
Copy link

stale bot commented Aug 10, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Aug 10, 2022
@thsmi thsmi removed the stale label Aug 14, 2022
@thsmi thsmi added WebExtension Issue affects Thunderbird WebExtension wip bug labels Aug 14, 2022
@txtsd
Copy link

txtsd commented Sep 29, 2022

Is this almost ready?

@ploink
Copy link

ploink commented Oct 15, 2022

I have installed this PR according to #763 (comment) and it works well for me in Thunderbird 102.2.1. Thank you.

@txtsd
Copy link

txtsd commented Oct 15, 2022

I can confirm with what @ploink said.

It might be a good plan to merge this now and deal with bugs later.

@ChristianS99
Copy link

Another data point:
working with TB 102.4.2 (64-Bit) (Linux)

@thsmi do you need something to merge this?

@sycam0r-e
Copy link

Another data point:
works on Mac 12.6.1 (21G217) for Thunderbird 102.5.0 (64-bit).

@brenard
Copy link

brenard commented Feb 8, 2023

Hello, I builded the XPI package from this branch and test it on Thunderbird 102.6.0 (Linux amd64) and like with the latest stable release, I can't edit my account setting: nothing append when I click on Settings in menu. By default, it seem try to connect on undefined:4190 and of course it's not works.

@brenard
Copy link

brenard commented Feb 8, 2023

Hello, I builded the XPI package from this branch and test it on Thunderbird 102.6.0 (Linux amd64) and like with the latest stable release, I can't edit my account setting: nothing append when I click on Settings in menu. By default, it seem try to connect on undefined:4190 and of course it's not works.

My bad, I build the XPI package on master... With XPI package builded on the right branch, it's seem works well. Any idea what it's missing to merge and release a new version based on this works. Thanks you !

@typoworx-de
Copy link

typoworx-de commented Apr 19, 2023

Hi. I also tried to update my thunderbird-sieve using the recent build-artifact's (tested 2 passed). I've extracted the final addon-zip from the artifact-zip. Thunderbird (102) says for both the addon-zip is broken??!

edit
Got it... had to use the artifact for "WebExtension" which contains the XPI

@bebehei
Copy link

bebehei commented Apr 24, 2023

Hi all, I've had to edit my SIEVE rules yesterday and was lost for some time. I even checked my computer with tcpdump to understand whether there are connection timeouts. In short: 1.5 hours wasted until I had found the issue and built the Plugin via NPM. (works fine now)

I don't want to fingerpoint anywhere. You made a great job. The SIEVE-Plugin is something vendor-independent and I highly like it.

But isn't this just a click in the PR to merge it? Tests pass, no merge conflicts everything green.

There might be bugs, which get introduced, but at least it will work again for, I guess, most users.

@thsmi
Copy link
Owner Author

thsmi commented Apr 24, 2023

@bebehei The webextension is marked as incompatible with newer Thunderbird version on addons.thunderbird.org! Thus it is really odd that you are complaining you wasted your time in figuring out that something marked incompatible is in fact incompatible and does not work...

And please don't spread fake news. Just by reading this PR as well as the ticket you'll instantly see that this PR is far away from a single click to merge it.

The text editor works but the drag and drop based graphical editor is broken in Thunderbird, drag and drop events are not consumed correctly and thus the UI and Script can get out of sync. Which is a pretty serious defect for many users, because what a script does is not necessarily what you see on the screen.

If you are using only the text editor then the a custom build based on this pull request works fine. If you use the graphical editor it won't.

Thus it makes no sense to release something, where one of the key features is not working. Especially when there is a fully working standalone version as well as an experimental but working web application as alternatives.

And yes fixing needs time, lots of time. And time is currently simply something I do not have to offer. And honestly writing this response burned even more of the valuable time I could have invested into fixing.

Anyhow this is an open source project everyone is welcome to contribute a patch or pull request to fix the remaining issues and help having a new Thunderbird release.

To sum it up there can't be any official release for the addon until the rework-parser branch has landed. Which does the overhaul of the graphical editor and addresses the drag and drop issues.

@ploink
Copy link

ploink commented May 14, 2023

@thsmi Thanks for the clarification.
I was unaware of the issues with the graphicaI editor since I am only using the text editor.
Would it be an idea to release a temporary version with the graphical editor completely disabled until it is fixed? Something is better than nothing at all.
Anyway, thank you for all your time and efford you put into this project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug WebExtension Issue affects Thunderbird WebExtension wip
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Does not work with Thunderbird 102 b1
10 participants