Issue updating release template - Microsoft.VisualStudio.Services.Release.Client

Not sure if im at the right place but i was trying to use this dll:
Microsoft.VisualStudio.Services.Release.Client
Basically im trying to copy the environment and variable detailled from one template to another.
The following code works fine for copying the template variable.
Although for the environment and the tasks, the code below doesn't work.
The commented code, doesn't work either.
How can i copy the environment details from one definition to another?
 ' Find the release definition we want to modify.
        For Each releaseDef In releaseClient.GetReleaseDefinitionsAsync(project.Name).SyncResult
            If releaseDef.Name = refReleasesDef.Name Then

                Dim targetRelease = releaseClient.GetReleaseDefinitionAsync(project.Name, releaseDef.Id).SyncResult

                targetRelease.Environments.Clear()

                For Each e In refReleasesDef.Environments
                    targetRelease.Environments.Add(e)
                Next
                'For envIndex = 0 To refReleasesDef.Environments.Count - 1
                '    Dim refEnvironement = refReleasesDef.Environments(envIndex)
                '    Dim targetEnvironement = targetRelease.Environments(envIndex)

                '    targetEnvironement.DeployPhases.Clear()

                '    For Each p In refEnvironement.DeployPhases
                '        targetEnvironement.DeployPhases.Add(p)
                '    Next

                'Next
                targetRelease.Variables.Clear()
                targetRelease.Variables = refReleasesDef.Variables

                Dim r = releaseClient.UpdateReleaseDefinitionAsync(targetRelease, project.Name).Result

                Continue For
            End If
        Next
    Next

Is the Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll sourcecode available anywhere?
Im trying to figure out if im using it wrong or if it is a bug... Also not too sure who to report bugs to?


Can't parse commented out attrs

This d2:
scorer.t <- item.t1: rubric {
  #style.stroke-dash: 5
}

cannot be parsed (and throws an error).
When the '#' characters is removed, it can be parsed.
attrs should be allowed to be commented out since this is valid d2

This will require changes to both the d2 compiler and parser. The dot compiler is a TBD.
dictim represents comments as vectors:
[:comment "I am a comment"]

This could be represented in dictim (in an atto-map) as:

{:comment {:attr-that-is-commented-out val}, attr val ...}

{[:comment :attr-that-is-commented-out] val, attr val ...}

Perhaps some other ways.
Need to that about the most natural representation, before committing to adding this since this is a minor use case

@krish777 complete
See 5724d82 & a85e883 commits.
Note that even though attrs may be commented out, they are still validated both during compilation and parsing. This is because attrs in dictim syntax live in a clojure map, which must have keys and values - so no freeform text allowed. i.e. it's a data format whereas d2 is a text format

@krish777 please review this.
Not sure this is the right approach. Maybe it's better to parse commented out attrs as
{:comment "style.italic: true"}

as just treat them as strings

@eddielao Per our discussion, Can you please test this one?

Closing


Ordination methods restricted to DistanceMatrix

Looking at the Ordination methods that we have now, it seems that they can only be used on Distance Matrices.
This is a bit restrictive, since these Ordination methods cannot be applied to raw abundance tables - which is a necessity for feature ordination (aka reducing feature spaces)
Can we either

Add an apply method to the DistanceMatrix, DissimilarityMatrix and the Contingency table (once we figured that out)?  This could allow us to make handling these objects ordination agnostic.
Get rid of the distance matrix requirement for our existing Ordination classes.

I think it would be really cool to be able to apply these ordination techniques to datasets other than Distance matrices.

This was intentional as it allows distance matrices calculated with auxiliary information, notably the phylogenetic tree, that is external to the feature table to be used.
In the past (2009-era) when we tested it feature-level ordination was not very useful. However I agree that the scale of data has changed so much since then that it is worth revisiting this, LLE, equation learning, topic modeling, and other techniques that improve with additional data...
On Mar 8, 2015, at 2:20 PM, mortonjt <notifications<EMAIL_ADDRESS>wrote:
Looking at the Ordination methods that we have now, it seems that they can only be used on Distance Matrices.
This is very restrictive, since these Ordination methods cannot be applied to raw abundance tables - which is a necessity for feature ordination.
Can we add an apply method the DistanceMatrix, DissimilarityMatrix and the Contingency table (once we figured that out)?
This could allow us to make handling these objects ordination agnostic.
—
Reply to this email directly or view it on GitHubhttps://github.com/biocore/scikit-bio/issues/869.

Makes sense!
It is also possible that feature ordination didn't work well in the past because it wasn't analyzed in the proper sample space.   I would be happy to elaborate during our Tuesday meeting.

Switching gears.
Coming to think of it, eigenvalue decomposition doesn't even work on rectangle matrices.  So having the DistanceMatrix requirement is actually a really good design decision!
On the otherhand, the SVD works just fine on rectangular matrices.  In fact, I would think it would be a bit redundant to apply an SVD on a symmetric square matrix X, because np.dot(X, X.T)==np.dot(X.T, X), so you are calculating the same set of eigenvectors twice.
@wasade , do you have any thoughts on this?

@mortonjt out of the 4 available ordination techniques in scikit-bio, only PCoA requires the input to be a DistanceMatrix object. The rest accept array_like, which can be rectangular matrices representing raw abundance tables. Ultimately this will be integrated with (or replaced by) the ContingencyTable object when it is ready, but for now we're using a lower-level data structure (numpy.ndarray) to represent this information (similar to scikit-learn).

Sounds good!


aarch64: Add build configs for ACL and onednn+ACL

Tested along with https://github.com/openxla/xla/pull/16527

Hi @choudhary-devang ,
TL;DR: I'm closing this PR in favor of #23225 and https://github.com/openxla/xla/pull/16438. With those PRs, you will be able to build the wheel for aarch64.

The oneDNN verbose logs are not getting printed because the default runtime has changed to the thunks interpreter after https://github.com/openxla/xla/pull/15830. So, you will need to set this runtime env var: export XLA_FLAGS=--xla_cpu_use_thunk_runtime=false
Thanks for your interest!


where is the chat.js  source

where is the chat.js source ?  is that open source

There are a lot of chat ui options available. You will have to integrate the api's correctly
example: https://github.com/dmitrizzle/chat-bubble


Investigate Logging infrastructure for Azure.Core

Tracking issue to investigate adding a C99 logging package to our core components.  Java Azure SDKs use Log4J.
Log4C seems like a reasonable starting point for C99.
http://log4c.sourceforge.net/

Can we close this now? - https://github.com/Azure/azure-sdk-for-c/pull/302

Support for logging added in https://github.com/Azure/azure-sdk-for-c/pull/302


Feature request: creates_unique without needing ActiveRel

In order not to duplicate relationships, I have a bunch of ActiveRel definitions such as:
class Student_Lessons
  include Neo4j::ActiveRel
  from_class :Student
  to_class   :Lesson
  type 'LESSON'
  creates_unique :all
end

To reduce work when only single relationships are desired, how about
class Student
  include Neo4j::ActiveNode
  has_many :out, :lessons, creates_unique: all
end

?

This is already possible, http://neo4jrb.readthedocs.io/en/8.0.x/ActiveNode.html#creating-unique-relationships

But let us know if there's any issue with it!

Ahh, Excellent!
While looking, I only found http://neo4jrb.readthedocs.io/en/8.0.x/ActiveRel.html?highlight=create_unique#creating-unique-relationships
Thank you.

@subvertallchris Should we perhaps keep this open as a documentation fix?


In typing name of new node show possible matches which can be selected for the node

In adding a new node the node may already exists.  Thus this feature shows the possible match.  Saves having to do a search and helps minimize duplication of nodes.

With a very large model there will be a bad performance hit as the model is searched for matching names as each letter of the name is typed.

Just did a POC test. It could be done but all concept names would need to be cached. Also, this comes under the general heading of "warn users if they type a duplicate name" which could apply also to the models tree, the property view, rename actions, undo/redo actions and possibly other places.

Closing this one as we already have #377

Different from duplicate name as suggesting it can then select one of the list plus match should not be word order dependent which could be done by hash maps which should overcome performance problems mentioned

OK, I'll re-open it but they are connected issues.
Note, keeping lookup tables in sync with a changing model is not easy.

Didn't mean to imply not connected just the other is a small subset.  Suggest its a case of "close enough is good enough", that is, if there are a few exceptions does it matter more so if phonetics and synonyms recognition added along with removal of noise words such as "a", "the", "to".....    Its use is just an aid so accuracy doesn't have to be perfect.


Automated cherry pick of #3165: fix: skip services without project resources when fetching project resources

Cherry pick of #3165 on release/2.10.0.
#3165: fix: skip services without project resources when fetching project resources

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@1934ac8). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.10.0   #3166   +/-   ##
================================================
  Coverage                  ?   7.45%
================================================
  Files                     ?     414
  Lines                     ?   66176
  Branches                  ?       0
================================================
  Hits                      ?    4934
  Misses                    ?   60819
  Partials                  ?     423

Flag
Coverage Δ

#aFlag
7.45% <0%> (?)

Impacted Files
Coverage Δ

pkg/util/httputils/httputils.go
44.25% <0%> (ø)

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 1934ac8...a10e24a. Read the comment docs.

/approve
/lgtm


pcd_demo.py - error - list indices must be integers

Thanks for you work, im trying to run pcd_demo.py exactly as described in getting started, using KITTI config and a latest SECOND-KITTI-3d-Car checkpoint that i got here
i run it using the following shell script:
python demo/pcd_demo.py demo/kitti_000008.bin \
configs/second/hv_second_secfpn_6x8_80e_kitti-3d-car.py \
checkpoints/hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth

Result:
Traceback (most recent call last):
  File "demo/pcd_demo.py", line 28, in <module>
    main()
  File "demo/pcd_demo.py", line 24, in main
    show_result_meshlab(data, result, args.out_dir)
  File "/home/msa/Documents/repos/mmdetection3d/mmdetection3d/mmdet3d/apis/inference.py", line 102, in show_result_meshlab
    pred_bboxes = result['boxes_3d'].tensor.numpy()
