Vavr.io website down

Since a week or so the https://vavr.io website is gone.

See https://x.com/danieldietrich/status/1732788750151713020
Also see https://danieldietrich.dev/drawing-a-clear-line/

Ok. Clear blog post. I can understand that after such a long time you want to move on.
But Vavr is not a 'baby' anymore. It's mature and in use by many.
There are plenty of contributors so why not hand it over to one or more capable hands so both the project and you can continue?

Yes, I do not want do close/deprecate it. We need to find contributors/new owners.

Yes, I do not want do close/deprecate it. We need to find contributors/new owners.

I just learnt about this library few months ago. So maybe I'm being innocent if I say that I find it strange that you need more contributors if there are over one hundred, according to this github.

Dear @josealonso, I search at least one contributor who is willing to

consistently invest time during the next years to lead the project
making strategic decisions about the future direction
creating a vision for the project (even if it is just maintaining the legacy code base)
ensuring code quality by reviewing PRs
tacking care of the issue tracker and identifying related issues (by reading between the lines) and by understanding which features the requesters really need (maybe the features are already there but named differently etc)
...

Do you see? Most contributors relied on me in the past but I am not active anymore...

Dear @josealonso, I search at least one contributor who is willing to
* take over all Vavr accounts as an owner (GitHub, Twitter, Gitter, ...)

* consistently invest time during the next years to lead the project

* making strategic decisions about the future direction

* creating a vision for the project (even if it is _just_ maintaining the legacy code base)

* ensuring code quality by reviewing PRs

* tacking care of the issue tracker and identifying related issues (by reading between the lines) and by understanding which features the requesters _really_ need (maybe the features are already there but named differently etc)

* maintain releases

* maintain the docs

* maintain the website

Do you see? Most contributors relied on me in the past but I am not active anymore...

I see, @danieldietrich, I appreciate your swift response.
That is a lot of work. I feel like telling you I would like to participate, but the truth is I'm not even familiar with the codebase, only with the Scala features. I'm in my fourties and I need to re-order my priorities in life. Having said, I'm currently unemployed and I spend all my "programming" time investigating JVM languages like Scala, Kotlin and Clojure. This year I'm focused on Kotlin, because I think it's the best solution for updating legacy Java codebases, although I admit Scala is more powerful.
You spent almost ten years leading this project. You have devoted so many years to the development of this library. Is vavr really used in Spring ?? I didn't know that. I will look it up.
To sum up, I may be interested in being an active contributor, not the leader, since I'm sure it's a high quality codebase and I rarely have the luxury to work in challenging projects. I can afford to work at most for one year without being paid. Because if I make a commitment to work on vavr, I would stop my seeking job process.
NOTE: you might want to open an issue only for recruiting active contributors.
I am sorry this doesn't belong here. Thank you!!

Thank you for even considering taking the lead of the project.
I wish you all the best for your future professional life, I am sure you will make the best out of it!

Thank you for even considering taking the lead of the project. I wish you all the best for your future professional life, I am sure you will make the best out of it!

I said:
I may be interested in being an active contributor, not the leader

Never say never 😉

@danieldietrich I think most people would want to continue your vision and legacy even if you will no longer be active in it. Would you be willing to layout the vision you had for where the APIs need to go?

Yes, I do not want do close/deprecate it. We need to find contributors/new owners.

@danieldietrich I am a long time member/contributor to the Apache Software Foundation and have a good background in Scala/Clojure and have used vavr on a number of Java projects.  I would like to help meaningfully contribute to the project if I can to keep it alive and healthy.  I'd be happy to process pull requests and offer some free time with ongoing maintenance and possibly new features.

@thinstripe I have been unable to get a response here from @danieldietrich within 2 weeks. I am not sure if he will respond. I think we will have to contact him by email as he seems to either be on an extended break or has completely walked away from the project.

For this project to continue I think that excellent public documentation really needs to come back in some form.  Without it being available it becomes much more difficult to convince colleagues to learn and adopt vavr and it will die.

+1000 – even if the project is currently seeking a new maintainer, the domain registration cannot lapse. This project is widely used and the docs are essential. Aren't they hosted by Github for free anyway?
What can we do to get the domains back online?

Can I volunteer to at least perform KTLO maintenance, e.g. holding the domains, keeping docs alive? This project is used by some major organizations and it's essential to at least keep the lights on.

I can do maintenance too.
I use it in all companies I work. It's a great library, maybe that need some rework (it's better to use ValidationNel with NonEmptyList like in arrow-kt than Validation with Sequence!), but very useful in enterprise!

A project of this size and popularity may fit into the Apache or Eclipse Foundation, which could lead to funding and more contributions and additional benefits
At the same time, we would need to find a reliable lead first to even try applying to that

There was a push to move it into the Eclipse foundation years ago, see here, here, and here.
Is the current blocker for web hosting just legal concerns? Could we just add boilerplate pages for these? I doubt there is anything unique about the vavr case.

Without responses from @danieldietrich, what can and cannot be done to move things forward? It seems as though he does not have the intention to participate in the migration to new ownership.

It's a pity Daniel is not responding anymore to help the transition and to share his road path.
I assume we could fork the repo and start working from there.
Regarding the site, the vavr.io domain is taken but several other options like vavr.org, vavr.info, vavr.site, vavr.net are available. Or perhaps just vavr.github.io. I would be happy to support by providing a domain name.

A fork might be the only option without the help of Daniel, unless one of the current maintainers have owner-level access,

In the meantime I hosted the docs on https://pear-commerce.github.io/vavr-docs
not sure if there is another way to reach them

There was a push to move it into the Eclipse foundation years ago, see here, here, and here.
Is the current blocker for web hosting just legal concerns? Could we just add boilerplate pages for these? I doubt there is anything unique about the vavr case.

FYI:
I'm assuming the problem is that @danieldietrich is a german citizen and each german citizen if he published an article, documentation etc. has to disclose information about how to contact him officially. Therefore it would be necessary for Daniel to publicly announce where he lives, what his email is and a phone number, at least that's what I have in my head. There are companies in germany which offer the service to offer their addresses and contact details in the legal notice (Impressum in german) but this costs obviously money - money @danieldietrich is probably not wanting to pay since he decided to step back from this project anyways.

The Jdbi project ships Vavr integration. We're happy to keep this around for a while, but if the project does not reach a 1.0 milestone or at least find a new maintainer, we will probably deprecate and remove our glue code. Best wishes to Daniel and all involved.

@danieldietrich i'm willing to take over and do my best with all those responsibilities.

@jaredmdobson You will have to find him on Twitter, Linked-In, or email (all of which on his GH profile). He is not responding to any mentions here at all, and we need his help to move forward.

I reached out on Twitter, Twitter DM and Email.  Working on updating the codebase now.

I would be willing to take the lead as well.

@jaredmdobson Did you get a response from him via those other channels?

Nope

Damn. Truly, damn.

Nope

Maybe,  fork another?

Hi, it took a while until I decided how to proceed.
Here is an official statement: https://danieldietrich.dev/blog/2024/06/07/statement-on-vavrs-future

Sorry but I can feel you have problems in your personal life or maybe professional life, you seem to have approbation and feel you do right things.
I think vavr is a great library - you can give it to open source community like Apache or Eclipse Fondation.
For the moment you refuse it - you want wa pray and ask you for it ??
If you want it to leave transfer it to open community. If you need psichology work it's hard to help you.
By the way Vavr is a great library I love to use in Java project in client's missions - but I can't accept you take the community as hostage because you don't want to maintain it anymore. Transfer it to free open source community!

Thank you for your reply @frecco75. I understand that you are disappointed but you need to accept my decision. It is a common community practice to archive GitHub projects and fork them.

Dear all, I understand that the community is really struggling with forking Vavr.
Therefore I decided to offer you sponsored open source work. Read more about it here: https://danieldietrich.dev/blog/2024/06/07/sponsored-work-on-vavr/

The community is struggling with forking Vavr because it doesn't live in isolation - there are now countless OSS projects that rely on io.vavr, and forcing everyone to converge on one fork means the effective death of the project

The question about forking is solved, there is no need to do so.

Guys, let us focus on technical aspects on this issue tracker.
I will take care of brining the website and the docs online.

Does the documentation (ie, the website content) exist in git anywhere?

http://vavr-io.github.io/vavr-docs/

Is the original domain (which is linked to from ten thousand places across the web) still inactive just due to renewal costs?

I renewed it for 130 EUR (my private budget) a few days ago and will start to give the site a refresh in two weeks.

I will be taking care of that - https://x.com/pivovarit/status/1814901872005697824
https://danieldietrich.dev/blog/2024/07/21/passing-the-vavr-torch/

Hello, does anyone know if Vavr works in Java 21??, I saw that the vavr.io website is down

It does - the domain has been transferred and soon it will be pointing back to docs

