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

Add compatibility info #30

Closed
JasonBarnabe opened this issue Feb 25, 2014 · 33 comments
Closed

Add compatibility info #30

JasonBarnabe opened this issue Feb 25, 2014 · 33 comments

Comments

@JasonBarnabe
Copy link
Collaborator

Let authors specific install methods/browsers, doesn't work/untested/works.

@cletusc
Copy link

cletusc commented Mar 1, 2014

Could this be driven by the community as well? Author tested and community tested? The author could mark the versions/browsers/methods that they confirmed working and users could mark a "works for me" or something along those lines?

@JasonBarnabe
Copy link
Collaborator Author

Yes, that would be good, possibly tied into the discussion system.

@JasonBarnabe
Copy link
Collaborator Author

@JasonBarnabe
Copy link
Collaborator Author

@arantius @derjanb @johan @sizzlemctwizzle @Martii @gera2ld (please @ others if you think they'd be interested)

I'm proposing a new meta-data key that describes the script's compatibility in a given browser or user script manager. There's been some discussion on the Greasy Forum and script authors seem interested in this feature. I think this metadata would be informational only: user script hosting sites would display it to users before they installed, but user script managers wouldn't prevent a script from being installed if it's marked as incompatible.

@tobias-engelmann has a suggestion for the syntax:

// New version with value1, value2, value3 but follows the rules.
@compatibility <browser/addon identifier> <status> [<comment>]
// Example:
@compatibility opera                maybe   Works in Opera 12, untested Opera 15
@compatibility opera-tampermonkey   true    Some comment
@compatibility opera-violentmonkey  false

Some potential issues:

  • The comments are not localizable - don't think this a big deal because they may be generally language-free (e.g. "Opera 15+")
  • For this to be useful to Greasy Fork (and I assume other sites), the browser/addon identifer would have to be standardized.
  • As far as statuses, "true" and "false" are easy enough to understand, but I can see the case for "untested", "partial", and "depending on version or configuration". Should we have separate keys for each of these, or just one (like "maybe")?

@Martii
Copy link

Martii commented Oct 31, 2014

the browser/addon identifer would have to be standardized.

Agreed... it's also possible down the line a newly supported browser may have a split name too.

@compatibility

Basically this should imply "tested under/on" ... so not sure if anyone would want it clearer than just "compatibility"... IDK. I think we need to see what the other user.js engine maintainers think first.

@arantius
Copy link

A Firefox extension specifies (repeated) targetApplication, and within that (application) id, minVersion, and maxVersion.

In the past the phrase we've used is "user script engine" to refer to things that can run user scripts, be it a native browser feature or any kind of installable add-on.

@Martii
Copy link

Martii commented Oct 31, 2014

Does Chrome/Chromium/Opera/Safari/IE/etc. have a similar <em:targetApplication> and the extensions/add-ons with <em:id>? I know SeaMonkey does since it's Moz related/supported but the rest (non-Moz) are unknown at the moment.

@JasonBarnabe
Copy link
Collaborator Author

<em:id> is a GUID which isn't friendly to anyone. I don't think Chrome has a similar concept.

I think we really want to limit the number of possible keys, because this should be "a a glance" information, whether by someone looking at the code or by a site parsing it out and displaying it. I think we could say that:

  • The compatibility key for anything should primarily reflect the script's compatibility in the latest released version of what it refers to.
  • Compatibility for an engine applies to all browsers that engine can run in.
  • Any exceptions in these rules or anything else unforeseen can be handled in the comments part of the key.

That would limit the keys just to the possible engines, while retaining any information the author chooses to include.

@derjanb
Copy link

derjanb commented Oct 31, 2014

@compatibility

This sounds good to me cause it I think it expresses what the script author wants to describe.

@compatibility <browser/addon identifier> <status> [<comment>]

Maybe we should also allow multiple comma separated browser+addon(optional) fields to not enforce a @compatibility flag for every browser (Firefox, Chrome, Opera, Safari, Android-Tampermonkey ;-)) and addon (Greasemonkey, Tampermonkey, Violent Monkey, Ninjakit, "Chrome only"...) combination.

Shortened specifiers might also help. Another thing is maybe the status should be in front of the supported combinations.

@compatibility full ff+gm,chrome+tm,opr+tm
@compatibility partial chrome,safari+ninjakit