TypeError: list indices must be integers or slices, not str

I also get exact same results if i try run demo with pointpillars-3d-car config / chekcpoint.
Environment

python mmdet3d/utils/collect_env.py output:

sys.platform: linux
Python: 3.7.9 (default, Aug 31 2020, 12:42:55) [GCC 7.3.0]
CUDA available: True
GPU 0: Quadro M2200
CUDA_HOME: /usr
NVCC: Cuda compilation tools, release 10.1, V10.1.243
GCC: gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
PyTorch: 1.6.0
PyTorch compiling details: PyTorch built with:
  - GCC 7.3
  - C++ Version: 201402
  - Intel(R) Math Kernel Library Version 2020.0.2 Product Build 20200624 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v1.5.0 (Git Hash e2ac1fac44c5078ca927cb9b90e1b3066a0b2ed0)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - NNPACK is enabled
  - CPU capability usage: AVX2
  - CUDA Runtime 10.2
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37
  - CuDNN 7.6.5
  - Magma 2.5.2
  - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_STATIC_DISPATCH=OFF,

TorchVision: 0.7.0
OpenCV: 4.4.0
MMCV: 1.1.2
MMCV Compiler: GCC 9.3
MMCV CUDA Compiler: 10.1
MMDetection: 2.4.0
MMDetection3D: 0.5.0+1312430

Error happens at mmde3d.apis show_results_meshlab so maybe its version is relevant:

pip list | grep mmdet

outputs
mmdet                  2.4.0
mmdet3d                0.5.0

This issue might be caused by the migration of batch inference. @xavierwu95 please have a check of the inference API.

@ZwwWayne thanks for fast response, can you give some tips how to do it? Im not really sure what you mean.

Fixed by #116


Update io to 1.9.1

About this PR
📦 Updates org.scala-sbt:io from 1.4.0 to 1.9.1
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "io" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-sbt", artifactId = "io" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, version-scheme:early-semver, commit-count:1

Superseded by #224.


Why it returns fatal error if server responses error?

If Bitly response has error messages, why it returns fatal error, instead of error message?
It should not throw exception, but just status and reason data,
PHP Fatal error:  Uncaught Guzzle\Http\Exception\ClientErrorResponseException: Client error response
[status code] 403
[reason phrase] INVALID_ACCESS_TOKEN
[url] https://api-ssl.bitly.com/v3/user/link_save?access_token=xxxxx&longUrl=http%3A%2F%2Fwww.example.com&title=test in /vendor/guzzlehttp/guzzle/src/Guzzle/Http/Exception/BadResponseException.php:43
Stack trace:
#0 /vendor/guzzlehttp/guzzle/src/Guzzle/Http/Message/Request.php(145): Guzzle\Http\Exception\BadResponseException::factory(Object(Guzzle\Http\Message\Request), Object(Guzzle\Http\Message\Response))
#1 /vendor/symfony/event-dispatcher/EventDispatcher.php(260): Guzzle\Http\Message\Request::onRequestError(Object(Guzzle\Common\Event), 'request.error', Object(Symfony\Component\EventDispatcher\EventDispatcher))
#2 /vendor/symfo in /vendor/guzzlehttp/guzzle/src/Guzzle/Http/Exception/BadResponseException.php on line 43

Isn't it because of some dependency version mistakes in your json?
Hpatoio version: 2.0.5
Guzzle version: 3.8.1
PHP version: 7.2

It's the default behaviour of the library, but you can change it. Take a look at http_errors option.

Thanks for the hint. Sorry for my ignorance as I was not using Guzzle directly. Hpatoio is using it. I guess this option is hardcoded in their code and no api provided so if I customize it I will loose it if the pack is updated so I am going to open a ticket with them to request an api to turn this setting off. Thanks again for the hint.

@nimasdj please note that Guzzle 3 is not supported anymore. I strongly urge you to upgrade, if possible.

Closing this because it is not an issue with Guzzle. Please read the documentation or ask on a forum like Stackoverflow.


Support variants

Fixes #66

Components in variants are recognized as tokens, to achieve this you need to:

create a variant with a valid name, e.g. sizes
add children, properties will be used to construct the name variantName/property/property2
properties that are prefixed with _ like _visible will be ignored in the name

Todo

[ ] add variant example to readme
[ ] add variant example to file

Pull Request Test Coverage Report for Build 700720822

20 of 20 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.7%) to 72.884%

Totals

Change from base Build 695216456:
0.7%

Covered Lines:
351

Relevant Lines:
487

💛  - Coveralls


Java Issue

Can somebody help me pls?
I'm using this
for (let i = 0; i < runtimes.length; i++) {
    for (let c = 0; c < runtimes[i].aliases.length; c++) {
        if (language.toLowerCase() == runtimes[i].language || language.toLowerCase() == runtimes[i].aliases[c]) {
            language = runtimes[i].language
            version = runtimes[i].version
        }
    }
}

to check if the input language is supported by piston but it doesn't appear to be working with Java, why?

this appears to be a request for code help, please do so on discord https://discord.gg/engineerman. if there's an actual issue with piston, please let us know.

this appears to be a request for code help, please do so on discord https://discord.gg/engineerman. if there's an actual issue with piston, please let us know.

I did this on the piston channel

@realtux


Nigglo patch 1

Final update of the models

I applied the modifications we discussed today for the models (change of pictures, some minor changes)


Code nav decoration fixes

Makes the decoration less distracting by

Making the color more dull
Adding a 1s delay between cursor events and the decoration showing up

This delay is triggered by an edit event → The decoration will hide and then not show until a 1s delay has passed since the last cursor event, including just selections
If the decoration is already being shown and the user just moves the cursor around (no edits), it will continue to show immediately

For issue linking:

Addresses https://github.com/kiteco/kiteco/issues/12335 for VSCode
Addresses first problem in https://github.com/kiteco/kiteco/issues/12334

For issue linking:

Addresses https://github.com/kiteco/kiteco/issues/12335 for VSCode
Addresses first problem in https://github.com/kiteco/kiteco/issues/12334


Implement stateless AAD authentication filter which uses appRoles (#494)

Summary
This pull request implements a stateless authentication filter that uses id_token and the appRole feature of AAD. Some details and motivation why this makes sense have been discussed in #494.
Issue Type

New Feature

Starter Names

active directory spring boot starter

Additional Information
I've created a new authentication filter which is similar to the already existing AADAuthenticationFilter. However, it does not use HttpSession and thus can be used for stateless Spring backends. The basic JWT claims are checked by the UserPrincipalManager. Additionally, the roles scope is read and the roles are converted to GrantedAuthory which are then attached to the principal.
I've also added an example project which demonstrates the usage.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: wmitzel-airplus sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Hi @Incarnation-p-lee
I tried to follow HowToContribute.md where it mentions a passing build, updated documents, sample code, readme and code coverage. Maybe it makes sense to add the recommendation regarding scope and size of a PR to this guideline.
I agree that working on smaller PR can lead to more efficiency. This PR currently consists of 3 parts:

the actual implementation in azure-spring-boot/ (~159 lines containing the actual change plus ~155 lines of tests). I would argue that splitting the implementation further down makes only little sense as it only consists of one Filter that parses the token to get the roles.
update of documentation in azure-spring-boot-starters (30 lines)
an example project demonstrating the new feature in azure-spring-boot-samples/azure-active-directory-spring-boot-app-role-sample (~290 lines + 80 lines readme)

I would suggest to split it into two PRs:

the first PR (this one) containing 1) and 2): implementation + basic documentation
the second PR holding the example project 3). I would extract the example project from this PR and will create a new one for it.

@wmitzel-airplus
Great, following the rule do one thing at one time, I suggest you can separate into 3 PRs.

Implementation code including unit test
Sample code.
Documentation for sample code, like README... etc.
Just personal suggestion, you can make you own choose there.

Hi, I have run into exact same issue on a current integration project using Azure AD as the auth provider to support client credentials Oauth2.0 flow. Can you please let me know when this PR can be merged to master.  Thanks wmitzel-airplus for addressing this issue in your PR.

I've updated the PR with the following changes:

Explicit audience check for the stateless filter. While there is an implicit check of the audience in the existing filter by calling the graph API, this check was missing for the stateless filter.
Adapt the user group check so that it gives a warning when user groups are defined in a stateful scenario.

Additionally, I've created a small demo app which demonstrates the usage of this feature. You can find it here: wmitzel-airplus/azure-active-directory-spring-boot-app-role-sample@cd0f502

@wmitzel-airplus
Thanks a lot for your contribution. Could you please separate this big PR into 2 or 3 ? Like feature PR, configuration PR, and test PR. As production project, it is not easy to merge such big PR unless you have strange reason to insist that.
And for sample, you can add one stateless sample to our repo sample module.
Again, very appreciate for your contribution.

@wmitzel-airplus
Thanks a lot for your contribution. Could you please separate this big PR into 2 or 3 ? Like feature PR, configuration PR, and test PR. As production project, it is not easy to merge such big PR unless you have strange reason to insist that.
And for sample, you can add one stateless sample to our repo sample module.
Again, very appreciate for your contribution.

I checked your proposal, and I'm not sure it would help. The configuration is only 2 classes and together 55 lines. Most of the PR are tests (312 lines) for the feature.
If it simplifies the review, I split the implementation and the tests into two PRs. Personally, I would not accept a PR without tests. But this is up to you to decide.

Thanks for your effort. For long term maintains we suggest to do one thing for one PR. I think you can separate the implementation code and test code in 2 PRs. Your effort for this stateless feature indicates that you have great sense of responsibility of your code.
Thanks again for your contribution, very appreciate.

From the peanut gallery, it seems odd to separate tests into their own PR since to my mind they're intrinsically linked to the "one thing" the code is actually doing. Additionally, for long term maintenance it seems like it would complicate things like performing a git bisect to retroactively find issues if the tests are in a separate commit from the code they're exercising.
In any case, thanks to everyone for their work on this, I'm eager to see it in master.

