If you filter out 404 resources

I visit a URL and there is a js in the source code. It is indeed 404. Except for this js, this page can be accessed correctly in Google Chrome. However, in HtmlUnit, this js 404 is always reported and the page content is not printed. How to filter out the 404 resources to keep it accessible？

@wangrunze2023 please try
webClientOptions.setThrowExceptionOnFailingStatusCode(false)

@wangrunze2023 please try
webClientOptions.setThrowExceptionOnFailingStatusCode(false)

Thank you! 😄

@wangrunze2023 so i can close this?

@wangrunze2023 so i can close this?

Okay, thank you again for helping me solve this problem immediately.

thanks, have fun using HtmlUnit


CONTRIBUTING.md: improve commit message guidelines

Add a brief request for expressing the motivation for a change. Change the example commit messages to match.
Resolves #19126.
Motivation for this change
Motivation for each change should exist in commit history in addition to this section in a PR. See discussion in #19126.
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

👍 👍 👍 👍


fix: improve perf loading

Companion PR

https://github.com/Substra/substra-frontend/pull/180

Description
Try to improve loading in performance page. Two strategies have been put in place:

Using prefetch for FunctionOutput and using it in the serializer (instead of making a request for each function on FunctionOutput)
Removing data_samples from the request, as it doesn't seem to be used in the frontend.

