Fixes #1802

Password validation extended to allow only printable ASCII characters
A custom validator was written to check whether a password string contains any UTF-8 characters that are not also printable ASCII characters and return false. if true.

Wondering if you were also planning to address https://github.com/biocore/qiita/issues/2579 ? Note that the main goal of that issue is that the user gets a message letting them know that the password is not valid ...

Codecov Report

Merging #2659 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #2659   +/-   ##
=======================================
  Coverage   94.38%   94.38%
=======================================
  Files         166      166
  Lines       19563    19563
=======================================
  Hits        18465    18465
  Misses       1098     1098

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 28e897e...7d043db. Read the comment docs.

Just to be clear, I'm not sure the code here actually solves the problems describe on those issues: mainly makes the user aware of what's wrong in an informative way vs the 500 error code. @charles-cowart, could you use LICEcap to create a small video of the behavior with these changes to facilitate review? Thanks!


Tooltip jitters on mousemove when effect is "solid"

On mousemove it seems like the right edge of the div is moving by 1px.

Same with https://github.com/wwayne/react-tooltip/issues/51

I've tested it with two different macbook, one is non-retina, the other is retina, but I can't reproduce this....

I can reproduce this on Ubuntu 14.04 with nouveau driver, Chrome Version 49.0.2623.87 (64-bit)

I can reproduce it in Chrome 51, external non-retina monitor. I'm on OSX Yosemite on a Macbook Pro.

Should be fixed in 3.1.0


Missing "}" in Example Code

On your example site (https://react-simple-animate.herokuapp.com/), you're missing a closing bracket. I'd have submitted a PR, but I wasn't sure where to make that change.

oops thx fix that right away 👍

Thanks buddy.
https://github.com/bluebill1049/react-simple-animate/commit/a3232347614ed0b438e65b96f421b3b0de1b45f0
i have fixed and merged the PR. it's in the example folder.


Add the possibility to switch the "current" radio station from main menu, instead of going settings

Hi,
I love Only Switch, and particularly the possibility to easily and simply Play or pause my favourite radio station.
I added 3 radio stations in the settings, and I selected one of the station as my "current" station.
However I am frustrated because I can only play/pause and listen to this "current" station I previously selected on the settings.
I cannot easily switch between all the stations I saved in the settings.
Describe the solution you'd like
I'd love the possibility to switch between radio stations from the main menu where the Radio Switch is available.
In my case, a simple "Next" button, just next to the already available "Play" button, would be enough because I only have 3 stations.
Describe alternatives you've considered
I considered looking for another menu bar app which would be specialized in managing radios, just basic functions, web radio stream url, as Only Switch: play/pause, but also a dropdown which would appear for example by right click and permits selecting the radio. Nothing fancy like TuneIn with subscriptions, podcasts, search function, etc...
But I didnt find such app, I looked everywhere, and I am really surprised that Only Switch is the unique app permiting playing web radios.... But too bad I can't change station.
I also asked on Reddit and looked on the menubarapp website, nobody found anything.
So I was hoping to see this function on this app, because unless this, I am qauite happy with the rest of the functions.
Additional context
This could also be a good solution: instead of a "Next" button, which is enough for me, but not enough for someone with lots of radio stations, the better would be a dropdown menu, which would show all the station.
Thanks

I just found "My Tuner Radio" on the app store that does it (little icon in the menu bar that permits choosing between favorites list of radios).
But the app is overkill, a lot of options, categories, radios, and a bit laggy.
And instead of just OnlySwitch, I have now 2 apps, while the reason for having OnlySwicth is to only have "one" switch to rule them all !

@dylandea Thank you for the feedback.
MacOS supports Now Playing and Control Center, so technically you can change next station by them. If you keyboard has media keys, you also can press them to control the radio station.

No way...
I'll try when I get home, and if it works, you're really a legend !
Thanks for your fast reply.

It works as you said !
Thanks


Fix some bad assumptions about emulating subgroupBarrier

It turns out a shared memory barrier is needed even when threads are guaranteed to be in lockstep.
I have some code that breaks in OpenGL on a Nvidia 1050 Mobile, if a memoryBarrierShared is not present (even with the NV_shader_thread_group extension enabled that guarantees lockstep execution within a warp).

@Crisspl could you update the test suite reference shaders on Monday?


Gradle build system

Implemented Gradle build system with most of functionality of maven build system (without publishing to Nexus and JAR signing)
Added new annotated test classes (with @RunWith(classOf[JUnitRunner])) and deprecated old classes

Testing done

[X] Ran build, unit tests, install using old Maven build system (mvn install, mvn test, ...)
[X] Ran build, unit test, local install using new Gradle build system (./gradlew publishToMavenLocal, ./gradlew run, ...)
[X] Verified that sumobot source dependency works correctly in bender

@mccartney please review (the Scala parts). Gradle in sumobot is needed for bender to have source dependency (which requires gradle). Tests in gradle need to have @RunWith(classOf[JUnitRunner]) annotation and to perform the change, I introduced new classes and marked old depracated.

LGTM
What's the point of deprecating? Couldn't we just remove stuff?
Also - if we introduce Gradle, can we remove pom.xml?

As in my earlier edited comment:
Currently, old Maven build system will still be main build system (especially for publishing artifacts to Nexus, jar signing).
But those 2 functions (artifacts Nexus, jar signing) could be introduced into gradle (and then pom.xml removed).

What's the point of deprecating? Couldn't we just remove stuff?
Not breaking compatiblity, as sumobot is opensource. (and even currently Bender uses a few of those classes (will fix))


ARROW-16159: [C++][Python] Allow FileSystem::DeleteDirContents to succeed if the directory is missing

Also changes the dataset writer to use this new method (specifying missing_dir_ok=true).  This should address behavior seen in ARROW-12358

Perhaps you can add to the generic filesystems tests in arrow/filesystem/test_util.cc?

@pitrou
Good idea, thanks.  I removed the test I had added to localfs_test.cc since this was a brand new test and a subset of the generic test.  I left the additions to s3fs_test.cc and hdfs_test.cc as they already had independent tests for DeleteDirContents.

CI was failing because I did not have a GCS solution.  I've added that and think this is probably ready.


[New game]: Coil Game

PR Description 📜
Please include summary related to the issue you have fixed and describe your PR in brief over here by specifying the issue number on which you were working below
Fixes #4487

Mark the task you have completed ✅

[ ] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[ ] I have performed a self-review of my own code or work.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] My changes generates no new warnings.
[X] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[X] I have added screenshot for website preview in assets/images
[X] I have added entries for my game in main README.md
[X] I have added README.md in my folder
[X] I have added working video of the game in README.md (optional)
[X] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @Anjaliavv51 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Hey @Anjaliavv51, You have reached your limit to contribute in GameZone with a score of 155.
We believe in giving equal opportunity to everyone so you will not be able to contribute to GameZone now onwards. 💗
Thank you for your valuable time and contribution in GameZone 🕹!
Your merged pull requests:

#4451 with labels: level1 score: (10)
#4440 with labels: level3 score: (45)
#3975 with labels: level1 score: (10)
#3871 with labels: level3 score: (45)
#3731 with labels: level3 score: (45)

Thank you  @Anjaliavv51 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


java-version-file with asdf's .tool-versions fails for Corretto, also non-strict semver versions

Description:
Support for asdf's .tool-versions file was added to the java-version-file parameter with PR https://github.com/actions/setup-java/pull/606 in response to issue https://github.com/actions/setup-java/issues/579 - unfortunately, there's a difference between what asdf requires for this file, vs what setup-java supports:
asdf requires that the Java version in .tool-versions is fully specified
So a file will typically look like this:
java corretto-<IP_ADDRESS>.1

If you shorten the version, eg to 21.0.2 or 21, and run asdf install java, you'll get this error from asdf:
Unknown release: corretto-21.0.2

setup-java only supports major versions or strict 3-part semver
setup-java supports version numbers of 1 to 3 dot-separated integers (eg major to major.minor.patch). This excludes several valid version numbers - here are some examples:

all Corretto version numbers, which are always at least 4-part (eg <IP_ADDRESS>.1 or 8.322.06.4)
Zulu <IP_ADDRESS>
sapmachine <IP_ADDRESS>
Oracle <IP_ADDRESS>
Microsoft <IP_ADDRESS>.1

setup-java only supports major versions for Corretto
This is probably due to AWS Corretto only providing a simple API for looking up Java versions, that only supports getting the latest version for each major version of Java:
https://github.com/actions/setup-java/blob/99b8673ff64fbf99d8d325f52d9a5bdedb8483e9/src/distributions/corretto/installer.ts#L100
So, Corretto with the java-version-file parameter is doubly unsupported:

Corretto 5-part version numbers don't match the regex's used by setup-java to verify version numbers
Even if Corretto version numbers were accepted, corretto/installer.ts wouldn't be able to locate and download the specific Corretto version, because it can only support finding by major version number https://github.com/actions/setup-java/blob/99b8673ff64fbf99d8d325f52d9a5bdedb8483e9/src/distributions/corretto/installer.ts#L61-L62

Task version:
v4.2.1
Platform:

[x] Ubuntu
[ ] macOS
[ ] Windows

Runner type:

[x] Hosted
[ ] Self-hosted

Repro steps:
Define an invocation of actions/setup-java in a workflow, and point java-version-file to .tool-versions:
.github/workflows/ci.yml :
        uses: actions/setup-java@v4
        with:
          distribution: zulu
          java-version-file: .tool-versions

In .tool-versions, define a version like zulu-<IP_ADDRESS> - and verify that works by executing asdf install java:
.tool-versions :
java zulu-<IP_ADDRESS>