For statuses I'd vote for "full", "partial" and "none" to express full compatibility, partial compatibility with a maybe limited feature set and no compatibility at all.

And finally also versioning doesn't look too bad to me:

@compatibility full ff+gm(<2.0),chrome+tm(2.3+)

@tobbexiv
Copy link
Contributor

My syntax was based on the existing syntax of the keywords of the addons. There is no such feature like adding multiple references at once (if you specify @grant etc. you have to use one line per single grant etc.). So I would not allow it here. Also searching for the information if a script is compatible in a non-parsed script is harder if you have multiple values in the same line.

Abbreviations were left out as there might be many users which don't know them and it's easier to understand if you have full names. My opinion: Only use abbreviations if it's necessary. And that'S not the case here.

Versions were also excluded on purpose as you have the comments for information on things like this. It might be possible that your script works in FF x with GM y and doesn't works in FF z wth GM y. If you only say works in FF+GM(2.0+) you can not reflect this => too many possible options and combinations => better use the comments (especially if you have problems in a specific addon version when another addon was installed). Intention was one line per browser / addon and not multiple lines.

@JasonBarnabe
Copy link
Collaborator Author

Also,

Maybe we should also allow multiple comma separated browser+addon(optional) fields to not enforce a @compatibility flag for every browser (Firefox, Chrome, Opera, Safari, Android-Tampermonkey ;-)) and addon (Greasemonkey, Tampermonkey, Violent Monkey, Ninjakit, "Chrome only"...) combination.

I was thinking that if something's not mentioned, its compatiblity would be treated as "unknown", so no need to have to specify everything anyway.

@derjanb
Copy link

derjanb commented Oct 31, 2014

Maybe my view is a little bit opinionated by my "user.js engine" background. I'm searching for a value of such a tag and where Tampermonkey would use it.

Also searching for the information if a script is compatible in a non-parsed script is harder if you have multiple values in the same line.

But it would allow to do some grouping what can make searches easier:

@compatibility full chrome+tm,opr+tm
@compatibility full ff(4.0+)+gm

Versions were also excluded on purpose as you have the comments for information on things like this

If the version information is machine readable then Tampermonkey can warn the user if some @compatibility flags are given but the the script compatibility for the current browser + TM version combination is unknown or even is known to be incompatible. It can also warn if a script update would change the @compatibility.
But of course it's also possible to just print the comment(s) of the matching combination at the script installation page.

Abbreviations were left out as there might be many users which don't know them and it's easier to understand if you have full names

If a user really wants to understand the full header information then he most probably has to read some manuals anyway. I think you're right as long as there are not too much statements. That's why I would allow both, the full name and well-known abbreviations.

I was thinking that if something's not mentioned, its compatiblity would be treated as "unknown"

Of course, I just tried to imagine what the author needs to write down if his script supports many or even all combinations.

@jesus2099
Copy link
Contributor

For those who jump in here, from the previous discussion topic, there was another proposed syntax over there, which is similar to include/exclude :

@incompatible  opera                Some comment
@compatible    opera-violentmonkey  some comments
@compatible    chromium

I liked that.

@johan
Copy link

johan commented Nov 1, 2014

Just to state the obvious, which seems to have been missed in some notes above:

Without structured version info, the feature is only useful for nerds reading the source. To get the user experience "works with current version of browser X (or better still, as the TM maintainer notes: my current browser and user script manager, and during script auto update)", the browser and browser version need to be explicitly marked as working in the script, as what was current at the time of testing will not be a year later.

@JasonBarnabe
Copy link
Collaborator Author

Without structured version info, the feature is only useful for nerds reading the source.

Why? If I know something works in Greasemonkey but not Tampermonkey, I can show that on the script's page before users install and I can make that data searchable. In fact, even if the version information was made available in a "structured" way, I would probably just ignore it because it results in too many permutations of things (or at most, convert it into a sentence that could be covered by the "comments" section of the meta value).

@johan
Copy link

johan commented Nov 1, 2014

What use case(s) do you envision for this markup?

