[Question] Why eliminating effects one-by-one?

Subj.
Doesn't it requre all eliminators (runX, runY, runZ) to be applied sequentally and independently to each argument of send? With your encoding, putting all eliminators in an array looks to me as more natural strategy. You loose efficient top-effect-removal, but running becomes as simple as (arr ! index) ... effect. At least, this array would be present in the cache all the time.
This can also spare you from having your output monad m being the last element of the effect stack - so you can now convert to any monad, not just the last one. Without some IO at the bottom you can declare that the code can't launch rockets, unless Launching effect is provided.
This is helpful - the user of the framework might want to not have IO monad necessarily stuck in her code, because some testing frameworks refuse to shrink or whatnot in IO cases.
Another advantage (or disadvantage)... Ok, lets call this a property: in array-of-dispatchers case, the order of effects is delayed until transformation into working monad, instead of being peeled in some predefined order. The order becomes fixed at the point you run the Effect effs () program.
Also, in what cases does the user want to eliminate effects one-by-one? This is not a question against that style of running, I'm just curious. Technically, you can do this in array case as well, by transforming to (pseudocode) Effects '(tail effs). I didn't try it, because I prefer the effect list to have "final" encoding, but it should be possible.

Thanks for raising the questions!

putting all eliminators in an array looks to me as more natural strategy

I'm not sure. I really like functions. I know how functions work and I know how they compose and how to abstract over them. I am way less certain about how to deal with arrays. Worse I have no idea what the semantics of such a thing are. If all my effects are evaluated simultaneously, how does a State effect interact with a caught Error? Does it have rollback semantics or not? With the one-by-one approach you get rollback semantics by ordering your functions one way, and a consistent view of the state the other.
Furthermore, if you eliminate effects one-by-one, it means you can eliminate them in places other than main. It means you can write in interpreters which themselves are defined in terms of other temporary effects. I don't know how I'd go about doing such a thing in a simultaneously interpreted environment.

This can also spare you from having your output monad m being the last element of the effect stack - so you can now convert to any monad, not just the last one.

I don't understand this. How can you convert to any monad? What is the meaning of converting to a monad that is not in your monad stack --- other than just calling pure? Monads are interesting because of their actions, and you can't call any of their actions if you don't know about them beforehand.

Without some IO at the bottom you can declare that the code can't launch rockets, unless Launching effect is provided.

I think this is adequately solved in the same way as mtl; you add a MonadIO m-equivalent constraint. But you do this only in your interpreters, not your application code. Now you can simply eliminate IO by just not calling any interpreters which do IO.
That being said, I like the idea of making it harder to use IO in application code. I am FIRMLY FIRMLY of the belief that raw IO has no place in business logic.

If all my effects are evaluated simultaneously, how does a State effect interact with a caught Error?

That depends entirely on the monad m you are converting to and the State s ~> m/Error e ~> m interpreters.

Furthermore, if you eliminate effects one-by-one, it means you can eliminate them in places other than main. It means you can write in interpreters which themselves are defined in terms of other temporary effects. I don't know how I'd go about doing such a thing in a simultaneously interpreted environment.