Thanks for your patience. I've extracted the tests to PR #684.

PreAuthorize hasRole with roles is logical
The stateless is good too
But i have no more groups attached to my user and i need to verify if the user is member of group with isMemberOf() method

But i have no more groups attached to my user and i need to verify if the user is member of group with isMemberOf() method

This is intended - as with big organizations you get very many groups at some point you cannot fit them all into your JWT. Thus the appRole feature allows you to define roles which are specific to your application. What you can do then is assigning the appRole to an AAD group in "Enterprise Application --> Users and Groups". You can check the example at https://github.com/wmitzel-airplus/azure-active-directory-spring-boot-app-role-sample .
I see no easy way of having the statelessness and group claims at the same time. If you need group claims you can use the existing AAD filter.

I see no easy way of having the statelessness and group claims at the same time. If you need group claims you can use the existing AAD filter.

I have done a fork to suite my needs with a new branch and this commit :
https://github.com/patfrat/azure-spring-boot/commit/67791818c9921fc7fa05482ee9dd4564f49428ce
And it works ! No more JSESSIONID ! Stateless ;)

I see no easy way of having the statelessness and group claims at the same time. If you need group claims you can use the existing AAD filter.

I have done a fork to suite my needs with a new branch and this commit :
patfrat@6779181
And it works ! No more JSESSIONID ! Stateless ;)

Yes, stateless, but did you measure your latencies after changing the filter? In https://github.com/patfrat/azure-spring-boot/commit/67791818c9921fc7fa05482ee9dd4564f49428ce#diff-c5303eefb9fd562944ee941237e01c28R70 and in https://github.com/patfrat/azure-spring-boot/commit/67791818c9921fc7fa05482ee9dd4564f49428ce#diff-c5303eefb9fd562944ee941237e01c28R73 you are executing 2 remote REST calls for each incoming request you want to authenticate.
I checked the same approach but it was not an option for me because of the added latency. From my understanding, the reason why the stateful filter is stateful is the fact that it caches the two remote calls so that they are only required once for the session.
The alternative solution in this PR does not require any additional 3rd party calls for authentication and validation of the token which makes it stateless and performant.

it caches the two remote calls so that they are only required once for the session.

I understand the need for performance. With the stateful approach, my problem is that after a logout from the angular frontend, and a new login with another user, the previous session is still active ! Even when I send a logout request to the backend that is supposed to destroy the session, I stay on the previous user until I exit the browser.
I have missed something ?

I have missed something ?

Yes, with the stateful filter it is not sufficient to send another JWT with a different JWT inside. It will not reevaluate the JWT as long as there is a JSESSIONID which your browser remembers until you don't close it. You need to call the /logout endpoint which spring security adds per default (or your custom logout endpoint) so that your server-side JSESSIONID gets invalidated.

You need to call the /logout endpoint which spring security adds per default (or your custom logout endpoint) so that your server-side JSESSIONID gets invalidated.

It does not seems enough. I will try another way by comparing the JWT received !

This approach works for me while keeping the session for performance purposes
https://github.com/patfrat/azure-spring-boot/commit/b8fbc8f837602642770888869d1a68f35e1fd87d

Thank you very much for the code review. I've fixed all of the issues.

@wmitzel-airplus
Thanks a lot for your great work and contribution, very appreciate. I think the code is ready to merge and only one thing about the filter name. As it is session stateless, I think the filter should emphasize this, like AADRoleAuthenticationStatelessFilter.java,how do you think of it ?

@wmitzel-airplus
Thanks a lot for your great work and contribution, very appreciate. I think the code is ready to merge and only one thing about the filter name. As it is session stateless, I think the filter should emphasize this, like AADRoleAuthenticationStatelessFilter.java,how do you think of it ?

I like the idea of adding "Stateless" to the name of the filter. However, I'd prefer not to abbreviate "AppRole" to "Role" as the official feature in AAD is called "approle". If you search on the internet for the term "app role" you directly get to the documentation on how to add application roles to the manifest of your application registration.
So my suggestion would be AadAppRoleStatelessAuthenticationFilter. What do you think?

sounds good, please help to update the name.

Thanks a lot but could u please following the convention use AAD instead of Aad ? as well as update the name of REAMD.ME ?

Thanks a lot for you contribution, very appreciate. Could you please help to add sample code for this scenario ? like this

👍
PS: when can we expect a maven release for this?

Any idea on the ETA to make a maven release for this code in master ?


fallback to default on scriptable option

If I use a scriptable option, e.g. define a custom gridline color like:
scales: {
  y: {
    grid: {
      color: ctx => ctx.tick.value == 0 ? '#999' : undefined
    }
  }
}

Is it possible to do a fallback to the default value? undefined or null does not work.
Thanks for any help!

Ok, took a closer look. This is because the scale options are still merged from various sources and there is no fallback path.
Before v4, the suggestion @LeeLenaleee gave above, is a good workaround.
I don't think the scale option resolution can be changed before v4, because its going to be a breaking change.


Fixed Incorrect AdChoicesPlacement int value.

Description
As per the gms ads library docs the int value for ADCHOICES_TOP_LEFT is 0 and ADCHOICES_TOP_RIGHT is 1. It causes the AdChoicesIcon to be in the opposite position in native ads.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See [Contributor Guide]).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the [Flutter Style Guide].
[x] I signed the [CLA].
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[x] No, this is not a breaking change.

@LTPhantom Can you review it?


drop the length from numpy's fixed-width string dtypes

By converting arrays of fixed-width string / bytes dtypes to their base dtype (np.str_ and np.bytes_) in np.result_type, we can avoid accidentally truncating the replacement strings in xr.where.
While this works, I wonder if we instead should ask numpy to do this for us? I.e. np.result_dtype(np.dtype("<U1"), str) should return np.str_, not np.dtype("<U1").

[x] Closes #9180
[x] Tests added
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst

While this works, I wonder if we instead should ask numpy to do this for us? I.e. np.result_dtype(np.dtype("<U1"), str) should return np.str_, not np.dtype("<U1").

Yes, this would be better in my opinion!

how do we proceed, then? Merge this (after fixing the failing min-deps CI), ask if numpy.result_type can be changed, and remove it once we can require a version of numpy that supports this?

Yes, that’s probably the way to go
On Thu, Oct 10, 2024 at 6:51 PM Justus Magin @.***>
wrote:

how do we proceed, then? Merge this (after fixing the failing min-deps
CI), ask if numpy.result_type can be changed, and remove it once we can
require a version of numpy that supports this?
—
Reply to this email directly, view it on GitHub
https://github.com/pydata/xarray/pull/9586#issuecomment-2404624351, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJJFVSTJCPVMIHB7YF2QKTZ2ZE2LAVCNFSM6AAAAABPOKUAHKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBUGYZDIMZVGE
.
You are receiving this because you commented.Message ID:
@.***>

Yes, this would be better in my opinion!

There's some concerns about this in numpy/numpy#27546

@TomNicholas, should we merge this before the release?

Sure! If there is any doubt then leave it, but Stephan reviewed it so I say just merge.

the only doubt is about what should happen upstream in numpy (if anything should happen at all)

I agree, let's merge.


Parse failure json cloud formation

Describe the bug
When attempting to convert a CloudFormation template to Terraform using sato, I encountered a parsing error. The command used was:
sato parse -f cf.yaml
The error message returned is:
parse failure parse failure json: cannot unmarshal number into Go struct field Template.Resources of type string
To Reproduce
Steps to reproduce the behavior:

Prepare a CloudFormation template (cf.yaml) with the following content:

Resources:
  SecHubEventsFirehoseDeliveryStream:
    Type: AWS::KinesisFirehose::DeliveryStream
    Properties:
      DeliveryStreamName: aws-sechub-logs-kinesis-delivery-stream
      DeliveryStreamType: DirectPut
      DeliveryStreamEncryptionConfigurationInput:
        KeyType: AWS_OWNED_CMK
      ExtendedS3DestinationConfiguration:
        BucketARN: !GetAtt S3Bucketsechubyashdatafirehose.Arn
        Prefix: !Sub "sechub_events/managementid=${AWS::AccountId}/!{timestamp:yyyy}/!{timestamp:MM}/!{timestamp:dd}/"
        ErrorOutputPrefix: "aws-sechub-logs-firehose-error/"
        RoleARN: !GetAtt kinesisFirehoseRole.Arn
        CloudWatchLoggingOptions:
          Enabled: true
          LogGroupName: !Ref FirehoseLogGroup
          LogStreamName: !Ref FirehoseLogStream
        BufferingHints:
          IntervalInSeconds: 900
          SizeInMBs: 30
        CompressionFormat: "GZIP"
        ProcessingConfiguration:
          Enabled: true
          Processors:
            - Type: Lambda
              Parameters:
                - ParameterName: LambdaArn
                  ParameterValue: !GetAtt LambdaFunctiontransformationsechub.Arn
                - ParameterName: BufferIntervalInSeconds
                  ParameterValue: 600
                - ParameterName: BufferSizeInMBs
                  ParameterValue: 3

Run the command: sato parse -f cf.yaml

Expected behavior
The tool should parse the CloudFormation template and convert it to Terraform without any errors.
Actual behavior
The tool fails to parse the template, returning the error:
parse failure parse failure json: cannot unmarshal number into Go struct field Template.Resources of type string
Additional context
The issue seems to be related to the handling of numeric values in the CloudFormation template.
Please let me know if additional information is required.

ok mea no culpa.
CF sometime define a number as a number but sometimes it does care care about its type and treats it as string. I rely on the go formation library which can be blind to this and so the lines for parameters need to be:
              - ParameterName: BufferIntervalInSeconds                   ParameterValue: "600"                 - ParameterName: BufferSizeInMBs                   ParameterValue: "3"
I think you might also want to AWS::KinesisFirehose::DeliveryStream resource adding?


Version banner to respect Admin Pref, if set