Any compatibility assertions without version information is weak data that software can trust even less than whatever trust we have in the person who published the data, since it denotes a boolean data point X (high resolution data) about some fuzzy-matched grab bag of possible environments Y (ultra low resolution data) which it might include or not include. Claiming that a user script "works in Chrome" is a marketing lie that is perhaps true for 85% or even 100% of Chrome installations at the time the claim was made (and the current proposal doesn't even pin when that was), half a year later true for 74%, and a year later true for 5% of them.

You can only know that your script is compatible with versions of user script engine already released, though you can make educated guesses it might work in versions you haven't tested too.

It comes down to if you:

  1. want the script header to be declarative of programmer intent ("I have tried to take quirks I know of in these user script engines into account") or
  2. actual test data from actual browsers and user script engines with this script version ("I have tested it in Opera 25 with Violent monkey 2.1.6.5, and it worked")

For 1) a compatibility note naming just a browser and user script engine is fine, and the signal is at best "if this thing I claimed to work doesn't work, please bug report and I might do something about it".

For 2), you'd presumably have data on what browser and user script engine version this was tested to work with, which is more valuable for making stronger assertions in application UI:s about what data we have on compatibility of the script.

An example of why version-less compatibility notes aren't great: for a long while, most Greasemonkey user scripts could be run in Google Chrome natively without fuss or an additional user script engine. Then one summer in Chrome 21, that feature was critically crippled UX-wise and put behind nasty flags, and any assertions about compatibility with a naked Chrome declared by a tag like this would be wrong. A tag saying @compatible Chrome 19 would have still been accurate, though.

If we do standardize a meta tag about compatibility, I think it would be neat if the values read from it would be less than a rumour or belief from some unknown person and time. Talking about versioned browsers and(/or?) user script engines strengthens the claim to something that can at least declare a compatibility map (when the compat landscape is a typical compat landscape), and which user script engines can in turn use to automatically warn about script upgrades marked as known incompatible with their current version.

@jesus2099
Copy link
Contributor

I quite agree with @johan because I still stubbornly wish to indicate opera 12 compatible, which means very different browser than chromium based opera (later versions). :)

@JasonBarnabe
Copy link
Collaborator Author

What use case(s) do you envision for this markup?

I envision this to be author-provided, just for them to easily denote (and for sites to display to users) what they know of compatibility, so # 1.

2 would be more like the rating/review system that Greasy Fork already has, though it doesn't have version info (yet). This is definitely a useful thing to have, but it's not what I'm suggesting. If/when we add this to Greasy Fork, I don't see feeding it into the script's meta block, either.

Any compatibility assertions without version information is weak data that software can trust even less than whatever trust we have in the person who published the data, since it denotes a boolean data point X (high resolution data) about some fuzzy-matched grab bag of possible environments Y (ultra low resolution data) which it might include or not include.

I agree that including version information would result in more specific data, but:

  1. I don't think many authors will care to test in anything other than the latest or to update every time something new is released.
  2. I don't think sites will display the full information because it's just too much (I wouldn't show five lines/icons/whatever that describe how compatible a script is with Greasemonkey. I'd just have a single element that describes the compatibility per engine). The openuserjs guys may have a different opinion here.
  3. I don't think many users know which version of whatever they're using. I couldn't tell you what I used unless I checked.

In short, specific data is specific, but it's useless if it's not going to be provided, displayed, or understood. If someone has a concrete use for the specific data, then maybe it can be part of the proposal, but Greasy Fork is not likely to use it.

@JasonBarnabe
Copy link
Collaborator Author

I still stubbornly wish to indicate opera 12 compatible, which means very different browser than chromium based opera (later versions). :)

I think Opera 12 and Opera 15+ would be treated as completely different engines.

@derjanb
Copy link

derjanb commented Nov 1, 2014

  1. I don't think many authors will care to test in anything other than the latest or to update every time something new is released.

I agree. I think most often it would be used to declare incompatibility with any version before X because a necessary feature or bug fix was implemented at X. Just like a minimum required version.

Wouldn't that be really useful: a script stops updating because an old and now incompatible script engine is used. The engine can display a warning/information about the lack of further updates until the engine is updated... :)

I don't think many users know which version of whatever they're using.

If someone has a concrete use for the specific data, then maybe it can be part of the proposal, but Greasy Fork is not likely to use it.

That's the point. GF only knows the browser type and version via the user agent, but the script engine knows the complete environment. Therefore it can calculate or at least do an educated guess about the script compatibility if the version information is given, but without there is nothing reliable it can get out of this.

If this tag is "only" made to replace all the "This is script is compatible with ..." statements at the GF script description page, then a version-less proposal indeed is preferable.