We’re using Vavr with Java 21 and 22 without any issues.
Vavr is not using Java records so it’s types cannot be used in pattern
matching like in Scala, which is a pity.
On Mon, 22 Jul 2024 at 18:20, bryans @.***> wrote:

Hello, does anyone know if Vavr works in Java 21??, I saw that the vavr.io
website is down
—
Reply to this email directly, view it on GitHub
https://github.com/vavr-io/vavr/issues/2756#issuecomment-2243345490, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADWJVPBNCC5QD6JTI4GZX3ZNUWMPAVCNFSM6AAAAABAUN7TPSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBTGM2DKNBZGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

The original site is back here: http://vavr-io.github.io
Now, I need some DNS tweaking and everything will be soon tied to the main domain

My DNS settings seem correct, but GitHub sees the domain as taken. I need to go through this case with their support. It's probably some edge cases due to domain/org transfer.

It's back! http://vavr.io
I just need to obtain a new certificate.

I believe this is fully done now :) both domains are operational and correctly pointing at GitHub Pages:

https://vavr.io
https://docs.vavr.io

dig docs.vavr.io +noall +answer -t A

; <<>> DiG 9.10.6 <<>> docs.vavr.io +noall +answer -t A
;; global options: +cmd
docs.vavr.io.		3600	IN	CNAME	vavr.io.
vavr.io.		3600	IN	A	<IP_ADDRESS>
vavr.io.		3600	IN	A	<IP_ADDRESS>
vavr.io.		3600	IN	A	<IP_ADDRESS>
vavr.io.		3600	IN	A	<IP_ADDRESS>

dig www.vavr.io +noall +answer -t A

; <<>> DiG 9.10.6 <<>> www.vavr.io +noall +answer -t A
;; global options: +cmd
www.vavr.io.		3600	IN	CNAME	vavr-io.github.io.
vavr-io.github.io.	3600	IN	A	<IP_ADDRESS>
vavr-io.github.io.	3600	IN	A	<IP_ADDRESS>
vavr-io.github.io.	3600	IN	A	<IP_ADDRESS>
vavr-io.github.io.	3600	IN	A	<IP_ADDRESS>

The tricky part about using custom domains with GitHub Pages is that it requires extra setup on GitHub's site, and sometimes weird things happen. I could not configure vavr.io because GitHub did not release it properly, but their support handled it :)
I think this is done.

 :)

Thank you for your work and to make this project live again!
When will be the next release? The last release is 0.10.4 and is very old comparing to the main branch!

I will release 0.10.5 with a couple of extra bugfixes as soon as I get my rights to io.vavr group on Maven Central. Then probably 0.11.0 as a multi-release jar with module.info and package.info. Then comes a hard decision about what to do with 1.0.0.
What I'm 100% sure of is that the current master branch is in an unreleasable state, and I might need to go back to last stable release as a baseline for the new things to come

@pivovarit Please don't remove pattern matching yet in 1.0.0 😰


Can only register one account.

Hi everybody,
I want to implement this gem in my new rails app, I'm a RoR newbie and I'm really loving it. I come across this gem, install it and everything was cool. I can register 1 user but when I tried to register a second one it always throw me an error of 'An account already exists for xxx', I want a simple email registration. Anybody has any idea on how to fix this? If you need me to post another file just let me know.
Thanks.

I have done more tests and I found that the problem is that I'm using SQL Server for my database. I run some tests on Postgres and everything worked like a charm.
Do you know if it's possible to make it work in MS SQL Server?

I solved it,
The problem was in a couple of indixes that throw me a duplication error, these were:
add_index :users, :reset_password_token, unique: true
add_index :users, :confirmation_token,   unique: true
I deleted the both and everything works.


Impose fixed ordering of evaluation inside ProductNodes

Currently, we're evaluating in ProductModel based on the ordering in samples. This will work as long as the same extractor is used. We should use model ordering instead to make sure we don't learn rubbish in m.W

Solved in https://github.com/CTUAvastLab/Mill.jl/commit/25bd4c90920d1634f367e479971d88870539b043


VS Code / Code for IBM i - getting started - connecting to system

Discussed in https://github.com/orgs/codefori/discussions/1552

Originally posted by wood3875 September 26, 2023
Help ?
I'm simply trying to connect with userid/password and VS Code is complaining:  config.privateKeyPath does not exist at given fs path.  Tried host name, IP, and FQDN - same result.  I'm NOT using a key pair...  VS Code came from employer software center, and then added Code for IBM i extension, that's it.
Version: 1.82.2 (system setup)
Commit: abd2f3db4bdb28f9e95536dfa84d8479f1eb312d
Date: 2023-09-14T05:55:25.390Z
Electron: 25.8.1
ElectronBuildId: 23779380
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19045
A co-worker suggested proxy, but I don't need/use that for any other system connection.

Closing as dupe of discussion.


Use is_instance_valid to check if targets are still valid

I experienced an error with Function_pointer.gd: After changing scenes based on a button on a 2din3d viewport UI being pressed (this viewport being part of the scene that was changed), the target variable was an already freed instance. Just doing a "if target" test is apparently insufficient to determine if the node was still there but replacing it with an is_instance_valid test fixed the issue.

Thanks! seems like a great idea to me!


Crash while trying to rip a game

A friend is making me do this for him, and I really wanna get this over with so I can delete the game already, it looks like utinyripper cant read .resource files? I'm not really sure.
Game name: Bare Back Streets
Engine version: unknown
Platform: Windows 10 Pro

Error message: Some data left

Stack trace:    at uTinyRipper.Lz4.Lz4DecodeStream.ReadBuffer(Stream stream, Int64 count)
   at uTinyRipper.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition)
   at uTinyRipper.BundleFileScheme.ReadScheme(Stream stream)
   at uTinyRipper.GameCollection.ReadScheme(SmartStream stream, String filePath, String fileName)
   at uTinyRipper.GameCollection.LoadScheme(String filePath, String fileName)
   at uTinyRipper.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure)
   at uTinyRipper.GameStructure.Load(List`1 pathes, LayoutInfo layinfo)
   at uTinyRipper.GameStructure.Load(IEnumerable`1 pathes, LayoutInfo layinfo)
   at uTinyRipperGUI.MainWindow.LoadFiles(Object data)

Hi, this is because uTinyRipper doesn't support the Addressable system which is the default in 2020+ and can be used in 2019. Support for this is currently being worked on in my AssetRipper fork.

Hi, this is because uTinyRipper doesn't support the Addressable system which is the default in 2020+ and can be used in 2019. Support for this is currently being worked on in my AssetRipper fork.

Thank you!


File an issue for -webkit-fill-available

https://github.com/webcompat/web-bugs/issues/111677
https://github.com/webcompat/web-bugs/issues/112208
And https://github.com/webcompat/web-bugs/issues?q=is%3Aissue+-webkit-fill-available+is%3Aopen
(we also have 2 interventions for it)

@ksy36 Cf https://github.com/whatwg/compat/issues/213 too.


Import action stopped working with 1.26 update

VSCode Version: 1.26.1
OS Version: OSX 10.13.6

Before upgrading to the latest version of VSCode, I could place the cursor on the line of a class/component/function that needed to be imported and when I pressed the quickfix keyboard shortcut, the contextual menu would have an item to import the missing module. This no longer happens.

In the case above, this is a named import which used to work especially well. VS Code has always had some issues with default exports, and for good reason, but named exports used to always work well. I attempted this same thing with the Insiders and it performs the same.
I looks like #56332 is a similar case, but that was specifically about Typescript. I am using Javsacript which should behave similar.

Yes, duplicate of #56332. The same TypeScript engine powers VSCode's Javascript and typescript support
Please try upgrading your workspace to use typescript@next by following these instructions


fix list empty global resources with global hub API

ref: https://github.com/stolostron/backlog/issues/26602
Signed-off-by: morvencao<EMAIL_ADDRESS>

/LGTM


bug: --box-shadow on ion-searchbar not working, despite PR #19838

Bug Report
Ionic version:
Master @ionic/core. Also present as far back as 4.11.7
Current behavior:
--box-shadow on ion-searchbar seems to do nothing.
Expected behavior:
According to PR #19838 box-shadow should work, but --box-shadow does seemingly nothing.
Steps to reproduce:
Please see https://gist.github.com/tnishimura/c8d01c199c28100e5ec85967ead6fa95. Basically, I took the search bar example from the docs, changed the cdn links to 4.11.10, and applied the --box-shadow style to the ion-searchbar (via the red-box class). The red-box class style is copied from the example/test case given in #19838.
Related code:
Please see https://gist.github.com/tnishimura/c8d01c199c28100e5ec85967ead6fa95
Other information:

Ionic info:
Not relevant, since I am using the CDN and plain JS.

Thanks for the issue. This feature was added to Ionic Framework 5, which has not been released yet. Please see https://ionicframework.com/blog/ionic-5-0-0-release-candidate/ for more information.

Ok, I understand. However, it does seem that the PR is merged into the 4.11.10 release... Is --box-shadow currently deactivated or something?