The let the ci.yml workflow run.
Expected behavior:
Ideally, if the .tool-versions file is valid for asdf, setup-java should install that precise version of Java. This means setup-java needs to accept all versions output by asdf list-all java.
Where a distribution has been specified that setup-java is unable to search for precise Java versions (ie Corretto), if the user has set a java-version-accept-any-matching-major-version parameter to true it should just install the latest version of Java for that major version.
Actual behavior:
zulu-<IP_ADDRESS> in .tool-versions (https://github.com/guardian/etag-caching/commit/959d4dc2ef049c72eda32126c850fbeee078b704) :
https://github.com/guardian/etag-caching/actions/runs/8470107933/job/23207054598#step:3:16
No supported version was found in file .tool-versions

cc @aparnajyothi-y @mahabaleshwars @HarithaVattikuti

Hello @rtyley
Thank you for creating this issue. We will investigate it and get back to you as soon as we have some feedback.

Hello @rtyley, I hope this message finds you well. I wanted to kindly bring to your attention some observations regarding the adaptation of our support strategy for the asdf's tool versions file. Specifically, we've noted certain discrepancies with Java versions that do not entirely align with Semver standards.
Moreover, it has come to our attention that some of the currently supported distributions are not listed in the asdf java available versions. To ensure consistency and adherence to best practices, our focus will now be directed towards maintaining .tool-versions files that fully comply with Semver standards.
For your convenience, please note that we have also updated the documentation. Thank you for your attention to this matter.

Hello @rtyley, this is a polite reminder to verify if your issue has been resolved with the revised documentation.

Hi @rtyley, could you please confirm whether the revised documentation resolved your issue?

Hi @mahabaleshwars!

To ensure consistency and adherence to best practices, our focus will now be directed towards maintaining .tool-versions files that fully comply with Semver standards.

I can see the appeal of choosing a standard, but I think there's a possibility that strict semver (MAJOR.MINOR.PATCH) is not an applicable standard, when major JDK distributors like AWS, Oracle, Microsoft, Azul & SAP are releasing JDK versions that do not  confirm to semver.
If the organisations releasing JDKs are not using semver, then what's so good about setup-java requiring semver?

could you please confirm whether the revised documentation resolved your issue?

Personally, I wouldn't say that the changes made to the documentation so far resolve the issue.

For your convenience, please note that we have also updated the documentation.

Incidentally, I appreciate you linked to the documentation, but as it's a large document, and you were asking me to comment on a change, it would actually be more helpful to include a link to the PR that made the change, which I've found is https://github.com/actions/setup-java/pull/622.
So, I think there are two reasonable ways to address the issue, and updating the documentation is one of them - obviously, I'd much prefer that setup-java supported the ideal behaviour I suggested in this issue description (if a .tool-versions file is valid for asdf, setup-java should install that precise version of Java, or a least make a best effort to install the right major version, etc), and I appreciate that's substantial work. If you don't have the available capacity for those alterations, it's good to instead update the documentation to warn users that support for .tool-versions is seriously limited (ie, it will reject a large proportion of valid asdf .tool-versions files).
Unfortunately, I feel the changes in #622 aren't quite clear enough to help users to understand the limitations - essentially the explanation added in the PR was just adding ", adhering to Semantic Versioning (semver)" to the end of "...the .tool-versions file supports version specifications in accordance with asdf":

Problems with this:

This doesn't link to the semver standard at https://semver.org/, so users are relying on their own recall of what the semver standard is (eg, they well think it's just numbers-separated-by-dots, and not recall it requires specifically 3 numbers)
setup-java does not support the full semver standard, because the semver standard is actually quite extensive and allows pre-release suffixes like -alpha-a.b-c-somethinglong+build.1-aef.1-its-okay or just -snapshot.1, and setup-java doesn't support that
It would probably be clearer to explicitly state the actual supported format, eg "for versions that strictly adhere to MAJOR.MINOR.PATCH version numbers".

...personally, I don't think adhering to the semver standard here is a necessarily a gain for setup-java, and the truth is setup-java only has partial support for it.
Note that even if AWS Corretto did use strict semver, setup-java still wouldn't be able to support .tool-versions files that specify Corretto versions, because AWS only provide an API for looking up Corretto artifacts by major version number - semver numbering is not really the blocker there, so requiring it doesn't seem to help? To me, it would be better to support a accept-any-matching-major-version parameter instead, to allow falling back to supported distribution lookup methods.

Hello @rtyley, your efforts to pinpoint the problem are appreciated. The 'setup-java' currently adheres to semver, which includes the Major.Minor.Patch-'pre-release version'+metadata format. We included a reference link to the semver documentation for additional clarity. However, our support for .tool-versions is presently limited to versions compliant with semver (https://semver.org/).

Hello @rtyley, we have updated the documentation to reference the semver link through this PR. Could you please confirm if the feedback provided adequately addresses the concern raised?

Hello @rtyley, we are closing this issue now. Please feel free to reach out to us for any other issues.


Remove left-overs from assembly signing

Description
This PR removes non-working left-overs from the codebase, related to assembly signing (which is not to be confused with NuGet package signing). As explained at https://github.com/SteeltoeOSS/Steeltoe/issues/18#issuecomment-1162933954, there's no benefit it trying to pursue this on .NET Core and later versions.
Fixes #18.
Quality checklist

[ ] Your code complies with our Coding Style.
[ ] You've updated unit and/or integration tests for your change, where applicable.
[ ] You've updated documentation for your change, where applicable.
If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.
[x] There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
[ ] You've added required license files and/or file headers (explaining where the code came from with proper attribution), where code is copied from StackOverflow, a blog, or OSS.

/azp run Steeltoe.All


Update the Rakefile to not generate a gemspec

It no longer uses jeweler, so shouldn't need to be regenerating the file.
Best practice is to have git ls-files in the gemspec itself. It will
be evaluated at the time that the gem is built, and an expanded version
of the gemspec is included in the gem.
This changes the Rakefile to remove the gemspec task, and move the logic
for determining files into the gemspec.
Some other changes related:

remove check for VERSION file, since no longer using jeweler
use gem build with --output to not require mving it after it's built
add -Ilib to reference task, otherwise it fails to find ffaker

Closes https://github.com/ffaker/ffaker/issues/190

@technicalpickles
Sorry. I put it on hold because I wasn't familiar with it. I want to merge it, can you rebase it or give the permission to edit it?

@marocchino I've rebased, and you should already have access to make edits.


Do make API Docs fonts better

Fore some reason the fonts used in api docs looks not too clear. Here's  screnhotts from Chrome & Firefox, there is almost no difference in quality. How about changing those fonts?
https://i.ibb.co/HH25mCv/chrome.png
https://i.ibb.co/FXd0QCF/firefox.png

Hi @asavchuk
I see there's an open issue addressing the case you described.
Please follow up on that issue, Closing as duplicate of https://github.com/flutter/flutter/issues/84505
If you disagree, please write in the comments and I will reopen it.
Thank you


Adding test coverage for PSDrive provider

Could you both take a look at this for me? @Francisco-Gamino  @JamesWTruher
Thanks!

Hi @ChrisUbben, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Christopher Ubben). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

Please fix the test failures in Travis CI.

test/powershell/Modules/Microsoft.PowerShell.Management/PSDrive.Tests.ps1

The test is about PSDrive, which doesn't belong to Microsoft.PowerShell.Management module. Please move the file to an appropriate folder.
@Francisco-Gamino could you please review this PR?

I talked to @JamesWTruher and he said to put these provider tests in Modules/Microsoft.PowerShell.Management/.


Install ESLint when building next.js application

Describe the bug
In our current Explorer/Dockerfile we only install non-dev dependencies, this leads to the following error
#15 9.918 - error ESLint must be installed in order to run during builds: npm install --save-dev eslint

To Reproduce
Run
PROGRESS_NO_TRUNC=1 docker build --progress plain --no-cache .

in the Explorer folder and
https://github.com/amosproj/amos2023ss04-kubernetes-inventory-taker/blob/816d31e6978279d5c589e6771631a87928396637/Explorer/Dockerfile#L15
will cause the error you see mentioned above.
Expected behavior
I expect the build step to not emit any error messages.

Has been merged two weeks ago


Enhance service creation content

Fixes #7373
@scottaddie In this case, I'm making an exception to our general rule about not specifying the TF explicitly because I want it to be utterly clear what the path will look like. For the example prereqs, I've added a bullet to say that the project is published for netcoreapp2.1. [EDIT] The TF will be updated at each sample update, so I'm not worried about it for the future of the topic.
Also, I want to reinforce the binPath argument space requirement, so I repeat the following line on purpose for this new example ...

Make sure the space is present between the binPath= argument and its value.

It's an easily overlooked instruction that turns into a big 'ole :bomb: if it isn't seen by the reader.
Thanks to @mmaguirehub for reporting! :rocket:

@scottaddie Let's see how that looks :point_up:. I'm leaning toward this version that doesn't repeat information. I still call out the --output option in case the reader would like to publish to a different folder.

Before, I had it remarking explicitly for the sample app, which is netcoreapp2.1. Now that I've removed that, let's use our usual rule to go with a placeholder.


Actually test things

Previously there were "tests", but they didn't actually verify anything (they had to be checked by hand).
On the assumption that what the library generates currently is correct, I've modified the tests to assert that the qr codes generated match.

It wasn't actually a test. Just some samples.
Actually, I want to check resulting image with something like zbar (or other qr code reader).

Not entirely sure that should necessarily be the goal, in this case.
qr-image operates and encodes at a pretty low level, to extraneous avoid dependencies. I feel that it kind of makes more sense to check correctness of the output of these algorithms at microscopic rather than macroscopic level. Adding a verification with zbar could indeed be a valuable addition, but I think it would make sense to add tests like the ones in this PR as well.

Closing due to lack of activity/interest


[RFC] Use Zod for schemas

I will try to write  an ADR  this week regarding our type validation lib
Here are the criteria that I want to explore, ordered by importance:

Ease of write
IDE performance

External interface translation (open-api doc, AWS direct integration)

Typescript ecosystem
Runtime performance
Additional features (i.e extending typescript possibilities, form validation, ...)
Marketing
Existing knowledge @ Theodo

I want to compare 3 options, to stay focused (but feel free to ask me to add any lib you find interesting)

json-schema (existing)
Zod
Typia

WDYT ?

Looks good!

Yeah looks great @Sc0ra 👍

Schema validation library
Since the start of Swarmion, we used json-schema-to-ts to generate types from json schemas. This library is a great tool, but we encountered some limitations after using it for a while:

Writing json schemas is not very intuitive. It is not easy to write a schema that validates a complex object for new developers using swarmion.
We encountered some performance issues with repositories that have a lot of json schemas with FromSchema type inference used on them.

Thus, we decided to explore other options. After some search, we decided to check zod and typia
Our comparison points are base on those criteria:

Ease of write
IDE performance
External interface translation (open-api doc, AWS direct integration)
Typescript ecosystem
Runtime performance
Additional features (i.e extending typescript possibilities, form validation, ...)
Marketing

TL;DR: We chose to keep json-schema-to-ts implementation to not introduce a breaking change, and we will create zod serverless contracts and promote them in the documentation.
Ease of write
We write a lot of schemas with swarmion, so we need a library that is easy to write and understand.
json-schema-to-ts / ajv