@tobbexiv
Copy link
Contributor

tobbexiv commented Nov 2, 2014

Wouldn't that be really useful: a script stops updating because an old and now incompatible script engine is used. The engine can display a warning/information about the lack of further updates until the engine is updated...

What to do with this situation:

  • Browser v1 + Engine v1 + Script v1 -> Compatible
  • Browser v2 + Engine v1 + Script v1 -> Incompatible
  • Browser v1 + Engine v2 + Script v1 -> Incompatible
  • Browser v2 + Engine v2 + Script v1 -> Compatible

=> This would be four entries if I define everything with the version. If I define partial and write a comment only one entry. More versions / different browsers / different engines => more entries

Second example:

  • Browser v1 + Engine v1 + Script v1 -> Compatible
  • Browser v1 + Engine v1 + Script v2 -> Incompatible => no auto update
  • Browser v1 + Engine v1 + Script v3 -> No information given, but it'scompatible again
  • Browser v1 + Engine v2 + Script v3 -> Compatible

=> user has engine v1 => update as there is no information on the engine v1 or don't update as there was a incompatibility with the version before?

I'd assume that most script authors only test with the latest version of browser and engine and maybe add new information based on user input. So in my opinion it's more reliable to search if there is information on the engine and then show this information to the user instead of blocking updates completely. And for this there is no need for including versions.

@derjanb
Copy link

derjanb commented Nov 2, 2014

This would be four entries if I define everything with the version

I don't say versions should be enforced, but IMO they should be allowed. If a new browser version is not compatible anymore it's most likely a bug that will be fixed. Otherwise (i.e Opera 12/15+) you can state it at the script header.

don't update as there was a incompatibility with the version before?

Why should one look at the history of the compatibility information? Script v2 and v3 contain

@compatibility browser+engine(2.0+) full

and therefore only engine v2 will update script v1 to v3.

I'd assume that most script authors only test with the latest version of browser and engine and maybe add new information based on user input.

Maybe you're right for engine versions that were released in the past. But development is often more a process than a single event. Therefore scripts change and may require new features that are only present at newer engine versions. In this case everybody can use an old version of a script but only users with newer engines can use the most recent version.

Example: GM 2.0 changes the way scripts can write values to unsafeWindow. If a script author doesn't want to clutter the source with engine version switches he can just add something like:

@compatibility ff+gm(2.0+) full

Since no other GM version is mentioned at the script header everything below 2.0 is marked incompatible.

@tobbexiv
Copy link
Contributor

tobbexiv commented Nov 2, 2014

and therefore only engine v2 will update script v1 to v3.

But also engine v1 can update it as it's compatible again. And - if the author doesn't specify it explicitly, the user will not recieve an update. And that's not a good behaviour in my opinion.

Since no other GM version is mentioned at the script header everything below 2.0 is marked incompatible.

But in real the script is only not tested in this version. It might work also in olde versions, but it was just not tested. So you will prevent updates again for a compatible version.

@compatibility ff+gm(2.0+) full

Also the browser version can influence if a script works or not => you also have to specify the browser. Additional you might update a script set with gm(2.0+) with gm 2.3 but in 2.3 there was a new feature / change introduced whcih causes scripts to break now. Take a script written before GM 2.0 for example. If it would have been possible to specify the compatibility version in a way like this (1.15+) all 2.0 engines would have updated and now the script is broken. To prevent this you have to specify each version explicitly.

So for me using a version information to prevent updates is only possible if a script is marked incompatible especially for this specific version of the addon. Prevent an update just because it's not marked as compatible is a bad behaviour. And for me if a script specifies ff+gm as compatibility and I recognize it't not working I would see it as a bug (except if the author writes a comment that this addon is not officially supported.). Independent of the version of the addon where it was tested and the version I use now. If I know that the version number might prevent script updates then I would not use it as script author.

To prevent from updating / installing another new tag would be more applicable where the author can specify a minimum and maximum addon version required for the script explicitly. But this would be another topic.

@derjanb
Copy link

derjanb commented Nov 2, 2014

But also engine v1 can update it as it's compatible again.

No it can't! Script v2 and script v3 require engine v2, therefore engine v1 can't update the script to any version greater than v1.
This means everybody with engine v2 will get an update since the author specified it that way.

But in real the script is only not tested in this version. It might work also in olde versions, but it was just not tested.