Currently, if user is an Admin, they will always see the Version bar.  Even if their preferences are set otherwise.
Instead, Admins want to have the option of turning off Version bar to maximize screen space.
Chatting with @lbwexler, we discussed making a method that checks whether users have a pref set.  :)

I had a quick look at our pref code as I remembered there being some complexities in play already around serializing local prefs from the server.  I am sure we could come up with a decent approach, but I also think there would be some tricky bits around reliably determining if a pref had ever been set and keeping that up to date.
And since we haven't needed that yet, I am hesitant to add it for this ticket.
I wonder if a better approach would be to switch to a new pref - showVersionFooter or showHoistFooter or similar. This could be checked in the same way across all environments. New default in Bootstrap could be true, but we could update the default in the prod database for any app if we wanted to suppress it there.
I don't think we would often do this, but we could of course then also add to the app options to allow users to control.
Thoughts? Thinking this would be more standard / less surprising all around.

@lbwexler re. above

Maybe this is too hacky, but I was thinking of using the xh/userPreferenceAdmin endpoint.  It's the same one that UserPreferencePanel uses.  We can:

check if current user is admin via XH.getUser().isHoistAdmin
if true, we check to see if they have a pref set for themselves via xh/userPreferenceAdmin endpoint
a) if they have something set, we respect it, or
b) if they don't have something set, we use the current logic

Curious what @amcclain and @lbwexler think about this idea?

Hi:  Definitely a workable idea, but I do think this is little wonky, and an extra request to the server/complexity that would not be worth the value.

To your idea ATM: My only concern is that if we end up always wanting to set the default pref to true in prod, its just extra work for us, that gets us back to where we started -- any user can turn on the pref manually in prod, but have to explicitly do so.
I think the main advantage to your approach would be if we wanted to a) not show the footer sometimes in non-prod environments for some users (seems confusing if we turn off, and forget to turn back on in dev, say).  or b)  sometimes default the footer to show for certain apps in prod.
I would vote that we just go back to the previous behavior -- and just somehow make it easier for admins to toggle this preference (in admin app?).  Seems like it was a pretty clear story for us for years!