:bug: Fix unterminating DataTemplate deletion

What this PR does / why we need it:
DataTemplate deletion has a watch over DataClaims but counts Data.
We ensure that only Data for which a live claim exist are counted to avoid races during multiple DataClaim deletion that result with a positive count of data when all claims have been deleted.
Let us have two DataClaims DC1, DC2 with associated data D1, D2 deleted at almost the same time but such that there are two events. DC1 and D1 get deleted during the first reconcile and indexes at the end of UpdateData contains info from D2 only. During the second reconcile D1 may not be destroyed yet and getIndexes gives back D1,D2. UpdateData will remove D2 because DC2 deletion timestamp is non null but DC1 has already disappeared. The index still contains information from D1.  To avoid this, we only keep in the status bindings corresponding to existing DataClaims and count the size of this status.
Alternative implementations

check the deletion timestamp of Data during the list of getIndexes and do not keep the ones being deleted: the code would be simpler but there is still a small window where both list of Data are done early and the second list on claims only find DC2.
count both data (keep the original code) and live dataclaims (ie with deletionTimestamp == 0). If both counts are 0, we remove the finalizer; if only the second is 0, we requeue; if none are 0, we end the reconcile and wait for dataClaim deletion. This should converge at some point. The status evolves a little differently from this proposal and will continue to mention bindings for already deleted claims but still existing data but it should be for a short time.

Fixes #1994

/ok-to-test

/cc @kashifest @mboukhalfa

/test metal3-centos-e2e-integration-test-main
/test metal3-ubuntu-e2e-integration-test-main

/test metal3-centos-e2e-feature-test-main

/test metal3-centos-e2e-feature-test-main-features
/test metal3-centos-e2e-feature-test-main-pivoting
/test metal3-centos-e2e-feature-test-main-remediation

There was a bug in the first version (the status.Indexes map must be updated even when the claim is removed so that the mapping can be accessed and then removed during delete. Even if the new version will pass the tests, it opens in fact the question that there is a latent race already existing during deletion. the indexes from getIndexes are recomputed to remove the ones corresponding to the DataClaims being removed but we cannot be sure that the corresponding Data had the time to run their reconcile loop that removes the finalizer as it needs the template to remove the IpClaims. If that is the case, the only really safe solution is closer to Thomas original proposal and last implementation alternative:

compute boolean liveData as len(indexes) > 0 where indexes is the result of getIndexes() without the changes applied during updateData().
compute boolean liveClaims to be true iff there is a claim listed with delete timestamp set to 0.
if liveClaims is true, just return without requeue as we wait for new events from the claims (and we may keep the template for a long time if nobody delete the claims).
if liveClaims and liveData are both false, remove the finalizer, the deletion is finished
if liveClaims is false and liveData is true, return with an explicit requeue. Requeue should be avoided but we must perform an active wait until the Data has been deleted but as we are waiting for finalizers, it should be relatively quick...

There was a bug in the first version (the status.Indexes map must be updated even when the claim is removed so that the mapping can be accessed and then removed during delete. Even if the new version will pass the tests, it opens in fact the question that there is a latent race already existing during deletion. the indexes from getIndexes are recomputed to remove the ones corresponding to the DataClaims being removed but we cannot be sure that the corresponding Data had the time to run their reconcile loop that removes the finalizer as it needs the template to remove the IpClaims. If that is the case, the only really safe solution is closer to Thomas original proposal and last implementation alternative:
* compute boolean liveData as len(indexes) > 0 where indexes is the result of getIndexes() without the changes applied during updateData().

* compute boolean liveClaims to be true iff there is a claim listed with delete timestamp set to 0.

* if liveClaims is true, just return without requeue as we wait for new events from the claims (and we may keep the template for a long time if nobody delete the claims).

* if liveClaims and liveData are both false, remove the finalizer, the deletion is finished

* if liveClaims is false and liveData is true, return with an explicit requeue. Requeue should be avoided but we _must_ perform an active wait until the Data has been deleted but as we are waiting for finalizers, it should be relatively quick.

Yes, we need to check both liveClaims and liveData before deleting dataTemplate.
I have tested Thomas's PR, and after provisioning and deprovisiong worker nodes for few times, I started seeing leftover metal3Datas and ipclaims.
I agree with the solution that you are proposing. If you have time please open a PR or update this one, if not I can work on it.

@adilGhaffarDev I will do it by modifying this PR (no need for a third one). This is the safe solution

/test metal3-centos-e2e-integration-test-main
/test metal3-ubuntu-e2e-integration-test-main

cc @kashifest @mboukhalfa

@pierrecregut @tmmorin , thank you for working on it, also have you guys tested this on your side? is it solving your issue?

I haven't tested this one yet (I only tested #1997).
I plan to do a local build and a test later this week.

Lets test this several times before merging it.

Thomas has tested the patch in the Sylva setting. It corrects some of the problems, but we encounter other issues not related to the logic of the DataTemplate controller, but rather the Data controller.

For context, in the Sylva test run, the namespace of the cluster is deleted before all the CAPI resources for the cluster have been removed. In this case, all objects are deleted in random order. If a Metal3Data is deleted before the claim, the deletion reconciliation is aborted but not requeued. When the claim is deleted, garbage collection due to the owner reference may be triggered, but the Data is already marked as deleted, so nothing happens. If err is nil, a requeue must be generated.

On rare occasions, the deferred patch fails. Unfortunately, the error is ignored, so no further reconciliation will be attempted if there was no error. The fix is simple: assign err to rerr if it is non-nil. This pattern is present in seven controllers; only the remediation controller is correct.

Finally, we have a design question regarding how Data is deleted. The delete operation lists the IP pools used in the template to find the IPClaim based on the labels, both on the Data name and the IP pool name. However, do we need to select based on the IP pool name if we will browse over all potential values? If we delete all the IPClaims with the correct label Data, then we do not need the template. Consequently, we do not need to block template deletion until the Data disappears, which would help us resolve the conflict of waiting for DataClaims and counting Data during template deletion.

So we propose to add the fix for first point to this PR. We think that point 2 is rare but more general and should be addressed somewhere else. Finally 3 could be a more major refactoring that simplifies the logic but needs much more care to be implemented and can be done later.

Thanks for the recap @pierrecregut - and yes, I agree with that what you propose.

I have pushed #1 as a separate commit  in the PR and changed the comment on UpdateData. The pair should solve #1994 except for corner cases (point 2 above).

point 2 is issue #2002 for triaging with associated PR #2003

I've run tests with a local build made from this branch, and I observed no resource deletion issue. :+1:

/test metal3-centos-e2e-integration-test-main
/test metal3-ubuntu-e2e-integration-test-main

I have tested it on my side, it's working fine.
/lgtm

@pierrecregut can you squash the commits?

@adilGhaffarDev squash done but as commits solve two distinct issues, I wouldn't have done it on my own.
/test metal3-centos-e2e-integration-test-main
/test metal3-ubuntu-e2e-integration-test-main

@adilGhaffarDev squash done but as commits solve two distinct issues, I wouldn't have done it on my own.

We try to keep one commit in one PR , it helps in keeping release notes tidy. Can you update the PR description too and add info regarding the metal3data reconciliation fix.

Finally, we have a design question regarding how Data is deleted. The delete operation lists the IP pools used in the template to find the IPClaim based on the labels, both on the Data name and the IP pool name. However, do we need to select based on the IP pool name if we will browse over all potential values? If we delete all the IPClaims with the correct label Data, then we do not need the template. Consequently, we do not need to block template deletion until the Data disappears, which would help us resolve the conflict of waiting for DataClaims and counting Data during template deletion.

Yes this seems like a unnecessary dependency on m3datatemplate in our deletion workflow, I am not sure what will be the impact if change this. Lets do it in separate PR and keep it on Main and not back-port to v1.8, we will test it on Main CI, and if everything goes well it will be in v1.9.
For v1.8 this PR is good to go in.

/override metal3-centos-e2e-integration-test-main
the test was already passed before the squash no need to run again.
/lgtm

/unhold
Tests passed I am unholding.

/cherry-pick release-1.8


Suggestion: Create a similar app for fmoviesz[dot]to

Not sure how much similar the work would be, but it will be awesome if a similar app could be made for fmovies. Love using this app for anime.

Same. It would be awesome

have an idea, but not yet planed


⚠ Bofrost.it has degraded performance

In e98e31b, Bofrost.it (https://www.bofrost.it) experienced degraded performance:

HTTP code: 200
Response time: 1515 ms

Resolved: Bofrost.it performance has improved in 12790be after 8 minutes.


aggregate can now be used inside a .sbt file

LGTM

LGTM too

Forward port to 1.0.x plz

What is this? I don't see any explanatory documentation

Opened an issue to document these - https://github.com/sbt/sbt/issues/2831


This project sends SPAM via email

I've just received unsolicited email from this project on my personal email address.
This project should be ashamed of itself to use this type of methods, this is not worthy of any open source project on GitHub.

Sorry dear @frenck,
I sent this email yesterday for a few Laravel developers that I searched for on Github and now stopped, you'll never receive any future email from me, all collected emails have been deleted as well.


Having separate bash histories per desk?

Is this possible, any thoughts?

I'm a dumbo, seems that it's possible by setting a HISTFILE variable


Idea for runtime configuration

I have an idea for the runtime configuration of the engine. I have not decided yet, whether it would make our life easier or be utterly horrible.
We have so far decided, that we want to have a singleton class at the center of everything, managing all runtime configuration. We could combine this with a distributed approach, i.e. define configuration options for each part of the engine at will in this part of the engine.
Imagine a class similar to the following:
template<ParamType_>
class config_option_t {
public:
    config_option_t(std::string name) {
        auto& ref = global_system_singleton_t::get_instance();
        ref.register_option<ParamType_>(name);
    }

    void set_value() { /* ... */}
    ParamType_ get_value() { /* ... */}
private:
     // ...
};

This way, the physics engine for example could define all the config options it requires without altering any common code:
class physics_engine_t {
public:
    void do_smth() {
        float m = 1;
        float h = 20;
        float g = gravity_.get_value();

        float pot_energy = m*g*h;
    }
    // ...
private:
    config_option_t<bool>  enable_collisions_{"enable_collisions"};
    config_option_t<float> gravity_{"gravity"};
};

The advantage of this approach is of course also its big drawback: distributing the configuration code. On one hand it makes everything a lot easier to extend, on the other the configuration code gets spread out all across the codebase

OK, let me start by dissing your idea :)
THE UGLY
Since all subsystems including the physics engine are base classes that have to be subclassed, your proposal would look more like this in reality in dummy_classes.h:
 class physics_base_t : public OE_THREAD_SAFETY_OBJECT {
    public:
        physics_base_t() = delete;
        physics_base_t(std::string);
        virtual ~physics_base_t();

        virtual bool init(physics_init_info);

        // The below function is useless with your proposed approach
        //virtual void update_info(physics_update_info) noexcept;

        virtual bool update_multi_thread(const task_info_t, int);
        virtual void destroy();

        const std::string get_name();

    protected:
        const std::string name_;
        config_option_t<bool>  enable_collisions_{"enable_collisions"};
        config_option_t<float> gravity_{"gravity"};
    };

I hope you already see a problem with this in that this is EXACTLY like the previous solution, but wrapped on a ""nicer"" interface. Runtime configuration would not survive physics engine restarts and you would need to access those protected variables from plain functions in api_oe to change them which would make it more complicated for no reason. You would need to make friends with tons of functions.
THE BAD

No thread safety

Sure you could insert a mutex inside config_option_t. But that would not solve the cases of someone trying to change gravity while you are in the middle of a collision detection computation. In the current approach runtime configuration is updated once with update_info and you are supposed to copy all the configuration internally yourself.
In order to fix the above issue you would surely have to copy the config variables at the start of update_multi_thread. That would also mean locking and unlocking a lot more mutexes for each variables, instead of once as it is done in task_manager.cpp line 385 inside OE_TaskManager::update_thread:
        // SYNCHRONIZE PHYSICS
        lockMutex();
        physics_threads++;
        comp_threads_copy = physics_threads;
        if (physics_threads > (get_ready_threads() - 1)) {
            physics_threads = 0;
            this->physics_mutex.lockMutex();
            if (not this->physics_init_errors) this->physics->update_info(this->physics_info); // HERE IS YOUR CONFIGURATION UPDATED
            this->physics_mutex.unlockMutex();
            condBroadcast(3);
        }
        else {

            condWait(3);
        }
        unlockMutex();

        /**************************/
        // This is where physics are run
        this->threads[thread_id]->physics_task.update();
        if (not this->physics_init_errors)
            done_ = done_ or this->try_run_physics_update_multi_thread(thread_id, comp_threads_copy);
        /**************************/

        this->sync_end_frame();

Decentralisation.

In the current approach the task manager handles all the configuration whether runtime or initial. The initial configurations need global variables as well, but runtime configuration is only stored inside the task manager itself in task_manager.h line 71:
    /**********************************/
    // public member variables

    OE_THREAD_SAFETY_OBJECT  renderer_mutex;
    oe::renderer_base_t*     renderer{nullptr};
    oe::renderer_init_info   renderer_init_info;
    oe::renderer_update_info renderer_info; // RUNTIME CONFIGURATION

    OE_THREAD_SAFETY_OBJECT physics_mutex;
    oe::physics_base_t*     physics{nullptr};
    oe::physics_update_info physics_info; // RUNTIME CONFIGURATION
    oe::physics_init_info   physics_init_info;

    OE_THREAD_SAFETY_OBJECT window_mutex;
    oe::winsys_base_t*      window{nullptr};
    oe::winsys_update_info  window_info; // RUNTIME CONFIGURATION
    oe::winsys_init_info    window_init_info;
    oe::winsys_output       window_output;

    oe::networking_base_t*   network{nullptr}; //TODO: RUNTIME CONFIGURATION
    oe::networking_init_info network_init_info;

These are also the only public member variables of the task manager. Sure I might have to make the actual winsys/renderer/physics/network private, which I just discovered might make sense, but this is unrelated and for another issue ;)

The worst case scenario in your approach assuming you solve (1.) would amount to locking/unlocking the variable mutexes twice instead of only once for the struct with the current approach + 1 for the actual copying.

The overhead of copying a few trivially copyable variables in negligible to computing collision detection for thousands or vertices or rendering hundreds of objects. :)