So you can talk for every script author? The decision to use that feature should be their choice.

So you will prevent updates again for a compatible version.

Why? The mentioned GM 2.0 change was backward incompatible. If the script adapts the new way of writing to unsafeWindow and script relies on that function then the script author can say for sure that GM versions lower than 2.0 are NOT supported anymore.

So for me using a version information to prevent updates is only possible if a script is marked incompatible especially for this specific version of the addon.

It doesn't matter if you blacklist versions lower than X or whitelist versions greater than X when every new script version can adapt that information to the most recent needs.

Prevent an update just because it's not marked as compatible is a bad behaviour

But isn't it up to the script author to decide about the compatibility. He can always mention no version at all or add gm(1.0+) to include all future engine versions. Nevertheless Tampermonkey would always only display a warning at the script installation page and also allow manually forced updates to versions with unknown compatibility.

@tobbexiv
Copy link
Contributor

tobbexiv commented Nov 2, 2014

This means everybody with engine v2 will get an update since the author specified it that way.

This feature was intended to say "It is tested with" and not "It should only be installed with" as far as I know. Because the author only specified that the script is compatible with a version does not mean it is incompatible with others. The author did not specify "script is not compatible with all other versions". He just specified that the script is compatible with a specific version and said nothing about any other version. So any other version has to treat it as unknown unless a specific incompatibility is specified.

So you can talk for every script author? The decision to use that feature should be their choice.

No I can't. But: If you prevent updates for scripts with compatibility information for your engine based on the script compatibility and don't do this only if the version is explicitly marked as incompatible, you force any script author who want's to use a versioning to either test with any combination of engine and browser or to mark any combination of engine and browser as untested because otherwise the engine would prevent updates for his script users. So what I said later was that if you really want to use data to prevent engines from updates this should NOT be the same data that says "Hey, I tested it with" or "Hey it should work with" what I will use. And to say "tested with" or "should work with" does not need any version information as this information just blows up the necessary lines.

The mentioned GM 2.0 change was backward incompatible.

You can mock functions ... => if I want my script to be compatible in different Engines I might need to mock these functions and then it might work also in GM 1.15. But I didn't test it and so I don't write it as compatible. But with your interpretation of this information I have to test it and also include it in the compatible information to roll out the update to those users.

If the script adapts the new way of writing to unsafeWindow and script relies on that function then the script author can say for sure that GM versions lower than 2.0 are NOT supported anymore.
It doesn't matter if you blacklist versions lower than X or whitelist versions greater than X when every new script version can adapt that information to the most recent needs.

It does matter if I only want to show an information and don't prevent updates. Because what you want is preventing updates what I would give in a different keyword.

So my suggestion would be to split this up. One thing is a keyword that has no influence on the engines; so it has only informational character and a second one like @engine <engine> <version> which prevents updates and installation. Version would be something like 2.0+ (greater than) or 2.0- (less than) or 2.0-2.3 (in beetween them).

@derjanb
Copy link

derjanb commented Nov 2, 2014

He just specified that the script is compatible with a specific version and said nothing about any other version.

Ah OK, sorry if I misunderstood you. If that's the case then you're right, an engine cannot deduce anything about other versions.
But how useful is that information then? The engine may become updated and then you have the information that this script some-when in the past worked with another Tampermonkey version.

Chrome extensions are auto-updated and in normal there is no way back to an older version. So all you can get out of this is: most probably it will work with the recent Tampermonkey version because someone tested it with an older version.
For that kind of information you don't need a version number at the compatibility flag at all, right?

It does matter if I only want to show an information and don't prevent updates. Because what you want is preventing updates what I would give in a different keyword.

If the version would be optional then your kind of script author can write anything without versions to express that his script is supposed to run at the the recent TM and GM version. No update will ever be blocked by TM unless the "chrome+tm" part disappears (and at least one @compatibilty statement is still there).

@compatibility full chrome+tm,opr+tm
@compatibility full ff+gm

My kind of script author can specify versions to express that too old TM versions are not compatible:

@compatibility full chrome+tm(3.0+),opr+tm(3.0+)
@compatibility full ff+gm

And GreasyFork always interprets anything without versions.

render :partial => 'shared/compatibility_icons', [ 'chrome', 'opr', 'ff', 'tm', 'gm' ]