✅ Pros:

Based on a standardized format
Complete and well maintained (<3 Thomus)

❌ Cons:

Very verbose
Not very intuitive
No autocomplete in IDE because of the as const syntax
Can easily produce invalid schemas, which are only detected when applying the FromSchema inference (or using the satisfies typescript keyword)
Schema composition / modularity can be tricky

zod

✅ Pros:

Intuitive
Autocomplete in IDE
Good modularity in schema definition

❌ Cons:

Not standardized
Still need to read the documentation for first schemas

typia

✅ Pros:

Literally writing typescript type
No lib knowledge needed

❌ Cons:

codegen

IDE performance
See this repo analysis for more details
json-schema-to-ts / ajv

✅ Pros:

Schema definition is quick (basic types)

❌ Cons:

Type inference is slow because it needs to parse the schema recursively every time

zod

✅ Pros:

Type inference is really quick (up to 10x faster than json-schema-to-ts)

❌ Cons:

First schema instantiation in IDE typescript language server is slow, but contracts are cached after that

typia

✅ Pros:

Fastest

External interface translation
At build or runtime, we need to translate our types to external interfaces (open-api doc, AWS direct integration, ...)
json-schema-to-ts / ajv

✅ Pros:

json-schema by definition
we developed the open-api translation

❌ Cons:

Type inference is slow because it needs to parse the schema recursively every time

zod

✅ Pros:

https://www.npmjs.com/package/zod-to-json-schema
https://github.com/asteasolutions/zod-to-openapi

❌ Cons:

Depends on external libraries

typia

❌ Cons:

Translation to a runtime object is only done at runtime
We would need to use codegen libs like https://www.npmjs.com/package/typescript-json-schema to generate a runtime / buildtime object
There could be differences between the runtime check and the generated format because of the codegen

Typescript ecosystem
We need a lib which is well supported by the typescript ecosystem
json-schema-to-ts / ajv

✅ Pros:

390 197 weekly downloads
1k stars
Thomus <3
ajv is also big in the ecosystem and well maintained

❌ Cons:

A bit smaller than zod and typia

zod

✅ Pros:

2 429 757 weekly downloads
2O,3k stars
Core maintainer is crazy active
Big libs driving the development: trpc, react-hook-form, ...

typia

✅ Pros:

2,3k stars
An article about this lib buzzed

❌ Cons:

3 666 weekly downloads: strange ratio compared to stars count
Not used on any project I know

Runtime performance
Not the most important factor in most of our use cases but still important
Based on the typia doc whi compare ajv, zod and typia in this doc, the ranking is:

typia
json-schema-to-ts / ajv
zod

Additional features (i.e extending typescript possibilities, form validation, ...)
json-schema-to-ts / ajv

✅ Pros:

ajv is a very complete lib
basic keyword like pattern or min etc already extends typescript validation possibilities
possiblity to add keywords and custom validation with ajv
there are form validation libs

❌ Cons:

The syntax is not very intuitive
It's configuration as text
form validation libs are not the most well maintained

## zod

✅ Pros:

complete extension with custom code
form integration, well maintained

typia

❌ Pros:

No form lib integration
Limited to typescript possibilities (no min, max on number for example)

Marketing
Zod is by far the most popular lib, it is good for SEO of the repository, and we might be listed on this section at the start of their documentation.


Excessive SQL queries for user authentication

There are an excessive number of SQL queries, even with in the same page.   For example, to render the /Trolleys page generates 10 queries of the sequence
exec sp_executesql N'SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[Email] AS [Email],
[Extent1].[EmailConfirmed] AS [EmailConfirmed],
[Extent1].[PasswordHash] AS [PasswordHash],
[Extent1].[SecurityStamp] AS [SecurityStamp],
[Extent1].[PhoneNumber] AS [PhoneNumber],
[Extent1].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],
[Extent1].[TwoFactorEnabled] AS [TwoFactorEnabled],
[Extent1].[LockoutEndDateUtc] AS [LockoutEndDateUtc],
[Extent1].[LockoutEnabled] AS [LockoutEnabled],
[Extent1].[AccessFailedCount] AS [AccessFailedCount],
[Extent1].[UserName] AS [UserName]
FROM [dbo].[AspNetUsers] AS [Extent1]
WHERE [Extent1].[Id] = @p__linq__0',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'ccea5518-acc1-403d-8b4c-c9b4fafe49d2'
exec sp_executesql N'SELECT
[Extent1].[Id] AS [Id],
[Extent1].[UserId] AS [UserId],
[Extent1].[ClaimType] AS [ClaimType],
[Extent1].[ClaimValue] AS [ClaimValue]
FROM [dbo].[AspNetUserClaims] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'ccea5518-acc1-403d-8b4c-c9b4fafe49d2'
exec sp_executesql N'SELECT
[Extent1].[LoginProvider] AS [LoginProvider],
[Extent1].[ProviderKey] AS [ProviderKey],
[Extent1].[UserId] AS [UserId]
FROM [dbo].[AspNetUserLogins] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'ccea5518-acc1-403d-8b4c-c9b4fafe49d2'
exec sp_executesql N'SELECT
[Extent1].[UserId] AS [UserId],
[Extent1].[RoleId] AS [RoleId]
FROM [dbo].[AspNetUserRoles] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'ccea5518-acc1-403d-8b4c-c9b4fafe49d2'

Hey, saw this on #hackgreenville and I wanted to try and see if I could take a crack at it and begin contributing.
These duplicated queries are coming from CustomRoleProvider.cs:30-33
var roles = from ur in user.Roles
            from r in usersContext.Roles
            where ur.RoleId == r.Id
            select r.Name.Trim();

usersContext.Roles is still an IEnumerable<> here, so when it correlates the results, it fetches the roles from the database again for each role in user.Roles. One option to resolve this is to just change that line to from r in usersContext.Roles.ToArray() or similar, to store the dbRoles local for the LINQ expression. I'm happy to put together a PR, but you may have another design choice you'd prefer once you know what the source is.

Excellent, this would certainly explain things.    Yes - please go ahead with a pull request - I wonder if there is a way to do this as an "inner query" that works with a single role rather than a list?   Just musing, I still have to drop back to tutorials when constructing linq queries,.   The only thing that matters in the end is efficient SQL queries.

Resolved from merged code


Filename incorrect when --before and --after used

related to https://github.com/aykamko/tag/issues/29
I don't have the bandwidth to fix this issue so I'm calling out to whoever would like to take this on. It's going to require another refactor of how tag parses the search backend's output, yay.

This isn't a permanent solution, but I was encountering this problem as well using ag as the backend and came up with a quick fix:
diff --git a/tag.go b/tag.go
index b54e9e2..09f8679 100644
--- a/tag.go
+++ b/tag.go
@@ -59,10 +59,12 @@ func getEnvDefault(key, fallback string) string {
 }

 var (
-       red          = color.RedString
-       blue         = color.BlueString
-       lineNumberRe = regexp.MustCompile(`^(\d+):(\d+):.*`)
-       ansi         = regexp.MustCompile(`\x1b\[[0-9;]*[a-zA-Z]`) // Source: https://superuser.com/a/380778
+       red                = color.RedString
+       blue               = color.BlueString
+       lineNumberRe       = regexp.MustCompile(`^(\d+):(\d+):.*`)
+       lineContinuationRe = regexp.MustCompile(`^(\d+)-.*`)
+       lineSeperatorRe    = regexp.MustCompile(`^--`)
+       ansi               = regexp.MustCompile(`\x1b\[[0-9;]*[a-zA-Z]`) // Source: https://superuser.com/a/380778
 )

 type AliasFile struct {
@@ -156,9 +158,12 @@ func generateTags(cmd *exec.Cmd) int {
                        fmt.Printf("%s %s\n", tagPrefix(aliasIndex), string(line))
                        aliasIndex++
                } else {
-                       // Empty line. End of grouping, reset curPath context
                        fmt.Println(string(line))
-                       curPath = ""
+
+                       // If not continuation or context boundary seperation, reset path context
+                       if !lineContinuationRe.Match(colorlessLine) && !lineSeperatorRe.Match(colorlessLine) {
+                               curPath = ""
+                       }
                }
        }

This is working well for the ag backend, but the rg backend is broken.
Potentially later I'll fix this the correct way and make it work with rg, but for now I thought I'd at least contribute this workaround as a comment.


Refactored distributed locks to support existing installations.

This ensures that the required table exists on existing Orchard installations.
The table-creation code is provided by a class so that the code can be used from both the setup service as well as the automatic data migrations class.
The FrameworkMigrations class has been removed to avoid code duplication.

@sfmskywalker  Can you please fix the merge and finish it?


Respiration response during pneumothorax

When a patient with a pneumothorax has a heart rate of 125, their respiration rate should be around 24 bpm.  While testing BG 7.3.0 the patient has a heart rate of 143, but only a respiration rate of 18 bpm which is considered clinically stable.  We've noticed this with other airway obstructions as well, the respiration rate just does not elevate as it should given the patient's heart rate.   This responded more appropriately in earlier versions of Biogears (prior to about October 2019?).
REF for proper pneumo HR/RR responses: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3982243/

Hey doug,
Great comment, we currently have a feature branch out that fixes this issue. We should have that integrated for a upcoming 7.3.1 release that fixes a few other bugs. I'd say for now either revert to a 7.2 commit, or just run the pneumothorax at a 1.00 severity. Fix should be in in a week or two and I'll be sure to update this ticket when that happens.

We are almost done with a feature branch addressing this. Just letting you know it's on our radar.

Baroreceptor updates have been merged into master. Feel free to pull and test on your end.


Filter spark frameworks by port

What does this PR do?
Supersedes #459 by @johnjeffers
Modified the feature for backwards compatibility & added a test.
Motivation
What inspired you to submit this pull request?
Testing Guidelines
An overview on testing
is available in our contribution guidelines.
Versioning

[x] Bumped the version check in manifest.json
[x] Updated CHANGELOG.md. Please use Unreleased as the date in the title
for the new section.

Additional Notes
Anything else we should know when reviewing?

Excellent! Nice to see this getting some ❤


Function name: ambiguous t

Describe the bug
Function names fails to resolve correctly on some occasions.
To Reproduce
When running mythril on BECToken, all function names are shown as "ambiguous t":
$ myth -x solidity_examples/BECToken.sol
==== Exception state ====
Type: Informational
Contract: BasicToken
Function name: **ambiguous** t
PC address: 1006
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking.
--------------------
In file: solidity_examples/BECToken.sol:28