Actually, its still possible: You have an Effect (Eff1 ': effs) a and you interpret it into Effect effs a, thus removing the top effect.

I don't understand this. How can you convert to any monad?

newtype Effect (effs :: [Action]) (a :: Type) = Effect
    { runEffects :: ∀ m. Monad m => Dispatch effs m -> m a
    }

In my implementation, you provide a Dispatch effs m (which is an array of effN ~> m internally) for the monad m you want to convert to. Effect itself doesn't depend on the output monad.

What is the meaning of converting to a monad that is not in your monad stack?

It's not a stack, but rather a set of capabilities. You convert to a monad that supports those.

I think this is adequately solved in the same way as mtl.

That's fine, unless you have same problem mtl does - which is allowing only topmost layer of same transformer to be used.

That being said, I like the idea of making it harder to use IO in application code. I am FIRMLY FIRMLY of the belief that raw IO has no place in business logic.

I have the same goal.
There's an example code with simultaneous dispatch: https://bitbucket.org/heimdell/yo/src/master/src/Control/Effect/Example.hs

Actually, its still possible: You have an Effect (Eff1 ': effs) a and you interpret it into Effect effs a, thus removing the top effec

I tried it in my encoding and I failed, because peeler can't access inner action in Catch action handler. This can be solved by some template haskell code providing instances which help map the m in my effects (or some dishonest tricks).
So, I still have no proof that removal of top effect in my encoding is possible.

So, about making your implementation "freer" - what's the current problem?

Actually I think I've got it sorted out. The trick is getting the higher-order effects to preserve their state, even though you need to do a Coyoneda thing to delay all of the computations until the very end.
Currently blocked on getting the TH for smart constructors working, but this is more a problem of sitting down and doing it more than anything else.

https://bitbucket.org/heimdell/yo/src/master/src/Control/Effect/Example.hs?fileviewer=file-view-default#Example.hs-98
I've implemented effect removal; this operation is still not efficient, though. The remove operation has to recursively visit the whole tree.

@Heimdell have you benchmarked it? Try turning on -O2 -flate-specialise -fspecialise-aggressively and take a look at the core. You might get lucky and have GHC evaluate everything at compile time.

I expect specialiser to run away screaming after seeing that much unsafeCoerce in one module; but hey, the wonder can happen, I believe in it. Thank you for the flags, will definitely try.

I tried singleton-index-encoding and I can't construct any of reinterpret methods that allow doing interesting things. Its either ∀ m. Monad m => e m ~> Effect effs or ∀ m. Monad m => e m ~> m effect removal. Neither of them allows to re-handle subexpressions.
However, the basic functionality is working.
The interpret function of yours receives a ∀ x m. e m x -> Semantics r x function as argument. How is it possible to write non-trivial function of that type - that actually uses those m a inside a e m x value? Do you have any example usage of that?

FirstOrder e "interpret"

Oh, how I see.

I think, reinterpretH requires the user to have their end monad as a Lifted thing in their context.

I think, reinterpretH requires the user to have their end monad as a Lifted thing in their context.

I don't think so --- for example, look at runFixpoint

The Fixpoint looks like a special case. Basically, I think you have to push this monad to effect stack to dispatch it.

Sorry, I'm not sure I understand the claim --- reinterpretH doesn't require any Lifts

So, how do the Tactics work, in layman terms?

In "Effect Handlers in Scope", there is the notion of an Effect typeclass:
class Effect e where
  weave :: Functor s => s () -> (forall x. s (m x) -> n (s x)) -> e m a -> e n (s a)

which allows other effect handlers to push their state (some functor s) through e. weave is the crux of higher-order effects, since without it, you can't write any interesting interpretations.
Writing instances of Effect are actually quite annoying; you need to explicitly fmap const things inside of the s (), and then manually get everything to typecheck.
The Tactics effect is essentially a reader over the s () and forall x. s (m x) -> n (s x) bits of weave, and gives a lot of helpful combinators for actually implementing the function as part of a interpretH.


Choose visibility in resource upload form

When uploading resources, the visibility of those are automatically set to visible. A checkbox for choosing the visibility of the resource manually before uploading would be helpful for many users. This checkboxes (advcheckbox) default value could be set with admin_settings to be either default_visible or default_hidden.

I'm somewhat confused. Can you explain which upload form you are talking about? Event visibility is always controlled via the event's ACL which you can set.

Based on your other request not being about opencast, I assume this one is about one of the Opencast plugins as well. That's why I'm closing this. In case this is actually about Opencast, don't hesitate to re-open the issue and explain which UI you mean.

This is probably Moodle again and the change in design to letting Moodle handle access internally opens up the host of mechanisms of Moodle to handle this.


Fix an issue where you couldn't run 'all' command inside container

What I did
Ignores itself instead of trying to stop itself if running from inside a docker container

How I did it
Check to see if there's a /proc/1/cgroup folder/file and if so, use that as an id to exclude

Does it need a test written for it?
Maybe??

Description for the changelog
Don't try to stop the container it may be running in

Does it pass a ShellCheck? (excluding changes to .bats files see our CONTRIBUTING.md)
Yes

This might open the door for an exclusion flag as well ... which would be nice (don't stop containers with name=something or something like that.
Let me know if I can make this better!

PS: this should be compatible with docker 1.8 +

Thanks again!  We plan on writing some more tests and refactoring a bit so we will keep you in the loop!

Thanks for all the pulls! We really appreciate the great work!

Welcome, glad I could be of service -- your project just became part of dev environment and build maintenance scripts (this project is way more thorough than spotify/docker-gc)!


Use ffmpeg to merge videos with overlays

Videos with text/stickers are actually stored as two separate files, one for the base video and another for an overlay of the text/stickers with a transparent background.
This PR uses FFmpeg to merge the videos and their overlays into one video, thus resembling what the user would have seen within Snapchat. The base video and the overlay are then deleted, as well as a useless JSON file corresponding with the two, leaving only the merged video.
I've followed the style used in the rest of the script rather than being POSIX-compliant, since it doesn't make sense to have two different styles only to be halfway compliant.

I just want to confirm something. Are the videos with the overlays in the chat_snap directory? Because when I receive videos or images that contain overlays, they are already merged. I only have files that end with chat_snap.0 in /data/user/0/com.snapchat.android/files/file_manager/chat_snap/.
What version of Snapchat are you using? If we have different versions, then that might be a reason as to why we have different results.

I did some further digging and was able to find some more information.
The path /data/user/0/com.snapchat.android/files/file_manager/media/ contains the snap you just took, the overlay and the JSON data that is needed for the merging (haven't taken deep dive into the json files).
If I go to the main camera page of Snapchat and take a snap, add a sticker, then the files below are created:
$ pwd
/data/data/com.snapchat.android/files/file_manager/media

$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

After I click on the yellow "Send To" button, then 2 more files are created.
$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0:   JPEG image data
eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

I will describe what each file is, by referring to the file name.

993ca6c4-805a-d690-e883-8b959e4adb5c.media.0
The image that has the overlay merged

e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0
The image that was taken, but is rotated 90 degrees and is mirrored.

eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0
JSON data about geolocation filters and bitmoji stickers

f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0
Identical to the JSON file mentioned above

f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0
A transparent image which is the same resolution as the original Snap that was taken, but only has the overlay (in my case, the sticker).

I just want to confirm something. Are the videos with the overlays in the chat_snap directory? Because when I receive videos or images that contain overlays, they are already merged. I only have files that end with chat_snap.0 in /data/user/0/com.snapchat.android/files/file_manager/chat_snap/.
What version of Snapchat are you using? If we have different versions, then that might be a reason as to why we have different results.

I did some further digging and was able to find some more information.
The path /data/user/0/com.snapchat.android/files/file_manager/media/ contains the snap you just took, the overlay and the JSON data that is needed for the merging (haven't taken deep dive into the json files).
If I go to the main camera page of Snapchat and take a snap, add a sticker, then the files below are created:
$ pwd
/data/data/com.snapchat.android/files/file_manager/media

$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

After I click on the yellow "Send To" button, then 2 more files are created.
$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0:   JPEG image data
eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

I will describe what each file is, by referring to the file name.

993ca6c4-805a-d690-e883-8b959e4adb5c.media.0
The image that has the overlay merged

e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0
The image that was taken, but is rotated 90 degrees and is mirrored.

eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0
JSON data about geolocation filters and bitmoji stickers

f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0
Identical to the JSON file mentioned above

f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0
A transparent image which is the same resolution as the original Snap that was taken, but only has the overlay (in my case, the sticker).

I just want to confirm something. Are the videos with the overlays in the chat_snap directory? Because when I receive videos or images that contain overlays, they are already merged. I only have files that end with chat_snap.0 in /data/user/0/com.snapchat.android/files/file_manager/chat_snap/.

Yes, these files are all in /data/data/com.snapchat.android/files/file_manager/chat_snap/.

What version of Snapchat are you using? If we have different versions, then that might be a reason as to why we have different results.

Snapchat v<IP_ADDRESS>

I did some further digging and was able to find some more information.
The path /data/user/0/com.snapchat.android/files/file_manager/media/ contains the snap you just took, the overlay and the JSON data that is needed for the merging (haven't taken deep dive into the json files).
If I go to the main camera page of Snapchat and take a snap, add a sticker, then the files below are created:
$ pwd
/data/data/com.snapchat.android/files/file_manager/media

$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

After I click on the yellow "Send To" button, then 2 more files are created.
$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0:   JPEG image data
eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

I will describe what each file is, by referring to the file name.

993ca6c4-805a-d690-e883-8b959e4adb5c.media.0
The image that has the overlay merged
e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0
The image that was taken, but is rotated 90 degrees and is mirrored.
eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0
JSON data about geolocation filters and bitmoji stickers
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0
Identical to the JSON file mentioned above
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0
A transparent image which is the same resolution as the original Snap that was taken, but only has the overlay (in my case, the sticker).

For me, this scenario with multiple files only occurs when I recieve a video, not an image, with text, stickers, or drawings.

I just want to confirm something. Are the videos with the overlays in the chat_snap directory? Because when I receive videos or images that contain overlays, they are already merged. I only have files that end with chat_snap.0 in /data/user/0/com.snapchat.android/files/file_manager/chat_snap/.

Yes, these files are all in /data/data/com.snapchat.android/files/file_manager/chat_snap/.

What version of Snapchat are you using? If we have different versions, then that might be a reason as to why we have different results.

Snapchat v<IP_ADDRESS>

I did some further digging and was able to find some more information.
The path /data/user/0/com.snapchat.android/files/file_manager/media/ contains the snap you just took, the overlay and the JSON data that is needed for the merging (haven't taken deep dive into the json files).
If I go to the main camera page of Snapchat and take a snap, add a sticker, then the files below are created:
$ pwd
/data/data/com.snapchat.android/files/file_manager/media

$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

After I click on the yellow "Send To" button, then 2 more files are created.
$ file *
993ca6c4-805a-d690-e883-8b959e4adb5c.media.0:   JPEG image data
e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0:   JPEG image data
eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0:   ASCII text
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0: PNG image data, 1080 x 1920, 8-bit/color RGBA, non-interlaced

I will describe what each file is, by referring to the file name.

993ca6c4-805a-d690-e883-8b959e4adb5c.media.0
The image that has the overlay merged
e492d0ac-ec12-c277-d030-4229a6bebb1d.media.0
The image that was taken, but is rotated 90 degrees and is mirrored.
eebffcbf-d9a7-2122-3197-1ec949cdeb1e.edits.0
JSON data about geolocation filters and bitmoji stickers
f21e1c5a-eb17-6897-4632-e819a991f07d.edits.0
Identical to the JSON file mentioned above
f21e1c5a-eb17-6897-4632-e819a991f07d.overlay.0
A transparent image which is the same resolution as the original Snap that was taken, but only has the overlay (in my case, the sticker).

For me, this scenario with multiple files only occurs when I recieve a video, not an image, with text, stickers, or drawings.

Okay, I have confirmed that splitting of video snaps with overlays works on both your version of Snapchat and mine.
I tested the script along with the -n flag but it seems like the JSON files get recovered as well. They should probably be deleted as I don't really see the need in recovering them.
What are your thoughts on that?

Okay, I have confirmed that splitting of video snaps with overlays works on both your version of Snapchat and mine.
I tested the script along with the -n flag but it seems like the JSON files get recovered as well. They should probably be deleted as I don't really see the need in recovering them.
What are your thoughts on that?

I tested the script along with the -n flag but it seems like the JSON files get recovered as well. They should probably be deleted as I don't really see the need in recovering them.
What are your thoughts on that?

I agree. The only reason I didn't do that is because that's how the script behaves without this PR. I'll add that now.

I tested the script along with the -n flag but it seems like the JSON files get recovered as well. They should probably be deleted as I don't really see the need in recovering them.
What are your thoughts on that?

I agree. The only reason I didn't do that is because that's how the script behaves without this PR. I'll add that now.


error installation

did you have any idea how to fix this ?
ERROR: The Compose file is invalid because:
Service xsshunterexpress-trufflehog has neither an image nor a build context specified. At least one must be provided.

Are you using docker-compose or docker compose, make sure you use docker compose.
If you still have issues can you give me more details on your setup please?

look i was using an old version of docker compose , now  i am able to  install it successfully

did you have any idea how to fix this ?
ERROR: The Compose file is invalid because:
Service xsshunterexpress-trufflehog has neither an image nor a build context specified. At least one must be provided.

If it's still not working please share the commands you ran and your system info,will look into it


Storing of structure variable into NVS is not working (IDFGH-4884)

#include "pr_nvs.h"
struct qwer{
int a;
char b;
char c[20];
float f;
};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
NVS.begin();
}
void loop() {
// put your main code here, to run repeatedly:
int a = 36, b= 0;
qwer obj;
obj.a = 134;
obj.b = 3;
strcpy(obj.c,"mahesh");
obj.f = 33.456;
qwer obj1;
NVS.put(1000, obj);
NVS.get(1000,obj1);
Serial.println("----------------");
Serial.println(obj1.a );
Serial.println((int)obj1.b );
Serial.println(obj1.c );
Serial.println(obj1.f );
Serial.println("----------------");
delay(2000);
}
I want to store the structure variable into NVS and fetch the value from NVS.
I'm attaching the NVS ESP32 arduino Library.
Kindly help me in this regard.
pr_nvs .docx

@kalkimahesh96 Thanks for reporting. Would you please help provide more details as suggested in the issue template? Information like elf, sdk configuration, backtrace, log outputs, commit ID, hardware and etc. would help us debug further. Thanks.

@kalkimahesh96  - is the issue still actual or was you able to figure out the reason why you do not see the expected result ?


[Intel MKL] Fix for convrnn unit test failure

Adding a fixup pass (+unit test) to handle incorrectly linked Mkl metadata
edges
This graph pass is needed because a graph may have some input Mkl metadata
edges incorrectly setup after node merge and rewrite passes. This could
happen because GetReversePostOrder function may not provide a topologically
sorted order if a graph contains cycles.
Minor style issue left over from earlier commits to the graph pass are also
handled (but not related to the fixup pass).

@nhasabni Thanks for the fix!

Thanks!


Generate more unique Identifiers

Fixes #59. A couple notes though:

Originally I wanted to include the package name as well. Turns out tyConPackage includes the package's version number. That's good from a uniqueness perspective, but it makes it really hard to write deterministic tests without jumping through many hoops. So I decided to leave it off for now.
Any polymorphic containers don't include the module names in their type arguments. For example Maybe Bool is now GHC.Maybe.Maybe Bool rather than GHC.Maybe.Maybe GHC.Types.Bool like you might expect.

The tests failed because some types moved around across versions of dependencies, usually GHC. For example:

GHC 9.0.x: GHC.Num.Natural.Natural
GHC 8.10.x: GHC.Natural.Natural

This is fixable, but it's the same root problem that I mentioned with regards to package version numbers. I would have to fetch the type name in the test suite and then interpolate it into the schema.

I think withIdentifier strikes a good balance: Use the default short names for convenience, then switch to explicit names to avoid collisions if that's important to you.


3rd person camera the world bugs out

I'm not sure how to explain it but when in 3rd person camera the world around is non existent. Not sure if it's a conflict with the avatar mod or not...I hope i've done this right i've never done this before.
Any questions please ask!

Can you zip your camera2 config folder and attach it

Camera2.zip
is this what you mean? (i'm so sorry i genuinely have no idea what i'm doing)

Not exactly, in your beat saber folder theres a folder called userdata - In there, theres a folder called camera2.


Update module github.com/rabbitmq/cluster-operator to v2

This PR contains the following updates:

Package
Type
Update
Change

github.com/rabbitmq/cluster-operator
require
major
v1.14.0 -> v2.1.0

Release Notes

rabbitmq/cluster-operator
v2.1.0
Compare Source
⚠ Upgrading the cluster-operator to this version will update RabbitMQ clusters (i.e. will cause rolling update of the underlying StatefulSets).
If you want to control when a RabbitMQ cluster gets updated, make sure to pause reconciliation before upgrading the cluster-operator.
After upgrading the cluster-operator, resume reconciliation whenever it's safe to update the RabbitMQ cluster.
See Pause reconciliation for a RabbitMQ cluster.

Multi-arch support
The RabbitMQ cluster-operator now supports both AMD64 and ARM64 architectures out of the box. The image used in the release manifest is a multi-architecture OCI, which is automatically resolved by your container runtime to the underlying image relevant to your architecture.
What's Changed

Add Aggregating ClusterRole for Service Bindings by @Samze in https://github.com/rabbitmq/cluster-operator/pull/1153
small update to vault-tls readme example for https://github.com/rabbi… by @DanielePalaia in https://github.com/rabbitmq/cluster-operator/pull/1157
Delay start by 30 seconds by @ansd in https://github.com/rabbitmq/cluster-operator/pull/1156
Add label for service discoverability by @baijum in https://github.com/rabbitmq/cluster-operator/pull/1165
Update PR test image tags. by @MirahImage in https://github.com/rabbitmq/cluster-operator/pull/1175
Bump github action dependencies by @MirahImage in https://github.com/rabbitmq/cluster-operator/pull/1177
Use latest go patch in github action by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1178
Update pod-disruption-budget.yaml by @BostjanPisler in https://github.com/rabbitmq/cluster-operator/pull/1180
adding support for MinReadySeconds in statefulsetspec by @DanielePalaia in https://github.com/rabbitmq/cluster-operator/pull/1179
External Secret: Implementation to skip the creation of the default u… by @DanielePalaia in https://github.com/rabbitmq/cluster-operator/pull/1199
Adding an example for the admin external secret implementation by @DanielePalaia in https://github.com/rabbitmq/cluster-operator/pull/1210
Migrating Concourse CI pipelines to GH Actions by @coro in https://github.com/rabbitmq/cluster-operator/pull/1208

New Contributors

@baijum made their first contribution in https://github.com/rabbitmq/cluster-operator/pull/1165
@BostjanPisler made their first contribution in https://github.com/rabbitmq/cluster-operator/pull/1180

Full Changelog: https://github.com/rabbitmq/cluster-operator/compare/v2.0.0...v2.1.0
v2.0.0: 2.0.0
Compare Source
Breaking Changes ⚠
This version requires RabbitMQ 3.9.9 upwards. Please ensure all existing RabbitMQ clusters are 3.9.9 upwards  before upgrading else those RabbitMQ clusters will fail to start after cluster-operator upgrade.
If you cannot upgrade some of your existing RabbitMQ clusters to 3.9.9 or newer, pause reconciliation before upgrading the cluster-operator.
⚠ Upgrading the cluster-operator to this version will update RabbitMQ clusters (i.e. will cause rolling update of the underlying StatefulSets).
If you want to control when a RabbitMQ cluster gets updated, make sure to pause reconciliation before upgrading the cluster-operator.
After upgrading the cluster-operator, resume reconciliation whenever it's safe to update the RabbitMQ cluster.
See Pause reconciliation for a RabbitMQ cluster.

What's Changed

Update copyright dates. by @MirahImage in https://github.com/rabbitmq/cluster-operator/pull/1069
Update CodeQL workflow by @Zerpet in https://github.com/rabbitmq/cluster-operator/pull/1085
More reliable system tests by @coro in https://github.com/rabbitmq/cluster-operator/pull/1086
short if return by @jiuker in https://github.com/rabbitmq/cluster-operator/pull/1084
Adding a workflow to create a PR to k8s-operatorhub/community-operators by @DanielePalaia in https://github.com/rabbitmq/cluster-operator/pull/1103
Update crd after k8s api and controller-gen bump by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1107
Use EntryDescription for DescribeTable tests by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1109
Stop testing rmq 3.8 by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1110
Remove RabbitMQ 3.8 support by @ansd in https://github.com/rabbitmq/cluster-operator/pull/1111
Fix spelling mistakes found by goreportcard. by @MirahImage in https://github.com/rabbitmq/cluster-operator/pull/1112
Set cluster size hint by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1113
Remove version restriction on JSON-log example by @coro in https://github.com/rabbitmq/cluster-operator/pull/1115
Exclude dependabot from auto-generated release notes by @coro in https://github.com/rabbitmq/cluster-operator/pull/1116
OPERATORHUB WORKFLOW by @DanielePalaia in https://github.com/rabbitmq/cluster-operator/pull/1118
Bump golang to 1.19 by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1130
Add govulncheck to makefile. by @MirahImage in https://github.com/rabbitmq/cluster-operator/pull/1129
Fixing .yaml to .yml bug on operatorhub pipeline by @DanielePalaia in https://github.com/rabbitmq/cluster-operator/pull/1132
Bump k8s api to 1.25 (controller-runtime 0.13) by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1139
Bump k8s dependencies to 1.25.1 by @ChunyiLyu in https://github.com/rabbitmq/cluster-operator/pull/1143
Fix FileDescriptorsNearLimit alert rule by @ElfoLiNk in https://github.com/rabbitmq/cluster-operator/pull/1140
Explicitly install a known golang version. by @MirahImage in https://github.com/rabbitmq/cluster-operator/pull/1144

New Contributors

@ElfoLiNk made their first contribution in https://github.com/rabbitmq/cluster-operator/pull/1140

Full Changelog: https://github.com/rabbitmq/cluster-operator/compare/v1.14.0...v2.0.0

Configuration
📅 Schedule: Branch creation - "every weekend" in timezone America/New_York, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: go.sum
Command failed: go get -d -t ./...
go<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0

File name: apis/go.sum
Command failed: go get -d -t ./...
go<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0

File name: go.mod
Command failed: go mod tidy
github.com/openstack-k8s-operators/openstack-operator imports
	github.com/rabbitmq/cluster-operator/api/v1beta1<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	github.com/stretchr/testify/assert<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	github.com/stretchr/testify/require<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	go.uber.org/goleak<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	github.com/onsi/ginkgo<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	github.com/onsi/gomega<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/controllers/core imports
	github.com/openstack-k8s-operators/lib-common/modules/common/condition tested by
	github.com/openstack-k8s-operators/lib-common/modules/common/condition.test imports
	github.com/onsi/gomega/format<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/controllers/core imports
	github.com/openstack-k8s-operators/lib-common/modules/common/condition tested by
	github.com/openstack-k8s-operators/lib-common/modules/common/condition.test imports
	github.com/onsi/gomega/types<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	github.com/openstack-k8s-operators/cinder-operator/api/v1beta1 imports
	sigs.k8s.io/controller-runtime/pkg/scheme tested by
	sigs.k8s.io/controller-runtime/pkg/scheme.test imports
	github.com/onsi/gomega/gstruct<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	go.uber.org/zap/internal/ztest imports
	github.com/benbjohnson/clock<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	sigs.k8s.io/controller-runtime/pkg/envtest/printer imports
	github.com/onsi/ginkgo/config<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	sigs.k8s.io/controller-runtime/pkg/envtest/printer imports
	github.com/onsi/ginkgo/reporters<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	sigs.k8s.io/controller-runtime/pkg/envtest/printer imports
	github.com/onsi/ginkgo/types<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/cmd/csv-merger imports
	github.com/ghodss/yaml imports
	gopkg.in/yaml.v2 tested by
	gopkg.in/yaml.v2.test imports
	gopkg.in/check.v1<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	k8s.io/client-go/plugin/pkg/client/auth imports
	k8s.io/client-go/plugin/pkg/client/auth/azure imports
	github.com/Azure/go-autorest/autorest tested by
	github.com/Azure/go-autorest/autorest.test imports
	github.com/Azure/go-autorest/autorest/mocks<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime imports
	sigs.k8s.io/controller-runtime/pkg/manager imports
	sigs.k8s.io/controller-runtime/pkg/cache tested by
	sigs.k8s.io/controller-runtime/pkg/cache.test imports
	github.com/onsi/ginkgo/extensions/table<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/controllers/core imports
	sigs.k8s.io/controller-runtime/pkg/client imports
	k8s.io/apimachinery/pkg/util/strategicpatch imports
	k8s.io/kube-openapi/pkg/util/proto tested by
	k8s.io/kube-openapi/pkg/util/proto.test imports
	github.com/onsi/ginkgo/v2<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime imports
	sigs.k8s.io/controller-runtime/pkg/builder imports
	sigs.k8s.io/controller-runtime/pkg/webhook/admission imports
	gomodules.xyz/jsonpatch/v2 tested by
	gomodules.xyz/jsonpatch/v2.test imports
	github.com/evanphx/json-patch<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0

File name: go.mod
Command failed: make manifests generate
apis/core/v1beta1/openstackcontrolplane_types.go:31:2<EMAIL_ADDRESS>missing go.sum entry; to add it:
	go mod download github.com/rabbitmq/cluster-operator/v2
core/v1beta1/openstackcontrolplane_types.go:31:2<EMAIL_ADDRESS>missing go.sum entry; to add it:
	go mod download github.com/rabbitmq/cluster-operator/v2
/tmp/renovate/repos/github/dprince/openstack-operator/apis/core/v1beta1/openstackcontrolplane_types.go:167:11: unknown type rabbitmqv1.RabbitmqClusterSpec
Error: not all generators ran successfully
run `controller-gen rbac:roleName=manager-role crd webhook paths=./... output:crd:artifacts:config=config/crd/bases -w` to see all available markers, or `controller-gen rbac:roleName=manager-role crd webhook paths=./... output:crd:artifacts:config=config/crd/bases -h` for usage
make: *** [Makefile:91: manifests] Error 1

File name: apis/go.mod
Command failed: go mod tidy
github.com/openstack-k8s-operators/openstack-operator imports
	github.com/rabbitmq/cluster-operator/api/v1beta1<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	github.com/stretchr/testify/assert<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	github.com/stretchr/testify/require<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	go.uber.org/goleak<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	github.com/onsi/ginkgo<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	github.com/onsi/gomega<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/controllers/core imports
	github.com/openstack-k8s-operators/lib-common/modules/common/condition tested by
	github.com/openstack-k8s-operators/lib-common/modules/common/condition.test imports
	github.com/onsi/gomega/format<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/controllers/core imports
	github.com/openstack-k8s-operators/lib-common/modules/common/condition tested by
	github.com/openstack-k8s-operators/lib-common/modules/common/condition.test imports
	github.com/onsi/gomega/types<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	github.com/openstack-k8s-operators/cinder-operator/api/v1beta1 imports
	sigs.k8s.io/controller-runtime/pkg/scheme tested by
	sigs.k8s.io/controller-runtime/pkg/scheme.test imports
	github.com/onsi/gomega/gstruct<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	go.uber.org/zap/zapcore tested by
	go.uber.org/zap/zapcore.test imports
	go.uber.org/zap/internal/ztest imports
	github.com/benbjohnson/clock<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	sigs.k8s.io/controller-runtime/pkg/envtest/printer imports
	github.com/onsi/ginkgo/config<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	sigs.k8s.io/controller-runtime/pkg/envtest/printer imports
	github.com/onsi/ginkgo/reporters<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime/pkg/client/config tested by
	sigs.k8s.io/controller-runtime/pkg/client/config.test imports
	sigs.k8s.io/controller-runtime/pkg/envtest/printer imports
	github.com/onsi/ginkgo/types<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/cmd/csv-merger imports
	github.com/ghodss/yaml imports
	gopkg.in/yaml.v2 tested by
	gopkg.in/yaml.v2.test imports
	gopkg.in/check.v1<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	k8s.io/client-go/plugin/pkg/client/auth imports
	k8s.io/client-go/plugin/pkg/client/auth/azure imports
	github.com/Azure/go-autorest/autorest tested by
	github.com/Azure/go-autorest/autorest.test imports
	github.com/Azure/go-autorest/autorest/mocks<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime imports
	sigs.k8s.io/controller-runtime/pkg/manager imports
	sigs.k8s.io/controller-runtime/pkg/cache tested by
	sigs.k8s.io/controller-runtime/pkg/cache.test imports
	github.com/onsi/ginkgo/extensions/table<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator/controllers/core imports
	sigs.k8s.io/controller-runtime/pkg/client imports
	k8s.io/apimachinery/pkg/util/strategicpatch imports
	k8s.io/kube-openapi/pkg/util/proto tested by
	k8s.io/kube-openapi/pkg/util/proto.test imports
	github.com/onsi/ginkgo/v2<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0
github.com/openstack-k8s-operators/openstack-operator imports
	sigs.k8s.io/controller-runtime imports
	sigs.k8s.io/controller-runtime/pkg/builder imports
	sigs.k8s.io/controller-runtime/pkg/webhook/admission imports
	gomodules.xyz/jsonpatch/v2 tested by
	gomodules.xyz/jsonpatch/v2.test imports
	github.com/evanphx/json-patch<EMAIL_ADDRESS>go.mod has non-.../v2 module path "github.com/rabbitmq/cluster-operator" (and .../v2/go.mod does not exist) at revision v2.1.0

File name: apis/go.mod
Command failed: make manifests generate
apis/core/v1beta1/openstackcontrolplane_types.go:31:2<EMAIL_ADDRESS>missing go.sum entry; to add it:
	go mod download github.com/rabbitmq/cluster-operator/v2
core/v1beta1/openstackcontrolplane_types.go:31:2<EMAIL_ADDRESS>missing go.sum entry; to add it:
	go mod download github.com/rabbitmq/cluster-operator/v2
/tmp/renovate/repos/github/dprince/openstack-operator/apis/core/v1beta1/openstackcontrolplane_types.go:167:11: unknown type rabbitmqv1.RabbitmqClusterSpec
Error: not all generators ran successfully
run `controller-gen rbac:roleName=manager-role crd webhook paths=./... output:crd:artifacts:config=config/crd/bases -w` to see all available markers, or `controller-gen rbac:roleName=manager-role crd webhook paths=./... output:crd:artifacts:config=config/crd/bases -h` for usage
make: *** [Makefile:91: manifests] Error 1


Fix pure link parsing issues and make it closer to GFM

This change is addressing multiple pure-link parsing issue whilst make the implementation closer to GFM spec. Please check the new tests for the cases.
The logic of handling braces around pure-link is removed, since it is already handled elsewhere. Moved the associated tests from pure_link_helper_test.exs to acceptance test file.
Note that this is still not handling all the cases from GFM spec such as email links and semicolon at the end

@akash-akya first of all ty for all the hard work
I really am a little be hesitant to merge this, because of the increased complexity, and even Github does not implement its own spec. That said it would be nice to avoid the case of the illegal URL so that alone brings great value, :clap:
I would like to merge this PR, create a branch from it and revert the merge on master, so that I can play around with it...
problem is however that I have more urgent issues to get 1.5 out, so I do not know if and how I can cooperate your work here, I appologize that must be frustrating for you.
Are there any urgent use cases for you or is this an ad hoc contribution?

Thats fair. We can support this if we want, but just wasn't sure if this corner case is important enough to justify more complexity. It might have been simpler if we had parser-combinator here.

Are there any urgent use cases for you or is this an ad hoc contribution and are you ok with my plan?

I'm okay with your plan. Please take your time.
Thanks!

@RobertDober I previously missed this, but http://test.com)… is a valid link according to the GFM spec.

After a valid domain, zero or more non-space non-< characters may follow:

So according to the spec http://test.com)… will be parsed as like this:
prefix: http://
domain-name: test.com
path: )…
So the issue is with the spec I think. GitHub's implementation and ours is matching the spec.

Your code is preserved here @akash-akya
Thank you again for your contribution


False Positive on com.nimbusds:lang-tag-1.4.4

Hello.
False positive on library com.nimbusds:lang-tag-1.4.4.jar - reported as cpe:2.3/a:nim-lang:nim-lang:1.5 with CVE-2020-23171
mvnrepository.com/artifact/com.nimbusds/lang-tag/1.4.4

Duplicate of #3594


Confused by versioning - differs greatly on npm, examples, and README

excited I found this repo!  thank you all that are actively supporting Leaflet Draw.  this may be exactly what I need for my project and it will make my life much easier.

im confused about the following.  why the discrepancy with:

yarn add leaflet-draw installs leaftlet.draw v1.0.2
leaflet examples use v0.4.2
leaflet README show support for 0.7 and v1+

I understand and agree that I should not be copy/pasting code from the example to get started.  But most times I like to start with the example, intentionally break the code and hack with it until I understand it, then start fresh by wiping clean.  And let's be honest here -- most people use the examples to learn and evidently copy/paste.
But maybe I am missing something... is there a reason the examples don't use the latest version of Leaflet Draw in production?  Should I be using v0.4.2 in prod even though it's not supported anymore
Just a bit confused, that's all.  Thank you!
ps. I should note that I am using the most basic example from the README.  see below.  i get errors when I try to draw and also notice how the controls render.  using version from yarn add leaflet-draw

I'd hate to pile another piece of feedback but...

would be great to move the Install section to the top of the docs.  this seems to be common practice of most libraries I use
include a Get Started section that includes how to install leaftlet draw and get up and started very quickly

If I'm experiencing trouble getting started I wonder if other folks could benefit too.

Thanks, @benjaminhoffman - I've been a bit slow lately to implement changes as I've been ramping up with work projects. I'll take some time this week to roll a new release and clarify the documentation.

@ddproxy that would be awesome. I have some time later today and tomorrow, hopefully I can hack my way through it.
I'm mostly looking to see how I can get started with v.1+.  thx!

@ddproxy what would be super awesome. I have been hoping for a version with a fix for https://github.com/Leaflet/Leaflet.draw/pull/838/files so I can start using version  🙏

I'm experiencing similar issues as OP. Can you post a working example using the latest version of Leaflet Draw, as currently published on NPM? It's currently not working and having trouble getting started.

In case you haven't solved this issue - you have to remove the { drawControl: true }  object from your map constructor OR the map.addControl(drawControl)  method. I don't know how it worked before, but it seems right now they do the same thing except you have more control with the L.Control.Draw constructor.
This worked for me on ionic angular with leaflet v1.3.4 and leaflet draw v1.0.3

There are two sets of examples with different versions since Leaflet v1 was released ~ suggest using the most recent Leaflet.draw plugin with most recent Leaflet and adding controls manually (map.addControl(drawControl);) as @smashthestate has suggested.
{drawControl: true} adds a 'standard' configuration.
https://github.com/Leaflet/Leaflet.draw/blob/master/docs/leaflet-draw-1.0.1.html May be a bit better to start with.

I'd hate to pile another piece of feedback but...

would be great to move the Install section to the top of the docs.  this seems to be common practice of most libraries I use
include a Get Started section that includes how to install leaftlet draw and get up and started very quickly

If I'm experiencing trouble getting started I wonder if other folks could benefit too.

The above implies there was at one point an "Install" and "Get Started" section? Because there isn't anymore... There doesn't seem to be any instructions on how to install things, where to get the library from, or what to do. The "dist" folder has nothing, there's no set of files or min file to download in any of the releases, there's no place to download files from the doc site... this plugin is apparently unusable. Shame, because the examples show it to be the best of the dozen or so drawing plugins...

Hi folks, what about this issue? I'm working with leaflet: v1.7.1 and leaflet-draw: 1.0.3 and still getting the L.Control.Draw is not a constructor. Any ideas or workarounds on this? I've looked up all the issues and still have no idea on how to solve it.

@alexxgarci I think it is simple as:
leaflet: v1.7.1 is released on 4 Sep 2020.
leaflet-draw v0.4.14 is released on 20 Jan 2018·
probably try using: leaflet-geoman ?
I want to simply add a circle that is resizable, to be able to search within a radius, for me leaflet-geoman would be a heavy addition to the project unfortunately.


Add documentation for "programmatic" usage

Currently Granian documentation is not there. Example: document

@sreenivasulureddysura can you clarify this?

@sreenivasulureddysura, do you mean "programmatic" as in calling Granian from Python instead of cli?
If so, that's true. This way of using Granian is not documented. One would have to check code to see how https://github.com/emmett-framework/granian/blob/0a85e88ca9b18fa37cfe265bd08f0c5e9c25230f/granian/cli.py#L257-L304
I could add this use-case to README.md.
BTW, are there any plans to have a dedicated documentation website?

@sreenivasulureddysura, do you mean "programmatic" as in calling Granian from Python instead of cli?

Correct, I changed the title and the naming comes from Uvicorn (https://www.uvicorn.org/#running-programmatically).

I could add this use-case to README.md.
BTW, are there any plans to have a dedicated documentation website?

IMHO at the moment there's still few content for launching a website; probably relying on markdown files within the GH repo is fine at the moment, in the same way we have those for other projects in the organization like renoir.

@gi0baro Let's bring all the markdown files and deploy it using the github page. Mkdocs library will help in the deploy it.  If you are okay with Mkdocs I will submit the PR with the basic structure.

@gi0baro Let's bring all the markdown files and deploy it using the github page. Mkdocs library will help in the deploy it. If you are okay with Mkdocs I will submit the PR with the basic structure.

Again, there's no enough content/reasons to publish (yet?) a website about Granian. And if and when that become a need, it would probably be a subdomain of emmett.sh website or even if on its own domain, built in a similar way.
None of the projects in Emmett organization use Mkdocs; I would avoid having a single project with a different toolset/workflow, and if there's any valid reason to change that organization-wide, we should have that discussion separately from this issue.
Let's start by having documentation in place with just markdown files, then post-pone further considerations at the proper time.

@gi0baro f emmett.sh website or even if on its own domain, [built in a similar way](https://github.com/emmett-framework/website). this looks good.  Can we have a sub-domain of the emmett.sh for granian that helps? You have lot of content for Granian Just the document to arrange it .

@gi0baro f emmett.sh website or even if on its own domain, [built in a similar way](https://github.com/emmett-framework/website). this looks good. Can we have a sub-domain of the emmett.sh for granian that helps? You have lot of content for Granian Just the document to arrange it .

How about as a first (small) step we re-organize the current root md file into multiple ones and link from the root md file (in places where it might be necessary)? :)
It's easier to read and it'll also be easier to transition whenever @gi0baro decides it's time to move the docs to a standalone domain.
FWIW, I think the thoroughness and quality of information in the docs is much more important than them having their own domain. I'll start with making a PR for programmatic usage ☝🏽


Detect and eliminate blank columns after the last field

Regardless  I can see that there were a number of uploads of the file before validation commenced and it was during those that the additional columns were added to the file
The initial upload had the headers as expected and the file commenced with the 3rd ED.
enumeration_district,civil_parish,ecclesiastical_parish,where_census_taken,ward,parliamentary_constituency,sanitary_district,location_flag,folio_number,page_number,schedule_number,uninhabited_flag,house_number,house_or_street_name,rooms,address_flag,surname,forenames,name_flag,relationship,marital_status,sex,age,individual_flag,occupation,occupation_category,occupation_flag,verbatim_birth_county,verbatim_birth_place,nationality,birth_county,birth_place,birth_place_flag,disability,language,notes
3,Brandesburton,-,Brandesburton,-,-,-,,21,1,1,,,The Hall,,,TONG,George,,Head,M,M,60,,Gardener,E,,YKS,Ellerby,,,,,,,
The next upload had additional blank columns in the deaders and the file now commenced with the 1st ED
enumeration_district,civil_parish,ecclesiastical_parish,where_census_taken,ward,parliamentary_constituency,sanitary_district,location_flag,folio_number,page_number,schedule_number,uninhabited_flag,house_number,house_or_street_name,rooms,address_flag,surname,forenames,name_flag,relationship,marital_status,sex,age,individual_flag,occupation,occupation_category,occupation_flag,verbatim_birth_county,verbatim_birth_place,nationality,birth_county,birth_place,birth_place_flag,disability,language,notes,,,,
1,Bonwick,All saints beeford,bonwick,,holderness,skirlaugh,,4,1,1,,,,,,Topham,Moses,,Head,M,M,55,,Farmer,r,,Yks,Weaverthorpe,,,,,,,,,,,
The 17th line shows the rows all had the extra blank fields with the blanks after the notes
1,Dunnington,st leonards beeford,dunnington,,holderness,skirlaugh,,,2,1,,,,,,Robinson,Frederick J,,Head,M,M,47,,Farm Manager,e,,Yks,haslem,,,,,,,pob not located,,,,
They remained there through a number of subsequent uploads.
Now when the file starts validation we see something interesting.
The header has the validation column after the additional blank columns
enumeration_district,civil_parish,ecclesiastical_parish,where_census_taken,ward,parliamentary_constituency,sanitary_district,location_flag,folio_number,page_number,schedule_number,uninhabited_flag,house_number,house_or_street_name,rooms,address_flag,surname,forenames,name_flag,relationship,marital_status,sex,age,individual_flag,occupation,occupation_category,occupation_flag,verbatim_birth_county,verbatim_birth_place,nationality,birth_county,birth_place,birth_place_flag,disability,language,notes,,,,,record_valid
whereas the data has it after the notes field
1,Dunnington,St Leonards Beeford,Dunnington,-,Holderness,Skirlaugh,,4,2,1,,,,,,ROBINSON,Frederick J,,Head,M,M,47,,Farm Manager,E,,YKS,Haslem,,,,,,,pob not located,false
Bottom line People need to be careful not to introduce blanks columns
But even more importantly CSVProc should be detecting and eliminating blank columns after the notes field.
E3 U6 S7 C6: P22

Attempted a fix and deployed to test3


Suppress the errors

Type of Change

[X ] Bug fix (non-breaking change)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose

fixes Rob's Pain at seeing the emails from PowerShell gallery about failed Pester Tests!
Seriously, I have just added the suppress attribute to the Pester tests that were causing PowerShell gallery to email dbatools owners about failing tests. This will not alter anything other than when a Pester test is run ON THE FILE it will ignore those rules.
This will not effect the Pester Tests for dbatools running
Approach
Suppresses the Pester tests with [Diagnostics.CodeAnalysis.SuppressMessageAttribute

once again psgallery shows its "green-ness" .... maybe we should add checks for tests too to avoid this happening again ? or at least modify the template ...

A better option would be to simply remove the test files from the PS Gallery.

as you wish, I'm going to add scriptanalyzer checks for high-severity into CI tomorrow for functions, adding for tests will be one step away.

Do we close this PR? 😢

If functions/Invoke-DbaWhoisActive.ps1 can be removed I would say put it in whilst a decision is made about which way to go forward?  At least then we wont get the emails and the Gallery will be happy

b's love Invoke-DbaWhoisActive, that'd be harmful :(

LOL - I meant from this PR

where do we stand, yall?

I'm still for ignoring the test folder in your CI build/deploy to PS Gallery. It is possible to exclude that directory and other files when you use VSTS to do the build.

i'd like that - can we do it @wsmelton ?

Will work on this after yall get back from sqlbits.

Lez go, where we at? The VSTS stuff?

K so imma close this but not delete the branch in the event we got this way instead of the other way 🌮


Fix bulk delete mutation for sales

I want to merge this change because catalogue info needs to be fetched before the deletion to be able to properly return this data in payload.

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

Task linked: SALEOR-7993 Bulk sale delete does not fill variants_removed


Take advantage of new Raku --doc=auth-fmt capability

Rakudo PR #3708 has added an option argument capability to '--doc=' that causes the parsed Pod from leading declarator blocks to retain author formatting rather than combining all such text into a normalized single-line string.
That capability may be very useful for this program.
UPDATE
There is an active discussion on IRC channel #raku about the best choice of identifier for the action. Users are encouraged to look at comments on the PR and vote for their choice of names.

An example?

#| Purpose:
#|   + collect info
#|   + average results
#|
#| Example:
#|    2, 3, 4
#|         average: 3
sub foo() {}

Text as extracted now (one normalized line):
Text as extracted with the new argument:

OK, I see. Thanks!

What's the specific use case for this feature? Generating the HTML site isn't going to use this, and examples-compilation doesn't care about the formatting.

Closing ticket - feel free to re-open if there's an actionable item.


feat: test with allow bypass rule

:tada: This PR is included in version 8.9.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Round off

If speed > 10 speed should be rounded off to 10 same for negative values

This was done in the past but was removed at some point.
Not sure why that decision was made.
Maybe @benface can weigh in on this?

Haha I don't remember why I did that. Maybe I liked the effect of a speed above 10 or under -10 in a project I was working on? But I mean in general, it seems like an arbitrary limit. Can't we trust that the developer knows what they're doing? A speed value outside these bounds doesn't necessarily break anything, does it?

Keep limits, if not they'll pass Infinity , BigInt etc,


🚀 Basics of Golang for beginners

Add basics of Golang for beginners.

You no longer need to create ISSUE/PR for the low-code and no-code contributions. Please check this communication here and follow the same(especially the ground rules). We will pick the contributions from there. Thanks!
https://www.showwcase.com/opensource


Timeframe for GA

Hi,
Is there a timeframe for when this Access Azure Storage as a network share from a container in App Service will GA?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3cd70fac-5d7c-7637-8385-f3f4af3ba0ad
Version Independent ID: 15d95fc5-f08e-a26c-ce06-8ead78474661
Content: Add Azure Storage (container) - Azure App Service
Content Source: articles/app-service/configure-connect-to-azure-storage.md
Service: app-service
GitHub Login: @msangapu-msft
Microsoft Alias: msangapu

@pisees, Thanks for the feedback! We are taking a look into this and will get back to you soon.

@pisees, Our product engineering team is actively working on it, and we do plan to GA the feature in the next few months, however we do not have an exact ETA to share at this time.
Please note that this timeline is just an estimate and is subject to change, depending on a myriad of factors. We really appreciate your feedback and interest in this feature.
Thanks for your patience!

We will update this thread/the document when it's GA, you may also watch-out these links:
https://azure.microsoft.com/updates/?product=app-service
https://github.com/Azure/app-service-announcements/issues


Dataset file 'b7d435a1-2421-48d2-946c-d1b3372f7c60.h5' not found

****On attempting to format mri data the scan 'b7d435a1-2421-48d2-946c-d1b3372f7c60.h5' is not found in the directory 'datasets/mridata_knee_2019/raw/ismrmrd/' and the issue is reported as 'file signature not found'.

You can find the fix here. https://github.com/mikgroup/mridata/issues/24

You can find the fix here. https://github.com/mikgroup/mridata/issues/24


How to disable the trigger of the right mouse button

I hook the right mouse button but I don't want the right mouse button click to show the right-click menu,
that is, I want to prohibit right-click messages from being sent to other programs.
How should it be realized?
	private void Hook_MouseDownExt(object sender, MouseEventExtArgs e)
	{
		if (e.Button == MouseButtons.Right)
		{
			SendKeys.SendWait("^c");

		}
	}

The demo code shows you how to disable the key outside of what you're handling. Use e.Handled = true once you've done your intercept code I guess.
One thing I noticed is that I had to add the call to Hook_MouseDownExt to both MouseDownExt and MouseUpExt for it to function


Feature/searching

@AnawatPaotthong Review your cahnges in public/views/includes/header.ejs line 8 - 12 and 25 - 27
CC @Pittawat2542

@AnawatPaotthong slight mistake at line 20 extra closing >
CC @Pittawat2542


[Android] Clear notifications when messages are read on desktop/web

When I have my phone enabled to receive push notifications even if online, I receive the notifications without a problem, my issue is, that they stay on the lockscreen even if I read them on the desktop app. Other messenging apps somehow retroactively remove those push notifications once the corresponding message has been read on another app... Would this be feasible for the zulip-way of doing it?

Thanks @lukasIO for bringing this up!
I definitely agree it would be good to do this, and I don't think there's any fundamental reason it'd be harder for us than for other chat apps -- we just haven't implemented it yet. The server side of our push notifications is currently pretty fire-and-forget.
I think the main work to do this will be the machinery on the Zulip server to track what messages have caused push notifications, and which of those are still unread. This is basically the same as the backend we'll need for maintaining a badge count, or dot, on the home screen, which is another feature many people want. Some design discussion on that is in https://github.com/zulip/zulip/issues/7459 .

Just as a feedback about this issue: in our evaluating process of zulip basically everyone in the team complained about this...

Update on this:

[x] The necessary machinery on the server is done! This was zulip/zulip#10094 , and see design discussion in zulip/zulip#7459 .

The machinery is present in the 1.9 release, complete with code to notify the Android app (via GCM) when a message that caused a notification is read; but we kept that code disabled for 1.9, because the Android app prior to 16.2.96 (released 2018-08-22) was not future-proofed for new features and would respond badly to such a GCM message.

[x] I've just merged an implementation for Android! See a09ddeac8 . This is slated for the next mobile release.

Still to be done:

We need to start having production servers send these "that message was read, clear the notification" updates for Android clients. We need to handle the issue that old versions of the app respond badly to them, but we have a couple of options for that.

We need to implement this for iOS. I'm actually going to split this issue in two, because there are a couple of pieces to be done for that.

With zulip/zulip#11452, this is done!

I think you got the issue number wrong :)

Indeed I had, thanks :)


Reorganize test_execute.py

This is a list of the tests that are currently failing:
FAILED test_execute.py::test_dynamic_input - AssertionError: False
FAILED test_execute.py::test_output_report_with_dag - assert 'Execution DAG' ...
FAILED test_execute.py::test_rerun_with_zap - FileNotFoundError: [Errno 2] No...
FAILED test_execute.py::test_reexecution_of_dynamic_depends - assert 1 == 2
FAILED test_execute.py::test_traced_function - assert 1 == 2
FAILED test_execute.py::test_error_handling_of_substeps - AssertionError: ass...
FAILED test_execute.py::test_error_handling_of_tasks - AssertionError: assert...

I have fixed the tests using the attached patch (apply using git apply). Note that the os.remove statements between the tests removes some files to trigger the execution of the workflow and should not be removed.
a.txt

@joannfeng I accidentally merged the PR and had to apply the patch. Please synchronize with the master if needed.

Thank you! The patch fixed most of the errors but these three tests are still failing from my end:
FAILED test_execute.py::test_dynamic_input - AssertionError...
FAILED test_execute.py::test_output_report_with_dag - asser...
FAILED test_execute.py::test_rerun_with_zap - FileNotFoundE...

Is this fine? I will get started on the other files.

@joannfeng These tests pass in my environment and in travis/appveyor (https://travis-ci.org/github/vatlab/sos/jobs/705988251), which means there is something missing in your environment.
This is generally ok because these tests test a lot of things and do not have to pass everywhere. However, you should have run them before you change them and known if they are supposed to pass in your environment, and you can skip tests that do not pass.


Github Actions Use Minikube

Have github actions launch an instance of minikube to run the E2E tests

@flavianmissi haven't we already implemented something on this regard? I think we did but not with minikube.

I think that the juice of this request here is to "run the E2E tests" and that we are doing (in an OCP cluster). I am closing this as we don't have any plans of running such jobs in a minikube.


How to remove title bar

How to remove the title bar, let me know which file to edit it, thank you

diff --git a/app/src/screen.c b/app/src/screen.c
index 18d24dd..34ba467 100644
--- a/app/src/screen.c
+++ b/app/src/screen.c
@@ -152,6 +152,8 @@ screen_init_rendering(struct screen *screen, const char *window_title,
 #endif
     }

+    window_flags |= SDL_WINDOW_BORDERLESS;
+
     screen->window = SDL_CreateWindow(window_title, SDL_WINDOWPOS_UNDEFINED,
                                       SDL_WINDOWPOS_UNDEFINED,
                                       window_size.width, window_size.height,

after removing the border it will look like in this image, still doing as you say, thank you
sorry for using google translate

If you apply the patch I just provided, this is what you will get.

If you apply the patch I just provided (just add the SDL_WINDOW_BORDERLESS flag), this is what you will get.

Thanks, I'll do it on Ubuntu


Add triggers to the protocol.

Protocol changes only - no implementation yet.

TriggerState isn't generated in C++ (in PR #159 I'm changing code generation to improve it a bit - including no need to explicitly specify EnumModels to generate).

Fixed.


[Misc] How to increase the sagemaker notebook HD size to a different default value of 5GB?

How to increase to 100GB for example

Release Version installed 3.3.1

Thanks
Paul

You can update the Sagemaker CFN template here to increase the volume size.
The attribute you would change is VolumeSizeInGB.
Note making this change will result in a new Sagemaker workspace version. You will need to import this into SWB.


Characters

Just the import steps. Need to go and update the GraphicsBlock format before mapping and output.


Fine tuning notebook

First of all, thank you for creating the model. It's an exemplary and straightforward implementation.
I'm working on a university project where we want to do a style transfer for music generation. Please help us by providing a notebook with the code necessary for fine-tuning or pointing me in the right direction. I'm new to the field and struggling a bit with navigating your code.
Thank you so much for your help

Maybe you can take a look at this #7


api_documentation: Clarify update_message event description.

Changes the following aspects of the update_message event description:

Moves flags field to top part of object description because it is always included in the event.

If a field is present only for certain types of message updates, the description begins by stating when the field is present: "Only present if ...". Previously, these statements were inconsistently placed in the description or missing from the description completely.

The fields are organized by the type of message update: any, stream, stream and/or topic, topic, content.

If a field is not present due to a special event, the description ends by stating when the field is not present: "Not present if ...".

Adds documentation for fields currently required to be returned with any update_message event. This information is not currently rendered in the /api/get-events page, but is useful for testing and hopefully will be included in the event descriptions in the future.

Follow-up to #20587 and #20611.
HTML diff for /api/get-events.
GIFs or screenshots:
1. Top of update_message event description with fields that are always present for normal message updates, 'Not present if ..." highlighted for special event case.

2. Middle of event description, "Only present if ..." highlighted.

3. End of event description, "Only present if ..." highlighted.

Merged, thanks @laurynmm!  Looking at those screenshots, I am thinking it might be better to stop trying to fit the description for fields on the same line as the type; it feels easy to end up not reading the first line of the description.  Probably worth an #api design conversation to get more feedback before making a specific change -- want to start one?

@timabbott, I agree about considering starting the description on a new line and I'll start that conversation.
I'm not sure where we are on #20409 which updates the /api docs to render descriptions for parameter objects, but what I've done there does what I think we're thinking for the events / return values. Here's an applicable screenshot from that PR ...

I do think a review / update of the code used to render events / return values in the /api documentation is worth it at some point.


analytics endpoint stopped

The Analytics endpoint has stopped working; it hasn't been updated since 7/31:
{
    _id: "597f0664cf5cee04001ae199",
    date: "2017-07-31T10:28:52.542Z",
    count: 3332,
    sensor_count: 73,
    provider_count: 71,
    __v: 0
}

When running the calculation of how many images are in the system, current count should be 3,390 (this is a collection count in the mongodb).
Need look further at the logs in Heroku.

This is on production yes? First thing I would try is just a restart of the app. Anlaytics never got any tests written for it, so this probably happened by 'fixing' something else. It's notably close to that db.close() bug in the worker process that we never fully got to the bottom of.
How urgent is this?

Non-critical, just an experience issue for the time being. Will restart and see if that fixes.

Coming back here after figuring out more information. Restarting and rebuilding current master branch didn't fix this. Attempted at running older commits to identify where the bug was introduced and it looks like it was introduced after this commit: https://github.com/hotosm/oam-catalog/commit/1f8ba282a36e228ff7035d748b587e1960e3d206.


didSelectDate not getting called

Version 7.1.5
Hi,
I was using the library without problems, and the last build that I made the didSelectDate method is not getting called. I've being using the same version of the library since the beginning.
I'm using this configuration for the Delegate and the Datasource, I'm setting those up programatically.
If I put a breakpoint on the UICollectionViewDelegates cellForItem is getting called, but on the didSelectItemAt is not getting called.
The delegate is not being deallocated or something, I already test that out.
Maybe you can give me some pointers in what can I do to fix this.
extension URCalendarDataProvider: JTAppleCalendarViewDataSource {
    func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {
        let yearInSeconds: Double = 60*60*24*183
        let parameters = ConfigurationParameters(startDate: Date(), endDate: Date().addingTimeInterval(yearInSeconds), firstDayOfWeek: .monday)
        return parameters
    }
}

extension URCalendarDataProvider: JTAppleCalendarViewDelegate {
    func calendar(_ calendar: JTAppleCalendarView, willDisplay cell: JTAppleCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
        let newCell = cell as! URCalendarCell
        newCell.dateLabel.text = cellState.text
        newCell.setupApperance()
        self.handleCellSelected(view: newCell, cellState: cellState)
        self.handleCellTextColor(view: newCell, cellState: cellState)
    }

    func calendar(_ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell {
        let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: self.cellIdentifier, for: indexPath) as! URCalendarCell
        cell.dateLabel.text = cellState.text
        cell.setupApperance()
        self.handleCellSelected(view: cell, cellState: cellState)
        self.handleCellTextColor(view: cell, cellState: cellState)

        return cell
    }

    func calendar(_ calendar: JTAppleCalendarView, didSelectDate date: Date, cell: JTAppleCell?, cellState: CellState) {
        self.handleCellSelected(view: cell, cellState: cellState)
        self.handleCellTextColor(view: cell, cellState: cellState)

        if let selectedIndex = URBookDataManager.sharedInstance.getIndexOfDate(date: cellState.date), !URBookDataManager.sharedInstance.indexIsAlreadySelected(index: selectedIndex) {
            self.tableViewDelegate?.selectDate(index: selectedIndex)
        }
    }

    func calendar(_ calendar: JTAppleCalendarView, didDeselectDate date: Date, cell: JTAppleCell?, cellState: CellState) {
        self.handleCellSelected(view: cell, cellState: cellState)
        self.handleCellTextColor(view: cell, cellState: cellState)

        if let selectedIndex = URBookDataManager.sharedInstance.getIndexOfDate(date: cellState.date) {
            self.tableViewDelegate?.deselectDate(index: selectedIndex)
        }
    }

    func calendar(_ calendar: JTAppleCalendarView, didScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
        let date = visibleDates.monthDates.first!.date

        self.delegate?.scrollToMonth(month: date.getMonth())
    }

    func calendar(_ calendar: JTAppleCalendarView, shouldSelectDate date: Date, cell: JTAppleCell?, cellState: CellState) -> Bool {
        if URBookDataManager.sharedInstance.isItemOnDay(day: cellState.date) {
            return true
        }
        return false
    }
}

It's hard for me to provide a sample app, maybe you can give me some pointers to where the problem could be. I found very weird that the method
public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        handleSelectionValueChanged(collectionView, action: .didSelect, indexPath: indexPath, selectionType: .userInitiated)
    }

And also shouldSelectItemAt it's not getting called.

I cannot tell from the code you provided.
One thing i would say is, if you rebuild calendar again from scratch, you can usually tell where the problem is.
Just copy your code and create a simple calendar (an empty one), and then check the didSelect is being called. Then slowly re-add your other codes until you see it breaking. I am suggesting this route because visually, there doesnt seem to be anything wrong with your code.

closing until user responds


Allow per-repository settings

PowerShell version: 5.1.19041.610
git version 2.30.0.windows.2
OS: Microsoft Windows NT 10.0.19042.0

I'm lacking the way to disable git status presentation for selected repositories. I have several huge repositories on my machine, where git status and related commands take several seconds to run. Along with the posh-get it slows down the PS shell too.
It would be amazing to allow configuring that in the git config for these repositories. It's totally OK to turn off status information only for these heavy repositories.  I've been using the similar feature with Oh My Zsh on mac and Linux.

Adding a line to the profile.ps1 is less productive in my case (it requires computer global setup, not a repository setup, which can be automated)
$GitPromptSettings.RepositoriesInWhichToDisableFileStatus += 'path'


Add http event field to store post body

Refer to aicers/piglet#688

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (797e31a) 33.69% compared to head (759ba87) 33.69%.
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #85   +/-   ##
=======================================
  Coverage   33.69%   33.69%
=======================================
  Files          13       13
  Lines         650      650
=======================================
  Hits          219      219
  Misses        431      431

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


The ember generate command requires an entity name to be specified. For more details, use ember help.

Hi Sam,
I'm getting this error when trying to run ember install ember-cli-mirage in ember-cli-0.2.3 (with Ember Canary)
C:\Users\olegmel\Documents\delvember>ember install ember-cli-mirage
version: 0.2.3
Installed packages for tooling via npm.
installing
  create app\mirage\config.js
  create app\mirage\factories\contact.js
  create app\mirage\fixtures\contacts.js
Installing browser packages via Bower...
  cached git://github.com/fivetanley/ember-inflector-bower.git#1.3.1
  cached git://github.com/trek/pretender.git#0.6.0
  cached git://github.com/desandro/get-size.git#1.2.2
  cached git://github.com/desandro/matches-selector.git#1.0.3
  cached git://github.com/components/ember.git#1.11.0
  new version for git://github.com/components/ember.git#>= 1.0.0 < 2.0.0
  resolved git://github.com/components/ember.git#1.11.3
  cached git://github.com/components/ember.git#1.11.3
  cached git://github.com/components/ember.git#1.11.3
  cached git://github.com/components/ember.git#1.11.3
  conflict Unable to find suitable version for ember
    1) ember canary
    2) ember >= 1.0.0 < 2.0.0
    3) ember >= 1.8.1 < 2.0.0
    4) ember > 1.5.0-beta.3
    5) ember >=1.4 <2
[?] Answer: 1
Installed browser packages via Bower.
installing
The `ember generate` command requires an entity name to be specified. For more details, use `ember help`.

And it seems like it's not getting to installing pretneder at all and breaks.
When having config.js with a simple get shorthand:
export default function() {
   this.get('/api/contacts', 'contacts');
}

...I get this error in console:
Attempting URL transition to /api/contacts
ember.debug.js:23121Uncaught UnrecognizedURLError: /api/contacts
EmberObject.default.extend.startRouting @
ember.debug.js:23121exports.default.EmberObject.default.extend.startRouting @
ember.debug.js:3476Namespace.default.extend.didBecomeReady @
ember.debug.js:4155Queue.invoke @ ember.debug.js:878Queue.flush @
ember.debug.js:943DeferredActionQueues.flush @ ember.debug.js:748Backburner.end @
ember.debug.js:173Backburner.run @ ember.debug.js:228Backburner.join @
ember.debug.js:247run.join @ ember.debug.js:15958run.bind @
ember.debug.js:16020jQuery.Callbacks.fire @ jquery.js:3094jQuery.Callbacks.self.fireWith @
jquery.js:3206jQuery.extend.ready @ jquery.js:3412completed @ jquery.js:3428

Forgot to mention: this is on Windows 10 TP with node v0.12.0 and npm 2.5.1

Strange, looks like your ember app is trying to transition to /api/contacts?
I believe the ember generate requires error is the same one in #94. This is an Ember CLI bug (I believe).
Try running ember g ember-cli-mirage, then bower install, and see if that works.

Yup. Looks like the same issue, thanks! Closing now.


fix: fix buffer without file detection

we also need to check buftype value in case we need the filetype to be
set to a value different from "nofile"

Can you clarify the usecase?

I have in my vim config a custom command which create a buffer without file attached but with a file type. This the code of the function I use for that command:
    function! g:StartDraftBuffer(open_command, ...)
      " if the filetype isnt set then
      " use current buffer's filetype
      let draft_filetype = &ft
      if len(a:1) > 0
        let draft_filetype = a:1
      endif

      execute(a:open_command)

      nmap <buffer> <c-o> :echo "noop"<cr>
      nmap <buffer> <c-i> :echo "noop"<cr>

      setlocal buftype=nofile bufhidden=wipe noswapfile nobuflisted nomodified
      exe 'set ft='.draft_filetype
    endfunction

    command! -nargs=? -complete=filetype Draft call g:StartDraftBuffer("new", <q-args>)

As you can see, the filetype can't be nofile but the the buftype is. nvim-lspconfig will try to start the language server and fail because, it can't identify a root project since there is no file attached to the buffer. That's the reason why I'm submitting this pull request.
I think this change is not only relevant for my use case but in general, we should also check if the buffer is linked to a file instead of checking only the filetype.

Is it EFM? Most of the configurations already have a filetype associated with them and should not start otherwise.

Excuse-me, what do you mean by EFM ?

EFM language server, which server is trying to attach to the empty buffer?

I'm facing the issue for all the language servers I have configured (vim, ruby, python, lua, typescript, elm, elixir). It is not related to one particular server. The problem is that nvim-lspconfig can't identify a root project for the buffer because there is no file attached to it.

Can you clarify the usecase?

Hi, my usecase would be to use iamcco/diagnostic-languageserver with (clj-kondo/clj-kondo) and Olical/conjure to lint clojure files. Conjure creates a log-type buffer with filetype=clojure and buftype=nofile. diagnosticls attaches to this buffer and shows linter errors (It's a valid clojure file, but I don't want to lint this particular buffer).
I noticed that the original commit (#307) uses buftype but it was changed in Add option to disable autostart · neovim/nvim-lspconfig@687c293 and checking the manual (:help 'buftype'), I can see that nofile is here (I don't think nofile is a valid filetype option <or yes?>)
I think this PR should not check the two conditions and revert to the old behavior (only check that buftype is nofile). Or is there some plugin that uses a nofile filetype?
Maybe someone wants to attach an lsp client to a buffer with nofile buftype? I could see the reasoning for a yes (If the buffer is editable, maybe you want lsp intellisense; or pop documentation with vim.lsp.buf.hover)

I noticed that the original commit (#307) uses buftype but it was changed in Add option to disable autostart · neovim/nvim-lspconfig@687c293 and checking the manual (:help 'buftype'), I can see that nofile is here (I don't think nofile is a valid filetype option <or yes?>)

Yep, I think that was just a mistake on my part. This PR should change back to testing buftype. I believe this also fixes @raw1z's issue

superseded by https://github.com/neovim/nvim-lspconfig/pull/1064


Append --enable-webhook to manager

If the manager process is to listen to webhooks then we must add this in
the manager_auth_proxy_patch.
We unfortunately can't append this via manager_webhook_patch.yaml as
this would lead to a merge conflict.
Signed-off-by: Andreas Karis<EMAIL_ADDRESS>
- What this PR does and why is it needed

- Special notes for reviewers

- How to verify it

- Description for the changelog

/retest
/lgtm
/approve

/override ci/prow/e2e-aws


InterruptWatcher always fires callback immediately

I cannot seem to get the interrupt functionality working - my callback is always fired immediately, regardless of the timeout I set or the state of the pin.
I'm using the exact code from the README, but with two changes:

I'm using GPIO4 (4 in the code)
I'm trying different timeout values like 999999

The screen floods with these messages:
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1

If I change the state of the pin, I'll see the value change accordingly:
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 0
Pin 4 changed to: 0
Pin 4 changed to: 0
Pin 4 changed to: 0
Pin 4 changed to: 0
Pin 4 changed to: 0
Pin 4 changed to: 0
Pin 4 changed to: 0
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1
Pin 4 changed to: 1

But the callback still fires rapidly when the state isn't changing.
I tried testing the underlying stream_select() myself by running the following commands as root...
echo 4 > /sys/class/gpio/unexport # Start from a clean state

echo 4 > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio4/direction
echo "both" > /sys/class/gpio/gpio4/edge

Followed by this PHP script as root:
<?php

$r = $w = [];
$e = [fopen('/sys/class/gpio/gpio4/value', 'r')];

$val = stream_select($r, $w, $e, 99999);

var_dump($val);

The script immediately ends with the following output:
int(1)

This occurs both when nothing is connected to the pin (value is HIGH) and when the pin is connected directly to GND (value is LOW).
I wonder if perhaps this only occurs with certain Pi devices?  I'm using a Raspberry Pi 3 running Raspbian Jessie.

It looks like I was using 0.2.0 but the issue is fixed in 0.2.1.  Closing this.