Your approach is worse than the current one performance wise not only for the worst case, but in every way imaginable assuming you fix (.1) In a game engine it is more important to optimize for the worst case scenario, since we want consistent framerates anyways. Actually your best case scenario would be exactly like the worst case scenario with the current approach. :P

With your current approach the physics engine configuration options would only initialize when the physics engine initializes which would be problematic if we have runtime and initial config options on the same file. This more relevant for other subsystems but you get the point I think.

THE GOOD
Your idea of a configuration class config_option_t is not bad at all. This could in theory simplify reading/writing configuration from/on files. Although I prefer the current approach, we could put those variables in the structs themselves: (dummy_classes.h line 145)
    struct physics_update_info {
        float gravity{-9.81f};
    };
    struct physics_update_info_master { // This should be stored in the task manager
        physics_runtime_config_option_t<float> gravity{"gravity", -9.81f};
        physics_update_info get_data():
    };

The actual physics engine would use physics_update_info just like it used to and the variables will still be kept inside the task manager. The global configuration class would then be useful for reading/writing from files.
We could make child classes subclassing config_option_t for the different subsystems like physics_runtime_config_option_t.
Drawback would be 2x more code changes if one wants to change or add/remove configuration options and of course the overhead of accessing a map of strings for the actual value. But then again with the current approach it would also be 2x more code changes to implement read/write from files in theory.
Is there maybe a way for any C++20 meta-programming feature to automatically produce physics_update_info_master ?


Metainfo of the inverted index may overflow, causing the index to become unavailable

What type of bug is this?
Unexpected error
What subsystems are affected?
Storage Engine
Problem Report
Below is the definition of InvertedIndexMeta:
https://github.com/GreptimeTeam/greptime-proto/blob/a11db14b8502f55ca5348917fd18e6fcf140f55e/proto/greptime/v1/index/inverted_index.proto#L41-L68
As can be seen, both relative_fst_offset and fst_size are defined as uint32.
    // The byte offset of the Finite State Transducer (FST) data relative to the `base_offset`.
    uint32 relative_fst_offset = 4;

    // The size in bytes of the FST data.
    uint32 fst_size = 5;

According to the layout of the inverted index:
null_bitmap bitmap₀ bitmap₁ bitmap₂ ... bitmapₙ fst

This implies that if the total size of the bitmaps exceeds 4.3GB, the relative_fst_offset will overflow, causing the FST to be located at an incorrect position when read.
Let's examine the possibility that the total bitmap size exceeds 4.3GB:

Suppose there are 100k distinct values in the column, each occupying an average of 43KB of bitmap size.
Since the bitmap is implemented with the simplest bitvec, 43KB actually represents a maximum of 344k segments, which is 352 million rows.

This is achievable, so this issue urgently needs to be addressed.
Some possible solutions are:

Optimize bitmap implementation, compress the bitmap, or adopt a roaring bitmap.
Introduce additional levels of indexing, SST -> Row Group -> Segment, to control the number of indexing targets.

Note: Simply adjusting relative_fst_offset to uint64 is insufficient because the Value that the FST maps to represents the position and size of the bitmap, which also uses u32. Therefore, the positioning of the bitmap will also be affected by the total size of the bitmap.

it proves we made a data intensive application
2 looks good to me. 1 also, but I'm not sure about the complexity.

In another aspect, maybe we should restrict the total row number of an SST file. We don't want to generate a very large parquet file and @v0y4g3r is working on this.
We may also skip building the inverted index for a column if the number of distinct is too large but I'm not sure what the appropriate threshold is.

Introduce additional levels of indexing, SST -> Row Group -> Segment, to control the number of indexing targets.

Maybe we can build an inverted index per row group since the number of rows inside a row group won't be too large. We need to enlarge the row group size (rows in a row group) to reduce the number of row groups per file.

@zhongzc Do we have a plan to fix it?


Difference with std/ws and native WebSocket?

Hey! I was looking for websocket capabilities in deno using google ("deno websocket"), and this was the first result. Later, I found that the native web API WebSocket is already supported in deno for ws clients, and there is a ws standard library for hosting a ws server.
Perhaps on the README you could clarify the relation between this package and those two alternatives? Which would you recommend for newcomers?
Thanks! -fons

This package is wrapping the native web API Websocket Client and the ws standard library.
You can execute the callback of WebSocket as an EventEmitter.
Good Idea. I will write the description on the README.

I see! So this package would be best for people coming from NodeJS, while people coming from browser JS should use the native WebSocket capabilities?

No problem in choosing freely. I will respect the user's choices.


Can't Change The Name

I am unable to change the name of the bot.

Do change the name, you need to press ESC, then type the name you want in the text box and die.

Yes, I do that but it still remains the default.
-CCTrollz

On Jul 16, 2015, at 22:43, Apostolique<EMAIL_ADDRESS>wrote:
Do change the name, you need to press ESC, then type the name you want in the text box and die.
—
Reply to this email directly or view it on GitHub.

In that case, can you try opening the terminal and inputting:
setNick("Name");

Yes, I do that but it still remains the default.

You have to set the name and click "Play" for it to take effect. At which point your name will change on your next game. Or after clicking play you can switch game types to reset your game and change the name faster.


[PE-D] Bad assumption on only comments related to attendance will be added

Based on user guide, users are allowerd to add comments for a student. However, among the list commands, comment added for a student is only visible in list_attendance
But unable to view on the comments added in
list,  list_student, list_score
e.g.

But only able to view the comment in list_attendance

Adding a comment for a student such as scored A* in CS2103T should not only be visible in list_attendance. Developers should not assume only comments related to attendance will be added. Instead it will be better to just uses view_comment to view on a student's comment and not display the comment in list_attendance

Labels: type.FeatureFlaw severity.High
original: kaiyichen/ped#11

*planned for comments to be remove from attendance card


packr2二进制包安装成功了，但是hyperbench编译不通过

go get: module github.com/gobuffalo/packr@upgrade found (v1.30.1), but does not contain package github.com/gobuffalo/packr/packr2
Makefile:65: recipe for target 'dep' failed
make: *** [dep] Error 1

该如何解决呢？谢谢


Independent Assessments#2173

What's included?
Closes #2173
Note: This PR needs changes on Digital Platform #2173 Admin Independent Assessments
Who should test?
✅ Product owner
✅ Developers
✅ UTG
How to test?

Go to preview link: https://jac-admin-develop--pr2244-feature-2173-indepen-wskxjm6y.web.app/exercise/ONqUjAzhDS7rjh6dFJLB/tasks/all/independent-assessments#notrequested

Go to "Not Requested" tab

Select one assessment
Click "Send Request" button
It should appear a pop-up with related information (changed to X assessor(s)):

Go to "Requested" tab

Select one assessment
Click "Send reminders" button
It should appear a pop-up with related information (changed to X assessor(s)):

Go to preview link: https://jac-admin-develop--pr2244-feature-2173-indepen-wskxjm6y.web.app/exercise/ONqUjAzhDS7rjh6dFJLB/details/contacts

Click "Update exercise contacts"
Change the "Exercise mailbox" to your email like<EMAIL_ADDRESS>Enter the "Email signature name" like "Tester", then Save.

Risk - how likely is this to impact other areas?
🟢 No risk - this is a self-contained piece of work
Additional context
Include screen grabs, video demo, notes etc.
Related permissions
Have permissions been considered for this functionality?

No permission changes required
Permissions have been added / updated. Details:

PREVIEW:DEVELOP
can be OFF, DEVELOP or STAGING

@HalcyonJAC There are no assessments showing up under Not requested:

@HalcyonJAC So the Notify email template uses the email signature name rather than the exercise mailbox content as sign-off now?

@HalcyonJAC There are no assessments showing up under Not requested:

@nickaddy I have reset some assessments. You should be able to see some assessments under "Not requested".

@HalcyonJAC So the Notify email template uses the email signature name rather than the exercise mailbox content as sign-off now?

@nickaddy Yes, the IA request email template uses the email signature name as sign-off.


Wrong Template (I guess...)

I tried running npm create electron-vite@latest its says download package<EMAIL_ADDRESS>and i continued but its not generating the template with sass and no e2e, just simple src folder and electron folder with css and tsx files...
Please help me i want tha sass one

Oh!
git clone https://github.com/electron-vite/electron-vite-react.git

The project created by npm create electron-vite@latest and electron-vite-react are different.


Support history limits in Backup and SqlJob resources

As requested in #641, this PR enables the successfulJobsHistoryLimit and failedJobsHistoryLimit fields for scheduled Backup and SqlJob resources.
Is the test coverage sufficient or should I add some more tests?

I wasn't too happy with my original test coverage, so I added some additional test cases to backup_controller_test.go and sqljob_controller_test.go.  If it's too much, let me know, and I'll revert and/or change them accordingly.

Ah yes, that makes total sense. I can certainly open another PR where I introduce a CronJobTemplate. In fact, I may prepare this as a PR implementing #383.

It's great to see how easily you manage to understand the code. Thanks a lot for your contribution and specially for taking care and extending the Backup / SqlJob tests! ⭐

Happy to help! Thanks for your kind words!

Have you considered anything in that direction that I should take into account, and do you accept such PRs in general?

PRs welcome! tests should be first class citizens and they can always be improved!


ECS execute-command failed due to an internal error.

Hi there, I'm trying to run execute-command to open an interactive shell against my ECS Fargate task. I'm using this checker to validate my configuration:
$ bash <( curl -Ls https://raw.githubusercontent.com/aws-containers/amazon-ecs-exec-checker/main/check-ecs-exec.sh ) clusterName cf41c924968e426c9be535f3f47545be
-------------------------------------------------------------
Prerequisites for check-ecs-exec.sh v0.7
-------------------------------------------------------------
  jq      | OK (/usr/bin/jq)
  AWS CLI | OK (/usr/local/bin/aws)

-------------------------------------------------------------
Prerequisites for the AWS CLI to use ECS Exec
-------------------------------------------------------------
  AWS CLI Version        | OK (aws-cli/2.4.0 Python/3.8.8 Linux/5.11.0-40-generic exe/x86_64.ubuntu.20 prompt/off)
  Session Manager Plugin | OK (<IP_ADDRESS>)

-------------------------------------------------------------
Checks on ECS task and other resources
-------------------------------------------------------------
Region : eu-south-1
Cluster: clusterName
Task   : cf41c924968e426c9be535f3f47545be
-------------------------------------------------------------
  Cluster Configuration  | Audit Logging Not Configured
  Can I ExecuteCommand?  | arn:aws:iam::ACCOUNT_ID:role/ADMIN_ROLE_NAME
     ecs:ExecuteCommand: allowed
     ssm:StartSession denied?: allowed
  Task Status            | RUNNING
  Launch Type            | Fargate
  Platform Version       | 1.4.0
  Exec Enabled for Task  | OK
  Container-Level Checks |
    ----------
      Managed Agent Status
    ----------
         1. RUNNING for "taskName"
    ----------
      Init Process Enabled (taskName:1)
    ----------
         1. Enabled - "taskName"
    ----------
      Read-Only Root Filesystem (taskName:1)
    ----------
         1. Disabled - "taskName"
  Task Role Permissions  | arn:aws:iam::ACCOUNT_ID:role/taskName-ecs-task
     ssmmessages:CreateControlChannel: allowed
     ssmmessages:CreateDataChannel: allowed
     ssmmessages:OpenControlChannel: allowed
     ssmmessages:OpenDataChannel: allowed
  VPC Endpoints          |
    Found existing endpoints for vpc-ID:
      - com.amazonaws.eu-south-1.ssm
      - com.amazonaws.eu-south-1.ec2messages
      - com.amazonaws.eu-south-1.ssmmessages

However, I'm getting TargetNotConnectedException. I've also opened an issue here.
Am I missing something..?

Hi, @nic-russo! Thank you for reaching out to us here.
In general TargetNotConnectedException indicates that the required connection between the managed agent running in your task container and SSM Session Manager.
Supposing there is no bug in the exec checker script itself, could you possible check/try the following?

VPC endpoint policies, if the VPC endpoints above have any VPC endpoint policy
Wait a few minutes and try again (because managed agents regularly try to reconnect)
Stop the task and try a new task (if the task is under an ECS service)
Update the session manager plugin to the latest (1.2.279.0 os the latest as of Dec. 1st 2021)
See and check CloudTrail logs if there is any error API calls related to ECS and SSM Session Manager

Also it would be helpful to debug this issue since there is known limitations in the exec checker script:

The script doesn't support specific IAM roles/policies with (1) Conditions or (2) IAM permission boundaries. In this case you need to check manually that (a) your IAM role ("role/ADMIN_ROLE_NAME" in the script result) is NOT limited to call ExecuteCommand API, and (b) the task role ("role/taskName-ecs-task") is not limited to call SSM Session Manager APIs.

Hi @toricls, thanks for your support! I went through your list:

The com.amazonaws.eu-south-1.ssmmessages VPC endpoint has the following policy

{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        }
    ]
}