another option would be to have the new preference be a tri-state string:
"auto"|"never"|"always"
Would maximize the flexibility, but keep system wide consistency and avoid us from having to change default prefs in different environments  (and remember, we don't have a good preference differ!)

^ I'm on board

"auto" could also be "byEnvironment", but the main thing is that it is algorithmically determined based on the user type, AND the environment.
new pref could be "xhShowHoistFooter"

Great plan! I think auto gives us the most flexibility for that third option. A note on the pref could clarify.
Having the option to disable in non prod environments  for demos and screenshots will also be nice.


⚠ CIOOS Pacific ERDDAP dataset DFO_MEDS_BUOYS has degraded performance

In 35f747a, CIOOS Pacific ERDDAP dataset DFO_MEDS_BUOYS (https://data.cioospacific.ca/erddap/tabledap/DFO_MEDS_BUOYS.htmlTable?STN_ID&time>=now-1week&distinct()) experienced degraded performance:

HTTP code: 503
Response time: 23901 ms

Resolved: CIOOS Pacific ERDDAP dataset DFO_MEDS_BUOYS performance has improved in 87287d3.


Possibility to ignore unsynced items

There are items in my netflix/prime watched history I don't want to sync. E.g. the witcher fireplace. Is it possible to add a "ignore" or "hide" option that can be used for individual items?

I've got this issue as well — at various points in my life, family or friends have used my Netflix account to watch things. Now those things show up in my "History" to sync, and I'm having to manually and painstakingly pick thru them over and over when loading a new batch of back-history to sync.
Would be fantastic to have an 'ignore' or 'X' button next to each row, and then have that row hidden from the interface (and critically, from the "select all" button!) until somehow ignores are reset.

A workaround could be to delete the items from your Netflix history.

This would be very handy


I want to know the origin of the two-ended diff algorithm

I want to know the origin of the two-ended diff algorithm in what opportunity came up with the algorithm is awesome

@paldepind Can you reply to my question if you have time? I'm eager to know thanks


Cast index to array to avoid pandas warning

This fixes the pandas warning in a more elegant way than #1182

:+1:

Pulled into  #1186 so we can make sure all tests pass and have full green before merge

Thanks @squirrelo


Next version of the library

Breaking changes

ICamundaWorkerBuilder.WorkerId now returns WorkerIdString instead of string

Codecov Report

Merging #53 (0b22f21) into master (2f3bc01) will decrease coverage by 3.26%.
The diff coverage is 57.57%.

@@            Coverage Diff             @@
##           master      #53      +/-   ##
==========================================
- Coverage   92.32%   89.06%   -3.27%
==========================================
  Files          34       35       +1
  Lines         352      375      +23
  Branches       11       14       +3
==========================================
+ Hits          325      334       +9
- Misses         21       35      +14
  Partials        6        6

Impacted Files
Coverage Δ

src/Camunda.Worker/PipelineBuilder.cs
100.00% <ø> (ø)

src/Camunda.Worker/WorkerIdString.cs
17.64% <17.64%> (ø)

src/Camunda.Worker/CamundaWorkerBuilder.cs
100.00% <100.00%> (ø)

src/Camunda.Worker/Execution/HandlerDescriptor.cs
100.00% <100.00%> (ø)

...ker/Execution/LegacyFetchAndLockRequestProvider.cs
100.00% <100.00%> (ø)

src/Camunda.Worker/ServiceCollectionExtensions.cs
100.00% <100.00%> (ø)

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 2f3bc01...0b22f21. Read the comment docs.


Patch aim ui quickstart screen

Fixes #92  made for a new file custom2.patch. I want to know i this is how it is going to look before I append it to custom.patch
Expectation: Aim uses fasttrack tracking server on the Aim UI Quickstart screen

@jgiannuzzi This looks great in the AIM ui, here's a pic below. I have question -- should the framework-specific help sections (the accordian of frameworks) receive any change of instructions? It seems like they are not referencing the tracking server, just local logging.

I have observed in the shared screenshot that I overlooked an important detail: I forgot to convert the server into a string. However, I have rectified this issue in the latest commit.

Superseded by #149


Exec iptables from the host filesystem

Depends-On: https://github.com/submariner-io/submariner-charts/pull/3
Both iptables and nftables use netfilter framework in the kernel for
packet filtering. Many distributions are moving in the direction of
using nftables over iptables. Although, nftables uses a new command
line utility (named nft), starting from iptables >=1.8, it uses
nftables under the hood while continuing to support the same iptables
syntax from the user.
Quoting from Dan's comment [#]
"In iptables 1.8, the maintainers have "deprecated" the classic ip_tables:
the iptables tool now does userspace translation from the legacy UI/UX,
and uses nf_tables under the hood. So, the commands look and feel the
same, but they're now programming a different kernel subsystem.
The problem arises when you mix and match invocations of iptables 1.6
(the previous stable) and 1.8 on the same machine, because although they
look identical, they're programming different kernel subsystems.
Empirically, this causes weird and wonderful things to happen - things
like if you trace a packet coming from a pod, you see it flowing through
both ip_tables and nf_tables, but even if both accept the packet, it then
vanishes entirely and never gets forwarded"
So, as long as we are programming either nf_tables or iptables, we would
not have any issues. Currently, there is no easy way to identify what type
of rules are programmed on the host. This patch follows the same approach
(as described here [*]) that is taken in OpenShift where the host file
system is mounted inside the docker container and iptables utility on the
host is exec'ed for programming any firewall rules.
[#] https://github.com/kubernetes/kubernetes/issues/71305#issuecomment-448052889
[*] https://github.com/kubernetes/kubernetes/issues/71305#issuecomment-521978797

I think this should also drop iptables from the microdnf invocation, with a comment saying we use the host’s iptables.

Good point @skitt. I removed iptables from microdnf and verified that it works fine. Thanks for reviewing.

Please note that this patch depends on the patch in Submariner-charts [https://github.com/submariner-io/submariner-charts/pull/3]
Both the patches should go together and we also have to host the updated charts in a publicly accessible repo. Currently the charts are hosted at rancher url [https://releases.rancher.com/submariner-charts/latest]
In KIND based setup, its referenced here []
[] https://github.com/submariner-io/submariner/blob/master/scripts/kind-e2e/e2e.sh#L59
CC: @mangelajo , @Oats87 , @skitt, @tpantelis

@tpantelis I have checked this works ok in combination with the VxLAN patch and the already merged helm chart changes.
It also works alone.


(1) different information: app vs. government sites / (2) app always running yes/no

If I remember correctly, in the app it says to always ("dauerhaft") keep the "Risikoermittlung" active. On a governmental site I've read that users should enable this feature whenever they leave the house. For what it's worth, the latter governmental information is useless if you receive visitors at home. At any rate, there's an informational discrepancy.
Furthermore, there is no information if the app itself needs to be running in the background all the time, or if it's OK to swipe-to-quit the app. The latter depends on iOS behavior: does the BLE contact scan continue after the user has quit the app? Does the app need to be launched to contact the server to access/download the exposure ID database?

Furthermore, there is no information if the app itself needs to be running in the background all the time, or if it's OK to swipe-to-quit the app. The latter depends on iOS behavior: does the BLE contact scan continue after the user has quit the app? Does the app need to be launched to contact the server to access/download the exposure ID database?

Actually it's described in the ToS/ Nutzungsbedinungungen. But I agree, there is no sharp answer and maybe this aspect should be included in the user guide.

As far as I know, the OS does the BLE scanning and sending and the background task of the app to do risk analysis and notification is also running when the app is swipe-to-quit.   Wenn Sie das Endgerät neu starten (z.B. nach dem Ausschalten, nachdem die Batterie leer war oder nach einem Update des Betriebssystems), müssen Sie auch die App neu starten"
So it seems, that it is necessary to have the app at least running in the background, and that a swipe-to-quit would stop the app from saving encounters with other people and creating random ids to share with other people, or am I wrong?

If this is true, you can't tuck away this important info in the terms of use. Nobody will read the fine print. It needs to be front-and-center when launching the app. I swipe-to-quit all my apps I don't need. But afaik, the app is just a simple frontend, while iOS (the exposure notification system) does all the heavy lifting. So the default expectance would be: launch the app to enable BLE contact scans, swipe-to-quit, and then the system will do the rest, scan for BLE contacts, and you only need the app if you want some info, or if you've contracted the WuFlu & need to scan a QR code or something. Question would then be: does the app still have its own background processes after swipe-to-quit, i.e. polling the server for db updates?

From German FAQ; https://www.coronawarn.app/de/faq/

Muss ich die App immer geöffnet lassen, damit Begegnungen aufgezeichnet werden?

Nein. Solange Du in der App die Risiko-Ermittlung aktiviert hast und Bluetooth eingeschaltet ist, werden Begegnungen aufgezeichnet.

So swipe-to-quit does not affect the functionality.

Maybe the current version of the in-app terms-of-use are still from a time when the project was supposed to use the centralized approach… I think it was called PEPP-PT. Without the Apple API, the user would probably have had to keep the app running all the time.
But we can't know for sure. And we don't know which information is true. For now I will go with the official online FAQ and swipe-to-quit the app.

I think this definitly has to be clarified and streamlined in both (or even more?) places, so that the FAQ and the TOS/Nutzungsbedingungen state the same. I hope a developer could comment which one is the current behaviour of the released app "1.0.2 (2)", although it seems to be like @max-hzi states, but I just want to be sure about that ...

I think this definitly has to be clarified and streamlined in both (or even more?) places

I highly agree. If you refer to my first answer in this thread, you can see that I even thought I read it in the ToS, but I must have read it somewhere else when I set it up.

Thanks for the fruitful discussion. I already linked this issue in #440 where we gather all text related issues for the content providers. As @thomasaugsten already mentioned, the contact tracing still works after a swipe-to-quit. It will also not affect the tracing history within the app as long as you don't go to the system settings and manually revoke permissions for the Corona-Warn-App.

I think this definitly has to be clarified and streamlined in both (or even more?) places, so that the FAQ and the TOS/Nutzungsbedingungen state the same. I hope a developer could comment which one is the current behaviour of the released app "1.0.2 (2)", although it seems to be like @max-hzi states, but I just want to be sure about that ...

--> I have forwarded this request, as it concerns a legal text (Nutzungsbedingungen), that I can't change myself.


Outbound Requests don't automatically set the Content-Length header

It's fairly common practice to automatically set the Content-Length header on behalf of the user. We should be doing this for outbound requests where the size of the request is known.

We should maybe only add it automatically when the known content length is non-zero; there are some cases when servers are supposed to not send it (notably 204 No Content).

https://www.rfc-editor.org/rfc/rfc9110#field.content-length

A server MAY send a Content-Length header field in a response to a HEAD request (Section 9.3.2); a server MUST NOT send Content-Length in such a response unless its field value equals the decimal number of octets that would have been sent in the content of a response if the same request had used the GET method.
A server MAY send a Content-Length header field in a 304 (Not Modified) response to a conditional GET request (Section 15.4.5); a server MUST NOT send Content-Length in such a response unless its field value equals the decimal number of octets that would have been sent in the content of a 200 (OK) response to the same request.
A server MUST NOT send a Content-Length header field in any response with a status code of 1xx (Informational) or 204 (No Content). A server MUST NOT send a Content-Length header field in any 2xx (Successful) response to a CONNECT request (Section 9.3.6).

But also, in agreement with this issue:

Aside from the cases defined above, in the absence of Transfer-Encoding, an origin server SHOULD send a Content-Length header field when the content size is known prior to sending the complete header section.

Based on the results from https://github.com/fermyon/spin/pull/2249 it seems like the action items here would be to add this feature to various Spin SDKs, correct?

@vdice that is correct but as the SDKs do not live within Spin anymore, this issue is not relevant here(?)

One could imagine making this a tracking issue so that there is a central place that captures the issue for all SDKs instead of only independently tracking the issue across all SDKs.


Using Arduino nano instead of micro

Great project by the way really inspired from it. I am using arduino nano for this project but its not working can you please tell me what I am supposed to change for it to work and how to connect it ?
Thanks

Hi @Nadamohame, thanks for the kind words. It should be working correctly as long as you connect it to the right pins. Unfortunately, I'm very busy with my exams right now and I can't offer much help


Range-ify std.string.center() with centerJustifier()

http://dlang.org/phobos/std_string.html#.center
100% unit test coverage

This is very fine code. By no means I am here to criticize. Instead, I ask to learn.
The code is overly verbose for my liking. Dogfooding on phobos, I'd rather write the inner section thusly:
else static if (C.sizeof == 4)
{
    auto len = maxRangeLength(r, width);
    auto nleft = (width - len) / 2;
    auto nright = width - len - nleft;
    return chain(repeat(fillChar, nleft), r, repeat(fillChar, nright));
}

where maxRangeLength does the lookahead, if required.
So why is the above inferior to the explicit code in this PR?

@kuettler very nice. I should have thought of it. My only criticism of it is the initialization is eager, rather than lazy. (I.e. maxRangeLength potentially runs through the range.) I'd like to keep the initialization trivial and lazy.

rebased

Implemented @kuettler 's suggestion for ranges with hasLength.

@WalterBright Thank you. I did not expect that.
 I would use the two argument version of walkLength in initialize to get rid of the explicit loop. This might be a matter of taste.
Two minor questions for me to learn: (a) Some variables in the Result struct start with an underscore, others do not. What is the rationale? Do you consider some variables as part of the interface? (b) What is the reason for the alias from _width to nleft? From my perspective it complicates the code.

(a) Some variables in the  Result  struct start with an underscore, others do not. What is the rationale? Do you consider some variables as part of the interface?

There isn't really a rationale, other than they need a name that is same-only-different from the parameter.

(b) What is the reason for the alias from  _width  to  nleft ? From my perspective it complicates the code.

I tried using a union, but CTFE fails on unions. The purpose of them occupying the same memory space is to minimize stack space consumed. There are different names because they are used for different purposes.
If they were variables, rather than fields, the optimizer would recognize that their usages were disjoint and would map them to the same stack slot, but alas, this does not happen for fields.
I would say this is a bit of an advanced technique, probably not a good idea for general code, but Phobos code should be tuned for max performance.

Thanks a lot for your explanation. This is very helpful.
I would tend to avoid the alias and use one (misnamed) variable instead, since both names are a little too close in lines 3263 to 3265. Also, lines 3289 and 3304 use nleft that really is _width before initialization. Yet, this is a matter of preference again.
Thus, LGTM.

rebased

noice

Auto-merge toggled on


Support bulk operations for Flume Sink

Support bulking operations for Flume events, i.e. support setting a batchSize of how many events should be persistent as one transaction (leveraging the "execute" API from NoSQL DB).

Successfully implemented


[none-ls] Deprecating builtins with unmaintained upstream or native LSP replacement

https://github.com/nvimtools/none-ls.nvim/discussions/81
https://github.com/nvimtools/none-ls.nvim/pull/77
That PR will lead to some changes to our format/linting mechanism, since we explicitly disable formatting ability form LSs.
I suggest doing the following:

Pin none-ls' commit 'til further decision is made.
Decide to use other format/ linting management plugin or change our lua/modules/configs/completion/formatting.lua to comply w/ none-ls.

https://github.com/nvimtools/none-ls.nvim/commit/f81edad87bc6c1a4e675e8e97b22a62939ad4ade

Should we pin the previous commit of this commit? the warning message is just annoying

The latest commit https://github.com/nvimtools/none-ls.nvim/commit/793c6071621814c61a14c24cdb43e9badd88f0af add a way to supress the deprecation warning, I think it's better for use.

I tend to just remove rustfmt for us and keep using none-ls. Users should do their own changes for upstream changes.


Handle out of bounds error

Accessing out of bounds indexes would make us panic (without message
because of our messing up with the TTY). This commits handles out of
bounds errors be returning a dummy cell.
This required to change the indexing API from term[y][x] to term[(y, x)] because otherwise, we would have had to override Vec's indexing
methods (our rows are plain vectors and although our first indexing go
through CellBuffer's indexing implementation, our second indexing is
handled directly by Vec).
The old API was left there for now, to avoid breakeage.
@cpjreynolds, what do you think of the proposed indexing API? Is there a particular reason why term[y][x] was chosen instead of term[(y, x)] in the first place?

Thanks for the PR!
I definitely agree that we should handle out of bounds indexes without crashing, and possibly leaving the TTY in a messed up state on exit. I chose to use term[y][x] primarily for ergonomic reasons and didn't consider handling out of bounds indexes, however this is definitely something we should address.
I like what you have proposed, and I'm happy to merge it. Luckily since we're only version 0.1.3 (0.1.4 after this commit), we can still break things before committing to a stable API.
I've got a pretty free week coming up so I'll be able to put in a lot more work on this; I'm planning on finishing tidying up the driver module tomorrow and then I'll take a closer look at our cellbuffer implementation.


Possibility of allowing custom cubic-bezier curves

Any chance you'd be willing to allow that? I had a look around and combined a few things into a codepen.
http://codepen.io/hotmilo23/pen/KMWXOQ?
Not sure which solution is giving the right answer, the slower one matches what I see in after effects.
If you didnt want it in anime itself, maybe just allow the use to pass in an easing function?
anime({
  targets: 'div',
  rotate: {
    value: 180,
    duration: 1500,
    easing: function(t) {
        return ...;
    }
  },
  direction: 'alternate',
  loop: true
});

Either way, we are looking at using this for a major project coming and would be happy to make PRs if you're willing.
Cheers

It's already possible by setting your custom easing to anime.easings.
anime.easings['myCustomEasing'] = function(t){return Math.pow(t,5)};

anime({
  targets: 'div',
  translateX: 200,
  easing: 'myCustomEasing',
});

http://codepen.io/juliangarnier/pen/vKxqmK/
But I like the idea to pass the function directly, it fits perfectly the API.
Definitely something that I'll consider.


install.packages() in chapter chunks ?

do we want any use of install.packages() in chapter content, or should it all be dealt with in the Description file ?
What is good practice ?

One of the options could be to keep code chunks with install.packages () and eval = FALSE, to make sure readers are aware of this important step but it is not executed.

I think there's no harm in writing
install.packages("vitalPackage")
in the text, as long as it's not evaluated and adds to the message that the chapter needs to be installed. However, I think it may be slightly better to just say something like
Ensure that you have installed the `vitalPackage` package before running the code in this chapter.


[5.2] Add secure_route helper

You can define your routes as SSL only:
Route::get('foo', ['https', function () {});


Java: lambda support for TransitCallback

Introduction
Currently in Java the TransitCallback2 are wrapped as LongLongToLong class without being a @functionalInterface preventing the use of lambda.
https://github.com/google/or-tools/blob/d64ee556fe66e29a6533af86295c178dbc5bb664/ortools/constraint_solver/routing_types.h#L41
https://github.com/google/or-tools/blob/d64ee556fe66e29a6533af86295c178dbc5bb664/ortools/constraint_solver/routing.h#L366
Protocol
Simply replace in ortools/constraint_solver/samples/SimpleRoutingProgram.java
   // Define cost of each arc.
   // [START arc_cost]
    routing.setArcCostEvaluatorOfAllVehicles(
        routing.registerTransitCallback(
            (long from_node, long to_node) -> { return 1L;}));
   // [END arc_cost]

Observed
make build SOURCE=ortools/constraint_solver/samples/SimpleRoutingProgram.java
...
mkdir -p classes/SimpleRoutingProgram
"/usr/lib/jvm/java-8-openjdk-amd64/bin/javac" -d classes/SimpleRoutingProgram \
 -cp lib/com.google.ortools.jar:lib/protobuf.jar \
 ortools/constraint_solver/samples/SimpleRoutingProgram.java
ortools/constraint_solver/samples/SimpleRoutingProgram.java:56: error: incompatible types: LongLongToLong is not a functional interface
            (long from_node, long to_node) -> { return 1;}));
            ^

note: current swig wrapper seems not to use std_function.i

Fixed by #1059


perf: remove extra metrics

Description

Removing the URL label as I think it's unnecessary. upstream_id is descriptive enough
Remove the total metrics - we can use duration.count instead
Rename the label endpoint_id to upstream_id for consistency

Type of change

[ ] 🐛 Bug fix (non-breaking change which fixes an issue)
[ ] 😎 New feature (non-breaking change which adds functionality)
[ ] ⁉ Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] ⚒ Refactor (no functional changes)
[ ] 📖 Documentation (updating or adding docs)

How Has This Been Tested?
Ran it and seeing metrics in data dog

Is there any downside to keeping the URL? It might be useful if we're replacing a node but want to keep the same ID. No strong opinions.
Are there any concerns with using count on the duration metric? A theoretical concern: datadog or the client could sample data points for distribution-type metrics under the hood. Although it's a bit redundant, it might be more readable / clear to have separate metrics for count and duration. I'm not concerned about the minor redundancy.

The motivation behind this was costs. About the replacements - that shouldn't be a very common event. I was warned by @kevin-satsuma that DD custom metrics are expensive.
On the sampling - I haven't seen any docs that indicate sampling happens. I graphed a few duration.count and requests.count and they were the same. I can move it add it back now and remove it if we need to cut costs later.

Gotcha. I think they charge by existence of combination of tags, so if we have a 1:1 mapping of URL to ID, then it's the same cardinality / cost as having only ID.

Oh good point on the unique combinations https://docs.datadoghq.com/account_management/billing/custom_metrics/?tab=countrate
A custom metric is uniquely identified by a combination of a metric name and tag values (including the host tag).


Context back() and canBack() implementation

This feature was available in v2 as experimental but was removed in v3+ and is now back.
Possible usage will be documeneted on Wiki
History is controlled by context's open* and close*. Do not support Shared Contexts for now.
Closes #277
Fixes #461
Fixes #451
onResume(...) calls will be implemented later.
canBack can be combined with displayIf to create a "go back" item
firstSlot(new ItemStack(Material.ARROW))
    .displayIf(Context::canBack)
    .onClick(Context::back);

Navigating Between Views docs should be rewritten before v3.0.0-rc.3

👍


Update extensionsGallery-insider.json for ML 0.6.0

ADO build link for ML extension0.6.0: https://mssqltools.visualstudio.com/_apis/resources/Containers/2630819/drop?itemPath=drop%2Fextensions%2Fmachine-learning-0.6.0.vsix

@llali I have published new insider gallery feed with your changes, please test it out.


Mount helm3 binary to init containers

Description

Mount helm3 binary to init containers.
Reason for change
I'm in the process of upgrading the ingress-app to use ingress-nginx v0.49.3 which requires helm3.
Type of change

Internal change (not necessarily a bug fix or a new feature)

TODOs

[x] Self-review the change
[x] Perform manual testing
[x] Address review feedback

Testing done

[x] Verify helm3 is mounted into init containers

After gravity install, describe ingress-app-install job and verify helm3 volume and mounts
$ sudo kubectl describe job -n kube-system ingress-app-install-25381b
Name:                     ingress-app-install-25381b
Namespace:                kube-system
Selector:                 controller-uid=f761c119-fe0b-4606-ae45-925bfb779534
Labels:                   controller-uid=f761c119-fe0b-4606-ae45-925bfb779534
                          job-name=ingress-app-install-25381b
Annotations:              <none>
Parallelism:              1
Completions:              1
Completion Mode:          NonIndexed
Start Time:               Wed, 13 Oct 2021 22:24:51 +0000
Completed At:             Wed, 13 Oct 2021 22:25:06 +0000
Duration:                 15s
Active Deadline Seconds:  1200s
Pods Statuses:            0 Running / 1 Succeeded / 0 Failed
Pod Template:
  Labels:  controller-uid=f761c119-fe0b-4606-ae45-925bfb779534
           job-name=ingress-app-install-25381b
  Init Containers:
   init:
    Image:      leader.telekube.local:5000/gravitational/debian-tall:buster
    Port:       <none>
    Host Port:  <none>
    Command:
      /bin/sh
      -c
      -e
    Args:

      TMPDIR=/tmp/state /opt/bin/gravity app unpack --service-uid=980665 gravitational.io/ingress-app:0.0.2-dev /var/lib/gravity/resources
      cat <<EOF > /var/lib/gravity/helm/values.yaml

      EOF

    Environment:
      APP_PACKAGE:  gravitational.io/ingress-app:0.0.2-dev
      POD_IP:        (v1:status.podIP)
    Mounts:
      /etc/ssl/certs from certs (rw)
      /opt/bin from bin (rw)
      /tmp/state from state-dir (rw)
      /usr/local/bin/helm from helm-bin (rw)
      /usr/local/bin/helm3 from helm-3-bin (rw)
      /usr/local/bin/kubectl from kubectl-bin (rw)
      /var/lib/gravity/helm from helm (rw)
      /var/lib/gravity/local from gravity (rw)
      /var/lib/gravity/resources from resources (rw)
  Containers:
   hook:
    Image:      leader.telekube.local:5000/gravitational/debian-tall:stretch
    Port:       <none>
    Host Port:  <none>
    Command:
      /bin/sh
      /var/lib/gravity/resources/install.sh
    Environment:
      DEVMODE:                   false
      GRAVITY_CLUSTER_FLAVOR:    one
      GRAVITY_CLUSTER_NAME:      beautifulpare7062
      GRAVITY_CLUSTER_PROVIDER:  generic
      GRAVITY_SERVICE_USER:      980665
    Mounts:
      /etc/ssl/certs from certs (rw)
      /opt/bin from bin (rw)
      /usr/local/bin/helm from helm-bin (rw)
      /usr/local/bin/helm3 from helm-3-bin (rw)
      /usr/local/bin/kubectl from kubectl-bin (rw)
      /var/lib/gravity/helm from helm (rw)
      /var/lib/gravity/resources from resources (rw)
  Volumes:
   bin:
    Type:          HostPath (bare host directory volume)
    Path:          /usr/bin
    HostPathType:
   kubectl-bin:
    Type:          HostPath (bare host directory volume)
    Path:          /usr/bin/kubectl
    HostPathType:
   helm-bin:
    Type:          HostPath (bare host directory volume)
    Path:          /usr/bin/helm
    HostPathType:
   helm-3-bin:
    Type:          HostPath (bare host directory volume)
    Path:          /usr/bin/helm3
    HostPathType:
   certs:
    Type:          HostPath (bare host directory volume)
    Path:          /etc/ssl/certs
    HostPathType:
   gravity:
    Type:          HostPath (bare host directory volume)
    Path:          /var/lib/gravity/local
    HostPathType:
...

I've added some details for testing.

Thats perfect, thanks!


fsjobqueue: accept jobs of any type

Soon, we want to begin tagging the jobs with the name of its submitter. The simplest way to add a tag to a job is to put it into its type string. However, as we don't know (and don't want to know) the submitters' names when osbuild-composer is initialized, we need to be able to push arbitrary job types into the jobqueue.
This commit therefore lifts the restriction that a jobqueue accepts only a predefined set of job types. Now, jobqueue clients can push jobs of arbitrary names.

Very nice! We currently have a testjobqueue pacakge as well. I discussed this with @larskarlitski and we agreed that it is not needed, we should just allocate a temp dir and use fsjobqueue on that in our tests instead. That would avoid us having to adapt that too and get some more testing coverage while at it.
For a follow-up.

testjobqueue doesn't have restricted job types so no change is needed there.

testjobqueue doesn't have restricted job types so no change is needed there.

It does not indeed, because it is not meant to be thread-safe, like fsjobqueue.


[share_plus] Linux share URL is constructed incorrectly

This line:
https://github.com/fluttercommunity/plus_plugins/blob/1dc73a16d61622836d7c0d4c6ae3a7c28923bc21/packages/share_plus_linux/lib/share_plus_linux.dart#L18
is constructing the URL incorrectly; you cannot concatenated unencoded elements together in a query string and then encodeFull it and get the right result, because some characters that are valid in a URL in general—notably &—are not valid in a query argument. If you want to construct a URL with query parameters manually, you need to encode the components explicitly.
Compare:
final subject = 'This & That';
final text = 'More & more';

// Incorrect:
print(Uri.encodeFull('mailto:?subject=$subject&body=$text'));
// -> mailto:?subject=This%20&%20That&body=More%20&%20more

// Correct:
print('mailto:?subject=${Uri.encodeComponent(subject)}&body=${Uri.encodeComponent(text)}');
// -> mailto:?subject=This%20%26%20That&body=More%20%26%20more

The first will result in an email whose subject is "That " and whose body is "More ".

Just noticed that this same pattern is used in the web version.

this should be fixed in share_plus_web 2.0.3, share_plus_linux 2.0.2 and share_plus_windows 2.0.2


Container optimized linux OSes - flatcar / talos / bottlerocket

Spin up one of each, and figure out the differences.
AWS VM’s

Time/Hazzle from 0 to working cluster (config/Knowledge/capabilities)
Scalability of the cluster.
Upgrade path

Possible distributions/tools to look into:

Talos
Kairos
Flatcar
Bottlerocket

┆Card is synchronized with this Github issue by Unito

Sofus Albertsen commented in Trello:

I know @dominikwawrzkiewicz4 have looked at Talos

Michael Ingeman-Nielsen commented in Trello:

@danielredelberger2 and I have looked into this on Friday 19/1 2024.
We looked mainly at Flatcar and Bottlerocket.
Findings

Flatcar and Bottlerocket are both distributions that give you an immutable OS with the single purpose of running containers.

Talos and Kairos seems to be the same, but with the added layer of running a full Kubernetes node instead of just Docker

Both work in basically the same way:

You get a disk image with the preinstalled OS, which is spun up as a VM.
You provide a configuration to modify network and other OS setting at startup. It also lets you define services to run on the OS - e.g. a systemd service that pulls and runs an image at startup
Once started, the OS partition is read-only. You’re not able to ssh into the box (by default) and no changes can be made to the OS. If you want storage for your container, you mount it in from a storage server. Unsure whether a secondary HDD partition can be mounted.

Upgrades:

There are two /usr partitions: one active (readonly) and one passive. When updating, a new OS image is pulled down and copied into the passive /usr partition. On reboot, the two partitions are swapped.
Versioned and atomic upgrades
Easy rollback (didn’t try it, though)

Bottlerocket differences from Flatcar:

Tightly tied to AWS ecosystem
Availalble as an AWS VM image
You use AWS CLI to start/manage the instance
You can use other AWS management services tools to control access, securtiy, etc.
But conceptually, it’s the same.

Bottom line:

Use for any static container workload you want to run on-premises or at non-AWS cloud providers

e.g. Jenkins master, static jenkins agents, Artifactory, Gitlab etc.
Or use it as a remote Docker agent - requires exposing the Docker API, which may be a security concern.

Consider Bottlerocket if you’re already in AWS. Use AWS tools and terraform to manage it.
In principle, you could run a K8S node in a container, but use Talos or Kairos instead if that is you need.

Benefits:

Extremely simple management
Very limited attack surface
Atomic upgrades
Easy rollback to previous versions
No user management on host OS level
Configuration as code


1.0.9

Accommodate main container wrapper needs for CAWeb interaction elements (shift our content into a div .ds-content-layout, which will be used for future design iterations as our Design System external div (preventing conflicts and div injections and changes from theme from slowing down iterations. (Note on implementing layouts like EveryLayout - working in a WordPress editing environment and creating editor parity with the output design benefits from having a reliable basis with minimal class conflicts.
Merge link fix for Safari issue on hero links
Temporary fix layout of breadcrumb on default Page type  (currently no pages use the default, but we are trying to make sure the default renders similarly to Page layout and can revisit more post-launch)
Unlink category link from Post pages, we are not using category paths on the site with current design.

@rkojik  I tried an experiment with you in mind - implementing Every Layout's "Sidebar" and seeing how well it integrated in a WordPress environment. Learned some things (which probably won't surprise you) - but interesting anyways.:

A page style needs a scope that doesn't conflict with WordPress containers

Their class specifications, being wildcards, are a little cryptic and with evolving designs and layout needs, I wound up needing to be a little specific. I replaced some of their needs with a class "everylayout" which helped maintain their idea.

Let's try another one on a future components.

We are using the headless 🦉  ... I guess - there is theoretical CSS and then there is what happens in WP.

Really want to have unified templates that headless can use that are also used in WordPress that don't require a lot of adaptation. I hope that having a base wrapper class for the design system helps.

cc @carterm @aaronhans  @kkoryaka
Post launch, let's discuss more.

@chachasikes awesome job! I'm definitely curious how we integrate (what I believe to be) best practices for front-end development with WordPress. One wouldn't think they conflict re: "there is theoretical CSS and then there is what happens in WP"... but as one of my favorite quotes from Troll Hunters (I watch too many kids shows) states, "don't think, become".  I'm eager to deep dive that post launch!

@rkojik the problem with wordpress' divergence from frontend best practices is severe. This is just a small part of the list of blocking dependencies being loaded on a page.

Also when I audited the cdt.ca.gov site I was seeing slow TTFB so the performance budget gets blown even before you begin to struggle with the typical frontend bottleneck. The magnitude of this issue makes the headless approach more appealing. I am working on that already.

@aaronhans oh no.... look at all those.

@rkojik  A tiny example which is very common for PHP based CMS's is looking at the inheritance that happens with just an h1 element.
On GISTs, you have one CSS file, and some style declarations.
In an ecosystem (i.e. an open source CMS with a vast sea of plugins) - the theme, overrides, other plugins, WordPress core might all hook into, override, reset, rewrite, re-reset the h1 element on it's way to rendering. Our is touched 36 times through different class specifiers. This is a tiny example, but is multiplied by a full site. This is where design drag happens.
This is why I'm really interested to

communicate our content template areas & protect them from inheritances
link & clearly communicate CSS & markup that's used so that the CSS & HTML templating for the content can have (ideally) a 1:1 relationship with headless (build once, publish out)  - through for early development we could have

Wordpress content template + stylesheets (global, page, content, pattern, block)
Headless template + stylesheets (global, page, content, pattern, block)

The cruft Aaron is seeing is not yet optimized, but also WordPress - like many applications initially developed in the 2000's provides "everything" --- providing "everything" become a bottleneck on mobile devices.
A lot of PHP shops will cache, optimize, CDN and spend a lot of time removing those extra features to get reasonable performance bumps, but even with that, it's very rare to get down the network requests to be able to get optimal performance scores.


[Bug] Fix KyuubiDataSource#getConnection

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I have searched in the issues and found no similar issues.

Describe the bug
The implementation ignores username and password, it's does not make sense.
public class KyuubiDataSource implements SQLDataSource {

  @Override
  public Connection getConnection(String username, String password) throws SQLException {
    try {
      return new KyuubiConnection("", null);
    } catch (Exception ex) {
      throw new SQLException("Error in getting HiveConnection", ex);
    }
  }
}

Affects Version(s)
master
Kyuubi Server Log Output
No response
Kyuubi Engine Log Output
No response
Kyuubi Server Configurations
No response
Kyuubi Engine Configurations
No response
Additional context
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

@pan3793 I would like to take this.

Thanks, assigned


inrole command: filter by multiple commands

It would be awesome if something like this would be possible: .inrole role1 role2 and nadeko returns a list of all members that have both roles.

Feel free to post your suggestions here.


Expansion: TL;DR

TL;DR is meant to be near the beginning and to be written last, so the people know if they already learned that (so they can pass) or not (so they can learn). It can use complicated

Hope this helps...

Abstract:
In this chapter we will learn how to create a simple html page, insert text fields, buttons, links and images. We will dive into CSS, align and evidentiate elements of the page, and end up with a decent page.
Summary:
Make sure you close all the tags, including the ones that don't look like they need to, be careful with where your links are pointing and, for God's sake, please don't use tabels for styling the page!


Please support with no internet

I love my cat

i am cat and i will tell you the reason why there has no code
If there was no code, it would have no bugs, too!🤓 We all know that bugs occur when the code is wrong, such as syntax errors, type errors or other errors. According to Earth psychology, it has more than 90% of the time the author is joking, which has a confidence of 99%, there really is no code in the project!. So everybody can securely laugh out loud, do worry about laughing mistakenly☺


[Feature]: Dynamic titles

New feature you are looking for
Want to know on the scanning terminal page how many games are currently checked out.
Potentially other dynamic titles that make it easier to figure out what you're doing throughout the website
Any additional context or links?
No response

https://nextjs.org/docs/app/building-your-application/optimizing/metadata


Test bleeding due to info_for_paper_trail

I recently had a nasty bug that I couldn't figure out. When using RSpec, all my model specs passed UNLESS I ran controller specs BEFORE them. It drove me crazy until I figured ou the problem. The results of ApplicationController#info_for_paper_trail are cached in PaperTrail.controller_info and persists until it is set to something else. So in a controller test, info_for_paper_trail may be set to something, then a model spec that gets run after that inherits the same data from PaperTrail.controller_info. I worked around it by declaring a before(:each) block that resets it:
RSpec.configure do |config|
  config.before :each do
    PaperTrail.controller_info = {}
  end
end

Now each and every test starts with a fresh, pristine PaperTrail environment.
Maybe there is a better solution for this? Or may I suggest at least noting this in the README?

I'm sorry this troubled you for so long.  Thanks for taking the time to write up your solution.
I've added a note to the README in 73f6ae3054.


Habib/agree to terms input

Changes:
##Summary/Description
Add TnC checkbox at Homepage signup

Type of change

[ ] Bug fix
[x] New feature
[ ] Update feature
[x] Refactor code
[ ] Translation to code
[ ] Translation to crowdin
[ ] Script configuration
[ ] Improve performance
[ ] Style only
[ ] Dependency update
[ ] Documentation update
[ ] Release

Hi man, this is going to need translations. Please help to rebase it to crowdin ya 🙏

Hi man, this is going to need translations. Please help to rebase it to crowdin ya 🙏

Hi @suthesan-deriv, Thank you. It's rebased now


chore: fix asset names

This pull request fixes asset names in GitHub Releases.
Now {{.Arch}} is duplicated.
https://github.com/neilotoole/sq/releases/tag/v0.48.3

sq-0.48.3-amd64-amd64.tar.gz
sq-0.48.3-amd64-amd64.zip
sq-0.48.3-arm64-arm64.tar.gz

This issue was caused by https://github.com/neilotoole/sq/commit/b76149925ed775b12aa3b3abde406b6169af3479 .
https://github.com/neilotoole/sq/releases/tag/v0.41.0

@suzuki-shunsuke Thanks for the PR. I haven't had time to drill down on this in detail. Can you please elaborate on the problem that this PR is aiming to fix?

I think these asset names are wrong because the word amd64 or arm64 is duplicated and they don't include os.
https://github.com/neilotoole/sq/releases/tag/v0.48.3

sq-0.48.3-amd64-amd64.tar.gz
sq-0.48.3-amd64-amd64.zip
sq-0.48.3-arm64-arm64.tar.gz

Please see .goreleaser.yml's name_template.
    name_template: >-
      {{.ProjectName}}-{{ .Version }}-{{- if eq .Os "darwin" }}macos{{- else }}{{ .Arch }}{{ end }}-{{.Arch}}

If OS isn't darwin,
    name_template: >-
      {{.ProjectName}}-{{ .Version }}-{{ .Arch }}-{{.Arch}}

{{.Arch}} is duplicated.
This pull request replaces the first {{.Arch}} with {{.Os}}.
    name_template: >-
      {{.ProjectName}}-{{ .Version }}-{{ .Os }}-{{.Arch}}

Then you can see which OS these assets are for.


Add logic preexistingAccountID when invite member

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/38925
PROPOSAL: https://github.com/Expensify/App/issues/38925#issuecomment-2053605588
Tests

Go to Profile > Workspaces > Collect workspace.
Go to Members.
Invite a new member that does not have Expensify account.
Immediately after inviting the member, click on the highlighted new user in the list.
Verify that: The user name and avatar will not disappear.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Go to Profile > Workspaces > Collect workspace.
Go to Members.
Invite a new member that does not have Expensify account.
Immediately after inviting the member, click on the highlighted new user in the list.
Verify that: The user name and avatar will not disappear.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@nkdengineer You will need to send the optimistic accountID in the employeeData, so we can map the existing accountID with what is passed from frontend. Does that make sense? I can't see that change in your PR.

Does that make sense

@techievivek I agree. Can you share the example param with accountID for addMembersToWorkspace API so I can update the param accordingly in front-end.

Please tag me once this is ready for FE review! 🙏

This is what the params look like
{
employees<EMAIL_ADDRESS>policyID: "A42826866F253311",
welcomeNote: '
vivek Bottle4 invited you to Bottle's workspace

You have been invited to Bottle's workspace! Download the Expensify mobile app at use.expensify.com/download to start tracking your expenses.'

In the employees array, we need an object to include their email and optimistic/real accountID for each invited user. So I think you should be able to add the accountID here for each user in the employees param https://github.com/Expensify/App/blob/2514f2988eb26858d30fa501c0040b1f8fc2e239/src/libs/actions/Policy.ts#L1458

@techievivek I updated ADD_MEMBERS_TO_WORKSPACE API to pass accountID in employees param

@techievivek Any update here.

Sorry for the delay, taking a look now.

The backend PR is being reviewed, I will update here once we merged and deployed it to staging.

Closing this since we are moving to a different solution.


Problem with ReduxDevToolsExtension under electron environment

Hi,
the instanciation of ReduxDevToolsExtension throw an error when running under electron environment without react.
The problem comes from the checkIsReact() method : require("react") crash because the react module is not found.

Uncaught Error: Cannot find module 'react'
Require stack:

electron/js2c/renderer_init
at Module._resolveFilename (:9080/internal/modules/cjs/loader.js:961)
at Function.i._resolveFilename (:9080/electron/js2c/renderer_init.js:39)
at Module._load (:9080/internal/modules/cjs/loader.js:844)
at Function.Module._load (:9080/electron/js2c/asar.js:769)
at Module.require (:9080/internal/modules/cjs/loader.js:1023)
at ReduxDevToolsExtension.require (:9080/internal/modules/cjs/helpers.js:77)
at ReduxDevToolsExtension.checkIsReact (:9080/home/ahinsing/Git/astraw-ui/node_modules/@codewithdan/observable-store-extensions/redux-devtools.extension.ts:233)
at new ReduxDevToolsExtension (:9080/home/ahinsing/Git/astraw-ui/node_modules/@codewithdan/observable-store-extensions/redux-devtools.extension.ts:13)
at eval (webpack-internal:///./src/renderer/index.ts:16)
at Module../src/renderer/index.ts (renderer.js:3286)

Anthony.

Thanks @atoy40  - appreciate the information. I looked into detecting Electron but didn't come across what I'd consider a "clean" solution. If you're aware of one let me know though. For now I think I'll wrap the React check in a try...catch to deal with the potential error since I suspect there could be other scenarios where this may occur as well.
I'll let you know once I get a chance to work on this more.

I'm having a hard time testing this - I don't have enough Electron experience. If you get a chance can you go into<EMAIL_ADDRESS>and add the following code into checkIsReact?
        var isReact = false;
        // try/catch added in case this.require('react') throws an error
        try {
            isReact = (this.window.__REACT_DEVTOOLS_GLOBAL_HOOK__ &&
                this.window.__REACT_DEVTOOLS_GLOBAL_HOOK__._renderers &&
                this.window.__REACT_DEVTOOLS_GLOBAL_HOOK__._renderers.length) ||
                this.window.__REACT_ERROR_OVERLAY_GLOBAL_HOOK__ || this.window.React ||
                (this.window.require && (this.window.require('react') || this.window.require('React')));
        }
        catch {}

        return isReact;

I'm hoping something like that will help with the problem you're seeing. Let me know if you're able to try that.

Not "great" but this is generally the accepted way of detecting electron:
if(/electron/i.test(navigator.userAgent)){
    //electron
} else {
    //not electron
}

Thanks for sharing that @mann-david. Appreciate it!
@atoy40: Let me know if you get any time to try the suggestion above. While knowing if we're working with Electron is good, there may be other scenarios in the future where it could fail as well so the try/catch would be the easiest implementation to get in there. Happy to do that but would need someone with an Electron app to try out the suggestion first and make sure it's working as expected.

Closing this due to lack of activity. Feel free to reopen it if someone is able to try the suggestion above.


Explore creusot again/more

I've tried creusot on our U256 code but it had some strange issue. Someone could try again later or try different code. One of the advantages of it (as opposed to kani) is that you can mark structs as having invariants and it then checks that you're not accidentally constructing them wrong (e.g. recent case with Deserialize on Height). And this property can be relied on in other parts of proofs. Though IIUC it requires a bunch of semi-manual work to get the proofs (never got to this point).
Also I guess once you construct the proof you can verify it faster than with kani (faster tests). Again, no experience, just a guess.

https://github.com/sarsko/CreuSAT?tab=readme-ov-file

Interesting. I meant to link the first thing that I found when searching "creusot", which appears to still make sense in the context of your post.
Unfortunate that the two things have such similar names.
creusot looks much more "ready to use".


⚠ Bofrost.fr has degraded performance

In 80182f5, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1559 ms

Resolved: Bofrost.fr performance has improved in 853bd14 after 9 minutes.


[CH-227] Support more fields of function extract

Changelog category (leave one):

Improvement

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Close https://github.com/Kyligence/ClickHouse/issues/227

Information about CI checks: https://clickhouse.tech/docs/en/development/continuous-integration/

Can one of the admins verify this patch?

test this please with 795

test this please with 795

test this please with 795

test this please with 795


Handle an optional attr-map and other multi-clause cases in defn

defn has an optional attribute map before and after clauses:
(defn name doc-string? attr-map? [params*] prepost-map? body)
(defn name doc-string? attr-map? ([params*] prepost-map? body) + attr-map?)

https://clojuredocs.org/clojure.core/defn
This affects figuring out which clause the error is in and also leads to unhandled cases:
babel.middleware=> (defn a {:a 7} () {:b 8})
Placeholder message for defn
In Clojure interactive session on line 1 at position 1.
Call sequence:
[Clojure interactive session (repl)]

We need to separate out determining the clause, so this would require some refactoring.

Reporting clause in defn needs to be fixed for other cases as well.

This now corresponds to https://github.com/Clojure-Intro-Course/babel/issues/39 in the migration repository.


Adding githubWorkflowBuildPostamble

What's your thoughts on adding a githubWorkflowBuildPostamble?
(compared to existing githubWorkflowBuildPreamble)
I imagine it could be used for things like annotating from jUnit test reports:
https://github.com/marketplace/actions/junit-report-to-annotations
For example, in build.sbt:
ThisBuild / githubWorkflowBuildPostamble := Seq(
  WorkflowStep.Use(
    "ashley-taylor",
    "junit-report-annotations-action",
    "v1.0",
    name = Some(s"jUnit report"),
    cond = Some(s"always()"),
    params = Map(
      "access-token" -> "${{ secrets.GITHUB_TOKEN }}"
    )
  )
)

Sounds like a good idea to me! Right now you would need to do this by manually post-processing the generated workflow, which is a very blunt instrument.


Generate .dist.yml for features with no status or BCD keys

This will ensure we notice if tags are added to BCD that result in a
compmuted status.

Actually we shouldn't do this. Let's require status instead: https://github.com/web-platform-dx/web-features/pull/899