assert(c >= a)

--------------------
(...)

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
The actual function name should be shown.
In this case I think the problem might be that add is an internal function which is complied to inline byte code, so Mythril doesn't have information about it. In this case, Mythril would display the name of the calling function. We would need to parse the AST as well to have this 100% correct, however this isn't the focus of myth-cli (it should be done in mythjs though). Also tagging @rocky
Desktop (please complete the following information):

OS: High Sierra

Fixed.


Ensure that both core dump and attach are not specified at the same time.

Prevent launch if both core dump path and process id are specified at the same time in order to disallow the ambiguity of attempting to debug a dump and attach to a process. If both are specified and the user attempts to launch, an error is shown stating "Unable to start debugging. Launch options string provided by the project system is invalid. Both 'CoreDumpPath' and 'ProcessId' cannot be specified at the same time.".

Hi @jander-msft, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Justin Anderson). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

LGTM

:+1:


Return created entity ID in response for POST execution

Summary
At the moment, when request to POST endpoints is sent, the only response that is given back to the user is the HTTP status code (201 - Created). It whould be useful if aside from this code also ID of newly created entity (and perhaps other data that could be useful) will be returned in the response.
Details

RestResource#POST should be modified before making any other modifications
to be futureproof, let's return some wrapper type object (ex. PostResponse.class)

Acceptance criteria
- [ ] places that are applicable for change should be well documented i module-specific tasks
- [ ] after the analysis, this issue should be converted into epic, and module-specific tasks should be created

[ ] swagger documentation should be modified that way so it is obvious where the return id is located
[ ] overall code coverage is above 80%

Additional context
Add any other context or screenshots about the task.

It turns out that new object's ID is already there, although it is placed in some unobvious place - in the response header.


DepthTexture only mode

I noticed, that the DepthTextureNormals are set and used even if the mode is set to DepthTexture.
The problem for that was this snippet:
if (occlusionSource == OcclusionSource.DepthTexture)
  targetCamera.depthTextureMode |= DepthTextureMode.Depth;

if (occlusionSource != OcclusionSource.GBuffer)
  targetCamera.depthTextureMode |= DepthTextureMode.DepthNormals;

(The second if is also true for depth texture).
The problem now is, that the shader does not really work with depth only:
DepthNormals:

Depth only:

It almost seems like the bright areas are the one's that should be dark and vice versa.
I will send you a pull request, hopefully you can figure out how to solve the shader problem.

Hi, in order for depth only mode to work you need to reconstruct your normals from the depth buffer.
I got it to work by adding this piece of code at line 109 in Obscurance.cginc
#if defined(SOURCE_DEPTH)     // reconstruct normal from view-space position     norm_o = normalize(cross(ddy(vpos_o), ddx(vpos_o))); #endif
Obscurance.cginc.txt
Hope this helps other people.


Feature Request: Show only current user's adopted hydrants

It would be nice to have an ability to show only the hydrants adopted by the current user, since in a city of any reasonable size it's easy for the user's hydrants to become lost among all the others.

Did you have any ideas as to what you want it to look like? Maybe a button on the top right of the map? Perhaps on the sidebar?

Created a pull #78


fakeServer not Working in IE9

I've got fakeServer working in all browsers except IE9. I'm not seeing any errors in IE9, I just get a response from the real server instead of fakeServer. It looks like XDomainRequest support was added in May, so I'm not sure what is going wrong.
This is basically how I'm setting up the fakeServer. My app takes care of defining url and response;
server = sinon.fakeServer.create();
server.autoRespond = true;

server.respondWith(url, function(r){
  r.respond(
    200,
    {"Content-Type":"application/json"},
    response
  );
});

And here's my function that creates the CORS request;
function _createCorsRequest(method, url, data) {

    var xhr;
    if ('withCredentials' in new XMLHttpRequest()) {
      xhr = new XMLHttpRequest();
      xhr.open(method, url, true);
    } else if (typeof XDomainRequest != 'undefined') {
      xhr = new XDomainRequest();
      //The next 6 lines must be defined here or IE9 will abort the request
      xhr.timeout = 3000;
      xhr.onload = function(){};
      xhr.onerror = function (){};
      xhr.ontimeout = function(){};
      xhr.onprogress = function(){};
      xhr.open('POST', url + '?' + data);
    } else {
      xhr = null;
    }
    return xhr;
}

Do I need to configure something differently in order for fakeServer to respond to an XDomainRequest?

This change now breaks the fakeServer to respond to an XMLHttpRequest in IE9 which is a valid use case in my opinion. I am not using XDomainRequest as my scenario doesn't require it.
Is there any other solution than setting sinon.xhr.supportsCORS = true; in case of IE9 ?

This change now breaks the fakeServer to respond to an XMLHttpRequest in IE9 which is a valid use case in my opinion. I am not using XDomainRequest as my scenario doesn't require it.
Is there any other solution than setting sinon.xhr.supportsCORS = true; in case of IE9 ?

Thank you for your feedback :ice_cream:
Could you describe the error in a new ticket with instructions on how to reproduce it? We have a little guide to effectively reporting issues in CONTRIBUTING.md

This change also seems to interfere with using Sinon on Node.js, where the fake server now tries to use XDomainRequest because global.XMLHttpRequest does not exist. Of course it doesn't, that's why we use Sinon to fake it. ^_^


Feather-Amspy

I edited the tutorial feather. I tried making my own work from scratch but it was quite hard and didn't work out.
It was quite easy to learn, but got a little tedious after. It was a nice learning experience though!
Failed repo - https://github.com/DefinitelyInconspicous/indiBlot

[x] I have read the steps to getting a blot
[x] I am submitting art that...

[x] is algorithmically generated (will meaningfully change each time the program is run)
[x] is your own work that is not copied from somewhere else (I edited the tutorial though)
[x] doesn't call Math.random() (See the documentation on randomness)
[x] is drawable on Blot itself (doesn't have lines overlap more than 5 times)

[x] Doesn't overlap lines more than 5 times
[x] Fits in the working area of 125x125mm
[x] Doesn't rely on colour to look good

If you used based your art on something else, used a tutorial, or remixed it from something else, please link it here:
https://blot.hackclub.com/editor?guide=start
Lastly, link a picture of your art piece here:

Hey!
I love your drawing!! Add on some more features! Maybe a quill? It's fully up to you!
I also noticed that it's not different between every run, one of our criteria is that it's algorithmic/generative, you could have the amount of lines on the feathers be random!
This isn't a flat out rejection, but it's pretty close to the feather tutorial, we'd still approve it if it's largely modified

Oh wait I just realised you said quill, not quilt 🤦 . It's fine though, right?

It's better now! It changes on run which fits our generative/algorithmic! However, the main "attraction" of it is still the feathers, it would be really cool to see something that relates the feathers to the quilt!

Ok I made the feathers a "pattern" of the quilt using a grid layout, sorry for the delay. Been quite busy :)

Hi - are the changes I made sufficient or do I have to iterate more on it?

Ok I added rotation to the feathers

The code seems to be in an infinite loop when I run it! Please create a new PR once you have fixed your art. I closing this due to a new management system for the PRs.


How is one to access the dashboard with a single traefik instance or multiple traefik instances on a cluster?

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What version of the Traefik's Helm Chart are you using?
10.19.4
What version of Traefik are you using?
2.6.3
What did you do?
I am deploying 2 instances of this chart. One called traefik-internal and one called traefik-external
I set in values --api.dashboard=true on both
What did you see instead?
I cannot access the dashboard via the IP @ either of the traefik instances LB ips
I also tried creating my own IngressRoute adding a custom Host(...) stanza.... to no avail
I noticed the IngressRoute on this chart references the service as:
    services:
    - kind: TraefikService
      name: api@internal

How is this supposed to determine which traefik instance, when there are multiple on the cluster/
What is your environment & configuration?
the helm chart w/ the value noted above for the IngressRoute customization
Additional Information
Overall both the documentation and simplicity of getting this to work is super confusing

https://github.com/traefik/traefik-helm-chart/issues/596

I have two traefik instances deployed manually (as helm chart was not applicable for multi instances) in two different namespaces - traefik-int and traefik-ext. Even I deploy two ingressroutes in different namespaces (ingress allow cross namespace) - the dashboard always only refers the one traefik instance. I assume somehow the ingress class is bundled with the traefik deployment.
example:

traefik ext - no dashboard - namespace - traefik-ext
traefik int - one dashboard for traefik-int and one dashboard for traefik-ext -> both ingressroutes only shows traefik-int dashboard

works:
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  annotations:
    kubernetes.io/ingress.class: traefik-int
  name: traefik-dashboard-internal
  namespace: traefik-int

spec:
  entryPoints:
    - websecure

  routes:
    - match: Host(`internal-routes.example.com`)
      kind: Rule
      services:
        - name: api@internal
          kind: TraefikService
          namespace: traefik-int

  tls:
    certResolver: tx

does not work (shows internal dashboard)
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  annotations:
    kubernetes.io/ingress.class: traefik-int
  name: traefik-dashboard-public
  namespace: traefik-ext

spec:
  entryPoints:
    - websecure

  routes:
    - match: Host(`public-routes.example.com`)
      kind: Rule
      services:
        - name: api@internal
          kind: TraefikService
          namespace: traefik-ext

  tls:
    certResolver: tx

@maltegrosse Assuming you have a separate ingress class for each Traefik instance, you probably want to use traefik-ext on your second definition so that only your external Traefik will utilize that IngressRoute. As pasted above, it looks like you are applying both with traefik-int ingress class, which likely means they are both routed to api@internal of your internal Traefik

Hi!
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. So I'll close this issue.
You may ask configuration question on our Community Forum and reach out to us on the Traefik section.
You can also double check Traefik's documentation, especially the fact that you can reduce the scope of Kubernetes Provider of Traefik to a list of namespaces, ingressclass or labelselector.


added several unit tests to iss218

@MatakuT Your new tests seem to be failing (see Travis build)

I think I forgot to upload one important file

@MatakuT Okay, it would be good to have tests which actually check the value of the time returned by the methods.

The time returned is always different, so I cannot compare it to a fixed string. If that is what you mean by checking the value

Even though the methods probably use the current time, which does change, it would be acceptable to check the computed time to within a certain tolerance (even in hours).

There seems to be a failing test.