(3. 4.) Done, no luck (Yes, I'm running the task into an ECS service - Fargate).

5 . I see 2 events in cloudtrail:
Event Name: ExecuteCommand

{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "ID_HERE:botocore-session-1638379635",
        "arn": "arn:aws:sts::ACCOUNT_ID:assumed-role/ADMIN_ROLE/botocore-session-1638379635",
        "accountId": "ACCOUNT_ID",
        "accessKeyId": "ACCOUNT_KEY",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "ID_HERE",
                "arn": "arn:aws:iam::ACCOUNT_ID:role/ADMIN_ROLE",
                "accountId": "ACCOUNT_ID",
                "userName": "ADMIN_ROLE"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2021-12-01T17:27:16Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2021-12-01T17:41:56Z",
    "eventSource": "ecs.amazonaws.com",
    "eventName": "ExecuteCommand",
    "awsRegion": "eu-south-1",
    "sourceIPAddress": "IP_HERE",
    "userAgent": "aws-cli/2.4.0 Python/3.8.8 Linux/5.11.0-40-generic exe/x86_64.ubuntu.20 prompt/off command/ecs.execute-command",
    "errorCode": "ClientException",
    "errorMessage": "The execute command failed due to an internal error. Try again later.",
    "requestParameters": {
        "cluster": "clusterName",
        "container": "containerName",
        "command": "/bin/bash",
        "interactive": true,
        "task": "bc72af51a5d942519202ed10342ef307"
    },
    "responseElements": null,
    "requestID": "340b94d2-ac03-4c4f-a386-e8728b95adc0",
    "eventID": "c3503af0-3fa1-41e7-a447-e5ee70055641",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "ACCOUNT_ID",
    "eventCategory": "Management"
}

Event Name: StartSession

{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "ID_HERE:ecs-execute-command",
        "arn": "arn:aws:sts::ACCOUNT_ID:assumed-role/AWSServiceRoleForECS/ecs-execute-command",
        "accountId": "ACCOUNT_ID",
        "accessKeyId": "ACCOUNT_KEY",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "ID_HERE",
                "arn": "arn:aws:iam::ACCOUNT_ID:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
                "accountId": "ACCOUNT_ID",
                "userName": "AWSServiceRoleForECS"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2021-12-01T17:41:56Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "ecs.amazonaws.com"
    },
    "eventTime": "2021-12-01T17:41:56Z",
    "eventSource": "ssm.amazonaws.com",
    "eventName": "StartSession",
    "awsRegion": "eu-south-1",
    "sourceIPAddress": "ecs.amazonaws.com",
    "userAgent": "ecs.amazonaws.com",
    "errorCode": "TargetNotConnected",
    "errorMessage": "ecs:aws-monitor_bc72af51a5d942519202ed10342ef307_bc72af51a5d942519202ed10342ef307-1708420469 is not connected.",
    "requestParameters": {
        "target": "ecs:aws-monitor_bc72af51a5d942519202ed10342ef307_bc72af51a5d942519202ed10342ef307-1708420469",
        "documentName": "AmazonECS-ExecuteInteractiveCommand",
        "parameters": {
            "cloudWatchLogGroupName": [
                "ECS_aws-monitor"
            ],
            "command": [
                "/bin/bash"
            ]
        }
    },
    "responseElements": null,
    "requestID": "57d9cf3e-25d6-470a-9f0c-cad8a12d3778",
    "eventID": "a2da3ef3-2f00-49ee-940f-eccff1fb13c1",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "ACCOUNT_ID",
    "eventCategory": "Management"
}

6 . The task role has the AmazonSSMManagedInstanceCore policy and some non-related ones

Following, having the same issue

I am facing the same issue.
Tasks created prior to March 29 had no problems.
(This may be a coincidence, but it seems to coincide with the release date of v3.1.1188.0 of SSM Agent.)

Same issue here as of yesterday

I had the same issue as well and as mentioned by @tim-finnigan, changing some ENV vars called AWS_ACCESS_KEY / AWS_SECRET_ACCESS_KEY to different variable names ended up solving the issue for us a well.

I was experiencing this same issue but found a fix.
Initially made sure:

All checks passed amazon-ecs-exec-checker
Our ECS tasks did not have ENV vars set for AWS_ACCESS_KEY or AWS_SECRET_ACCESS_KEY
The ECS agent was updated on the instance to latest (Agent version 1.61.3, Docker version 20.10.13).

Solution:
After double checking all settings (roles, permissions, etc) I tried updating the AMI we were using on the instance and that fixed the issue and was successfully able to execute-command on the task!
The AMI that did not allow for execute command:

AMI ID: ami-0a5e7c9183d1cea27
AMI name: amzn2-ami-ecs-hvm-2.0.20220209-x86_64-ebs

Updated to this AMI which does allow for execute command:

AMI ID: ami-040d909ea4e56f8f3
AMI name: amzn2-ami-ecs-hvm-2.0.20220630-x86_64-ebs

(Which is currently latest via https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)

Hey,
I was able to resolve this issue by following Generate logs for ECS Exec to identify issues from https://repost.aws/knowledge-center/fargate-ecs-exec-errors
I found this log:
ERROR [ssm-agent-worker] [MessageService] [MGSInteractor] Failed to get controlchannel token, error: CreateControlChannel failed with error: createControlChannel request failed: failed to make http client call: Post "https://ssmmessages.us-west-2.amazonaws.com/v1/control-channel/ecs:xxx": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

I removed the ssmmessages VPC endpoint, and aws ecs execute-command worked. (The VPC has an internet gateway)


Upgrading to 1.19.0 gives ERROR 22003 (numeric_value_out_of_range) smallint out of range

Upgraded to 1.19 (from 1.18 I believe) and it's failing to start with ERROR 22003 (numeric_value_out_of_range) smallint out of range showing in the logs.  It just keeps restarting and giving the error message.
To Reproduce
To upgrade I did the following

docker-compose down
docker-compose pull
docker-compose up -d

Relevant entries from the logs
14:13:06.225 [info] == Running<PHONE_NUMBER>2005 TeslaMate.Repo.Migrations.DatabaseEfficiencyImprovements.change/0 forward
14:13:06.227 [info] alter table cars
14:13:06.345 [info] alter table addresses
14:13:06.413 [info] alter table charging_processes
** (Postgrex.Error) ERROR 22003 (numeric_value_out_of_range) smallint out of range
    (ecto_sql 3.4.2) lib/ecto/adapters/sql.ex:612: Ecto.Adapters.SQL.raise_sql_call_error/1
    (elixir 1.10.2) lib/enum.ex:1396: Enum."-map/2-lists^map/1-0-"/2
    (ecto_sql 3.4.2) lib/ecto/adapters/sql.ex:705: Ecto.Adapters.SQL.execute_ddl/4
    (ecto_sql 3.4.2) lib/ecto/migration/runner.ex:343: Ecto.Migration.Runner.log_and_execute_ddl/3
    (ecto_sql 3.4.2) lib/ecto/migration/runner.ex:117: anonymous fn/6 in Ecto.Migration.Runner.flush/0
    (elixir 1.10.2) lib/enum.ex:2111: Enum."-reduce/3-lists^foldl/2-0-"/3
    (ecto_sql 3.4.2) lib/ecto/migration/runner.ex:116: Ecto.Migration.Runner.flush/0
    (stdlib 3.12.1) timer.erl:166: :timer.tc/1

Operating environment

TeslaMate Version: 1.19.0
Type of installation: Docker
OS: Ubuntu

Could you check which values are affected?
docker-compose exec database psql teslamate teslamate
SELECT id,start_battery_level,end_battery_level,duration_min,car_id FROM charging_processes WHERE start_battery_level<-32768 OR 32767<start_battery_level OR end_battery_level<-32768 OR 32767<end_battery_level OR duration_min<-32768 OR 32767<duration_min OR car_id<-32768 OR 32767<car_id;

SELECT id,speed_max,power_max,power_min,duration_min,car_id FROM drives WHERE speed_max<-32768 OR 32767<speed_max OR power_max<-32768 OR 32767<power_max OR power_min<-32768 OR 32767<power_min OR duration_min<-32768 OR 32767<duration_min OR car_id<-32768 OR 32767<car_id;

The affected rows can only contain invalid values, if possible you can remove them directly and restart the migration.

Also doesn't a docker-compose down command remove the containers and have to start from scratch if no backup is available?

Ran the two queries and got the following.  I had done a TeslaFi import a week or so ago without any apparent issues.  Maybe that's where the bad data came from?
teslamate=# SELECT id,start_battery_level,end_battery_level,duration_min,car_id FROM charging_processes WHERE start_battery_level<-32768 OR 32767<start_battery_level OR end_battery_level<-32768 OR 32767<end_battery_level OR duration_min<-32768 OR 32767<duration_min OR car_id<-32768 OR 32767<car_id;
 id  | start_battery_level | end_battery_level | duration_min | car_id
-----+---------------------+-------------------+--------------+--------
 391 |                  13 |                79 |        44818 |      1
(1 row)

teslamate=# SELECT id,speed_max,power_max,power_min,duration_min,car_id FROM drives WHERE speed_max<-32768 OR 32767<speed_max OR power_max<-32768 OR 32767<power_max OR power_min<-32768 OR 32767<power_min OR duration_min<-32768 OR 32767<duration_min OR car_id<-32768 OR 32767<car_id;
 id | speed_max | power_max | power_min | duration_min | car_id
----+-----------+-----------+-----------+--------------+--------
(0 rows)

Should I to delete row 391?

Or just set the duration_min to NULL :)

Also doesn't a docker-compose down command remove the containers and have to start from scratch if no backup is available?

It doesn't remove any volumes by default. So you can run this without any problems.

Also doesn't a docker-compose down command remove the containers and have to start from scratch if no backup is available?

Good point.  I should have done a stop.

Or just set duration_min to NULL :)

That did the trick.  After that the migration completed without issue.  Thanks for your help.

Nice! Glad it worked.


Adds a "/" to request URI if required

Description
This change adds a check when composing a request URL and includes an intervening "/" between the base URL and resource path if there is not one included in either of those values already.
Motivation and Context
This change is a fix for a bug that arises when an S3 request has a ServiceURL containing a subdirectory specified,  ForcePathStyle set to true, and v4 signing enabled.
The CanonicalResourcePath is created for the AWS4Signer  by combining the ServiceURL with the ResourcePath (the BucketName and the Key) using CanonicalizeResourcePath at AWSSDKUtils.cs:282. Here it is assumed that there is no trailing  "/" in the ServiceURL or leading "/" in the BucketName/ResourcePath as one is placed in between them during concatenation.
When the same request is composing the url against which the request will be made, these same values (ServiceURL and ResourcePath beginning with BucketName) are combined at AmazonServiceClient.cs:505. Here it is assumed that an intervening "/" is already present, as the values are concatenated without a "/".
This results in either the CanonicalResoucePath being incorrect by having an extra "/" or the request URL being incorrect by lacking the "/" between the subdirectory of the ServiceURL and the beginning of the BucketName, depending on whether or not the "/" is included when these values are assigned.
Testing
Perform a request through an AmazonS3Client with configuration values formatted like the following:
Client:
ServiceURL = "example.com/sub/directory"
ForcePathStyle = true
(in AWSConfig) useSignatureVersion4 = true
Request:
BucketName = "bucket"
Key = "resource/path/filename.ext"
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project
[ ] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[x] I have read the README document
[ ] I have added tests to cover my changes
[x] All new and existing tests passed

License

[x] I confirm that this pull request can be released under the Apache 2 license

Thanks for the pull request. and the change looks good. I have another Core change I'm finishing up, when I complete that I'll include this change with that Core release.

Thanks again for the pull request. This went out with version <IP_ADDRESS> of AWSSDK.Core


Android Basics: lists

https://developer.android.com/codelabs/basic-android-kotlin-training-lists?authuser=1&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-2-pathway-3%3Fauthuser%3D1%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-lists#7
Step 8, at code section
Wrap the while / loop declaration into an actual code block to display it

@PsyYak
Thank you for reaching out to us. The issue is fixed and will be published soon.


[DOC]Jupyterhub docs

@ysimonson @JoeyZwicker, this is ready for review.

In addition to the above comments, there's still a few system response blocks that are incorrectly highlighting as json


go-mssqldb@v0.12.1/token.go:790:79: cannot use info.Message (variable of type Message) as type string in struct literal

Describe the bug
importing go-mssqldb results in:
spuria@fedora:~/dev/SyncHisterical$ go run sync.go
# github.com/denisenkom/go-mssqldb
../../go/pkg/mod/github.com/denisenkom/go-mssqldb@v0.12.1/token.go:790:79: cannot use info.Message (variable of type Message) as type string in struct literal

To Reproduce
This happened on 2 different linux boxes (fedora 32 and debian 11) with go 1.18.2 installed following the official instructions on https://go.dev/doc/install
I created a sample project:
spuria@fedora:~/dev$ mkdir SyncHisterical
spuria@fedora:~/dev$ cd SyncHisterical/
spuria@fedora:~/dev/SyncHisterical$ go mod init ffit/syncHisterical
go: creating new go.mod: module ffit/syncHisterical
spuria@fedora:~/dev/SyncHisterical$ vim sync.go
spuria@fedora:~/dev/SyncHisterical$ go mod tidy
go: finding module for package github.com/denisenkom/go-mssqldb
go: downloading github.com/denisenkom/go-mssqldb v0.12.1
go: found github.com/denisenkom/go-mssqldb in github.com/denisenkom/go-mssqldb v0.12.1
go: downloading github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe
go: downloading github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188
go: downloading golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897
spuria@fedora:~/dev/SyncHisterical$ cat go.mod
module ffit/syncHisterical

go 1.18

require github.com/denisenkom/go-mssqldb v0.12.1

require (
	github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect
	github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 // indirect
	golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 // indirect
)
spuria@fedora:~/dev/SyncHisterical$ go run sync.go
# github.com/denisenkom/go-mssqldb
../../go/pkg/mod/github.com/denisenkom/go-mssqldb@v0.12.1/token.go:790:79: cannot use info.Message (variable of type Message) as type string in struct literal
spuria@fedora:~/dev/SyncHisterical$

the code in sync.go:
import (
	"context"
	"database/sql"
	"errors"
	"fmt"
	"log"

	_ "github.com/denisenkom/go-mssqldb"
)

var db *sql.DB

var server = "<your_server.database.windows.net>"
var port = 1433
var user = "<your_username>"
var password = "<your_password>"
var database = "<your_database>"

func main() {
	// Build connection string
	connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
		server, user, password, port, database)

	var err error

	// Create connection pool
	db, err = sql.Open("sqlserver", connString)
	if err != nil {
		log.Fatal("Error creating connection pool: ", err.Error())
	}
	ctx := context.Background()
	err = db.PingContext(ctx)
	if err != nil {
		log.Fatal(err.Error())
	}
	fmt.Printf("Connected!\n")
}

I commented out line by line and tried to run the code but the only way to not have this message was to comment out the import, even a main function with a single fmt.Printf gave that error, when commenting the import the main function was run.
Expected behavior
To run the main function
Further technical details
Operating system: Debian 11, Fedora 32
Additional context
the code was taken from the example on microsoft documentation about sql server and go: https://docs.microsoft.com/it-it/azure/azure-sql/database/connect-query-go?view=azuresql

This has been fixed: https://github.com/denisenkom/go-mssqldb/issues/745

sorry, did not find that issue


Integration tests with partial results from APIs

We need to make the integration tests more robust by:

making them less rate hungry
possibly tied with making refresh more optimal
fail with more obvious errors when rate limits are reached (currently, we get partial results which manifest in weird ways)

Interesting note: the mylyn github api does include calls to determine remaining requests and get the limit. We may be able to use this to throw more obvious errors when rate limited.

We have made tests less rate hungry by pre populating some data.
Since the rate limit is being reached more often for tests now that we split up travis to do two jobs, we should make it higher priority to better deal with rate limits. We should investigate how the webservice could check rate limit for the current user and warn the user (or webservice) when it is reached (or almost reached).

Yes, I would think that in the unlikely case that a regular end-user hits a rate limit, they would also find this generally useful, not just for tests. We may be able to throw a specific rate limit exception that will be more obvious in our test output.


Support sub dirs in static

This is to make it easier to structure static files associated with
samples.
Preparation for a sample demonstrating hreflangs + AMP.

@kul3r4 PTAL


Add more Tests for piral new

Test all variations of the command, incl.

different templates
different registry
different framework
settings vars (choose a template that can work with those)

Done so far (except settings vars).


How do I actually enable HW accelerated H264 decoding?

Hello. I've been trying to switch from Firefox to Thorium recently. I'm trying to set up H264 HW video decoding, and I can't seem to figure out how to do so. I've successfully enabled hwaccel on firefox, so maybe I dont know what flags I actually need?
BTW the CPU is Intel i3-7100 (KabyLake) and the GPU is HD630. I dont have any discrete GPU.
Here's the log from thorium's startup:
[19269:19269:1102/165740.717494:FATAL:gpu_init.cc(500)] Passthrough is not supported, GL is egl, ANGLE is
[19218:19218:1102/165740.852263:ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KWallet.isEnabled: object_path= /modules/kwalletd5: org.freedesktop.DBus.Error.NoReply: Remote peer disconnected
[19218:19218:1102/165740.852292:ERROR:kwallet_dbus.cc(112)] Error contacting kwalletd5 (isEnabled)
[19218:19218:1102/165740.852495:ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KLauncher.start_service_by_desktop_name: object_path= /KLauncher: org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable
[19218:19218:1102/165740.852510:ERROR:kwallet_dbus.cc(81)] Error contacting klauncher to start kwalletd5
[19218:19218:1102/165741.096850:ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KWallet.close: object_path= /modules/kwalletd5: org.freedesktop.DBus.Error.NoReply: Remote peer disconnected
[19218:19218:1102/165741.096867:ERROR:kwallet_dbus.cc(503)] Error contacting kwalletd5 (close)
[19218:19218:1102/165741.098243:ERROR:policy_logger.cc(154)] :components/enterprise/browser/controller/chrome_browser_cloud_management_controller.cc(163) Cloud management controller initialization aborted as CBCM is not enabled.
[19218:19218:1102/165741.857018:ERROR:gpu_process_host.cc(989)] GPU process exited unexpectedly: exit_code=133
[19429:19429:1102/165742.128237:FATAL:gpu_init.cc(500)] Passthrough is not supported, GL is egl, ANGLE is
[19218:19218:1102/165743.355018:ERROR:gpu_process_host.cc(989)] GPU process exited unexpectedly: exit_code=133
[19515:19515:1102/165743.447691:FATAL:gpu_init.cc(500)] Passthrough is not supported, GL is egl, ANGLE is
[19218:19218:1102/165744.248476:ERROR:gpu_process_host.cc(989)] GPU process exited unexpectedly: exit_code=133
[19448:10:1102/165744.386291:ERROR:command_buffer_proxy_impl.cc(129)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
[19330:8:1102/165744.468750:ERROR:command_buffer_proxy_impl.cc(129)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
[19540:19540:1102/165744.593793:ERROR:gl_utils.cc(402)] [.RendererMainThread-0x3b6c002bcd00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
[19540:19540:1102/165744.746715:ERROR:gl_utils.cc(402)] [.RendererMainThread-0x3b6c002bcd00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
[19540:19540:1102/165744.895071:ERROR:gl_utils.cc(402)] [.RendererMainThread-0x3b6c002bcd00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
[19540:19540:1102/165745.119007:ERROR:gl_utils.cc(402)] [.WebGL-0x3b6c002bb100]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)```

And vainfo shows:
```Trying display: wayland
libva info: VA-API version 1.18.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_18
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.18 (libva 2.18.2)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.6 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointFEI
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointFEI
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointFEI
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD```

      Note that I took these logs without any flags except `#force-dark-mode`, `#auto-dark-mode` and `#chrome-refresh-2023`.

Clear all flags and run thorium with --enable-features=VaapiVideoDecodeLinuxGL --ozone-platform=x11
This should be working ootb for intel graphics

Clear all flags and run thorium with --enable-features=VaapiVideoDecodeLinuxGL --ozone-platform=x11 This should be working ootb for intel graphics

Yep this works. But I miss the Wayland features like 2 finger pinching which I'm already used to at this point.

Clear all flags and run thorium with --enable-features=VaapiVideoDecodeLinuxGL --ozone-platform=x11 This should be working ootb for intel graphics

IT WORKS! Thanks so much! Gonna close this issue. Hope it helps anyone looking for the same problem.


Fix/selection

Overview
This PR addresses 3 bugs.

The selection box not disappearing on completing the selection action. This was because the gesture was not reactive.
Clicking on an element selects all elements that overlap that pixel (not the top most element). To fix this we can sort by the z index and select the highest one in the selection.
Paste at position with a selection pastes all the widgets at that position (not the selection at that position). To fix this we can offset the copy group by the difference of paste position.

Tests
[Include a link to the passing GitHub action running the test suite here.]
Legal
This project is available under the Apache 2.0 License.

it seems like theres some missing tests since there were no tests failing prior for the previous behavior but none added


Use Sphero Forceband to control Raspberry GPIO pins

Just wondering if we can use sphero forceband to control servo motors, leds, etc. through Raspberry pi or any microcontroller. Please suggest if anyone worked on this!

I'd like to know as well. Looking for something similar.


Support systemd timers

Timers are an alternative to cron.
Instead of having cron based widgets we could change it to detect your job scheduler and provide the relevant information (jobs and history) for the scheduler.

Sure, that sounds like a good idea.
I don't know enough about systemd timers to dive right in. PR would be super appreciated.


Multiple auth types at once

Hello,
Thank you for this library it is working like a charm for me (one project using 2.1.1 + CAS, the other 2.1.3 + Facebook)
Now I have question- What is the best way to allow multiple auth types at once?
I'd like to give my users the option of authenticating against Facebook or supplying a email/password that I store in my db.
What is the best way to do this?
Thank you,
Justin

You can protect an URL with multiple clients using a separated list of clients names: https://github.com/pac4j/play-pac4j-java-demo/blob/master/app/controllers/Application.java#L81 and you can pick up the one you want to use in case you need to log in by using the client_name parameter.


Caps in filename extension

Hi,
Sprity generate the extension (.PNG) in uppercase.
Chrome don't like that, and don't show the background.
How can i force the extension name to get always the name in lowercase ?
Thanks !
.icon {
  background-image: url("sprites.png");
}
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
  .icon {
    background-image: url("sprites@2x.PNG");
    background-size: 309px 411px;
  }
}

ok when i specify the format, it keep the lowercase state
format : 'png'

Thanks !

I reopen the issue, because by default it should use png with right case. Will look into this later.


Fix potential ReDoS

Hi, normally we'd appreciate an email prior to submitting security patches, please keep this in mind as it's a pretty typical part of responsible disclosure.
Can you also provide some context for the redos? What sorts of input will cause issues?

Thanks for reminding. Sorry, I can't find your email. Could you tell me your email？

Well cat is out of the bag now, just write here. You can find emails in the commit messages of repositories by the way.

Proof of Concept
import ansiRegex from 'ansi-regex';

for(var i = 1; i <= 50000; i++) {
    var time = Date.now();
    var attack_str = "\u001B["+";".repeat(i*10000);
    ansiRegex().test(attack_str)
    var time_cost = Date.now() - time;
    console.log("attack_str.length: " + attack_str.length + ": " + time_cost+" ms")
}

The ReDOS is mainly due to the sub-patterns [[\\]()#;?]* and (?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*

Thank you for the reproduction and the patch, was able to reproduce.
I'll push out an update immediately.

Published as 6.0.1 - thanks again!

Thanks. It would have been good with a regression test to ensure we don't accidentally regress the regex in the future.

CVE-2021-3807 was assigned for this issue.

AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - 7.5 High

Yet another example of how laughably broken CVE scores are.

@yetingli first of all, big thanks for the contribution! 🙏🏼
Secondly, thanks to this PR I've also learned today about security policies within repos/github and noticed this too: https://github.com/chalk/ansi-regex/security/policy —perhaps this can help smoothen things out in the future. 😊


two additional tests for FilterManager

If rename :replace into :some_other in the FilterManager#update, and then run tests,
only couple of them would fail and they all are indirect.
configuration.rb inclusion_filter= and exclusion_filter= also needs tests.
I'll write them later, when I'll be digging through the configuration.rb.

I'm actually in the middle of refactoring this and these specs won't apply any longer. You can add specs for the configuration, as the changes I'm making won't affect how it is called (though it will affect how it calls out to the FilterManager, but I'll deal w/ that).
Thx!

ok

Changed my mind - will use some of your pull, though some will be replaced.

FYI: 399436c8649755d0a9068ab54da538246a98a1cf

Much better. IMHO.

configuration.rb inclusion_filter= and exclusion_filter= also needs tests.
I'll write them later, when I'll be digging through the configuration.rb.

538


Simplify Node versions in Travis Ci

Previous we manually installed NVM and did the version switching
ourselves. This was required because Travis didn't support NVM
on OSX builds. This has since been fixed so lets see how it
goes.

I'm somewhat amazed this worked although builds appear to be slower. I'll rebuild later when the US is asleep and Travis' load is lower.

It's still slower but not painfully slow. It's worth for the reduction in complexity.


Merge changes from 'main' branch

Fixed Makefile
Added .clang-format
Added option to create a new project (run ./repoman create {project_name})
Added help option

Yay thanks!