The point 2 is more controversial, as it breaks the current architecture of returning linked data on eac hrequest. However, it implies reaching a n+ 3 level (as the data_samples are ordered on api_taskdatasample.order, which is maybe not needed .
How has this been tested?

Checklist

[x] changelog was updated with notable changes
[ ] documentation was updated

/e2e

End to end tests: :hourglass_flowing_sand: STARTING

/e2e --tests sdk,frontend,substrafl --benchmarks mnist,camelyon

End to end tests: :hourglass_flowing_sand: STARTING

/e2e --tests sdk,frontend,substrafl --benchmarks mnist,camelyon

End to end tests: :hourglass_flowing_sand: STARTING


Scale mode

This pull request should update the visuals of simple shapes.
Main questions for GUI experts:

Not sure if this is the right way to traverse the node looking for the visual leaf? It looks a bit hacky.
Not sure if the approach to scale the WireBox is the good one.

Are you planning to support changing the scale on physics too?
It's still unclear but definitely not in this pull request.

I don't think this PR should be merged in its current state. The current implementation is only on the client, so it doesn't affect sensors or physics, so I don't think this is useful to users and may cause confusion.
How about working on this feature in a separate branch, and only merging into a release branch after it's complete?

I'd prefer to do incremental merges, as opposed to a big merge but I totally agree. Is disabling the scale icon from the scene an option?

I'd prefer to do incremental merges

Agreed that this would make it easier to review.

Is disabling the scale icon from the scene an option?

My main concern is that the final implementation may end up looking completely different from the current one. Once the commands are sent to the server, the way that the scene is updated will be very different.
We probably won't need the SetWireBoxScale function anymore for example, and that's being added to the public API. Note how RenderUtil doesn't have any public functions for setting pose, for example, because translation and rotation are being set via the ECM.
So, I think it's ok for this to be implemented incrementally, but I think it's best if we don't make any changes to the public API or the UI until we have the final implementation working.

I'd prefer to do incremental merges

Agreed that this would make it easier to review.

Is disabling the scale icon from the scene an option?

My main concern is that the final implementation may end up looking completely different from the current one. Once the commands are sent to the server, the way that the scene is updated will be very different.
We probably won't need the SetWireBoxScale function anymore for example, and that's being added to the public API. Note how RenderUtil doesn't have any public functions for setting pose, for example, because translation and rotation are being set via the ECM.
So, I think it's ok for this to be implemented incrementally, but I think it's best if we don't make any changes to the public API or the UI until we have the final implementation working.

I see. It sounds reasonable, thanks for the explanation. I'll retarget it then.

I see. It sounds reasonable, thanks for the explanation. I'll retarget it then.

Retargeted to scale branch.

@mjcarroll , this should be ready for another pass when you have some time. Thanks!

@osrf-jenkins retest this please


0.16.1 breaks onLayoutChange

[ ] Bug

I was doing testing with 0.15.2 and it worked that the layout got saved into localstorage via onLayoutChange after dragging or resizing, now it doesn't call the onLayoutChange callback when the items are moved or resized.  If this was changed for another callback please let me know.  It was working great in responsive before but 0.16.1 breaks it.

I have the same problem

Duplicate of #670

Same here

I noticed that the compact function in utils.js no longer clones the layout items at 0.16.1, which makes the references of the layout items never change.
When layout is changed, all the changes are applied the same layout item object in state.oldLayout, which makes the oldLayout is always the same as newlayout, and the onLayoutChange will not be triggered.
see:
https://github.com/STRML/react-grid-layout/blob/0.16.0/lib/utils.js#L108
https://github.com/STRML/react-grid-layout/blob/0.16.1/lib/utils.js#L109

Indeed - that is a bug. I'll want to get a regression test in here first before we fix it.

0.16.2


getting-started: use github url for better name inference

On Nix 2.20+, nix profile now refers to profile elements using names. These names are inferred from URLs. With the current URL it is inferred as latest, instead of devenv.
$ nix profile install tarball+https://install.devenv.sh/latest
$ nix profile upgrade devenv
warning: 'devenv' does not match any packages
warning: Use 'nix profile list' to see the current profile.
$ nix profile list
...
Name:               latest

Changing the URL would work, but for now referring to the github repo will also work:
$ nix profile install github:cachix/devenv/latest
$ nix profile upgrade devenv
$ nix profile list
Name:               devenv
...

If you'd like to look into changing the URL, you can make sure the last segment is named devenv. Or devenv is used in as the package in the flake instead of default. See https://github.com/NixOS/nix/blob/master/tests/unit/libexpr/flake/url-name.cc
I haven't touched the other instances of this URL, as those will likely work just fine.

How could we change the url to fix the current scheme? Maybe we can suffix it with #devenv?

Yes that would also be a solution. Alias default to devenv.
Another way would be to use /latest/devenv or /devenv as the url, bit that's a bit strange. I think #devenv would indeed be better.

We can now use it from nixpkgs without indirection: https://github.com/cachix/devenv/commit/afa29528a39f06545658593a5329ab6e79f13be3


Haven Orbital

Haven Orbital
About the PR
I've added the biggest map yet called Haven Orbital, a map that took me over 600 hours to create and a lot of sweat, tears and frustration, but I finally decided it's done and it's time to PR it.
Haven Orbital is not just a station, it has a little story that you can see in the video below in the Media field.
Haven Orbital is a 65-80 player map, but I'm pretty sure it could easily hold 200+ players.
It has its own evacuation shuttle called Emergency Bean, also made by me and inspired by the Barratry Shuttle.

It has a zoo, a reporter's studio and a large green recreation area on the east side of the station.
Extra Doors
Around the east and north side of the station you can find some asteroids/debris containing valuable loot
Medical checkpoints to support paramedics help the injured
Darkmode
Broken down Engineering Shuttle

Media
Lore Video
https://www.youtube.com/watch?v=PsucLGNMTIc&t
Full Map Render

Map Render is so big i had slice it in half
Asteroids/Debris

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

-->
:cl:MaloTheDuck

add: Your crew meets the requirements to inhabit Haven Orbital, the most luxurious station NT has built to date consider yourself lucky!

I'd recommend removing the cult daggers from the lava wreck, they already do a lot of damage and the melee rework makes them significantly more deadly, they are also going to be hugely powergamed so perhaps replacing them with kukri knives is better

for anyone wondering why it got closed https://discord.com/channels/310555209753690112/771041304108072961/1142931848729731256 (tldr the map has a few issues like the asteroids existing and the dark tiles, well, existing, so this PR got closed until further notice)

this map is sick apart from maints which i originally thought was meant to be a maze

especially the dark mode


Add and remove

I did the following on Add and Remove branch:

Created a new Branch on To-Do-List Repo.
Modify the html file.
Modify index.js file.
Modify the css file.
Fix Linter Error.
Push to remote.

@omarsalem7
Changes Implemented

when adding a todo and after refreshing everything Should remain .
when edit todo is saved in local storage and displayed on the screen.
update the index for every todo in the list.

@addod19

Checked changes Implemented
Approved


java -version on JDK8 needs to show "Temurin" not "Adoptium"

What are you trying to do? Run java -version on Temurin Linux/x64 JDK8
Expected behaviour: Output shows "Temurin" like later java versions
Observed behaviour: Output only lists "Adoptium"
Any other comments:
java 11: "openjdk version \"11.0.13-beta\" 2021-10-19\nOpenJDK Runtime Environment Temurin-11.0.13+6-202109281808 (build 11.0.13-beta+6-202109281808)\nOpenJDK 64-Bit Server VM Temurin-11.0.13+6-202109281808 (build 11.0.13-beta+6-202109281808, mixed mode)\n"
java 8: "openjdk version \"1.8.0_312-beta\"\nOpenJDK Runtime Environment (Eclipse Adoptium)(build 1.8.0_312-beta-202109271816-b06)\nOpenJDK 64-Bit Server VM (Eclipse Adoptium)(build 25.312-b06, mixed mode)\n"
Likely introduced by https://github.com/adoptium/temurin-build/pull/2705/checks

Fixed by my PR in https://github.com/adoptium/temurin-build/pull/2710 which had got a bit lost during the last release lockdown and me being on vacation.


Text: hitArea and buttonMode - Example

i would like to use a text with a hitArea as a button.
Two issues i have with my code:

no buttonMode behavior visible
hitArea coordinates are not the debug-visible hitArea coordinates.
how can i make the actual hitArea visible?

see my fiddle example
var clickfn = function() {
    console.log("click!");
}

var create = function (game) {
    var text = game.add.text(20, 20, "click me, i am a button");
    var hitRect = new Phaser.Rectangle(15, 10, 300, 50);
  	text.hitArea = hitRect;
    text.inputEnabled = true;
    text.buttonMode = true;
    text.events.onInputDown.add(clickfn);

    // hitArea debugging
    game.debug.geom(hitRect, "rgba(100,50,20,0.2)");
}

var game = new Phaser.Game(400, 490, Phaser.AUTO, 'game_div', {create: create}, true);

There is no buttonMode property, so you'll need to create your own Button wrapper that does what you need. You can debug the hitArea by rendering it as you're doing, just remember to apply the parent coordinates as well.


Question: Does this re-encode the stream for webrtc?

Hello,
I am wondering if the ffmpeg mpegts stream gets re-encoded when sending to webrtc or does it feed the hardware encoded ffmpeg output directly to the stream track without the stream track needing to reencode?

mpegts-to-webrtc simply demultiplexes the input MPEG-TS stream into H.264 video and opus audio and sends it to the WebRTC client, without changing the bitstream of the elementary stream.

Great, so when it separates the video from the audio, it doesn't re-encode through the h264/opus reader, understood.  Thanks!


Add support for AKS agent pools

What problem are you facing?
AKS clusters currently have no way via Crossplane to use multiple node pools.  Users that are running diverse workloads with specific needs are not able to partition them into separate classes of nodes/machines.
The docs for provider-azure show some fields for number of nodes and node size, but not for setting more details for the “agent pool” or declaring multiple of them<EMAIL_ADDRESS>How could Crossplane help solve your problem?
We could create an agent pool managed resource to configure and manage a set of agent pools for the cluster, then the AKSCluster type could refer to these pools.  This article describes some of the operational steps for reference: https://docs.microsoft.com/en-us/azure/aks/use-multiple-node-pools

The AKSCluster type could expose fields to configure and manage a set of agent pools for the cluster.

This statement could be misleading, and implementing the solution this way would be against how the crossplane aims to manage external resources. Even though some nodepool details are needed to create an AKS Cluster, nodepool is a different managed resource itself.
Here is a quote from the related thread in the slack:

I would expect the kind name for the managed resource to follow the azure go SDK's terminology. I find the "AKSCluster" name a bit weird in this respect (azure SDK for go uses ManagedCluster for AKSclusters and AgentPool for nodepools following the Azure Rest API).

Good point @bergerx, thanks for calling that out! I've updated the description to make that more clear :)


Per key metadata sharing across clients in clustered ehcache

For a multi-tiered clustered cache manager, that has a cache that has either TTI and TTL configured, there are two challenges with respect to per-key metadata that needs to be addressed..
When a client does a get on a key locally from its caching tier, other clients doing a get on the same key later must somehow see the correct access time for this key locally in order to accurately compute 'time to idle' and decide whether an entry needs to be expired or not.
For both TTL and TTI computations with clients having different clocks, the computations must ensure that the clocks are synchronized across multiple VMs/systems either by using a single time reference (say of the server) for absolute time with clients computing time relative to this absolute time or by ensuring that the clocks are synchronized using internal or external clock synchronization mechanisms.

A solution proposal for this issue is illustrated here to solicit comments and stimulate discussions.
Timestamped Links, Metadata appends and Fault before flush
One potential solution for this issue is to time stamp every link in the blob chain on the server and then the client can use the time stamp on each link to recompute the lastaccesstime and the createdtime for the key.
Sub optimally on every get (or optimally when expiry is nearing) that hits the caching tier, a metadata append operation can be send asynchronously to the cluster tier, so that the server can add a link to the chain. Optimally, this append can just have the key and operation type in the blob, as the time stamp on the link can be put by the server when the link is appended to the blob chain. These metadata blob links in the chain along with other functions in the chain will help other clients to accurately compute the metadata such as lastaccesstime and creationtime etc.
If we want expiry computations to be more accurate in a clustered environment even in corner cases where there is frequent gets from an interested client and infrequent gets from another bored client, this solution can be expanded as follows:
When a TTI is configured, a semi-interested or bored client that 'wrongly sees' an expiry for a key on a caching tier (due to infrequent hits on the caching tier by itself) can first trigger a 'fault', resolve and recompute the lastaccesstime and issue a 'flush' if and only if the expiry was deemed accurate on the second pass.
The above solution will be illustrated using sequence diagrams etc in another comment or doc
Pros and Cons of this approach:

This approach can be extended easily to ensure that the absolute time reference is always that of the server (and not the client). This means that only the active and its passive needs to be time synchronized and client VMs need not be time synchronized (at least for this requirement).

May increase metadata chatter, However, the approach itself can be optimized to reduce metadata chatter between clients through server, Also, since client does not have to share their metadata to other clients, metadata exchange is more optimal (at least save 4 longs per key per operation).

In alignment with the current design of an opaque structure of a chain of binary blobs stored against each hash on the server.

Here is an illustration of the issue:

As you can see in the picture the local updates to the caching tier on client1 is not getting reflected on the server. So when a second client(client2 in this diagram) accesses the same data at a later point in time, it could get an old version of the data from the clustered tier with old metadata. This could be problematic in TTI based expiry calculations.

Here is the pictorial representation of the proposed solution:

Here each get request on the caching tier sends an append request to the clustered tier with a meta-update operation. The meta-update operation is a light-weight operation that's used just as an indication to the server that the meta needs to be updated. Since all operations that get appended to the chain is time-stamped by the server, this meta-update operation will also get time-stamped and this time stamp is an indication data access at the caching tier. When some other client retrieves the data from the server(client2 here), it gets the chain with the metadata links as well. Resolving that chain will get you the information on all the accesses on that data by other clients.

This approach could work, but there are a few things that must be sorted out before we can consider this design viable or not:

Updating the metadata on every get, will put some unacceptable load on the server. Even considering that async, a hot key server from heap could send well over 2 million updates per second. We must find the right place for the metadata to be updated so that clients both have reasonably accurate time stamps without putting too much strain on the resources.

Reading this proposal straight as it is, the resolving of the expiration is still done by the client, hence having a slight clock drift (think: a few seconds) between clients and/or the server(s) wouldn't hurt but a large time gap (think: 1+ hour) would have very adverse effects. We must also decide now if we leave the reasonable time sync effort in the hands of the user or if we introduce some form of server time source that the clients must use to resolve the time stamps.

Quick followup: updating the metadata when expiry is nearing won't cut the mustard: a TTI eviction policy would continuously push the metadata update in the future for as long as the key is being accessed.

Let me clarify..In montreal design, an entry enters the caching tier first only when a get is done on the authoritative tier. If we recompute and note server time during the resolution of the chain, we can compute whether we are closing in on the expiry with reference to this first get from the server. Like you said, we should never move the bar of computing whether we reached close to expiry on the subsequent gets that only hits the caching tier.
We have also described another case, where a bored client has warmed the cache with a get and does not issue any additional gets until expiry, while simultaneously the other more interested client is continuously accessing the key from its caching tier.  Even if this meta data updates reaches the server, the bored client may not see this meta-data updates. To handle this case, we could issue a 'fault' on expiry, fetch the chain from the server again and append a 'remove' only if the entry is still expired post get. This may be a bit over engineering, But then this also handles application use cases where a 'standby' client warms its cache (say for write once, read many data or static data) but then continues to access it in an operational fashion only when it takes over from a failed active client.

Just one more clarification. The meta data update timer on a client will start only on the first get from the caching tier, but the time to expiry check for the meta data update request queuing to the server will be always based on the first get from the authoritative tier.
Moreover, this is only a first cut on the approach. If there is a general opinion that we should take this forward, the design can be fine tuned and made completely hole free at the right time (when we are adding TieredStore functionality for clustered ehcache) in our sprints. If we hit some showstopper issues during the design, we can always refine the approach or even change direction, if need be..

After some more though and a conversation with @rkavanap it looks like this is all doable in a reasonable way.
In a nutshell, the caching tier would need to store an extra "refresh" timestamp in its value holder that would get set when the mapping is faulted in to the original expiration time. When such time is reached, a metadata update would be sent to the authority and a new refresh timestamp would be calculated for the caching tier's value holder. This logic should be light enough to always be active, and not be specific to a cluster tier being present.
Keeping the timestamps absolute on the clients and servers would keep the required changes to a minimum and would keep the code as simple as possible (especially in the clustered vs non-clustered case).
The only open question left is: do we need to build in some form of time sync between clients and servers or do we rely on the sysadmin's good will to keep all machines in a reasonable time sync? I'm more in favor of the latter option but adding some clock sync checks that would log if the machines' clocks have drifted too much apart wouldn't hurt.

Just some more additional comments: (Now that we assume server and client time stamps are equivalent and some different mechanism is assumed for time sync)
You could still  timestamp every link on the server side for every append and when the metadata update is sent, you could send just one long that contains the time the key was last accessed in the caching tier,  Why flood the network with metadata? This adds up when there are millions of keys and since the dev effort is less, there is hardly any tradeoff..  The append operation (API) can take a boolean that tells the server whether or not to timestamp an element. This can efficiently handle non TTI caches as well.
Also, are you planning to do the 'fault' before 'remove' for the bored but warm client case? Of course this is another abstraction different from the metadataappend abstraction. Maybe another story that can be prioritized later?..

One more thing for appends:
We need a way to distinguish between a mutative operation and a metadata operation on the server as  a mutative operation triggers invalidation. Currently I do not see a distinction between the two.

There is no need to have the server do the timestamp'ing as we agreed to assume clients and servers will have their clocks sync'ed.
The mappings stored by the authority (which the clustered store will be yet another impl of) already contain some metadata; check ValueHolder, it already contains:

creationTime
expirationTime
lastAccessTime

What we miss is a authorityRefreshTime timestamp in the CachingTier's ValueHolder to act as the timer that will trigger a metadata refresh of the authority.
I'm not planning anything special for the 'warm but bored' client: those clients will naturally expire their caching tier's contents and re-fetch from the authority on-demand. It's IMHO another feature's responsibility to keep an idle cache warm (think: refresh-ahead).
Strictly speaking, there's no need for any kind of distinction between metadata / non-metadata operations. A metadata update from one client will trigger eviction in the other clients' caching tier like any normal mutative operation. But I do agree that we could/should consider filtering those metadata update operations at the client level and handle them a bit more intelligently to avoid evicting perfectly valid and warm data from other clients' caching tiers. This has some impact on #919 though so we should sync with @ljacomet before making any final decision.

I now understood your philosophy for the 'bored but warm' client and it make complete sense. I originally misunderstood that the caching tier may forcefully remove from authority on expiry. But now I understand that only a flush happens and there is no forceful eviction from authority tier on expiry.
Some questions though:
The server side of the authoritative tier is just a chain of blobs. So why blobify the value holder. Simply blobify the key and value and re-create the value holder on the client side of the authoritative tier during the resolve. Timestamping elements (links) will allow this. Also the metadata update is simply blobifying the key. With your simplified approach of no background threads, we do not even have to send the accesstime as the metadata append is going only on a explicit get hitting the caching tier and when we are closing in on the refresh time. Also we agreed that we can assume timestamps are synchronized on clients and server. There is hardly any additional dev effort for saving this nw bandwidth, so why not save it.
I did not understand one aspect: Why send invalidations for metadata update? Invalidations from the server is expensive, even if all clients are blocking it after it has demarshalled the eviction request. The serverside store does not know whether it is a metadata update, unless we have a different append operation.
(Btw, your simplified approach with no background threads may not work for use cases where an application accesses a key on the first x seconds of the TTI in a scheduled manner. For e.g, if I have an application that has a TTI of one hour, but accesses the KV periodically for 5 minute at the beginning of every hour during peak hours from multiple clients. This might be an app that configured TTI to uncache the  element during non-peak hours only, but uses for only a scheduled amount of time during peak hours. But I am guessing that these use cases are rare enough for us to ignore)

Ok. After seeing your response on issue #919 I understand. You are planning to convert the invalidation coming from the server to a refresh metadata update. That works. But isn't that expensive? Isn't it simpler for the client to issue a 'fault before flush' to the authoritative tier in case of local expiry? This make it more on demand and more efficient and reduces broadcast messages.
I probably know the answer (changes montreal design etc), but I feel broadcasting is a bit expensive.

About your "blobifying the value holder" thought: what you're suggesting is an optimization that we may want to include, or maybe not. This requires more engineering effort, that's why I'm not keen on doing that right ahead.
About "sending invalidations for metadata update": it's a trade off. Either we pay the broadcast cost of metadata update to keep caching tiers warm, or pay the price of having all warm clients pounding on the server when it's time to refresh. It's unclear to me at the moment which one of the two would be most valuable so again I prefer to go with the solution with the smallest engineering effort.

Check my early prototype branch here to have a grasp of what this could look like:
https://github.com/lorban/ehcache3/tree/issue-1015

Ludovic, I fail to understand this. Intuitively, how can broadcasting to 1000s of clients who is not even interested in that particular mapping better that the client pulling into caching tier when it is interested, And when the client pulls and does not use it for a long time, it just have to check once more with server before expiring.
Once we track the clients per mapping, what you are saying will make sense to me more. But even in that model, intuitively itself the model of pulling on demand on expiry looks better than multicasting metadata changes. But then your argument of engineering effort Vs additional benefit seems much stronger in the multicasting model.
Better to wait for the broadcast to be changed to multi-cast before this is merged, right?
Other than that, I really see the simplicity of your change.

As I said, it's a tradeoff: how can you know that the 1000 clients are interested or not? If most of them aren't, then indeed the broadcast is going to be more expensive than waiting for the clients to re-fetch.
But if most of them are interested, then broadcasting would be a lot more efficient as that would prevent a thundering herd of server requests while avoiding a perf dip in the clients and some outliers in the latency percentiles.
As I said, I'd leave the final decision of which model to go to later and take the least engineering effort route for now. It doesn't matter too much as both let-the-client-refetch or broadcast-the-metadata-updates implementations can be swapped without much pain.

TTI is deprecated (#1097). People running with egregiously unsynchronized clocks when using TTL deserve everything they get.

Lovely! 🤪


How to deactivate logo in sidebar from rotating

Hi all,
as I don't like unneccessary animations in applications (they distract from productive work) I want to stop the application logo in the sidebar from rotating.
I have already searched many .less files and css files and also reverse-engineered the _Layout.cshtml but I simply don't find where the rotating Action/style is defined.
I can remove the logo entirely out of  the app - no Problem - but I like the logo but want to stop it from rotating.
I don't see this in the less file, where the logo and logo-mini classes are defined.
Also I didn't find anything about this in the current Serenity guide.
Any hint is greatly appreciated.
Thanks and with Kind regards,
John

From Site.css:
.main-header .logo i {
width: 50px;
height: 50px;
float: left;
background: url(images/serenity-logo-w-40.png) no-repeat center center;
animation: fa-spin 5s infinite linear reverse;
}

Thanks wldkrd1,
your hint brought me to find the correct place.
Here for reference the full solution (in case someone Needs this):
Actually, the Change must not be made within site.css directly but within site.theme.less because site.css is everytime overwritten by the less Compiler when rebuilding the solution.
--> In the end of Course, the Change is reflected within site.css.
Thanks again and
with Kind regards,
John

A note for myself: As of SF 3.9.14, this has been moved to site.default.less


Migrate navbar/no-logo.spec.js

This PR contains changes related to navbar/no-logo.spec.js e2e test.

This PR will be raised along with catalog chaise config e2e tests.


Website annotated values for sitelets definition lookup

WS.Owin should discover [] annotated values in the absence of an assembly-level one as WS 3.2 does

Something else is going on here, as using the [] annotated value worked where there was no js requires. Test at commit cf8e3d fails, but works when switching to the assembly-level annotation


operator uma-admin-operator (2023.12.1)

/test skip check_pruned_graph

@mn660971: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

/ok-to-test


Heading - improve color example

https://github.com/grommet/grommet/issues/2851

If we like the additional color example, I can add it on some more relevant components.


[auto_post.py] Request return 400 error on image upload.

While trying to use auto_post.py I was unable to post any images due to the script returning an 400 error. What is the issue here?
Console output:
2017-05-27 14:29:57,902 - INFO - Login success as blah!
Can't find 'whitelist.txt' file.
Can't find 'friends_blah.txt' file.
Can't find 'friends_5372200227.txt' file.
Can't find 'friends.txt' file.
upload: Sweet #blah #blah2 #blah1
2017-05-27 14:29:59,359 - WARNING - Request return 400 error!
<Response [400]>
upload: Sweet #blah #blah2 #blah1
2017-05-27 14:31:00,516 - WARNING - Request return 400 error!
<Response [400]>

Since i'm working on Instagram automation I have encountered many times this lovely 400 error.
It's an Instagram limitation, you have uploaded too many pics/videos during your development. You are now a spammy account. What you can do is change account and optionally use a proxy (only private proxy, not public).
Or just wait a bit (maybe 1 day at least I would say.. I don't know exactly)

@skawm That's the thing. I haven't. My account only has 4 pictures, and I wanted to get the auto post working, but as soon as I tried I got this error.

400 error sometimes mean that the request isn't done properly. I think the problem is that instagram changed it's API or we have a bug.

@RichusX There are so many different reasons for 400, it's a bit of a catch all.  I personally ran in to it when I was trying to post images that were not the proper dimensions. IG is pretty picky about image dimentions.

Reopen if you still have not found the solution (don't forget to update the bot).


multik java.lang.unsatisfiedlinkerror: dlopen failed: library "libmultik_jni.so" not found

i use multik to calculate eigen value and vector in android
but it doesn't work
how can i deal with this
my dependencies is
implementation("org.jetbrains.kotlinx:multik-api:0.1.1")
implementation("org.jetbrains.kotlinx:multik-jvm:0.1.1")
and i also tried "default" but it also doesn't work
this problem caused by "mk.linalg.eig(_)"

Hi,
What other dependencies are you using?

Hello there,
I seem to have the same issue.
I get this when trying to use DefaultLinAlg.norm()
I use the following dependencies:
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'

    def camerax_version = "1.0.0-alpha05"
    implementation "androidx.camera:camera-core:$camerax_version"
    implementation "androidx.camera:camera-camera2:$camerax_version"

    implementation 'org.pytorch:pytorch_android_lite:1.10.0'
    implementation 'org.pytorch:pytorch_android_torchvision_lite:1.10.0'

    implementation 'com.google.guava:guava:31.1-jre'
    implementation 'commons-io:commons-io:2.11.0'

    implementation 'org.apache.commons:commons-math3:3.6.1'
    implementation "androidx.core:core-ktx:+"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    implementation "org.jetbrains.kotlinx:multik-api:0.1.1"
    implementation "org.jetbrains.kotlinx:multik-default:0.1.1"

You are right, there is no native library for Android yet, so only multik-jvm works now.
Support for the native part is planned to release 0.2.0 (#104 )


Update active-directory-reporting-api-audit-reference.md

@dhanyahk,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@markusvi Please review these proposed changes. Thanks.

#sign-off

Hi @MarkusVi, There's one issue to address before the PR can be merged.
According to the Review Criteria, "Links to pages on azure.microsoft.com, TechNet, and MSDN are coded as locale agnostic. Do not include en-us, en-gb, en-in, or any other locale in links to these sites."
On Line 30, please remove the locale specifier "en-us" from both URLs

https://docs.microsoft.com/en-us/azure/active-directory/active-directory-reporting-faq
https://docs.microsoft.com/en-us/azure/active-directory/active-directory-troubleshooting-support-howto
Thanks
#hold-off

I'm fixing this from my side.
#please-close


Implement scheduler limiter more properly.

We observe allow = false for leader balance in an online cluster, but the leader of the cluster is not balanced at this moment, and there is no operator.
There is reason to suspect in some cases  limiter.addOperator was called in some cases but limiter.removeOperator is forgot to call.
We should make limiter more robust.

fixed by #874


Style popup modal to match surface type

Style popup modal to match surface type.
Add CSS classes for each modal popup background color to match the trail material or add a colored bar/bottom border in the information window for easy identification to Trail Surface Type

Decided against this approach.


Create Tab to write Junit tests for instructors

Detailed task description.
If the task is not obvious from the issue title, provide more detail here.
Initial estimate of time required to complete this task.
Initial estimate, in hours, of the time required to complete this task. This value should not be changed.
Actual time spent on the task (so far).
Total number of hours spent on this task. This value should be updated at the end of each session working on the task.
Current estimate of time remaining to complete this task.
Estimate, in hours, of the work left to do to complete this task. This value should be updated at the end of each session working on the task.

https://stackoverflow.com/questions/62025649/how-would-you-use-codemirror-documents-to-get-multiple-editors
Might be helpful


Short hand arguments combined form is not working in new version

The following command was working fine with the older version but it doesn't seem working now.
tx pull -af

For newer version we can run it only this way
tx pull -a -f

Thanks for the fix @codegaze . It's working fine now.


fix: modal sizing when full width

#140  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @kylemcd and the rest of your teammates on  Graphite


Document Azure platform cloudName within usage and hiveutil docs.

HIVE-1871

Since this is a trivial doc change, I'm gonna merge it manually to get it out of the queue for more important PRs so they don't need an extra rebase after we unfreeze.


Footer entries aren't centered for some translations in mobile

Currently the footer entries seem to be centred properly in mobile on English and some languages with smaller character typefaces but it is centred incorrectly for some languages like Tamil, etc which has a larger characters. This issue isn't present in the desktop version.
Reference image

I can also reproduce this in English with a width of 300:

I can also reproduce this in English with a width of 300:

Oh, So the text seems to be not adaptive for the mobile form factor with different scaling

Thanks


Consider changing property name schema for list tags

When introduced Listing tag lib in #245, we used naming convention to access fields of list model item as {model}-{field}.
Also, we found that it is confusing, or "not designed", to name properties on libraries, where not only list tag exists.
Good example is a new templated menu. We have web:menu and than web:menuItemDisplay, web:menuItemUrl etc.
What I'm suggesting is to change to web:menu with web:menu-display, web:menu-url etc.
Pros

Current naming is confusing. In libs like language, there isn't any prefix and list sets lang:id which is weird.

Cons

Properties of list and edit tags where shared and used to compose URLs. Example is article id, where list and edit use the same property. This property is also used to compose detail URL.

List of changed tags and properties

fa:browser
lang:list
loc:edit

loc:editItemIndex

pg:search
u:list
val:message
web:menu

Sub tasks

[ ] Create support for prefixed properties?

Lets leave it for now. Rethink it when property references will be a think.
There is a problem properties in URL.


[Question/Feedback]: Terraform Lifecycle - Ignore Changes

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Description
Pretty sure this is going to be a no but is there any way of being able to add lifecycle ignore_changes into the module so we can specify a list when calling the module?

We have a third party solution that applies a set of tags based upon region, cost centre, and a multitude of other tags for internal reporting. This solution also adds our worldwide office IP addresses to all resources that support networking like storage and key vault.  For example, in our current modules all resources that support tagging and firewalls have:
  lifecycle {
    ignore_changes = [tags["internaltag1"], tags["internaltag2"], tags["internaltag3"], tags["internaltag4"], tags["internaltag5"], tags["internaltag6"], tags["internaltag7"], network_acls, ]
  }

Currently whilst trying to use the AVM It's trying to delete the values that have been populated by the other means. Is there any way we could pass through blocks within the lifecycle blocks on resources. I know that the lifecycle block only supports literal values as per lifecycle block but I am hoping that someone really clever has come up with a stateful workaround.

I would also like to request this to add as an input possibility (lifecycle ignore_changes) in the modules in general.
The tags could be a common requirement for several modules as tags may be applied via inheritance from resources groups/azure policies.
An example of a tag(very commonly used ) is:
created_on  = formatdate("YYYY-MM-DD hh:mm:ss ZZZ", timestamp())
Which is IMO important to ignore.
There would be other cases where ignore_changes is required but would case by case, i.e. ignoring customer_managed_key rotation of resources, ignoring ssl_certs in application gateway etc.
A user controlled list for this would be a great help.

Agree that the ability to pass a list of tags to ignore would be useful. When Azure Policy is used to apply tags at the resource group level which filter down to resources, the plan flags the tags as changes making large plans more difficult to interpret.

We have similar requirements where we use azure policy DeployIfNotExist to create private endpoints entry in DNS zones, so we would like to ignore below in all AVM modules like Storage Account, Key Vault etc
lifecycle {
ignore_changes = [
private_dns_zone_group
]
}

We have similar requirements where we use azure policy DeployIfNotExist to create private endpoints entry in DNS zones, so we would like to ignore below in all AVM modules like Storage Account, Key Vault etc
lifecycle {
ignore_changes = [

  private_dns_zone_group

]

}

This has been fixed in the Key Vault module and now our recommended guidance for module authors. Please raise issues on each module if this hasn't changed.

It's not possible to have the ignore changes block populated by variables. It must be static.
Hence it's not possible to implement a user defined list of attributes to ignore. Until this changes upstream in TF then there's nothing we can do I'm afraid.


Hipp 198

closed due to gpg key signing. Other PR will be created based on branch HIPP-198.1 signed with gpg key


Map: user/owner validation

As part of the auth change (#351) I had to add security annotations to the map endpoints. There were some other issues there regarding utoipa/Swagger that I fixed as well (e.g. we don't need the user_id in the path).
Apart from that we have to change the map owner_id to be Uuid instead of i32 as Keycloak uses Uuid's to identify users. I added a TODO referencing this issue in code and also a print statement showing how/that the id can be extracted from the request.
@ThorbenStaufer Once #351 is merged I would ask you to do the following:

[x] Change owner_id to be Uuid
[x] Completely remove owner_id from NewMapDto. Instead extract the Uuid from the request and pass it to the service and db impl. Instead of NewMap::from(new_map) do something like: NewMap::from_dto_and_owner(new_map, owner_id)
[ ] Validate on every request that the owner_id matches the current user's id.

Validate on every request that the owner_id matches the current user's id.

I don't think we should do that, since a map can be opened and in some cases edited by users that are not the owner.


Add doc about status certificate command

I regret setting this cherry pick... one moment

/cherry-pick-approved

/approve
/lgtm


Empty notebooks on old leitner system session

On click of continue the notebooks map throws an error since the user did not pick any old session to continue from

:tada: This issue has been resolved in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


pythonPackages.pylint: 2.2.3 -> 2.3.1

Motivation for this change
pylint was broken for python3.5 an python3.6 as mentioned in #61646
looks like bumping the version fixed some of their unit tests that were failing with 3.5-3.6 interpreters.
nix-build -A python36Packages.pylint
nix-build -A python35Packages.pylint
nix-build -A python37Packages.pylint
nix-build -A pythonPackages.pylint
now all work.
I only tested the pytest executable wrapper of build outputs, and it seems to work as expected.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[X] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Closure for python37Packages.pylint: 102.4M -> 103.3M (the others were broken)

@GrahamcOfBorg build pythonPackages.pylint python3Packages.pylint

@GrahamcOfBorg build pythonPackages.pylint python3Packages.pylint python36Packages.pylint python35Packages.pylint

Tested locally on NixOS and darwin
Thanks!

The astroid update broke asttokens (on python 3).

looks like upstream fixed it https://github.com/gristlabs/asttokens/commit/21caaaa74105c410b3d84c3d8ff0dc2f612aac9a. I'm going to update it later


cli(lint): integrate linter more with watch behaviour

By listening on the changed files, we can probably improve the lint experience.
Also allow passing in a --eslint-only / --prettier-only option.

Depends on #1306

Depends on #1509

Linter seems fast enough now, that this doesn't add anything usefull


maxDistance is never set and defaults to 10

It got lost here and causes large gilt scenes to be zoomed in into the mesh.
https://github.com/pex-gl/pex-cam/commit/6e2881caad1a8cf47c75df7adb493519a4ef7d10#diff-78aa8fa08464681459d97cd46fe608ab83a8944ec030fa9796ad452ddaa8d1cfL80

True, I see its purpose. A few points that come to mind:

It is a convenience method and I assume / 10 and * 10 work in most case but is it just an arbitrary number?
It forces you to pass opts.min/maxDistance if you are setting a new camera on the orbiter
Overrides already set defaults on the orbiter object

I see 3 options:

Make it be a user space concern:

orbiter.set({
  maxDistance: vec3.add(aabb.size(scene.bounds), aabb.center(scene.bounds))
})

Add back previous behaviour and make a note on how it works

Change defaults to:

minDistance: Number.EPSILON,
maxDistance: Infinity,

Thoughts?

It's convenience to protect you from inertia scrolling on Mac but pain on bigger scenes like Expo.

It is a convenience method and I assume / 10 and * 10 work in most case but is it just an arbitrary number?

In most cases you set your camera outside of the scene if you use orbiter to rotate around it. 10x was good guesstimate to prevent it shrinking to 1x1 px if you zoom out too far.

Overrides already set defaults on the orbiter object

That's ok. Because if you know what you want you just provide maxDistance and otherwise (most cases) you don't have to do extra steps.

I think we should probably disable it by default, remove to automagic guessing on position set and let user set it manually if really needed.
minDistance: Number.EPSILON,
maxDistance: Infinity,

Cases where you zoom out too far should be handled on the user side by e.g. having reset camera button.


kafka connector not loading properly

when following steps to add kafka connector, importing the geoevent configuration seems to not work properly. the import suggests it succeeded, but trying to configure an input of this type shows this error:
Invalid stream configuration: adapter uri is missing.

in the input connector (kafka-text-in) the transport is set to 'FeatureService`. I think I should see 'kafka' something here?

Same exact issue here Running 10.4.1 and RHEL.

Marten, did you have a chance to test release 3 of the Kafka Connector we posted here (http://www.arcgis.com/home/item.html?id=7f94ec2a3eb944c79e98fe854d60d671) ? I believe this issue was already addressed. Please let us know if recent build works for you or not. Thanks!


Akavache Meeting Minutes - 8th of July 2016

In attendance

Paul Betts
Brendan Forster
Kent Boogart
Oren Novotny
Geoffrey Huntley
Dennis Daume
Michael Stonis

With Apologies

Paul Betts, as we bait and switched him with the promise of a social occasion with beer.

The Plan
Reactive Extensions

We will be upgrading to the latest version of Reactive Extensions in RxUI and all sister projects.
Upgrading to latest version of Reactive Extensions is a breaking change and merits bumping the major.

Strong naming key is different and this will affect WPF applications that are strongly signed.
Using the new bits means migrating the project to netstandard.

SemVer

Oren proposed that we adopt the .NET SemVer guidelines and there were no objections. We will move forward and adopt https://docs.microsoft.com/en-us/dotnet/articles/core/versions/index#semantic-versioning for ReactiveUI and all sister projects. - https://github.com/reactiveui/ReactiveUI/issues/1134

Akavache

Upgrade SQLitePclRaw to resolve the Android N sqlite incompatibility. - https://github.com/akavache/Akavache/issues/306
Upgrade to the new version of Rx - https://github.com/akavache/Akavache/issues/307
Netstandard will be adopted - https://github.com/akavache/Akavache/issues/308
The major number will be bumped in the next release (needed because of netstandard and new rxbits)
The continuous integration pipeline will be lifted from ReactiveUI and brought across to the Akavache project - https://github.com/akavache/Akavache/issues/305

I probably have time for some of these at the end of next week :+1:


Added comments and logic for whitelist generation

As a user I've had the desire to generate a .pxd file that
contained mappings from only a few select files. Prior to
this commit it was unclear how to accomplish that. After
this commit a user can modify the source code to utilize
a 'whitelist' of only the files they would like to generate
mappings from.
By defualt the whitelist is not populated but comments were
added so that users with interests simialr to mine might be
pointed in the right direction in the future.

I'd like to incorporate tests for this and implement in a way such that we don't have to rebuild the project to use a whitelist


SSL verification is Failed - [BRIEF DESCRIPTION]

App Id: d3fs0vdmimg8k8
Region: us-west-2
Step: SSL verification
Status: Failed
Issue/question

I successfully transferred my flyingmonkeyssocialclub.com domain to Amazon. You sent an email dated May 4 with the message "We have finished transferring your domain registration for the domain flyingmonkeyssocialclub.com from your previous registrar to Amazon Route 53." I have updated the name servers manually. and rebooted the instance. The domain still fails verification.

In addition, I see this error when building backend-env:
Message: Service:AmazonCloudFormation, Message:Template format error: Resource name sg-091bd5407b047bafc is non alphanumeric.
Environment: backend-env
Application: fmsc-app
Environment URL: http://backend-env.eba-ghjmpsdt.us-west-2.elasticbeanstalk.com
RequestId: 14f10470-c912-4bd0-be51-81da7692626b
NotificationProcessId: 45825401-8ade-45e1-8a6d-28b8165d73b5

sg-091bd5407b047bafc is specified in two files in the .ebextensions folder (following amazon-provided examples):
https-backendsecurity.config
Resources:
Add 443-inbound to instance security group (AWSEBSecurityGroup)
httpsFromLoadBalancerSG:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
IpProtocol: tcp
ToPort: 443
FromPort: 443
SourceSecurityGroupId: {"Fn::GetAtt" : ["sg-091bd5407b047bafc", "GroupId"]}
Add 443-outbound to load balancer security group (sg-091bd5407b047bafc)
httpsToBackendInstances:
Type: AWS::EC2::SecurityGroupEgress
Properties:
GroupId: {"Fn::GetAtt" : ["sg-091bd5407b047bafc", "GroupId"]}
IpProtocol: tcp
ToPort: 443
FromPort: 443
DestinationSecurityGroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
https-lbsecuritygroup.config   Use the custom security group for the load balancer
option_settings:
aws:elb:loadbalancer:
SecurityGroups: '{ "Ref" : "sg-091bd5407b047bafc" }'
ManagedSecurityGroup: '{ "Ref" : "sg-091bd5407b047bafc" }'
Resources:
sg-091bd5407b047bafc:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: load balancer security group
VpcId: vpc-5a4e8c22
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 443
ToPort: 443
CidrIp: <IP_ADDRESS>/0
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: <IP_ADDRESS>/0
SecurityGroupEgress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: <IP_ADDRESS>/0
Error message
Domain flyingmonkeyssocialclub.com failed on SSL verification.
We could not verify ownership of the domain. Error message: The status of this certificate request is "Failed".
Additional information
Please add any other relevant information. Please feel free to include screenshots.

What is the exact string that replaces the string "sg-091bd5407b047bafc" in 3 places in the https-lbsecuritygroup.config file?

Resolving due to age - re-open if you are still facing the issue!


Title: NSFW toggle for jokes

Which pre-existing JavaScript project will you be working on?
Project number 15, Joke Generator
Describe your enhancement/improvement
The project is fine in itself, there is just the thing that some of the jokes are NSFW, and there is not an option to toggle them.
I would like to add an option whether or not to show NSFW jokes.
Anything you need to say to the Reviewers
A lot of Dark humor jokes, jokes about sex, and more. I don't think all jokes are suitable for all.
Add any other context or relevant screenshots about the enhancement here.
No response

@VijaySamant4368 Thank you for providing your insight but it is not required as of now.


Github login/logout subcommands

We should allow for independent login/logout commands for Github. Make these login:github and logout:github subcommands.

Closing as stale, please comment if still relevant


Migration guide to use new linker-based code size optimization

I see the new section Code Size in README.md that states:

Previous versions of the library were using compilation directives to control the code size. It was too complex and not available in case CMSIS-DSP is only delivered as a static library.
Now, the library relies again on the linker to do the code size optimization. But, this implies some constraints on the code you write and new functions had to be introduced.
If you know the size of your FFT in advance, use initializations functions like arm_cfft_init_64_f32 instead of using the generic initialization functions arm_cfft_init_f32. Using the generic function will prevent the linker from being able to deduce which functions and tables must be kept for the FFT and everything will be included.
There are similar functions for RFFT, MFCC ...
If the flag ARM_DSP_CONFIG_TABLES is still set, you'll now get a compilation error to remind you that this flag no more have any effect on code size and that you may have to rework the initializations.

The general idea is clear, but the steps needed to migrate a legacy project that uses all the old compiler directives is not.
As an example, my project uses all the following compiler directives
ARM_MATH_LOOPUNROLL
DISABLEFLOAT16
ARM_DSP_CONFIG_TABLES
ARM_FAST_ALLOW_TABLES
ARM_FFT_ALLOW_TABLES
ARM_TABLE_SIN_F32
ARM_TABLE_TWIDDLECOEF_F32_2048
ARM_TABLE_BITREVIDX_FLT_2048
ARM_TABLE_TWIDDLECOEF_RFFT_F32_4096
ARM_TABLE_SQRT_Q15
ARM_TABLE_SQRT_Q31

I cannot use anymore ARM_DSP_CONFIG_TABLES and I get the error.
I know in advance that I need a real FFT over 4046 samples, and so I have to replace my arm_rfft_fast_init_f32 with  arm_rfft_fast_init_4096_f32 (if I'm right).
But what about all the other compiler defines?
Should I remove all of them (refactoring in some way my source code)?
Can you provide a migration guide for this breaking change feature?

@escherstair You're right. It needs more documentatiom.
You only need to keep
ARM_MATH_LOOPUNROLL
DISABLEFLOAT16

Normally arm_rfft_fast_init_4096_f32 is the only change. Like that the linker js able to infer what you really use and can optimize out the code and tables not needed.

Note that some tables do not actually yield savings right now, even if using the dedicated initialization function. In particular, using the arm_rfft_init_LENGTH_q15 functions will still always take maximum amount of space. Ref issue: https://github.com/ARM-software/CMSIS-DSP/issues/25

Although it is not really a migration guide, the Doxygen documentation has been improved and give more details about the removal of old compilation flags and the new linker based mechanism.


PHPUnit to Pest Converter

This pull request contains changes for migrating your test suite from PHPUnit to Pest automated by the Pest Converter.
Before merging, you need to:

Checkout the shift-52828 branch
Review all of the comments below for additional changes
Run composer update to install Pest with your dependencies
Run vendor/bin/pest to verify the conversion

:warning: Shift detected a dependency for the spatie/phpunit-snapshot-assertions package. While this package is compatible with Pest, it may regenerate the location of the snapshots directory when you first run your test suite.

:information_source: Shift converted common PHPUnit assertions to Pest expectations. However, there may also be opportunities to chain your expectations together.
For example:
// Before
expect($comment)->toBeArray();
expect($comment)->toHaveCount(3);
expect($comment)->toContain('foo');

// After
expect($comment)->toBeArray()->toHaveCount(3)->toContain('foo');

:warning: Shift detected helper methods in the following PHPUnit tests. Currently Pest does not support namespaces. As such, these functions may result in a naming conflict.
While Shift converted these methods to functions in the new Pest test, you should review these files to see if these functions may be inlined or extracted to a custom helper.

[ ] tests/FlareTest.php
[ ] tests/Truncation/TrimContextItemsStrategyTest.php
[ ] tests/Truncation/TrimStringsStrategyTest.php

:warning: Shift detected references to the PHPUnit test runner (vendor/bin/phpunit) in the following files. You should review these instances to see if they may be updated to the Pest test runner (vendor/bin/pest).

[ ] ./composer.json

:information_source: Pest is currently beta testing their Parallel Plugin. If you would like to save time by running your tests in parallel, you may install this plugin and run your tests with the -p options.
composer require pestphp/pest-plugin-parallel --dev
vendor/bin/pest -p

:alembic: This Shift is still being refined. Please report any issues or suggestions to<EMAIL_ADDRESS>Your feedback is what helps improve the experience for everyone.


add missing ubtu22cis_rule_6_2_10

Overall Review of Changes:
A general description of the changes made that are being requested for merge
Issue Fixes:
#219
Enhancements:
Please list any enhancements/features that are not open issue tickets
How has this been tested?:
I set the variable to false and the task was effectively skipped.

hi @egonzalf
Thank you for taking the time to raise this PR unfortunatley it doesnt meet the requirements for the repository.
All commits need to be signed--off-by and gpg signed, so you should be able to add a key to your signatuire and git commit --amend as you only have the one commit.
Happy to accept the PR otherwise.
many thanks
uk-bolly


rpm scriplet contains typo

rpm -qp --scripts netclient-0.17.0-0.x86_64.rpm
postinstall scriptlet (using /bin/sh):
systemctl preset netclient
systemctl daemon-reload
system**clt** enable netclient
systemctl start netclient
preuninstall scriptlet (using /bin/sh):
if [ "$1" = 0 ]; then
    if [ -x /sbin/netclient ]; then
        /sbin/netclient uninstall
    fi
fi

the line systemclt enable netclient should read systemctl enable netclient

fixed in packaging repo.

Doesn't appear to be fixed in 0.18.5
rpm -qp --scripts netclient-0.18.5-0.x86_64.rpm
postinstall scriptlet (using /bin/sh):
systemctl preset netclient
systemctl daemon-reload
systemclt enable netclient
systemctl start netclient


Fixed air injector visuals

About the PR

Fixed the indicator light on air injectors, I think this was broken in #10114, at least git blames that commit.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

https://github.com/space-wizards/space-station-14/assets/62134478/863bdf07-932e-4c17-bfb7-c556893d0046
Changelog

:cl:

fix: Air injectors finally have working indicator lights while enabled.

Wait, they have lights?

Apparently they do. Or at least used to, until some variable names were changed and stuff broke.
Also it didn't really make sense to me anyways how you were able to disable/enable them without getting any feedback at all.

air injector silently refusing to work when clicked has fucked me over in the past


Feature request: encryption

Would it be possible to implement optional encryption of a box?
My use case for this is that I would like to encrypt a box during build time, so that my binary is distributed with encrypted data at rest. During runtime, I would provide packr with a decryption key, so assets can be decrypted/extracted from the box at runtime.

Just discovered packr right now and about to open the same issue! :smiley:


Add prometheus cloduwatch image.

Fixes:
Related:
Pre-review Checklist

[X] IMPORTANT: 'image-request' tag has been applied if this PR is adding any images, including new versions or variants

For new image PRs only
If you have an apko.yaml file in this PR you need to follow this checklist, otherwise feel free to remove.

[X] Image is marked experimental or stable as appropriate
[X] The version included is the latest GA version of the software
[X] The latest tag points to the newest stable version
[X] There is a dev tag available that includes a shell and apk tools (by depending on 'wolfi-base')
[X] The image runs as nonroot and GID/UID are set to 65532
[X] ENTRYPOINT
[X] CMD:
[X] Consider where and how the image deviates from popular alternatives. Is there a good reason and is it documented?
[X] Add annotations e.g:

annotations:
  "org.opencontainers.image.authors": "Chainguard Team https://www.chainguard.dev/"
  "org.opencontainers.image.url": https://edu.chainguard.dev/chainguard/chainguard-images/reference/busybox/ # use the academy site here
  "org.opencontainers.image.source": https://github.com/chainguard-images/images/tree/main/images/bazel # use github here

[X] Check if environment variables are needed e.g. to set data locations
[X] Ensure the image responds to SIGTERM
[X] Documentation. Let's make this excellent. Include usage example.
[X] Error logs write to stderr and normal logs to stdout. DO NOT write to file.
[X] Include tests, at the very least a basic smoke test.

Requires: https://github.com/wolfi-dev/os/pull/1883


Add TIME Token

@gbalabasquer  you can check this one
The address for the token on kovan is still pending. As far as I know from the CTO thye have it deployed . He is kind of busy to give it to me right now but he will ping me once he has it and I will update the pull request.


fix(navbar): prevents doubled auth buttons

So — since I moved this to the NavBar it was appearing on legacy pages too. Moved it back and will address some other issues tomorrow. This just prevents the doubling so that we can get a deploy in tonight.
One thing to note that is for sure a problem: on legacy pages we actually don't have a position fixed nav — this is fine but I'm assuming we would want to collapse this too as you scroll. The logged out view on a small phone is going to have a tiny screen area if we don't.

Thanks for the quick fix 👍


[Feature][Connector-V2][Postgres-cdc]Support for Postgres cdc

Purpose of this pull request

Does this PR introduce any user-facing change?

How was this patch tested?

Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

Very nice need this feature.

@hailin0 @ic4y @EricJoy2048 @Hisoka-X Please help review, thank you

@hailin0 @ic4y @EricJoy2048 @Hisoka-X @TyrantLucifer Please help review, thank you

We have found some serious bugs in PG CDC during testing. Please wait for us to fix them before reviewing this PR.

Wait for compatibility, following optimization #6106  #5784  #6098  #5785

I found that there is currently no CDC that supports PG partition tables. For example, I created a people table, CREATE TABLE public-person（
Id int4 NOT NULL,
Birth_ Date date NOT NULL,
Country_ Code bpchar (2) NOT NULL,
"Name" text NULL,
CONSTRAINT people_ Pk PRIMAY KEY (id, birthdate)
）
PARTY BY RANGE (birthdate);
Then create 3 more partitions
--Publicpeople_ Y2000 definition
CREATE Table publicpeople_ Y2000 PARTY OF public people FOR VALUES From ('2000-01-01 ') TO ('2001-01-01');
--Publicpeople_ Y2000 foreign keys
--Publicpeople_ Y2001 definition
CREATE Table publicpeople_ Y2001 PARTY OF public people FOR VALUES FOR ('2001-01-01 ') TO ('2002-01-01');
--Publicpeople_ Y2001 foreign keys
--Publicpeople_ Y2002 definition
CREATE Table publicpeople_ Y2002 PARTY OF public people FOR VALUES FOR ('2002-01-01 ') TO ('2003-01-01');
--Publicpeople_ Y2002 foreign keys
When I configure the use of the People table in my source configuration, I cannot query the table because it is a partition type. Even if I modify the code to forcibly query the table, I cannot perform CDC operations on it
@Carl-Zhou-CN @EricJoy2048


Feature: Export copy function from template.ts for library use

The copy function defined in template.ts would be extremely helpful for more complicated create-app.
This change could be made by a single addition in index.ts:
+ export { copy } from "./template";

This would allow use cases such as my own:
copy({
		sourceDir: globalTemplateDir,
		targetDir: packageDir,
		view: { year, packageManager, ...answers },
	});

In this example, I am creating a templates-global folder to store code that is the same between all of my templates, and I am calling copy to handle the handlebars execution.


EpubParser fail

The testing epub load okay with other ebook reader or readium kotlin, but fail with the mno_streamer_dart
test code
import 'package:mno_shared/fetcher.dart';
import 'package:mno_streamer/parser.dart';

void main(List<String> arguments) async {
  await testParser('./books/book_test.epub');
}

Future testParser(String fileAtPath) async {
  var pub = await EpubParser().parse(fileAtPath);

  print(pub != null);

  return;
}

dart run
output:
OEBPS/content.opf
Unhandled exception:
UserException{userMessageId: r2_shared_resource_exception_other, args: [], quantity: null, cause: XmlParserException: ">" expected at 599:10}
#0      Try.getOrThrow (package:mno_commons/utils/try.dart:23:5)
#1      EpubParser._parse (package:mno_streamer/src/epub/epub_parser.dart:96:58)
<asynchronous suspension>
#2      EpubParser.parseWithFallbackTitle (package:mno_streamer/src/epub/epub_parser.dart:145:15)
<asynchronous suspension>

Demo and sample book attached
test_project.zip

if I extract the ebook to folder, it will parse okay, I think the problem with ArchiveFetcher, it returns data with missing last character.
The error message: ">" expected at 599:10 , ">" is the last charater of the file.

Thank you very much for the issue. It was really helpful to have an example and a detailed description.
The fix is done in the commit above.
I will publish an update on pub.dev


thanos-store is too slow for query and don't know where the time went

Thanos, Prometheus and Golang version used:
thanos-store version:v0.30.2

Object Storage Provider:
txyun cos
What happened:
i used thanos-store to query history data，but its too slow，i has collected many metrics, but I still don't know where the time went
What you expected to happen:
i want to data return in 20 seconds or i want to know where the time went, when i query hisotry data
How to reproduce it (as minimally and precisely as possible):
Full logs to relevant components:
This log is because the query reaches the thanos-query timeout, which interrupts subsequent thanos-store queries to the memcached cache
level=warn ts=2023-11-30T14:51:06.285175671Z caller=memcached_client.go:436 name=index-cache msg="failed to fetch items from memcached" numKeys=5 firstKey=P:01HFYJB6BXH9BD03Z6H29VXEXG:iWpYeQElI53MP3C4cUnj44BIr-dGk2AQ8I4-BjlebIg err="context canceled"

Anything else we need to know:

thanos-store has 10 shards based on the blocked id
thanos-compactor normal run in compact and downsample
i used memcached to cache
thanos-query --store.response-timeout=40s

thanos-store config：

index-cache.yml：

bucket-cache.yml：

There could be different reasons. Do you have tracing setup?
Or if you enable debug logging in Thanos store, we can take a look at stats query processed and there are detailed query stats

There could be different reasons. Do you have tracing setup? Or if you enable debug logging in Thanos store, we can take a look at stats query processed and there are detailed query stats

I want to know whether the time is spent on data pulling or data processing, or if there is a problem with the memcached server? Are there any indicators to reflect that


Filter requests without filename

Hi,
I want to filter the type of request below on phase1 only if it translates to a PHP file:
http://www.example.com/
My server may translate that request to an index.html file, or index.php file... depending on it's configuration. I really need this cause I was working on a customer's server that was under attack and I wanted to mitigate it and filter only the connections that translate to a php file and I can do that only when the filename is explicit on the URL like http://www.example.com/index.php however when the filename is not present how do I filter it if it translates to a .php file?
I know I can use SCRIPT_FILENAME however it does not look to be available at phase 1. Could someone please check that information?

Hi @gilperon, Do you really need to block the request in phase 1 ?

@zimmerle it would be best cause I am using that code to mitigate a huge attack my server receives once in a while. I use mod_security which helps me A LOT to mitigate the attack without paying $ 500 to DDOS companies like blockddos. Mod_security does a really great job mitigating it but it would be really nice to be able to use SCRIPT_FILENAME at phase1 cause I could use much more precise rules to block the attack.

Hi @gilperon,
The reason why we don't have the SCRIPT_FILENAME in phase 1 is because, at this phase, Apache does not knows the SCRIPT_FILENAME yet. As we depend on Apache, we don't have this information as well.
For ModSecurity version 3 (aka libmodsecurity) we are creating some intermediate phases to cover exactly that case. But it is not ready for release yet.

Thank you, I appreciate your version 3! I will follow it to make sure I get that release.

@gilperon if you want to follow it closer, have a look here:
https://github.com/SpiderLabs/ModSecurity/tree/libmodsecurity/
Thanks ;)

Nice really nice :)


Implement try_for_each?

Is it possible to use fallible items such as StreamingIterator<Item = Result<Page, String>> ? If yes, how do we convert the errors?
It seems that if we use something like item.as_ref()? the error is borrowed and will have a lifetime, which makes it a bit more difficult to e.g. use in external erros such as External(Box<dyn Error + ...>)?

Have you looked at the sister crate, fallible_streaming_iterator? However, I don't think that's actively maintained. There's also the newer lending-iterator crate that emulates GATs (generic associated types).


TTS OpenAI api.

Adding introduction to OpenAi TTS, and together with the tutorial for the usage of openAI TTS in python.

Thank you for your review, I will fix it and commit again.


I want to make a item with clock material ，but it don't work

Oddly enough, when I use the digital ID instead, it can work
(I'm not good at English)

Issue refused due to failure to follow the issue template.
Consider instead asking for help on the Discord @ https://discord.gg/Q6pZGSR


Use helper function to reduce repetitive code

The same 6 lines of code are repeated three separate times in src/cssTree.js:
var validated = validateHtmlTag(flatTwig, htmlEls);
throwDelim = !validated;
if(!validated){
  rejectedTwigs.push(twig);
}
return validated;

Where validateHtmlTag() is interchangeable with validateClass() and validateId()
I've implemented a function that consolidates the above 6 lines of code into one place:
var handleValidation = function(validated, throwDelim, rejectedTwigs, twig){
  throwDelim = !validated;
  if(validated){
    rejectedTwigs.push(twig);
  }
  return validated;
};

After replacing the repetitive code with handleValidation(), I successfully ran 'npm test'. I was also able to use bin/purifycss in the command line successfully.
If you'd like, I can change the name of handleValidation() to something else.

Looks good to me.

This breaks the rejected option.


Expand Interface Functionality & Views

A few enhancements I imagine for interfaces:

Select all to delete interfaces in a template for a device type or for interfaces assigned to a device
Display all options configured in a device type interface template (in the GUI there is no way to check if you defined the interfaces correctly from the device type screen)
Abbreviated view of description next to an interface on a device

Seems like these got completed through various changes in the past. The interface description text is included as a bubble with title text next to the interface icon (when present).

Agreed.


Workaround for the platform http not be able to handle matchOnUriPrefix

[ ] An issue should be filed for the change unless this is a trivial change (fixing a typo or similar). One issue should ideally be fixed by not more than one commit and the other way round, each commit should fix just one issue, without pulling in other changes.
[ ] Each commit in the pull request should have a meaningful and properly spelled subject line and body. Copying the title of the associated issue is typically enough. Please include the issue number in the commit message prefixed by #.
[ ] The pull request description should explain what the pull request does, how, and why. If the info is available in the associated issue or some other external document, a link is enough.
[ ] Phrases like Fix # or Fixes # will auto-close the named issue upon merging the pull request. Using them is typically a good idea.
[ ] Please run mvn process-resources -Pformat (and amend the changes if necessary) before sending the pull request.
[ ] Contributor guide is your good friend: https://camel.apache.org/camel-quarkus/latest/contributor-guide.html

failure on java 11 tests seems not related to the PR


Does not support mysql?

Cannot cast an object of type "Effort.Provider.EffortTransaction" to type "MySql.Data.MySqlClient.MySqlTransaction"

Hello @470503790
Since our last conversation, we haven't heard from you.
Don't hesitate to provide us your project sample!
Looking forward to hearing from you,
Jon


zmqcpp 4.7.0 deprecates .setsockopt()

From ZMQCPP version 4.7.0 one should use socket.set(zmq::sockopt::OPT, ...); instead of socket.setsockopt(ZMQ_OPT, ...);. The latter has been deprecated and compliation will fail when it is used due to -Werror.
This only fails if the system provided zmqcpp is used. This patch together with system-provided zmqcpp headers causes this.
--- a/lokimq/lokimq.h
+++ a/lokimq/lokimq.h
@@ -44,7 +44,7 @@
 #include <atomic>
 #include <cassert>
 #include <cstdint>
-#include "zmq.hpp"
+#include <zmq.hpp>
 #include "address.h"
 #include "bt_serialize.h"
 #include "connections.h"

loki-mq version: 1.2.1
zmqcpp version: 4.7.1

A possible solution would be using the provided preprocessor definitions CPPZMQ_VERSION_MAJOR and CPPZMQ_VERSION_MINOR to maintain backwards compatibility while using the new functions from the later versions.

I'd be happy to take a PR to fix it if you have one.
The main issue with <zmq.hpp> is that until quite recently the zmq.hpp shipped in several distributions was ancient, hence the bundled zmq.hpp.

I'd be happy to take a PR to fix it if you have one.

I am not familiar with both C++ and CPPZMQ so i am not sure what changes are really required. I have tried simple substitutions but it seems that some functions have changed. This is the WIP patch i have so far (which might or might not be breaking things).
--- a/lokimq/connections.cpp
+++ b/lokimq/connections.cpp
@@ -36,14 +36,14 @@
 }

 void LokiMQ::setup_external_socket(zmq::socket_t& socket) {
-    socket.setsockopt(ZMQ_RECONNECT_IVL, (int) RECONNECT_INTERVAL.count());
-    socket.setsockopt(ZMQ_RECONNECT_IVL_MAX, (int) RECONNECT_INTERVAL_MAX.count());
-    socket.setsockopt(ZMQ_HANDSHAKE_IVL, (int) HANDSHAKE_TIME.count());
-    socket.setsockopt<int64_t>(ZMQ_MAXMSGSIZE, MAX_MSG_SIZE);
+    socket.set(zmq::sockopt::reconnect_ivl, (int) RECONNECT_INTERVAL.count());
+    socket.set(zmq::sockopt::reconnect_ivl_max, (int) RECONNECT_INTERVAL_MAX.count());
+    socket.set(zmq::sockopt::handshake_ivl, (int) HANDSHAKE_TIME.count());
+    socket.set(zmq::sockopt::maxmsgsize, MAX_MSG_SIZE);
     if (CONN_HEARTBEAT > 0s) {
-        socket.setsockopt(ZMQ_HEARTBEAT_IVL, (int) CONN_HEARTBEAT.count());
+        socket.set(zmq::sockopt::heartbeat_ivl, (int) CONN_HEARTBEAT.count());
         if (CONN_HEARTBEAT_TIMEOUT > 0s)
-            socket.setsockopt(ZMQ_HEARTBEAT_TIMEOUT, (int) CONN_HEARTBEAT_TIMEOUT.count());
+            socket.set(zmq::sockopt::heartbeat_timeout, (int) CONN_HEARTBEAT_TIMEOUT.count());
     }
 }

@@ -52,9 +52,9 @@
     setup_external_socket(socket);

     if (!remote_pubkey.empty()) {
-        socket.setsockopt(ZMQ_CURVE_SERVERKEY, remote_pubkey.data(), remote_pubkey.size());
-        socket.setsockopt(ZMQ_CURVE_PUBLICKEY, pubkey.data(), pubkey.size());
-        socket.setsockopt(ZMQ_CURVE_SECRETKEY, privkey.data(), privkey.size());
+        socket.set(zmq::sockopt::curve_serverkey, remote_pubkey.data());
+        socket.set(zmq::sockopt::curve_publickey, pubkey.data());
+        socket.set(zmq::sockopt::curve_secretkey, privkey.data());
     }

     if (PUBKEY_BASED_ROUTING_ID) {
@@ -62,7 +62,7 @@
         routing_id.reserve(33);
         routing_id += 'L'; // Prefix because routing id's starting with \0 are reserved by zmq (and our pubkey might start with \0)
         routing_id.append(pubkey.begin(), pubkey.end());
-        socket.setsockopt(ZMQ_ROUTING_ID, routing_id.data(), routing_id.size());
+        socket.set(zmq::sockopt::routing_id, routing_id.data());
     }
     // else let ZMQ pick a random one
 }
@@ -227,7 +227,7 @@
 /// which can invalidate iterators on the various connection containers - if you don't want that,
 /// delete it first so that the container won't contain the element being deleted.
 void LokiMQ::proxy_close_connection(size_t index, std::chrono::milliseconds linger) {
-    connections[index].setsockopt<int>(ZMQ_LINGER, linger > 0ms ? linger.count() : 0);
+    connections[index].set(zmq::sockopt::linger, linger > 0ms ? linger.count() : 0);
     pollitems_stale = true;
     connections.erase(connections.begin() + index);

here the last change (zmq::sockopt::linger) seems to require a additional argument and i am not sure what it would require.

Thanks for that; I applied that (plus several other changes required) in #23

As an alternative for 1.2.1, you can remove the -Werror from the CMakeLists.txt to compile with fatal warnings.


include: posix: fix path reference to posix header files

If CONFIG_POSIX_API is not set, the include path to zephyr\posix is specified to the compiler. The posix_types.h and posix_features.h inclusion was not fully qualified resulting in a build error.
Fixes #79961

@dleach02 - please rebase and add the commit from #79884 to your pr (suggested by @nashif)

The full path is not needed when the required file is in the same directory as the requesting file. There are only two cases which need to be addressed here; those where a file in posix/sys refers to a file in posix/ The alternative solution would be to add "../" to the existing reference, and that would ensure that the correct file was selected as the current directory is always searched first for "" include references.

@keith-packard I was aware that the full path is not needed and the distinction between "" and <> but at the late hour I felt it was just being consistent to change them all and do the <>. I can do the "../" if that is what you desire

My preference would be to use angle-brackets for consistency.

Made #80006 - just waiting for CI to go green.

Closing my PR to go with #80006


Notifying users that new releases are not planned.

As our focus moves from the Indy SDK to replacement libraries, we should set the expectation with users of Indy SDK that future releases are not planned. We should also encourage contributors to participate in replacement efforts rather then submitting PRs here that may never be reviewed.
Signed-off-by: Richard Esplin<EMAIL_ADDRESS>

Note that this PR should not be merged until we have the chance to discuss it in the next Indy Contributors call.

I made the change that @m00sey suggested.

I believe that I've addressed all concerns that have been raised and this is ready for merging.

Can we find way around this? I see many useful pending PRs (especially asynchronicity in libindy 🚀 ) and I don't think the whole repo needs to "die" like this. Even though BC gov is doing great job providing alternatives in form of individual smaller libraries, libindy still has its users.
The major issue I see with this repo is the pipeline. It's difficult for both maintainers and contributors - pipeline is unstable and private (no way for contributor to see Jenkins logs). Contributors don't know why their PR are failing so it's impossible to iterate, for maintainers the maintenance itself is expensive because managing Jenkins infra and pipelines is quite resource-expensive in my view.
My suggestion:

Create Github Actions based pipeline with limited scope - obviously we can't do everything Jenkins was trying to do using GA runner infrastructure (test on multiple linux distributions for example). Smaller but working and fast CI is better than broken giant one. I think the starting scope for new CI should be compiling and test libindy and its wrappers (libvcx excluded from CI completely). Then start adding publishing or other stuff. Contributing GA CI code is much more accessible than contributing to Jenkins CI in its current form, so I believe it might organically grow if there will be interest in libindy.
If the proposal seems reasonable way to keep indysdk breathing, we are open to contribute GA actions (in fact, I've started digging into this about a year ago already https://github.com/hyperledger/aries-vcx/actions/runs/438470126 ) as we've gained quite rich experience with them implementing GA for libvcx fork aries-vcx - see example of our CI run
https://github.com/hyperledger/aries-vcx/runs/1595971044

I agree @Patrik-Stas that this not be done or be done carefully -- that's what my suggested changes are about.
The GA changes are welcome, but in our opinion, the indy-node (and related repos) are more crucial at this time. If you and your team have GA experience, we would love your help on that.

I believe I have now incorporated all feedback so far.

I believe I have now incorporated all feedback so far.

@Patrik-Stas That is a generous offer, and resolves one of the biggest concerns with the Indy SDK. I welcome your team's contribution!
However, I still think a message like this is needed. By making it clear that the Indy SDK needs new maintainers, people will know that they either need to pitch in, or move on.
There are many useful PRs, but no one to review them. The list of unresolved issues in this repo is growing, and doesn't include the many issues in Jira that were thrown away. Many of the wrappers are very out-of-date. And there are reports that it doesn't build on the latest Ubuntu.
Your effort to migrate Indy SDK to GitHub Actions will significantly lower the cost of new contributions. I hope that others choose to join you and that it breathes new life into the project. If you decide that you want to take full ownership over the repo, I'll close this PR and encourage my team to keep contributing as well.

@Patrik-Stas That is a generous offer, and resolves one of the biggest concerns with the Indy SDK. I welcome your team's contribution!
However, I still think a message like this is needed. By making it clear that the Indy SDK needs new maintainers, people will know that they either need to pitch in, or move on.
There are many useful PRs, but no one to review them. The list of unresolved issues in this repo is growing, and doesn't include the many issues in Jira that were thrown away. Many of the wrappers are very out-of-date. And there are reports that it doesn't build on the latest Ubuntu.
Your effort to migrate Indy SDK to GitHub Actions will significantly lower the cost of new contributions. I hope that others choose to join you and that it breathes new life into the project. If you decide that you want to take full ownership over the repo, I'll close this PR and encourage my team to keep contributing as well.

Hello, can you please advise what is the libindy replacement?

There are three components that have been created as an alternative to the indy-sdk:

indy-vdr enables integration with the ledger. It can be run embedded in an app or as a service with an API

https://github.com/hyperledger/indy-vdr

indy-shared-rs implements the crypto (including AnonCreds) for indy by wrapping Ursa

https://github.com/hyperledger/indy-shared-rs

the storage in indy (unfortunately called "indy-wallet") can be replaced by aries-askar within Aries frameworks

https://github.com/hyperledger/aries-askar

These components are complete but have not been used in other than test scenarios. Once the next version of ACA-Py is released, we'll be adding support for these into main so that they can be used in production use cases.
Also being added in different Aries frameworks are ways to use different ledgers and different verifiable credential formats.
As noted in comments above, ABSA and others is likely to continue to evolve the indy-sdk and to continue to release it.


min_k8s_version: remove 'grep' and use a native way

A friend of mine is using Windows and had no grep installed.

With a test tiltfile:
load('Tiltfile', 'min_k8s_version')

print(local('kubectl version --short', quiet=True, echo_off=True))
min_k8s_version('1.20')
print('We are good with 1.20!')
min_k8s_version('1.24')
print('We are not good!')

I get the following output from tilt ci -f test.tiltfile:
$ tilt ci -f test.tiltfile
Tilt started on http://localhost:10350/
v0.26.2-dev, built 2022-03-24

Initial Build
Loading Tiltfile at: /Users/nicksieger/tilt-dev/tilt-extensions/min_k8s_version/test.tiltfile
Client Version: v1.23.5
Server Version: v1.21.1

local: kubectl version --short
We are good with 1.20!
local: kubectl version --short
 ----------------------------------------------------------
|                                                          |
|            Minimum Kubernetes Version Not Met!           |
|                Current Version : v1.21.1                 |
|            Minimum Required Version : v1.24            |
|            Current Kubernetes Cluster : kind-kind         |
|                                                          |
 ----------------------------------------------------------
ERROR: Traceback (most recent call last):
  /Users/nicksieger/tilt-dev/tilt-extensions/min_k8s_version/test.tiltfile:6:16: in <toplevel>
  /Users/nicksieger/tilt-dev/tilt-extensions/min_k8s_version/Tiltfile:15:13: in min_k8s_version
  <builtin>: in fail
Error: Minimum Kubernetes Version Not Met! Current Version is 1.21.1
Error: Traceback (most recent call last):
  /Users/nicksieger/tilt-dev/tilt-extensions/min_k8s_version/test.tiltfile:6:16: in <toplevel>
  /Users/nicksieger/tilt-dev/tilt-extensions/min_k8s_version/Tiltfile:15:13: in min_k8s_version
  <builtin>: in fail
Error: Minimum Kubernetes Version Not Met! Current Version is 1.21.1

LGTM

Thanks for making this extension platform-agnostic!


Added webcitation.org and archive.is to the list of available archives

This PR adds http://www.webcitation.org and http://archive.is to the archives available through this library.
init.py
The additional archives are made available with minimal changes to current API implementation.
def capture(target_url) has been modified with the argument archive='web.archive.org'
Providing the default value of web.archive.org allows existing methods
depending on it to function without change
      See tests.py lines 9 and 10
http://www.webcitation.org is used when capture is called with archive='webcitation.org', caputure(<uri-r>,'webcitation.org')
Likewise http://archive.is is used when capture is called
with  archive='archive.is', caputure(<uri-r>,'archive.is')
Each archive put into its own method and are available alongside capture when importing this library
The original implementation of capture is found in the method def capture_web_archive_org(target_url)
Both def capture_webcitation(target_url) and def capture_archive_is(target_url)
follow the coding conventions of the original implementation of def capture(target_url)
def capture_webcitation(target_url)  utilizes an inner helper method  def random_email()
in order to meet the submission requirements for  http://www.webcitation.org
This helper method was also necessary when utilizing http://www.webcitation.org for archiving was implemented in Mink
The second commit of this PR https://github.com/pastpages/savepagenow/commit/fd0b866593f81a25457008be646ea5e3e3d5739f moved the helper from the global scope of this library to
the inner scope of def capture_webcitation(target_url)
tests.py
tests.py was modified to include tests for the additional archives
Below is the results of running the unit tests.

This PR is in full compliance with PEP8  as seen below

Hey! This is a great idea. While you were hacking at this, I was hacking at the library myself. And I think I introduced some merge conflicts on your end. Take a look at what I've done and let me know if I've screwed it up.

Coverage remained the same at 100.0% when pulling 87b4cd2fdccadd18e8e6e7b45ca5e29e2f239d02 on N0taN3rd:master into 810ce33ab58b18b5444aefd8d0251790027ea4bb on pastpages:master.

@palewire no worries I got my fork to the current revision and will be updating the PR shortly.

Coverage remained the same at 100.0% when pulling 0a76ff6ad276926df299abe0fbbbab97e51c81ad on N0taN3rd:master into 810ce33ab58b18b5444aefd8d0251790027ea4bb on pastpages:master.

@palewire The PR has been update and no merge conflicts exist.
Below is results from running the unit tests.
I added a new test for the additional archives in order to not conflict
with the testing strategy of the original API implementation

Thanks.
I might be overthinking this, but in the spirit of the UNIX philosophy maybe it would be best to split these three archiving tasks into three simple sister libraries, one for each archive. Then we could manage their interfaces, quirks, testing and everything else separately without having to pave over everything for the user.
Then, once those are done we could create a merged "mink" like project that imported all three and provided the kind of all-in-one service you're proposing here.
This is obviously a subjective kind of thing, but I think I'm getting my leaning from my experience with wrappers on geocoding services where I've found that I've ultimately preferred to use tightly tailored ones like python-googlegeocoder over combined ones like geopy.

@N0taN3rd, when I experiment with your archive.is coding using http://www.example.com/ I am getting back http://archive.is/bL4Iq to repeated requests, which links to a page that appears to have been archived two days ago.

What do you think accounts for that? Could it be that archive.is is declining to archive page stored so recently?

If I submit a recently archived URL to archive.is manually I see this screen.

It offers a second form and button where a URL can be saved "anyway."
<form action="http://archive.is/submit/" method="post"><input type="hidden" name="anyway" value="1"><input type="hidden" name="url" value="http://palewi.re/"><input type="hidden" name="submitid" value="EB1VJCvE/Iemjx7DA1+onFkBZOCbgcSX+4tcLc2Dv0MaX5geQZf8Ul/RsiCMP5Sj">
If this snapshot looks obsolete you can <input type="submit" value="save the page"> again
</form>

It seems like perhaps we can build that into our requests.

Your webcitation code seems to be working and not caching responses. It's packaged and released now here.

@palewire Interesting about archive.is  thanks for pointing that out. Previously there was not a caching mechanism.
I did not see a contributors file on either repos

Good catch. I just added AUTHORS file to both this and that repo.


How out of the box do we want to be when it comes to installation suggestions?

There have been a lot of good suggestions for varying ways to install jupyter, get packages going, make suggestions, etc.  Some of these range from pretty standard methods of install to using very specific and advanced services.
I have several fears with incorporating these advanced services (e.g. the variety of docker(s) and other newer projects) into our lessons.  They mostly center around running the risk of making the lessons stale and needing regular updates to keep up with those services.  The more specific we are about what to install, the more we make the lessons dependent on those a) existing, b) staying roughly the same for install and use, and c) staying the community standard.
My suggestion here is to think of the lessons we write as speaking toward the most general concept of the jupyter notebook (as much as possible, of course there are going to be times when we'll need to dig into specifics), but this should allow anyone to use whichever jupyter tool they like today but even future platforms that don't exist yet.
A more tangible example of this might be the persistent issues of academic computer labs.  There is a campus level policy that bans us from installing anything like open refine or jupyter notebooks on our lab computers, but we could get away with having them install PyCharm or another piece of standalone software that uses it outside of a web browser.  Another campus might want to use these lessons with their jupyter lab/hub/etc.

w/r/t docker etc, I think that it is worth mentioning these kinds of things because (IMO) they are the future of reproducible science and will be part of the backbone of a lot of services built to accomplish this. In terms of putting together material, I think it may be too early to make strong dependencies because the technology seems to be evolving rapidly. Maybe (hopefully) that'll be different in a year or three :)

Related to this is the question of using conda or a pip based system, possibly with environments managed by virtualenv or python -m venv. The former is closer to a one click solution, while the latter is closer to a bare bones python way of solving the problem.
Also, some people don't like that conda is associated and largely directed by a for-profit company (Continuum Analytics) while others point out that conda itself is open source and developed on GitHub with community engagement. It's worth noting that some Jupyter docs with installation examples are written with conda in mind for virtual environment management, even when the examples explicitly invoke pip install.


feature/route-user-to-correct-dashboard

Description
User can login and they will be routed to their designated dashboard page. (player, coach, fan, editor)
Requirements

[x] Add decorator for each role / group
[x] Have each view needed use the required decorator
[x] Templates render data for their expected user

created branch and pulled for dev

user roles assigned to selected initial Role
groups from admin must be added afterwards, and can consist of groups not seen at signup for obvious reasons.
user CANNOT choose editor, staff, etc

Noteworthy
I am thinking we should add a Staff role for completeness, but on the front end.  In any case, so long as we code it right, this works very well and currently if I try to access another user's dashboard, it will tell me I cant and that I need that role to see that page. SO its perfect!
If a user hits a page that requires a certain role, they are redirected to member:error !, which shows a loop of all messages available and set during that request cycle.....then they disappear.
@group_access_only("Coach", view_to_return="members:error", message="Must have Coach role to access this page.")

TEST CASE 2
@Bennm23