That test had something to do with FactoryGirl naming conventions. They supposed to be unique for all tests. I assume that it is failing because of group names not being unique. Will see if my commit will fix that


Contact Support email changed to<EMAIL_ADDRESS>

Changed email link from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>

@jrsilva24 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@jrsilva24 Thanks for this update.


Revert "bashCompletion: speed-up test execution by using xdist"

This reverts commit a85b07cbcb7a034bc07dda3642bc68fe621a63ec as
executing the tests in parallel makes them flaky. This can be seen very
easily on armv7l machines (and probably other machines that are slower
than common x86_64 machines as well), but is also reproducible on
x86_64.
This fixes #91706.

Motivation for this change
These tests break very easily on armv7l and sometimes break on x86_64 as well if ran in parallel. I've not managed to get a single run to fail where the tests were executed serially.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
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 nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@Patagonicus can you drop upstream a note?

Done: https://github.com/scop/bash-completion/issues/430

Thanks!


Gitlab Backend as Oauth Client for Netlify CMS.

Im trying to connect Gitlab backend as Ouath client with Netlify CMS.
I have followed the docs and configured my config.yml accordingly: https://www.netlifycms.org/docs/gitlab-backend/
backend:
  name: gitlab
  branch: branchName
  repo: xyz-repo
  auth_type: pkce
  app_id: asdasdasdgfasdf23w451234asdfa
  site_domain: https://www.mydomain.com/
  auth_endpoint: oauth/authorize

And I have registered my Gitlab Application as OAUTH client in the Netlify UI as mentioned here https://docs.netlify.com/visitor-access/oauth-provider-tokens/#netlify-ui-settings
But it still wont work
Is the reason that it is not working because I am not hosting my page on Netlify?
Does the page has to be hosted on Netlify to use Gitlab Backend as Oauth client for Netlify CMS?

Right, you have to create your own provider. Here's a link for searching closed issues answering your question: https://github.com/netlify/netlify-cms/issues?q=is%3Aissue+is%3Aclosed+host+on+own+server

Perhaps it's time to update docs?


Request for more info when import fails

Hi,
Debugging an issue, and it might have been easier to debug if we printed out what file is trying to import a file that doesn't exist.
Consider this case:
import 'exists.dart';

main() { }

and then in exists.dart:
import 'doesnotexist.dart';

Running this, I get this error:
~/tmp $ dart broken.dart
Unhandled exception:
Load Error for "file:///Users/sethladd/tmp/doesnotexist.dart": Error loading file:///Users/sethladd/tmp/doesnotexist.dart:
  FileSystemException: Cannot open file, path = '/Users/sethladd/tmp/doesnotexist.dart' (OS Error: No such file or directory, errno = 2)
#0      _asyncLoadErrorCallback (dart:_builtin:147)
#1      _asyncLoadError (dart:_builtin:559)
#2      _handleLoaderReply (dart:_builtin:362)
#3      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:150)

What do we think about telling the developer which file (and bonus, which line) is trying to do the import? Maybe an error message like (just a strawman, but notice how it tells the developer what file is trying to do the import):
"Import error, could not import file:///Users/sethladd/tmp/doesnotexist.dart from file://...../exists.dart"
Thanks for taking a look!

dup of #21693?

Ok, this seems like it would make the problem quite frustrating to debug.  I have a change in hand that will change the error message to something like this:
$ dart ~/dart-scratch/bad_import.dart
Unhandled exception:
Could not import "file:///Users/turnidge/dart-scratch/doesnotexist.dart" from "file:///Users/turnidge/dart-scratch/bad_import.dart": FileSystemException: Cannot open file, path = '/Users/turnidge/dart-scratch/doesnotexist.dart' (OS Error: No such file or directory, errno = 2)
#0      _asyncLoadErrorCallback (dart:_builtin:162)
#1      _asyncLoadError (dart:_builtin:577)
#2      _handleLoaderReply (dart:_builtin:394)
#3      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)

Notice that this still has two problems:
1 - It would be nice to not print this as an exception at all.  Why bother with all of the clutter?
2 - It would be nice to print the line:col of the import.

Well I've submitted 250773cb651beec1a61e126a6c0756aace9c19ca.
Not a perfect fix, but an improvement.

It looks like the original request is satisfied, so I'll go ahead and close this. @turnidge if you still want to work on this more feel free to reopen.


How do I not get banned?

its not bypassable but some tokens have a better quality than the others (which means they dont get banned fast), join the support server for more infos!
Also check out this new mass dm repo 🚀


[BUG] Documented docker-compose.yml doesn't work

Using the sample docker-compose.yml file here: https://opensearch.org/docs/latest/opensearch/install/docker#sample-docker-compose-file results in a failed startup.
└─> docker --version
Docker version 20.10.14, build a224086

My docker-compose, which is copy/pasted from above documentation url
└─> cat docker-compose.yml
version: '3'
services:
  opensearch-node1:
    image: opensearchproject/opensearch:1.3.1
    container_name: opensearch-node1
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node1
      - discovery.seed_hosts=opensearch-node1,opensearch-node2
      - cluster.initial_master_nodes=opensearch-node1,opensearch-node2
      - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
        hard: 65536
    volumes:
      - opensearch-data1:/usr/share/opensearch/data
    ports:
      - 9200:9200
      - 9600:9600 # required for Performance Analyzer
    networks:
      - opensearch-net
  opensearch-node2:
    image: opensearchproject/opensearch:1.3.1
    container_name: opensearch-node2
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node2
      - discovery.seed_hosts=opensearch-node1,opensearch-node2
      - cluster.initial_master_nodes=opensearch-node1,opensearch-node2
      - bootstrap.memory_lock=true
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - opensearch-data2:/usr/share/opensearch/data
    networks:
      - opensearch-net
  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:1.3.0
    container_name: opensearch-dashboards
    ports:
      - 5601:5601
    expose:
      - "5601"
    environment:
      OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' # must be a string with no spaces when specified as an environment variable
    networks:
      - opensearch-net

volumes:
  opensearch-data1:
  opensearch-data2:

networks:
  opensearch-net:

I get several errors during docker-compose up
opensearch-node1         | [2022-04-25T13:35:27,342][INFO ][o.o.p.h.c.PerformanceAnalyzerConfigAction] [opensearch-node1] PerformanceAnalyzer Enabled: false
opensearch-node1         | [2022-04-25T13:35:27,380][INFO ][o.o.n.Node               ] [opensearch-node1] initialized
opensearch-node1         | [2022-04-25T13:35:27,380][INFO ][o.o.n.Node               ] [opensearch-node1] starting ...
opensearch-node1         | [2022-04-25T13:35:27,564][INFO ][o.o.t.TransportService   ] [opensearch-node1] publish_address {<IP_ADDRESS>:9300}, bound_addresses {<IP_ADDRESS>:9300}
opensearch-node1         | [2022-04-25T13:35:27,739][INFO ][o.o.b.BootstrapChecks    ] [opensearch-node1] bound or publishing to a non-loopback address, enforcing bootstrap checks
opensearch-node1         | ERROR: [1] bootstrap checks failed
opensearch-node1         | [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
opensearch-node1         | ERROR: OpenSearch did not exit normally - check the logs at /usr/share/opensearch/logs/opensearch-cluster.log
opensearch-node1         | [2022-04-25T13:35:27,748][INFO ][o.o.n.Node               ] [opensearch-node1] stopping ...
opensearch-node2         | [2022-04-25T13:35:27,752][INFO ][o.o.p.h.c.PerformanceAnalyzerConfigAction] [opensearch-node2] PerformanceAnalyzer Enabled: false
opensearch-node2         | [2022-04-25T13:35:27,790][INFO ][o.o.n.Node               ] [opensearch-node2] initialized
opensearch-node2         | [2022-04-25T13:35:27,790][INFO ][o.o.n.Node               ] [opensearch-node2] starting ...
opensearch-node1         | [2022-04-25T13:35:27,798][INFO ][o.o.n.Node               ] [opensearch-node1] stopped
opensearch-node1         | [2022-04-25T13:35:27,798][INFO ][o.o.n.Node               ] [opensearch-node1] closing ...
opensearch-node1         | [2022-04-25T13:35:27,819][INFO ][o.o.n.Node               ] [opensearch-node1] closed
opensearch-node2         | [2022-04-25T13:35:27,986][INFO ][o.o.t.TransportService   ] [opensearch-node2] publish_address {<IP_ADDRESS>:9300}, bound_addresses {<IP_ADDRESS>:9300}
opensearch-node1         | Killing performance analyzer process 103
opensearch-node2         | [2022-04-25T13:35:28,156][INFO ][o.o.b.BootstrapChecks    ] [opensearch-node2] bound or publishing to a non-loopback address, enforcing bootstrap checks
opensearch-node2         | ERROR: [1] bootstrap checks failed
opensearch-node2         | [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
opensearch-node2         | ERROR: OpenSearch did not exit normally - check the logs at /usr/share/opensearch/logs/opensearch-cluster.log
opensearch-node2         | [2022-04-25T13:35:28,165][INFO ][o.o.n.Node               ] [opensearch-node2] stopping ...
opensearch-node2         | [2022-04-25T13:35:28,200][INFO ][o.o.n.Node               ] [opensearch-node2] stopped
opensearch-node2         | [2022-04-25T13:35:28,200][INFO ][o.o.n.Node               ] [opensearch-node2] closing ...
opensearch-node2         | [2022-04-25T13:35:28,219][INFO ][o.o.n.Node               ] [opensearch-node2] closed
opensearch-node2         | Killing performance analyzer process 103
opensearch-node1         | OpenSearch exited with code 78
opensearch-node1         | Performance analyzer exited with code 143
opensearch-dashboards    | {"type":"log","@timestamp":"2022-04-25T13:35:28Z","tags":["error","opensearch","data"],"pid":1,"message":"[ConnectionError]: getaddrinfo ENOTFOUND opensearch-node1 opensearch-node1:9200"}
opensearch-node2         | OpenSearch exited with code 78
opensearch-node2         | Performance analyzer exited with code 143
opensearch-node1 exited with code 0
opensearch-node2 exited with code 0
opensearch-dashboards    | {"type":"log","@timestamp":"2022-04-25T13:35:31Z","tags":["error","opensearch","data"],"pid":1,"message":"[ConnectionError]: getaddrinfo ENOTFOUND opensearch-node1 opensearch-node1:9200"}

Look here, you will have your solution on how to setup the vm.max_map_count
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-prod-prerequisites

Note that I just ran into the same thing in https://github.com/opensearch-project/opensearch-rs/issues/45#issuecomment-1111193478. Can we turn this error into a warning?

@kartg
I think it be great if the doc contains all the different setup per environment - like the link I posted.
Otherwise, I'm not sure how to improve the search as I found the issue with the "max_map_count" terms in the web site search bar.

Note that I just ran into the same thing in https://github.com/opensearch-project/opensearch-rs/issues/45#issuecomment-1111193478. Can we turn this error into a warning?

@dblock we're currently logging the error as a warning but this doesn't fail bootstrap/startup.
The next step up from that would be to set alwaysEnforce for MaxMapCountCheck - this would result in bootstrap checks failing by throwing a NodeValidationException

@kartg But is that the issue with the node? @elvince did it fix your problem?

@kartg But is that the issue with the node? @elvince did it fix your problem?

I have no issue, I just helped to solve an issue.

The current behavior is that if you are bound to the loopback address and using a single node cluster, then this is logged as warning but the server can start up. Otherwise, it is being assumed that the server is intended for production use and this is logged as an error and the server is prevented from starting. The error message is pretty explicit about what the problem is, and searching vm.max_map_count on opensearch.org will get you to the important settings page.
@dblock Do you think we should change this behavior?
cc @kartg

cc @hemna to confirm if adjusting the max_map_count value fixed their issue

@dblock Do you think we should change this behavior?

If users report that their installation doesn't work and changing this setting makes it work, then yes. Let's see what @hemna says and whether we have other reports like this one?

@dzeroc Do open a new issue please.

Hi everyone, I also face the same issue, I just commented node2 because I want to have one node only but also use the docker-compose file, received the same error 78 on node1 which is  2023-03-18 16:39:26 ERROR: [1] bootstrap checks failed 2023-03-18 16:39:26 [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144], besides that opensearch-dashboard up and running, looking for your suggestions, best regards,


fix: fix template api path

Signed-off-by: moweiwei<EMAIL_ADDRESS>
What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

Codecov Report

Merging #268 (b6f07c6) into master (687ebb6) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #268   +/-   ##
=======================================
  Coverage   46.41%   46.41%
=======================================
  Files           7        7
  Lines         614      614
  Branches      177      177
=======================================
  Hits          285      285
  Misses        254      254
  Partials       75       75

/lgtm
/approve


[FLOC-1599] API endpoint for changing the maximum_size of a dataset

Design for https://clusterhq.atlassian.net/browse/FLOC-1599
Note:  this PR is compared against loopback-destroy-FLOC-1582 because I was originally writing this as part of the design for https://clusterhq.atlassian.net/browse/FLOC-1504 which builds upon the work in the FLOC-1582 branch.

Thanks.
The schema needs to be updated as well (obviously, I suppose).  I don't think that will involve any surprises - we've done lots of schema changes by now.
The rest of this looks good.  Please proceed.  Make sure to create the next PR against master though.


sway: 1.0 -> 1.1.1

Should be ready for merge!
Compiles now, thanks to a new upstream release. Still waiting for a resolution of #60434.
Currently does't compile, still investigating that.
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)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)

[x] Runs from within another sway session (in windowed mode)

[ ] 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.

cc @primeos

Relevant output
[76/271] Compiling C object 'sway/345c74e<EMAIL_ADDRESS>FAILED: sway/345c74e<EMAIL_ADDRESS>/nix/store/ds1prvgw3i3ic8c7axyrw4lwm3d0gqab-gcc-wrapper-7.4.0/bin/cc -Isway/345c74e@@sway@exe -Isway -I../sway -Iinclude -I../include -I/nix/store/chq3xpz7r54c9lh3xf8y330zsj1w4aw3-cairo-1.16.0-dev/include/cairo -I/nix/store/z6wjrmaflgkjj3ckzqc7d0ap79rhbi1j-freetype-2.10.0-dev/include/freetype2 -I/nix/store/z6wjrmaflgkjj3ckzqc7d0ap79rhbi1j-freetype-2.10.0-dev/include -I/nix/store/g2pjsgklp091m55gvvj721p33yljzzrd-json-c-0.13.1-dev/include/json-c -I/nix/store/9sni6rbv28hdfw7h0qqyrx1chswq1srg-libevdev-1.6.0/include/libevdev-1.0/ -I/nix/store/42yvfxq74vfxd2643x4fndpq7ndiirh7-libinput-1.13.2-dev/include -I/nix/store/1s97ja307db2dv5l1qvy4xzyw9nfmkb7-pango-1.43.0-dev/include/pango-1.0 -I/nix/store/0y6pfd81k1kxbrz1nnqjnir7vihl29ry-glib-2.60.2-dev/include -I/nix/store/0y6pfd81k1kxbrz1nnqjnir7vihl29ry-glib-2.60.2-dev/include/glib-2.0 -I/nix/store/aj9v5zj7v6i6rwhw6s1c60146ljspyb5-glib-2.60.2/lib/glib-2.0/include -I/nix/store/vhbm21ns6drmg9xgcpaqlfw88gxhw2rg-pcre-8.43-dev/include -I/nix/store/b0cahknmmfrlr1pd3mnmldy98v4xyh6l-pixman-0.38.4/include/pixman-1 -I/nix/store/r0qby1xczlyiglkph4gdwdj0sgp6i9n7-wayland-1.17.0/include -I/nix/store/z82mmy9l5zwmmvfj9ali6iplbw007lgy-wlroots-0.6.0/include -I/nix/store/rcmsp0p5m6cqdsivq5hx7j1dfgaqpmpv-libxkbcommon-0.8.0-dev/include -I/nix/store/h8aqv4ckyj99bbikd5rzn37n27sxf52i-libxcb-1.13.1-dev/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O3 '-DSWAY_SRC_DIR="/build/source"' -DWL_HIDE_DEPRECATED -DWLR_USE_UNSTABLE -Wno-unused-parameter -Wno-unused-result -Wundef -Wvla '-DSYSCONFDIR="/etc"' '-DNIX_SYSCONFDIR="//nix/store/13qdx1yixy4xak3klv60pkll90i2zz41-sway-1.1/etc"' '-DSWAY_VERSION="1.0"'  -MD -MQ 'sway/345c74e<EMAIL_ADDRESS>-MF 'sway/345c74e<EMAIL_ADDRESS>-o 'sway/345c74e<EMAIL_ADDRESS>-c ../sway/desktop/output.c
../sway/desktop/output.c: In function 'update_output_manager_config':
../sway/desktop/output.c:512:3: error: implicit declaration of function 'wlr_output_configuration_v1_create'; did you mean 'wlr_output_cursor_create'? [-Werror=implicit-function-declaration]
   wlr_output_configuration_v1_create();
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   wlr_output_cursor_create
../sway/desktop/output.c:512:3: error: initialization makes pointer from integer without a cast [-Werror=int-conversion]
../sway/desktop/output.c:520:4: error: implicit declaration of function 'wlr_output_configuration_head_v1_create'; did you mean 'wlr_output_cursor_create'? [-Werror=implicit-function-declaration]
    wlr_output_configuration_head_v1_create(config, output->wlr_output);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wlr_output_cursor_create
../sway/desktop/output.c:520:4: error: initialization makes pointer from integer without a cast [-Werror=int-conversion]
../sway/desktop/output.c:524:14: error: dereferencing pointer to incomplete type 'struct wlr_output_configuration_head_v1'
   config_head->state.enabled = output->enabled;
              ^~
../sway/desktop/output.c:531:2: error: implicit declaration of function 'wlr_output_manager_v1_set_configuration'; did you mean 'wlr_output_transformed_resolution'? [-Werror=implicit-function-declaration]
  wlr_output_manager_v1_set_configuration(server->output_manager_v1, config);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  wlr_output_transformed_resolution
../sway/desktop/output.c:531:50: error: 'struct sway_server' has no member named 'output_manager_v1'; did you mean 'idle_inhibit_manager_v1'?
  wlr_output_manager_v1_set_configuration(server->output_manager_v1, config);
                                                  ^~~~~~~~~~~~~~~~~
                                                  idle_inhibit_manager_v1
cc1: all warnings being treated as errors

https://github.com/NixOS/nixpkgs/issues/60434
Are you aware of this discussion?

@alexarice 	No, I was not, thank you for bringing it to my attention.

Doesn't help with trying to compile sway though

(I asked on IRC, and it seems to be an upstream thing)

Sorry for the mess. 1.1 is broken, we'll release 1.1.1 shortly to fix this.

I tested waybar with this pr, and it works as expected.

I included swaybg as a wrapper. I think this means this PR is ready for primetime!

Edit: And while we're at it, we could also consider enabling the RDP backend:
primeos/nixpkgs-primeos:default.nix@master#L16

Always? (I'm not saying that's a bad idea, I'm just wondering if there are any downsides)

Always? (I'm not saying that's a bad idea, I'm just wondering if there are any downsides)

I was also wondering if this is a good idea or not. An obvious downside is that we introduce an additional dependency and increase the size, but that shouldn't make a significant difference (and we also enable all other features by default).
But we can skip it for now as there are also a few open bug reports and I didn't test it yet.


Remove outgoing payment state

https://github.com/interledger/open-payments/issues/104

requires:

#305

fixed by https://github.com/interledger/rafiki/pull/339


feature/length-padding

This is my first attempt at implementing #13
I am particularly unsure if I am supposed to pass command line args like that.
And yes, I know I called it --auto-paddding instead of --skip-length-validation-and-pad.
I think the latter is just too long as a command line flag (also having trouble finding a short version of it)
So therefore I propose --auto-padding or --payload-padding or something similar.
However, if you insist on your flag name I will gladly add another commit renaming it.
Please let me know if this is the right approach, or if you would like to have it done differently (coding wise).

I would still suggest the flag containing some kind of trigger word like "skip" or "unsafe". This flag is only a workaround for very unique projects.

We kinda have a problem, because there are optional fields.
Consider a message of 12 bytes which uses a port config on which the first 8 bytes are required and a further 8 bytes optional.
Now if the message is 11 bytes long there is no way of knowing how many zeros to add because it could be just 1 byte of zeros or also 5 bytes of zeros.
We can just say to add zeros until the nearest full byte, but then your example of 123 -> 00000123 is impossible as we need to add 2 bytes and 4 bits for which we need to know that the message needs to be 4 bytes long.
I am not really sure how to proceed, I can just add test cases which check for scrambled data, or only test port implementations which do not have any optional fields.

Since this is an workaround, we don't expect this to happen and no optional fields will be set when this flag is active.

Please add more tests to keep the test coverage.

Has been done, thanks for the reminder 🙂

I would still suggest the flag containing some kind of trigger word like "skip" or "unsafe". This flag is only a workaround for very unique projects.

What do we do about the naming situation? Would you like me to rename to --skip-length-validation-and-pad?

We can go with auto-padding but should remove the shortcut -p. Additionally, we should consider using the Functional Options Pattern to minimize interface changes.
See example: https://dev.to/kittipat1413/understanding-the-options-pattern-in-go-390c
type Option func(*Decoder)

func WithAutoPadding() Option {
    return func(d *Decoder) {
        d.autoPadding = true
    }
}

We can go with auto-padding but should remove the shortcut -p. Additionally, we should consider using the Functional Options Pattern to minimize interface changes. See example: https://dev.to/kittipat1413/understanding-the-options-pattern-in-go-390c
type Option func(*Decoder)

func WithAutoPadding() Option {
    return func(d *Decoder) {
        d.autoPadding = true
    }
}

I would need some guidance with that as I looked into it and couldn't quite figure out how to apply this in the code base.

thank you for implementing the functional options


storage: Support Storage Control Quickstart

Please update Library Install Section to include install instructions for storage control, if applicable.
Please create sample with region tag storage_control_quickstart_sample that shows an example of initializing a storage control client and performing an call.
Please include me on reviews for tracking.

See internal doc for further information.

We'll track this internally.


Using Github App token to trigger CI for version increment PRs

Signed-off-by: Vacha Shah<EMAIL_ADDRESS>Description
Using Github App token to trigger CI on PRs created for version increment from the version.yml workflow. (https://github.com/opensearch-project/common-utils/pull/111#issuecomment-1039635451)
Issues Resolved
[List any issues this PR will resolve]
Check List

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Looks like 1.x and 1.2 don't have the version.yml file. @dblock Do we want to backport it?

I think we should backport it to 1.x, or that workflow won't run when we branch and then release 1.3.0. Would you please do that? Thank you.

Looks like 1.x and 1.2 don't have the version.yml file. @dblock Do we want to backport it?

I think we should backport it to 1.x, or that workflow won't run when we branch and then release 1.3.0. Would you please do that? Thank you.

Sure, I added a backport 1.x label to the original PR.


fix too frequent retry

tick() will complete when the next instant reaches which is a very short time rather than 1 second.
In addition, limit the total retry times

Does the issue exist on the master?


Assassin's Creed 2 alt tab crash

While testing this game on Windows for another issue i noticed that it will crash with dxvk when you alt tab.
Default with dxvk without any configs the game will close down as soon as you alt tab out and it is minimized.
When using d3d9.deviceLossOnFocusLoss = True the game will not immediately crash upon a alt tab but it also doesn't work properly as the desktop mouse cursor will appear but the game Window will stay up on top of any other apps. You can force it down by doing a alt tab and then ctrl + alt + del and selecting task manager. When you then try to go back in to the game it will crash.
If  d3d9.deviceLossOnFocusLoss = True is combined with d3d9.enableDialogMode = True you are able to alt tab out fine and if you don't touch anything else you can also alt tab back in. If you interact with anything while alt tabbed like clicking with the mouse the game will likely crash when you try to go back in. Same if you do it by clicking on the game icon in the taskbar.
So d3d9.deviceLossOnFocusLoss = True seems to improve the behavior as the game won't shut down immediately when you get to desktop, but it is still crash prone.
This have all been tested on Windows only so far. Linux testing pending but i was asked to make an issue
Software information
Assassin's Creed 2 fullscreen
System information

GPU: 7900xtx
Driver: 23.8.2
Wine version: Windows 11 only so far. Linux test pending
DXVK version: Master

Apitrace file(s)
https://drive.proton.me/urls/QDG5P4RTB4#QDx3b0yg3NsK
Two traces from Windows. One is native game where i alt tab out and in and second is with dxvk with d3d9.deviceLossOnFocusLoss = True and  d3d9.enableDialogMode = True and it crashing when i try to go back in to the game.
Log files
AssassinsCreedIIGame_d3d9.log

Tested this on Linux with Proton now. The game will also crash here when i alt tab but a difference is that d3d9.deviceLossOnFocusLoss = True seems to make it work fully and i haven't gotten it to crash anymore using that unlike on Windows.
I have not tested how it behaves with regular upstream Wine yet to see if fshack or other Proton specific is making a difference here.
Tested on KDE Wayland and X11


terminal not work on windows terminal with WSL

Hi,

I create a solution with Unicode.
Code in:
https://gist.github.com/eduardomazolini/2466eda91ff8cff379ad83031c334e58

Thanks for sharing your solution.
Maybe you want Segno give a try: https://segno.readthedocs.io/en/latest/command-line.html
It uses Windows' native API if it detects that is is used under Windows.
https://pypi.org/project/segno/

Thanks for sharing your solution.
Maybe you want Segno give a try: https://segno.readthedocs.io/en/latest/command-line.html
It uses Windows' native API if it detects that is is used under Windows.
https://pypi.org/project/segno/

Thank you very much for the indication.
A noble attitude of indicating another product.
I got to know this project because of another project that uses it, in this project the use by terminal will not be necessary.
I would like to know - Does anyone have a reason for the error in my terminal?
Would my code be useful to expand this library? If Yes, they can give you a hint as to where it would be best to insert the code, then I create a pull-rquest. If someone liked my code and wanted to create the pull-request on their own, that's fine.

Thank you very much for the indication.
A noble attitude of indicating another product.
I got to know this project because of another project that uses it, in this project the use by terminal will not be necessary.
I would like to know - Does anyone have a reason for the error in my terminal?
Would my code be useful to expand this library? If Yes, they can give you a hint as to where it would be best to insert the code, then I create a pull-rquest. If someone liked my code and wanted to create the pull-request on their own, that's fine.

I am afraid that this project is pretty dead, see #52, #55, #65, #72 and others…

I am afraid that this project is pretty dead, see #52, #55, #65, #72 and others…


Redesign the search bar on the events/committees page

What's the status of this PR? @tgalopin @marineb

@tgalopin i resuscitated this PR to solve some of the issues @thibautroggeband was raising. This new update can be merged safely, doesn't require additional work to "work".


Logic Apps: Function Extensions Upgrade

Updating the Logic App Cosmos DB connector to use the latest function extensions

PR is done. Need to test manually.

Reached out to Edward He about creating a new Extensions bundle.

Edward He responded and offered to pair up to build the extension bundle but we had a problem with the Storage Emulator which is need. So blocked by the Storage Emulator at the moment.

had to delete the AzureStorageEmulatorDb510.mdf and AzureStorageEmulatorDb510_log.ldf files and try it again. It worked so I am over this issue now. Will sync-up with Edward in the morning to move forward with Bundle creation.

Saw an issue with JObject[]. Had a discussion with Matias on this. Matias created a fix in function extensions and is in new release version 4.1.1. I need to grab this and re-test.

Documenting the debug process.

Got the word from Rama that the dependencies in Core logic apps is complete, so scheduling some time to work on this on Monday.


[2201.8.x] Update semver command help text

Purpose
This PR updates the semver tool CLI help text by mentioning that the tool is experimental.
Fixes https://github.com/ballerina-platform/ballerina-dev-website/issues/8602
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Needed for 2201.8.5 release


get_aws_account_id Fails For Localstack

Hi!
I'm using Localstack for local development testing and I'm running into issues where helper function calls to AWS fail at initialization time. Here's an example of the error:
Error in function call; Call to function "get_aws_account_id" failed: NoCredentialProviders: no valid providers in chain. Deprecated.
        For verbose messaging see aws.Config.CredentialsChainVerboseErrors.

If I remove these calls and hardcode the Localstack account id everything works properly and I can grab the account id from a Terraform data source (data "aws_caller_identity" "current" {}).
It looks like the built-in functions (like get_aws_account_id) are all evaluated using local credentials before any Terraform is evaluated, which means we can't set a custom endpoint for for the session being used to grab values from AWS. Here's the call to get the current aws account id.
I can't find any environment valiables to configure which endpoint to use for the AWS SDK, so it seems like this needs to be defined as a Terragrunt specific env var/runtime flag  that can be passed to the function. I'm happy to try and get a PR together, but I wanted to check that this would be good to implement.
Let me know if I missed something, and thanks in advance!

You are correct! Terragrunt can't parse the Terraform code to find custom endpoints you've defined, as it may need to process something like get_aws_account_id before it knows what Terraform code to even parse. So, the only option is to expose the ability to override SDK endpoints directly in Terragrunt itself. I don't see any way within the AWS Go SDK to override endpoints globally, so we'll have to do it when each config/client is being initialized. PR to support this is welcome.

You are correct! Terragrunt can't parse the Terraform code to find custom endpoints you've defined, as it may need to process something like get_aws_account_id before it knows what Terraform code to even parse. So, the only option is to expose the ability to override SDK endpoints directly in Terragrunt itself. I don't see any way within the AWS Go SDK to override endpoints globally, so we'll have to do it when each config/client is being initialized. PR to support this is welcome.

@brikis98 thanks for confirming, I'll try and get a PR together soon 👍

@brikis98 thanks for confirming, I'll try and get a PR together soon 👍


0.52.0 release

Coverage decreased (-73.0%) to 0.0% when pulling 7f156ae485dcad9b4a7722fc679888bf22058bd9 on release/0.52.0 into 0c8d99ddbc297124d93c166652013abba50ee86e on master.


Take dot out of repo name to allow Quick Deploy button?

Since you took down the automatic installer from the Alvorden website I was not able to easily install you great tool into a new org. I tried to add one of Andrew Fawcetts githubdeploy buttons and PR this back to you but it failed as you have a dot in the repo name.
Would you mind renaming your repos as I don't expect any solution to this issue from https://github.com/afawcett/githubsfdeploy/issues/1?
That would be great.

I had this error till I added .git to the end of the string.  Try "Automated-Testing-for-Force.com.git".

That indeed helped. Thank you @jorge0136 !


Confused about text layout

How should I lay out a line of arbitrary text using crossfont? I’m a bit confused about how best to combine width and left. Is this algorithm roughly correct?
let mut x = 0;

for character in text_to_render.chars() {
    let glyph = rasterizer
        .get_glyph(GlyphKey {
            character,
            font_key,
            size,
        })
        .unwrap();

    draw_bitmap_at_pos(glyph, (x, -glyph.top));

    x += glyph.width + glyph.left;
}

Should the actual position of each glyph on the screen be x + glyph.left instead of just x as I have it here?
The algorithm above doesn’t work with any of the monospace fonts I’ve tried; rather than all characters being the same width, characters that would usually have extra space around them just don’t have that space, making them a narrower width than all the other characters.
Note how the six .s take up less space than the six ms, when they should be the same width:

In case it matters, I’m running on macOS 11.2.2.

This should not differ from the documentation the font systems themselves have (like freetype). The distance you need to move from one character to the next one is called advance. So you just need to read the average_advance field from the metrics and that's your cell width for monospace fonts.

Cool, thanks for the info! Would you be open to a PR that adds an advance field to RasterizedGlyph? With this PR I would be able to do font layout with proportional fonts, too.

PRs to add proper proportional font handling are certainly welcome, but it might be more effort than just adding a single field to the rasterized glyph.


Stdout via streaming

In order to monitor the processes I suggest that Run() receive a function, this function will receive two *io.Writer as parameters and will be called internally by fnRun as a goroutine, before calling client.WaitContainer(container).
This hook will loop, reading stdin and stdout and taking any necessary action.
I'm already using AttachToContainerNonBlocking in fnRun to be able to read stdin, I believe the change is easy at that point, the trickiest thing to do is decide which is a good high-level interface to pass the new function into the API.
A final touch would be to receive errorlevel at the end of the container execution.

Hey! Any news about this feature? =)

@raelmax you can do it for now https://github.com/gofn/gofn/blob/master/examples/running_log/main.go.  Probably in the near future we will encapsulate the 3 function calls in one

Thanks @felipeweb! I'll take a look.


Directives and controllerAs with angular-route

Hi,
How to use a directive with the controllerAs syntax where the controller has been defined by the $routeProvider's controller property and not using the ng-controller directive in the views.
I get the following error for the below code [using AngularJS v1.5.3] and the problem seems to be due to resolving a promise as a dependency for the TableController
angular.js:13236 Error: [$injector:unpr] Unknown provider: dataProvider <- data <- TableController
/* app.js */

(function () {
    "use strict";

    angular.module("exampleApp", ["ngResource", "ngRoute"])
        .config(configFunc);

    configFunc.$inject = ["$routeProvider", "$locationProvider", "$windowProvider"];

    function configFunc($routeProvider, $locationProvider, $windowProvider) {
        var $window = $windowProvider.$get();

        if ($window.history && $window.history.pushState) {
            $locationProvider.html5Mode(true);
        }

        $routeProvider.when("/edit/:id", {
            templateUrl: "/Views/editorView.html",
            controller: "EditProductController",
            controllerAs: "editProduct"
        });

        $routeProvider.when("/create", {
            templateUrl: "/Views/editorView.html",
            controller: "EditProductController",
            controllerAs: "editProduct"
        });

        $routeProvider.otherwise({
            templateUrl: "/Views/tableView.html",
            controller: "TableController",
            controllerAs: "table",
            resolve: {
                data: resolveFunc
            }
        });
    }

    resolveFunc.$inject = ["productsResource"];

    function resolveFunc(productsResource) {
        return productsResource.query();
    }
})();

/* products.controller.js */

(function () {
    "use strict";

    angular.module("exampleApp")
        .controller("TableController", TableController)
        .controller("EditProductController", EditProductController);

    TableController.$inject = ["$route", "data"];

    function TableController($route, data) {
        var vm = this;
        vm.products = data;
        . . .
    }

    EditProductController.$inject = ["$routeParams", "$location", "productsResource"];

    function EditProductController($routeParams, $location, productsResource) {
        var vm = this;
        vm.currentProduct = null;
        . . .
    }
}());

/* products.directives.js */

(function () {
    "use strict";

    angular.module("exampleApp")
        .directive("increment", increment);

    function increment() {
        var directive = {
            restrict: "E",
            scope: {
                item: "=item",
                property: "@propertyName",
                restful: "@restful",
                method: "@methodName"
            },
            link: linkFunc,
            controller: "TableController",
            controllerAs: "vm",
            bindToController: true
        }

        return directive;

        function linkFunc(scope, element, attrs, ngModelCtrl) {
            var button = angular.element("<button>").text("+");
            button.addClass("btn btn-primary btn-xs");
            element.append(button);
            button.on("click", function () {
                scope.vm.item[scope.vm.property]++;
                if (scope.vm.restful) {
                    scope.vm.item[scope.vm.method]();
                }
            })
        }
    }
}());

. . .

                {{item.name}}
                {{item.category}}
                {{item.price | currency}}

                    <button class="btn btn-xs btn-primary" ng-click="table.deleteProduct(item)">Delete</button>
                    Edit
                    <increment item="item" property-name="price" restful="true" method-name="$save"></increment>

. . .

Could you provide a plunker? The inline code is too lengthy to follow.
Also, I think that SO would be more appropriate to ask.

@MohammedAbdulMateen can you push it to plunker?

Sorry for the late reply, I was busy with some other development stuff, here is the plunker
https://plnkr.co/edit/ntVNaVkKR88j8NVkVaUb?p=preview

@MohammedAbdulMateen you are using the same controller (TableController) in the directive, as in the route, which demands data provider to be injected. That's why you get the error. Are you doing this intentionally to achieve something?
By the way, I have changed your directive below so that it behaves, I suppose, as you want.
(function () {
    "use strict";

    angular.module("exampleApp")
        .directive("increment", increment);

    function increment() {
        var directive = {
            restrict: "E",
            scope: {
                item: "=item",
                property: "@propertyName",
                restful: "@restful",
                method: "@methodName"
            },
            link: linkFunc,
            controller: IncrementController,
            controllerAs: "vm",
            bindToController: true
        };

        return directive;

        function linkFunc(scope, element, attrs, ngModelCtrl) {
            var button = angular.element("<button>").text("+");
            button.addClass("btn btn-primary btn-xs");
            element.append(button);
            button.on("click", function () {
                scope.vm.item[scope.vm.property]++;
                if (scope.vm.restful) {
                    scope.vm.item[scope.vm.method]();
                }
            });
        }
    }

    function IncrementController() {
    }
}());

I am not doing this intentionally, I tried converting the code to use this style guide.
It behaves exactly the way I want, but I am confused of how it works ...
is it inheriting from the parent controller to get the scope.vm.item property?
or it is getting the values passed in using the attributes in the view corresponding to the directives local scope?
Is the design I followed bad?, should the directive have its own controller, which shouldn't be used in a route or in a page (through ng-controller) i.e. at least when the directive is used.

According to Y075, the directive shall have its own controller and scope, that's why I added IncrementController in the provided sample above. In this way, the values of the directive are passed as attributes in the view also your directive will be more easy to upgrade in Angular2. IMO, try not to use the same controller in a route and a directive.

Thanks for the info, how would I test the directive in unordered-list.directive.js
https://plnkr.co/edit/UYWrayzTVxLJF7kdD7W4?p=preview
I tried like this, it ain't working, by the way I am new to unit testing javaScript.
// unordered-list.directive.spec.js

(function () {
    'use strict';

    describe('Directive Tests', function () {
        var mockScope, compileService;

        beforeEach(angular.mock.module('exampleApp'));

        beforeEach(angular.mock.inject(function ($rootScope, $compile) {
            mockScope = $rootScope.$new();
            compileService = $compile;
            mockScope.vm = {
                products: [
                    { "name": "Apples", "category": "Fruit", "price": 1.20 },
                    { "name": "Bananas", "category": "Fruit", "price": 2.42 }
                ]
            };
        }));

        it('Generates list elements', function () {
            var compileFunc = compileService('<unordered-list products="vm.products"></unordered-list>');
            var element = compileFunc(mockScope);

            expect(element.children('ul').length).toEqual(1);
            expect(element.find('li').length).toEqual(3);
            expect(element.find('li').eq(0).text()).toEqual('Apples');
            expect(element.find('li').eq(1).text()).toEqual('Bananas');
            expect(element.find('li').eq(2).text()).toEqual('Pears');
        });
    });
})();


Clean up unused mixins

Fixes #692

Deploy preview for pf-next ready!
Built with commit 4e81cc8ebcdc14b30cf0fd8f1636d539b439b4e8
https://deploy-preview-693--pf-next.netlify.com


Creates message icon component, replaces for item children and item c…

Description
Fixes #1584
Notes (out of scope, known isues, hints for reviewing code, ...)  (optional)
...
Test cases

[ ] Case 1:

Given I am the user 456
When I go to this page
Then I see new design for locked item section

[ ] Case 2:

Given I am the usual user
When I go to this page
Then I see new design for empty messages

[ ] Case 3:

Given I am the usual user
When I go to this page
Then I see new design for "Sub-skills" empty message

Case 1, before:
After:
What is the difference?

This is just re-testing old case (PR), as I moved this template to common component

Use this design for these use cases (where there is a left-aligned title just on top):
https://www.sketch.com/s/0a19c027-9893-420d-90fb-6694a72faccf/a/9lLDa1Q


Details about the newer R8 D8 options

The ProGuard options now seem to be considered the old way of doing things, so it would be great if this documentation was updated to reflect that.
Also, if you're planning on keeping the ProGuard documentation then it would be useful to explain how the Nuget can be run on a Mac computer, e.g. I presume it's not added to the project, but run as a one-off to get the latest ProGuard software on the machine? There's no obvious Nuget command line window to type in within Xamarin Studio Mac, so if the docs could explain how to run the command to update ProGuard on Mac that would be useful. <-- The lack of this made me jump in the deep end to use the newer shrinker.
You'll probably fall into an issue with the new shrinker, so it might be worth referencing or documenting the workaround...
https://github.com/xamarin/xamarin-android/issues/2670

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

ID: 26d346ac-9d17-d567-9c22-4350aca4b071
Version Independent ID: bd0e55c1-7f38-fdf4-a5d0-763ce75d8604
Content: ProGuard - Xamarin
Content Source: docs/android/deploy-test/release-prep/proguard.md
Product: xamarin
Technology: xamarin-android
GitHub Login: @conceptdev
Microsoft Alias: crdun

Thanks for submitting an issue and we apologize for the delayed response. The requested updates haven't been made since the creation of the issue, and the timeline for resolution may vary based on resourcing, so the issue is being moved to an internal repo to better track it.