But with your interpretation of this information I have to test it and also include it in the compatible information to roll out the update to those users.

Not necessarily. First, the old engine versions don't change anymore so they can only become incompatible by script modifications, right? With a little bit care you can keep a script compatible or at least you should notice if you make incompatible changes.
And second, I would interpret the whole thing more like "I want to support that version, file bugs to me if you encounter problems".

You can mock functions ...

Sure, but if there is the possibility to define requirements then some might choose not to do so. For example TM also provides the functions that are necessary to write to unsafeWindow at GM 2.0+.

@engine

Nice idea, but as you wrote the browser version might also need to be taken into account. @compatibility delivers that very well.

@tobbexiv
Copy link
Contributor

tobbexiv commented Nov 3, 2014

But how useful is that information then? The engine may become updated and then you have the information that this script some-when in the past worked with another Tampermonkey version.

Thats what I wanted to say. You can not get any information from this script version after a while as the script engines upgrade (and the browsers do also). So exclude this information (version) completely from the definition and don't do anything with it. Keep this information as informational like "I (don't) want to support X on Y and tested it". Then a user having problem can see that his engine is not supported and the script just worked before (=> it's likely that he will not get an update) or his engine is suported and the script does not work anymore (=> it's likely that he will get an update).

If you want to prevent installation in specific engines / versions you should have a different keyword to have less confusion like "Why did it not update? I just said I tested it with X".

First, the old engine versions don't change anymore so they can only become incompatible by script modifications, right? With a little bit care you can keep a script compatible or at least you should notice if you make incompatible changes.

The example was about an incompatible change made on purpose which was reverted later. And with scripts with 2000 lines of code which are dependent and have requires it is not always possible to think of all changes made in older versions of an engine and if the script might be incompatible now. You have to test it to be sure.

@JasonBarnabe
Copy link
Collaborator Author

To get this moving again, I propose supporting version and user script compatibility info in such a way that it's easy to ignore for implementors who don't care, but can be defined by implementors who do. Here's the full proposal:

  • Two keys: @compatible and @incompatible, with the format @compatible <browserinfo> <comments>
  • Browserinfo will start be a browser identifier (e.g. "firefox", "chrome", "opera"), possibly followed by more descriptive info for user script engine, versions, etc. The syntax for the more descriptive info is to be determined. Only one browserinfo per @compatible/@incompatible line.
  • Comments is optional - contains text that provides more info on the compatibility.
  • Absence of @compatible and @incompatible for a browserinfo implies "untested/unknown".

Here's a simple example:

@compatible firefox
@compatible chrome Everything works except the auto-resize feature
@incompatible opera

More complex example with an example descriptive info syntax inspired by @derjanb's comments:

@compatible firefox+gm
@incompatible firefox+scriptish Scriptish does not have the GM_doIt function required by this script.
@compatible chrome(35+) Everything works except the auto-resize feature
@incompatible chrome(30-35)
@incompatible opera

So if someone just cares about the browser, they can check to see what the browser info string starts with (or grab it up to the first punctuation) and use that. If you do care, grab the whole thing and parse it. I'm not defining a particular syntax for this section because I don't intend to use it; defining it can be done separately so it doesn't block the initial implementaiton.

JasonBarnabe added a commit that referenced this issue Mar 18, 2015
@JasonBarnabe
Copy link
Collaborator Author

This has been implemented on Greasy Fork. Let me know your thoughts.

jesus2099 added a commit to jesus2099/konami-command that referenced this issue Mar 20, 2015
@jesus2099
Copy link
Contributor

Hi Jason,
I tried those compatibility metadata lines but I don’t know where to look at.
I don’t see any changes on the script page.

@JasonBarnabe
Copy link
Collaborator Author

I don't understand why it didn't work there. I tried the same thing (though a webhook) and it worked. If you click for the most recent version of your script, you can it see working too - https://greasyfork.org/en/scripts/2334-mb-funkey-illustrated-records?version=41884.

I wonder if I forgot to restart delayed_job after I made that change. That would mean the webhook code was running on the old code.

@jesus2099
Copy link
Contributor

OK so it means that it will work with my next version, then.
Thanks for testing. :)

@JasonBarnabe
Copy link
Collaborator Author

Looks like it works on https://greasyfork.org/en/scripts/2375-mb-funkey-illustrated-records now.

If anyone has problems or suggestions, please start a new issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants