SAF Import - Batch Import (ZIP) failure due to file size is not clear to end user

Describe the bug
Not 100% sure if this report makes most sense for the REST back-end rather than Angular. Happy to create it in the other repo if needed.
The file size limit on SAF imports is currently capped by the configuration in application.properties for spring boot spring.servlet.multipart.max-file-size.
When you upload a file that is too large through the UI, the back-end logs almost immediately recognize that the file is too big, WAY before completion of upload of the entire file:
2023-02-15 17:29:40,145 WARN  ebb7e429-c0c5-4cae-82e1-598d89b0d02b ee126068-ad06-4513-9b22-9c0fb11037d8 org.dspace.app.rest.exception.DSpaceApiExceptionControllerAdvice @ Request is invalid or incorrect (status:400 exception: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (814735869) exceeds the configured maximum (536870912) at: org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:122)) 2023-02-15 17:29:40,147 WARN  unknown unknown org.dspace.app.rest.exception.DSpaceApiExceptionControllerAdvice @ Request is invalid or incorrect (status:400 exception: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (814735869) exceeds the configured maximum (536870912) at: org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:122))
However, as a user in the UI you are waiting very long and only get a generic HTTP error 400. Even in Inspect/developer tools I wasn't able to find a message that the cause was that the file was too big.
It might be cleaner if the backend returns an HTTP 413 instead.
To Reproduce
Steps to reproduce the behavior:

Go to /admin/batch-import
Upload a SAF file larger than 512MB

Observed behavior
The request takes a long time to time out, and results in a generic HTTP 400.
Expected behavior
You should get an error warning that the file you're trying to submit, is failing because it is too large.
Related work
Link to any related tickets or PRs here.

I second the motion to return 413, which actually tells the user what was done wrong.  We have too many cases of 400/500 "Something is not right.  Try to guess what it is."  We have too many cases of the front end patiently awaiting a success response that is never coming.

This makes sense to me. It might require a fix to both the backend (to return better error code) and frontend (to deal with the error).  Pulling this over to 7.6 board, as this could go into that release if we can locate an interested volunteer.


fix: fix nested subcollection initialization

Sub-collections are currently only being initialised one level deep. This PR fixes this to allow subcollections to have subcollections

I don't think I understand this part: Sub-collections are currently only being initialised one level deep. AFAIK you could only have 1 subCollection level. Can subcollections contain other... subcollections?

@wovalle Collections can be infinitely nested, AFAIK.

FYI this also fixes a bug where subcollections are instantiated as their parent collection 😄

I don't know why I had the impression that they could be one level long 🤦🏽♂

I don't know why I had the impression that they could be one level long 🤦🏽♂

Easy mistake to make, I think 😄
I realised this is actually quite a bit more work than originally anticipated... After trialling it in my project, nested subcollections are saved at root level under their parent collection, so an AlbumImage would be saved like so:

Bands

Albums

Albums

AlbumImage

This is basically because the repository assigns the firestoreColRef only based on the colName and subColName. I've been attempting a way of building the document path based on the collection's parentEntity, which should allow for a proper firestore path to be used. The only issue with this is if a sub collection is used by multiple collections, we would need a way to correctly assign the grandparent entity when assigning a subcollection. 🤔

Also we would need some way of finding the correct docId all the way to the root...

@wovalle okay think I have it! It required a rework of how repositories work. They are now initialised with a document path, and then when subcollections are created, it creates a new repository with the document id and subcollection name appended to the document path (this is how it can recurse infinitely)

Instead of initializing with colName/subColId/docId passing a path as param? I'm quite intrigued with the change that it'll require but I do undestand that's the way to go.
Initially fireorm was built with the assumption that firestore only accepted one nested SubCollection but that was wrong. Initializing with colname/subcolname quickly became cumbersome (checking if docId is defined to know if you're in a subcollection, that's not flexible enough). I understand that the initial implementation doesn't scale so go ahead and update it.
I'll keep an eye to this PR because I know monumental changes are coming 😂

@wovalle thank you! This should be a lot more flexible overall I think 😄

@wovalle okay I've made the changes, I'll give it a trial run in a live project tonight to see if it works 😉

Just tested this out in a project, works like a charm 👌

@joemckie can you suggest an scenario so I can create an integration this when I finish with the transaction refactor?
Just adding a collection that contains a subcollection that contains another subcollection and test something in the repository of all the collections can make it?

@wovalle exactly, that should work well enough for an integration test - no need to go too deep

@wovalle Can you please let me know the status of nested subcollections more than one level?
It would be great to see an example as currently I see the first subcollection won’t have  any class level decoratir so wondering how to declare a subcollection with in that class.
Also, nested subcollections work for transactions too?

@manwithsteelnerves I was the one that worked on this and have been using the functionality in a project of my own for a while - it works as expected 😄
You can create sub-collections in the same fashion as a usual collection, (just use @Collection), then just assign the class to a property in the parent collection like in here.
I think transactions are currently being worked on by @wovalle so they don't work just yet.
Hope this helps

I think the docs may need an update to include the Collection decorator when creating subcollections 😄

@joemckie I saw your commits but they don’t seem to be in the documentation yet. As still doc points at using subcollection decorator. I liked the point mentioned that subcollections are collections with a parent.
Regarding transactions, can i get the code related to global transaction suggested by @wovalle ? Or any alternative?
Sent with GitHawk

@joemckie I saw your commits but they don’t seem to be in the documentation yet. As still doc points at using subcollection decorator. I liked the point mentioned that subcollections are just collections with a parent, and no different.

Yeah, think the docs just need a quick PR to help explain things better. I probably missed some parts.

Lastly, i see fetching the subcollection needs a read of the document which is kind of bothering me. Any workaround for this?

You can provide a path name to getRepository, which is a method I have been using to access deeply nested collections. Given an entity Product that is a subcollection of Shop, you can use:
getRepository(Product, 'Shops/:shopId/products')

getRepository(Product, 'Shops/:shopId/products')
Thats great! I need to give a try. Too much to expect but, Any way to make it type safe? As it avoids lots of errors. Usually I like having an error for any variable name change as its easy to maintain. Else lot of tests need to be done for a single variable name change.

Thanks for answering @joemckie! I didn't even know the collectionPath trick 😅

Any way to make it type safe? As it avoids lots of errors. Usually I like having an error for any variable name change as its easy to maintain.

I'm not entirely sure the collection path could be type-safe as it would require knowledge of all the collections and their paths beforehand. I don't even think a helper function to build the path from an entity would work without grabbing the parent collection first, as there is no path provided to it. A workaround might be to provide the pluralised version of the entity name (as it would be saved into the database) and then use that in the string, rather than typing it manually? That would avoid some issues that may arise when changing collection names.

Also, this hidden gem needs a mention in the docs too, unfortunately I didn't find it :)

Will definitely work on that when I get a sec 😄


Notifications for diagram comments

Sent notifications to the user or watchers (either by email or notifications in Atlassian) whenever someone comments on the draw,io diagram within a Confluence page.
Ticket 36274

+1 to this request. It's really important to be notified about draw.io comments.

Closing, we've been unable to find a way to implement this.


Docs/better examples

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@c21f7ec). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             dev     #146   +/-   ##
======================================
  Coverage       ?   89.28%
======================================
  Files          ?      383
  Lines          ?     3778
  Branches       ?      945
======================================
  Hits           ?     3373
  Misses         ?      303
  Partials       ?      102

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 c21f7ec...ff3e070. Read the comment docs.


Bug in Run-AlPipeline code

Describe the issue
ValidateSet attribute does not make sense in its current place.
    [switch] $assignPremiumPlan,
    [Parameter(Mandatory=$false)]
    [ValidateSet('None','All','Essential','Premium')]
    [string] $tenant = "default",
    [string] $memoryLimit,
    [string] $memoryLimit,

It was introduced in this commit: https://github.com/microsoft/navcontainerhelper/commit/eb475a05a5aeb029ce6f619e8da072b254720d22

Correct, that is a bug.
You can remove the lines in your downloaded file if need be, next preview, they are gone.
Thanks

Fix shipped in 1.0.10


Add a params retry-wait-time=1000ms when jfrog cli enable retry mechanism

Is your feature request related to a problem? Please describe.
JFrog cli will retry  another http request immediately if there is an network issue. But sometimes the retry action will failed again even if jfrog retry many times caused by network issue or other issue.
We don't want to the command faild in the end. We can accept the command taked long time. (Ex: We have  a lots stages in an CI pipeline, we don't care how long it will take. But we need retry build the whole pipeline if jfrog cli failed. )
Describe the solution you'd like to see
We want to add an params to support waiting few seconds to execute next retry request.
Ex: jfrog dl generic-local/a.zip --retry=3 --retry-wait-time=10s

+1


Update diagnostic in PullDiagnosticsTests to be imperative

This commit corresponds to changes introduced in https://github.com/apple/swift/pull/67909.
The merge should be timed accordingly to go hand-in-hand with https://github.com/apple/swift/pull/67909.

https://github.com/apple/swift/pull/67909
@swift-ci Please test


After installing GIT LFS, the repo hangs on the "Resolving deltas" stage when cloning the repo

We are experiencing a few issues with our REPO since using Netlify + NetlifyCMS to manage our site builds and content.
After installing GIT LFS, the repo hangs on the "Resolving deltas" stage when cloning the repo
When running git clone https://github.com/brooklynrail/brooklynrail-platform.git on a new machine, I get:
Cloning into 'brooklynrail-platform'...
remote: Enumerating objects: 14464, done.
remote: Total 14464 (delta 0), reused 0 (delta 0), pack-reused 14464
Receiving objects: 100% (14464/14464), 51.16 MiB | 14.55 MiB/s, done.
Resolving deltas: 100% (6162/6162), done.
git-lfs filter-process: git-lfs: command not found
fatal: the remote end hung up unexpectedly
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

Would love it if someone else can help to confirm this by checking out the repo locally, and would love any recommendations on how to best resolve this.

Background
Our Netlify site is built using Hugo.

Our repo: https://github.com/brooklynrail/brooklynrail-platform/
Our site: https://brooklynrail.org/events (note, we're using Netlify to build out just the events portion of Brooklynrail.org)
Our NetlifyCMS config https://github.com/brooklynrail/brooklynrail-platform/blob/master/themes/brooklynrail/static/workflow/config.yml
This repo/site uses GIT LFS to manage the photos

I think I may have fixed this...
Since our site uses Git-LFS to store and manage the images, I needed to install the netlify-cli tool and the large media plugin before cloning the repo.
npm i -g netlify-cli
netlify plugins:install netlify-lm-plugin
netlify lm:install

Found some answers here — https://community.netlify.com/t/git-prompting-for-username-password-ever-since-app-url-change-no-credentials-work/12632/8


Error when running analyze-image.ps in Azure Cloud Shell

Module: Analyze images with the Computer Vision service
Lab/Demo: Exercise - Explore Computer Vision
Task: Configure and run a client application
Step: 6
Description of issue
When running the script in Azure Cloud Shell, received the follow error
PS /home/user1-30332935/ai-900> ./analyze-image.ps1 store-camera-1.jpg
Analyzing image...
Invoke-RestMethod: /home/user1-30332935/ai-900/analyze-image.ps1:21
Line |
  21 |  $result = Invoke-RestMethod -Method Post `
     |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | {"error":{"code":"404","message": "Resource not found"}}
ConvertFrom-Json: /home/user1-30332935/ai-900/analyze-image.ps1:26
Line |
  26 |  $analysis = $result | ConvertFrom-Json
     |                        ~~~~~~~~~~~~~~~~
     | Cannot bind argument to parameter 'InputObject' because it is null.

Description:

Objects in this image:

Tags relevant to this image:

Repro steps:
Follow the instructions in the lab.
PowerShell Version: 7.3.3

Hello @charleswhchan ,
I have ran through the lab two times (in two different VMs) and could not reproduce this error.

Have you tried restarting the cloud shell session and trying again? Does the error still occur? What about restarting the training session, doing that still raises this error?
Best regards,
Mihai

@Mihai-Ac : is there any command that I can run within Cloud Shell to capture more information for debugging?

Works again after I restart the training session. So likely operator error. 😅


Slow keyUp response when mapping to multiple keys with modifier

Trying to mimick Sublime's superb OPTION+UP/DOWN movements. Example config:
<autogen>
	__KeyToKey__ KeyCode::CURSOR_DOWN, ModifierFlag::OPTION_L,
	KeyCode::CURSOR_DOWN,
	KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
</autogen>

Now, when key repeat sets in and I release the key, I always get a few more repeats. It works fine when I remove ModifierFlag::COMMAND_L.

Karabiner add a wait around modifier key events for avoid key order confusion in apps such as virtual machine.
(You can adjust it in "KeyRepeat tab > Advanced Configurations > Generic > Wait before and after a modifier key event".)
Please decrease wait or move command-right arrow into after keyup.
    <autogen>
      __KeyToKey__
      KeyCode::CURSOR_DOWN, ModifierFlag::OPTION_L,
      KeyCode::CURSOR_DOWN,

      Option::KEYTOKEY_AFTER_KEYUP,
      KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
    </autogen>

I've adjusted Wait before and after a modifier key event to 0ms and it works great. Any setbacks in that?

Almost all apps work fine with 0ms.
That change might cause issue in some apps which read raw key events.
(eg: virtual machine, adobe apps.)


Atracsys FlatBuffers Logging

We need to save and load fusiontrack data from a file, the functions to do this (toFlatBuffer) are partially implemented, but don't yet save all of the data.
Finish implementation of data conversion API:

[x] FlatBuffer generation in FusionTrackToFlatBuffer.hpp
[x] FusionTrack.fbs
[x] LogKUKAiiwaFusionTrack.fbs
[x] Ensure Every data element defined in TimeEvent is properly collected and logged
[x] save flatbuffers file containing buffers of type LogKUKAiiwaFusionTrack to disk with flatbuffers/util.h
[x] Add tests
[x] create pull request so code can be reviewed
[x] Document how to use the new API

Important code:

FusionTrack.hpp
struct definitions are in ftkInterface.h

[x]  Create a new function flatbuffers::Offsetgrl::flatbuffer::FusionTrackMessage
toFlatBuffer(flatbuffers::FlatBufferBuilder &fbb, const grl::sensor::FusionTrack &fusiontrack, const grl::sensor::FusionTrack::Frame) in FusionTrackToFlatBuffer.hpp to record FusionTrackMessage (in FusionTrack.fbs
[x] timestamp:double is from fusiontrack->frame.imageHeader.timestampUS * microsecToSec;
[x] geometries:[ftkGeometry] is from FusionTrack.hpp->class FusionTrack -> struct Params -> std::vector markerModelGeometries
[x] timeEvent:TimeEvent is defined in TimeEvent, which is used in LogKUKAiiwaFusionTrack.fbs -> table LogKUKAiiwaFusionTrack states -> table KUKAiiwaFusionTrackMessage; the values are from  FusionTrack.hpp->class FusionTrack -> Class Frame -> TimeEvent TimeStamp

Before assign any value to timeEvent, firstly we should define a new function writing the timeEvent to flatbuffer.

[x] frames:[FusionTrackFrame] is the vector of FusionTrackFrame, which is defined in the values are from  FusionTrack.hpp->class FusionTrack -> Class Frame .
New table (table FusionTrackParameters) has been added in FusionTrack.fbs to record data that doesn't change often.

[x] Complete four toFlatBuffer functions in FusionTrackToFlatBuffer.hpp.  (10/18)

TimeEvent

FusionTrackMessage

KUKAiiwaFusionTrackMessage

LogKUKAiiwaFusionTrack.
UNION (deviceState:DeviceState) in  LogKUKAiiwaFusionTrack.fbs doesn't work now.

[x] Save flatbuffers file containing buffers of type  LogKUKAiiwaFusionTrack.fbs  to disk with flatbuffers/util.h (10/20-10/22)
As for this part, I think we should store all the flatbuffer stuff physically, and then get flatbuffer files such as monsterdata_test.mon.
The toFlatBuffer functions are designed to write the bytes to a file, and then send them over the network.here can we get the flatbuffer disk fill?
Then we should use buffer_pointer and flatbuffers/util.h to load, read and deserialize a FlatBuffer, convert all the parameter types into string, then Save it to disk.
Don't forget to refer to the example .

[x] Add test.
Example for test part KukaLBRiiwaVrepPluginTest.cpp.
fusionTrackTest.cpp add another case Boost_Auto_Test_Case (maybe need to edit the function).

[x] add atracsys logging to V-REP plugin

[x] run v-rep and collect a log file of the motion of the real robot.

Done


Remove old regions - UK cases

@joeHickson the regions that are no longer in the data should be the ones not updating here: https://github.com/epiforecasts/covid-rt-estimates/tree/master/subnational/united-kingdom/cases/national
Could you please remove from the production server asap.
@kathsherratt could you review this to check these are the data sources that need to be removed.

Yes, looks like the deprecated regions are no longer updating.
But some estimates for these regions still appear in the "collated" csv output, for the cases and deaths sources. I think we just need to delete those files completely to stop the old estimates being collected up with the genuine "latest" files.
I will put in a PR but don't want to cause any breaking changes in messing with the file system so this may need to be done by @joeHickson.

Great stuff! Just merged so the csv will be fixed. Outstanding issue is that these estimates appear on the website sadly. @joeHickson fix for that is removing the old estimates from the production server. Kath's PR had a complete list.


set access_token in post_args if not already set

I don't think the rationale in this pull request is correct. App notifications require an "application access token", which isn't the same as self.access_token (see "Access Tokens" for a description of the four types of access tokens that Facebook uses).


Generalize array checking and remove pd.Index call in _get_partitions

This PR does two things:

Generalizes the array checking using is_arraylike as well as the list check
Removes what I think is an unnecessary pd.Index call .

This fixes an issue for dask-cudf where users want to index a Dask Dataframe with a cudf/cupy object:

df.loc[cudf.Series([0,10,50], dtype=np.int32)]

The pd.Index call is quite old (https://github.com/dask/dask/pull/1913) and was originally written to handle indexing with lists.  Locally I ran  dask/dataframe/tests/test_indexing.py and all tests still pass as well as verifying manually that lists are still supported

[x] Closes #xxxx
[ ] Tests added / passed
[x] Passes pre-commit run --all-files

cc @VibhuJawa @rjzamora

Thanks for working on this @quasiben , I expect to see some speed up for the GNN use cases when this lands.
CC: @eriknw  for awareness too in related to get_edge_data and get_node_data  for PropertyGraphs.

My guess is the gpuCI failures are unrelated (saw them here yesterday https://github.com/dask/dask/pull/9635#pullrequestreview-1171197377), though it'd be great if you could confirm

@jrbourbeau , yes, they are unrelated.  I filed https://github.com/dask/dask/issues/9639 to track the failures


Remove backup poller from GRPC core

The backup poller thread was always a hack that we needed to keep things working as iomgr was introduced. This change removes it.
Fixes #51.
Fixes #52.
Fixes #1008.

I've gone ahead and refactored the Python _low_test.py to be compatible with this change.
I'm becoming convinced that even if this change is huge, it removes a source of timing races, and that might make it worthwhile pursuing in order to get a stable build in place for release.
@soltanmm, @nathanielmanistaatgoogle - PTAL. I'm happy to work with @soltanmm to get #1558 integrated if this goes ahead.

For the moment I'm really confused by the change to _low_test.py. The test was written to have client-side and server-side be independent, the way they would be if they were running across the network from one another. By sharing a completion queue that design intention of the test goes totally out the window. What am I not yet understanding?

I think that the test as originally written tries to pretend that client
and server can inhabit the same thread. The change I'm making to C core
eliminates a background thread that kept this working by moving associated
work into the completion queue (I may yet rename some apis as part of this
work).
There are two correct ways to refactor the python test here:

Merge the completion queues. This holds most of the test flow as it was,
and is what I've included here.
Split the client and server parts into separate threads. This makes it
very difficult to reason about the ordering of events as you do in this
test.

The third way is to continue to imagine schemes whereby c core does this
threading itself. I have a suspicion that at least some of the flakiness
we've seen is due to internal core thread counts being undersized. One way
to fix that is to give the core ample threads for all use cases: this leads
to infinite thread requirements. The other way is to engineer such that
those threads are no longer required.
On Wed, May 20, 2015, 7:40 AM Nathaniel Manista<EMAIL_ADDRESS>wrote:

For the moment I'm really confused by the change to _low_test.py. The test
was written to have client-side and server-side be independent, the way
they would be if they were running across the network from one another. By
sharing a completion queue that design intention of the test goes totally
out the window. What am I not yet understanding?
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1577#issuecomment-103909418.

I should also note that I think (1) above is the better choice for Python.
Whilst slightly more synthetic than it was, it gives a simple to understand
acid test of wrapped primitives. It will likely break if primitives are
broken, and it's simplicity will ensure that it doesn't become a
maintenance burden.
On Wed, May 20, 2015, 8:34 AM Craig Tiller<EMAIL_ADDRESS>wrote:

I think that the test as originally written tries to pretend that client
and server can inhabit the same thread. The change I'm making to C core
eliminates a background thread that kept this working by moving associated
work into the completion queue (I may yet rename some apis as part of this
work).
There are two correct ways to refactor the python test here:

Merge the completion queues. This holds most of the test flow as it
was, and is what I've included here.
Split the client and server parts into separate threads. This makes it
very difficult to reason about the ordering of events as you do in this
test.

The third way is to continue to imagine schemes whereby c core does this
threading itself. I have a suspicion that at least some of the flakiness
we've seen is due to internal core thread counts being undersized. One way
to fix that is to give the core ample threads for all use cases: this leads
to infinite thread requirements. The other way is to engineer such that
those threads are no longer required.
On Wed, May 20, 2015, 7:40 AM Nathaniel Manista<EMAIL_ADDRESS>wrote:

For the moment I'm really confused by the change to _low_test.py. The
test was written to have client-side and server-side be independent, the
way they would be if they were running across the network from one another.
By sharing a completion queue that design intention of the test goes
totally out the window. What am I not yet understanding?
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1577#issuecomment-103909418.

Fixes #52

Fixes #51

Starting to do the final bits of work here.

Need to fix another instance of #1635 in the completion queue implementation.
Also need to test ssl.

At the moment I actually find (2) more attractive. _low_test is intended to validate and illustrate full end-to-end behavior with both invocation and service sides of RPCs. Having them share a completion queue still undermines that aspect of the test. Use of threads doesn't, I don't think, and inserting "do X in a separate thread" in several places throughout the test doesn't interrupt the overall flow of the test, at least not if the off-threading is moved out into a well-abstracted helper function?
Another high-level, philosophical question about this change: if _low_test.py has to change in this pull request because of changes to the semantics to the C Core's completion queue semantics, shouldn't this pull request include a change to grpc.h? It doesn't at the moment, right, unless my browser's find-in-page is broken?

Oh, and to respond directly to "This makes it very difficult to reason about the ordering of events as you do in this test.": I would not want _low_test to lose the reasoning about the ordering of events that it has today. If something has to be done in another thread, it's very easy to write it as
offthread = threading.Thread((thing that must be done in another thread))
offthread.start()
offthread.join()
and retain deterministic ordering of the RPC operations under test, correct?

Philosophy note: this PR is still in progress, so documentation is probably
lacking. That said I'm not certain that it's changing semantics from what
we've had for a long while, rather it's exploiting loopholes that have been
deliberately left open to allow this sort of thing. I'll make a lawyer pass
over grpc.h before this is finalized regardless.
With your proposed rewrite you would still end up needing two threads
polling completion_queue_next for things to work out.... meaning that at
every point where you do:
self.server_completion_queue.get(_FUTURE);
You'd also need a thread doing:
self.client_completion_queue.get(XXX);
and asserting that such a thread receives nothing in the period of time
that the server_completion_queue took to get something - in other words,
both threads would need some barrier logic at every completion queue poll
in order to keep the logic in the test as-is. I don't see a way to make
that readable - but if it's preferred, I'd be happy to review proposals.
For an example of what this would need to transform into, take a look at my
changes to src/ruby/spec/client_server_spec.rb - it's the (mostly)
equivalent test for Ruby, and was written in such a way that spinning up
multiple threads was the obvious and simple thing to do.
Finally, in the version of _low_test.py I've proposed the testing of ordering
of events is preserved in all cases except the terminal event handling on
line 378 of the original test - and I would argue is strengthened, as the
new phrasing of the test additionally guarantees that no event is received
by the peer completion queue at a particular step.
On Thu, May 28, 2015 at 9:53 AM Nathaniel Manista<EMAIL_ADDRESS>wrote:

Oh, and to respond directly to "This makes it very difficult to reason
about the ordering of events as you do in this test.": I would not want
_low_test to lose the reasoning about the ordering of events that it has
today. If something has to be done in another thread, it's very easy to
write it as
offthread = threading.Thread((thing that must be done in another thread))
offthread.start()
offthread.join()
and retain deterministic ordering of the RPC operations under test,
correct?
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1577#issuecomment-106485005.

For those following along at home: @ctiller and I just talked this over, and the point of misunderstanding between us comes from this work making a big change to the semantics of calls and completion queues.  Without this change, a call sequence like
call.write(data)
write_done_indication = completion_queue.next()
has semantics of "request that work be done in the first call, understand that work may be done between calls, and then at some arbitrary later time ask for acknowledgement of the work having been done". With this change, the same call sequence has semantics of "describe some work to be done in the first call, understand that it may not be done between calls, and then in the second call do the work if it has not by chance or larger circumstance already had occasion to happen". With this change work like "transmit bytes on the wire" is no longer guaranteed to happen with call.write alone; the call to completion_queue.next is now required to ensure that transmission of data on the wire takes place.
We spoke of possibly changing Core API function names to reflect these different behaviors.

@nicolasnoble @yang-g @vjpai @dgquintas - we should talk about code review strategy.

@nathanielmanistaatgoogle - I think this is ready for the new low_test.py

@jtattermusch - can you merge in the latest C# changes?

I have updated _intermediary_low_test to work with these changes in https://github.com/nathanielmanistaatgoogle/grpc/commit/eb717991623eee892e28bf21663ee557006a5b7b. Please feel encouraged to rewrite/rebase the commit; there's no reason why it should be in a separate commit from _low_test (or any other Python changes).

Is it possible to send me a pull request against #1577?
I have several kloc of work across various branches based upon this pull
request, and have no intention of rebasing all of them, so this commit
structure is now immutable.
On Tue, Jun 16, 2015 at 7:14 AM Nathaniel Manista<EMAIL_ADDRESS>wrote:

I have updated _intermediary_low_test to work with these changes in
nathanielmanistaatgoogle@eb71799
https://github.com/nathanielmanistaatgoogle/grpc/commit/eb717991623eee892e28bf21663ee557006a5b7b.
Please feel encouraged to rewrite/rebase the commit; there's no reason why
it should be in a separate commit from _low_test (or any other Python
changes).
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1577#issuecomment-112446523.

https://github.com/nathanielmanistaatgoogle/grpc/commit/eb717991623eee892e28bf21663ee557006a5b7b is derived from your pending work in this pull request, so it would be only my one commit that I'm suggesting be rebased. :-)
Although now that I think of it: there's nothing in the Python changes that would break them if they were applied to head-of-master right now, right? Perhaps I'll do that later this afternoon...

One commit that's already pulled into at least two branches in my work over
the past 24 hours.
On Tue, Jun 16, 2015 at 8:15 AM Nathaniel Manista<EMAIL_ADDRESS>wrote:

nathanielmanistaatgoogle@eb71799
https://github.com/nathanielmanistaatgoogle/grpc/commit/eb717991623eee892e28bf21663ee557006a5b7b
is derived from your pending work in this pull request, so it would be only
my one commit that I'm suggesting be rebased. :-)
Although now that I think of it: there's nothing in the Python changes
that would break them if they were applied to head-of-master right now,
right? Perhaps I'll do that later this afternoon...
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1577#issuecomment-112466299.

@nathanielmanistaatgoogle - this is still waiting on grpc._adapter._intermediary_low_test.
@dgquintas, @nicolasnoble - please do the review (break it up among yourselves). I'm talking with @jtattermusch about getting #1731 in ahead of time (C# is a sticking point) in order to reduce the size of this review (as it includes that PR).

@ctiller a pull request is no trouble at all: #2090.

Green.

I've reviewed up to tcp_client.h (exclusive). I'll continue tonight.

LGTM!

I ran some iterations of C# tests against this and it looks like the returned status codes for some of the calls are still getting mixed up from time to time.
In unknown method handler tests, I sometimes receive "Unkown" status instead of "Unimplemented"
and in some other tests, I sometimes get "cancelled" instead of "unknown".
I ran with -n 100 ( = 300 suites in total) and got 15 failures.

Jan: OK with this going in and a quick follow-up being written tomorrow?
On Thu, Jun 18, 2015, 6:04 PM Jan Tattermusch<EMAIL_ADDRESS>wrote:

I ran some iterations of C# tests against this and it looks like the
returned status codes for some of the calls are still getting mixed up from
time to time.
In unknown method handler tests, I sometimes receive "Unkown" status
instead of "Unimplemented"
and in some other tests, I sometimes get "cancelled" instead of "unknown".
I ran with -n 100 ( = 300 suites in total) and got 15 failures.
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1577#issuecomment-113332905.

(Trying to avoid this growing further)
On Thu, Jun 18, 2015, 6:53 PM Craig Tiller<EMAIL_ADDRESS>wrote:

Jan: OK with this going in and a quick follow-up being written tomorrow?
On Thu, Jun 18, 2015, 6:04 PM Jan Tattermusch<EMAIL_ADDRESS>wrote:

I ran some iterations of C# tests against this and it looks like the
returned status codes for some of the calls are still getting mixed up from
time to time.
In unknown method handler tests, I sometimes receive "Unkown" status
instead of "Unimplemented"
and in some other tests, I sometimes get "cancelled" instead of "unknown".
I ran with -n 100 ( = 300 suites in total) and got 15 failures.
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1577#issuecomment-113332905.

Yep, sounds good.

After this gets merged, PTAL at #2105 . Thanks!

Pulling the trigger!


Cannot continue typing commands in the hit-enter prompt when the ":" key is remapped

Steps to reproduce
Since I type : a lot more often than ;, I have switched both keys. Unfortunately, when the : is remapped, it is not possible to type a command in the hit-enter-prompt anymore.

Run vim --clean -S test.vim, with

noremap ; :
noremap : ;

Type ;map<CR> to open the hit-enter prompt.
Pressing either ; or : will close the prompt. No command can be typed to continue after the hit-enter prompt.

Expected behaviour
I thought it would be possible to continue typing commands in the hit-enter prompt even when the : key is remapped.
Version of Vim
8.2.4553
Environment
Linux
Logs and stack traces
No response

For me typing semicolon at the hit enter prompt does respect the mapping, I can type a command then.

For me typing semicolon at the hit enter prompt does respect the mapping, I can type a command then.

Without closing the output of the previous command?

I should have been more specific. By default (without the above mappings), when I hit : at the hit-enter prompt, the pager is still shown. But with the mapping, the pager is closed before entering command-line mode.
I like the default behavior since sometimes I need the output of the previous command for typing a follow-up command. A very simple example would be :ls, and then :buffer ...

Characters at the hit-enter prompt are not mapped.  The typed character is put back in the typeahead, then the mapping is applied.  There is no way to avoid a redraw here.

Well that's too bad. I guess I can close this issue.

I have the exact same problem and use case. Can we please keep this open (unless the maintainer decides this is a "won't fix")?

Maybe a new option for specifying the prompt key could be added, something like set promptkey=; or set cmdlinekey=;.  Then we wouldn't have to remap : using noremap.


Use default value to replace "oneof" or wrapper syntax in proto models to reduce structural complexity

Close because after proto3 supports optional, our code for proto models is far clearer.


npm start fails - tsc - angular2 quickstart

I have the following error on running npm start from angular quick start.
All my quickstart clones ran okay until I installed typescript globally.
I can continue working by having two separate sessions below
- $(npm bin)/tsc -p src/ -w
- npm run serve
I am not sure what is causing this apart from the recent change which is installing typescript globally.
2017-02-22T16_49_40_111Z-debug.txt
2017-02-22T16_49_40_111Z-debug.txt
But I can only run it using the above method.
00-angular2-website$ npm start

<EMAIL_ADDRESS>prestart /Users/karthik/Desktop/Desktop/mean_stack/angular-2_projects/00-angular2-website
npm run build

<EMAIL_ADDRESS>build /Users/karthik/Desktop/Desktop/mean_stack/angular-2_projects/00-angular2-website
$(npm bin)/tsc -p src/

src/app/app.component.spec.ts(7,1): error TS2304: Cannot find name 'describe'.
src/app/app.component.spec.ts(12,3): error TS2304: Cannot find name 'beforeEach'.
src/app/app.component.spec.ts(19,3): error TS2304: Cannot find name 'beforeEach'.
src/app/app.component.spec.ts(25,3): error TS2304: Cannot find name 'it'.
src/app/app.component.spec.ts(25,39): error TS2304: Cannot find name 'expect'.
src/app/app.component.spec.ts(27,3): error TS2304: Cannot find name 'it'.
src/app/app.component.spec.ts(30,5): error TS2304: Cannot find name 'expect'.
npm ERR! Darwin 16.4.0
npm ERR! argv "/usr/local/bin/node" "/Users/karthik/.npm-packages/bin/npm" "run" "build"
npm ERR! node v6.9.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>build: $(npm bin)/tsc -p src/
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script '$(npm bin)/tsc -p src/'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular-quickstart package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     $(npm bin)/tsc -p src/
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs angular-quickstart
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls angular-quickstart
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/karthik/.npm/_logs/2017-02-22T16_49_40_111Z-debug.log
npm ERR! Darwin 16.4.0
npm ERR! argv "/usr/local/bin/node" "/Users/karthik/.npm-packages/bin/npm" "start"
npm ERR! node v6.9.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>prestart: npm run build
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>prestart script 'npm run build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular-quickstart package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs angular-quickstart
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls angular-quickstart
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/karthik/.npm/_logs/2017-02-22T16_49_40_160Z-debug.log

hi kmeda, how did you resolve this issue?

Hi mahlijah, I don't remember at the moment. I must've messed up something.
I tried this clone now and it runs fine.

thanks for the response kmeda.


Always include podLabels in FlowAggregator IPFIX template

Whether it's better to remove the includePodLabels parameter while initiating the IPFIXExporter (just like other Exporters, to have general columns). - from @yuntanghsu

I think this is a good approach. We should always include podLabels in the template. I think there is no ambiguity because we can use "" as the field value when podLabels are not being filled, and "{}" when podLabels are being filled, but the Pod has no labels.
I will open an issue to track his. However, there are other problems with live config updates for the IPFIXExporter, so I still need to open a new PR to address these.
Originally posted by @antoninbas in https://github.com/antrea-io/antrea/issues/6384#issuecomment-2141043296

cc @yuntanghsu

@heanlan do you see any issue with this proposal?

do you see any issue with this proposal?

No, it looks good to me.


Fix dependabot alerts

This PR fixes most of the dependabot alerts by running npm audit fix, and update Flask packages in Pipfile (though not to the latest version (2.2.2) because of some dependency conflict).
Still runs fine locally.

I'm not familiar enough with the build system to perform an informed review of this. I'll make some time with you to walk me through the change for my own edification though.


storage: use dict encoding when distinct value statistics is small

related: https://github.com/risinglightdb/risinglight/issues/638

... and I guess it would significantly reduce TPC-H's storage space


loading forever without stopping on safari mobile

Hi,
I noticed on safari mobile that it loads forever when initially loading the page. I have useWindow=false.
I looked at this line:
offset = el.offsetHeight - el.parentNode.scrollTop - el.parentNode.clientHeight;

It seems new elements are loaded if offset is larger than the threshold.And offset never changed even when loading elements.
Elements in my scenario are added to the bottom of the list.scrollTop is always 0 and clientHeight is the size of the viewable container.
The offsetHeight property returns the viewable height of an element in pixels, including padding, border and scrollbar, but not the margin.
If change this to el.scrollHeight it seems to work.
The scrollHeight property should return the height independent of whether it is viewable or not.
offset = el.scrollHeight - el.parentNode.scrollTop - el.parentNode.clientHeight;

best regards,
Florian

Published in 0.2.11


[BUG] Virtual slider not rendering if initialSlide={1}

Check that this is really a bug

[X] I confirm

Reproduction link
https://codesandbox.io/p/devbox/swiper-react-virtual-slides-forked-z5jks2
Bug description
If you use virtual slides and want manage initialSlide by some logic, slides will not render if initialSlide becomes equal to 1
Expected Behavior
Slides to render
Actual Behavior
Slides not rendering

Swiper version
11.1.10
Platform/Target and Browser Versions
Windows 11, Chrome latest
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

Current workaround is to force swiper to update after mounting or on any other condition when bug appears


Saved map not loading in Rviz2

Hi everyone,
ROS- Humble
Ubuntu-22.04
I am trying to load a saved map using slam toolbox and i am getting the following error in rviz2 and at the same time a new map starts generating

Thanks for helping

@Martin-Idel  can you please help.

Would you be willing to post a minimal reproducible example? That will help the maintainers understand what's crashing and why.

Since it is a screen shot, this doesn't show up in a search for "rviz/glsl120/indexed_8bit_image.vert", but is possibly related/similar to https://github.com/ros2/rviz/issues/463

@Jyoshrobot1234 did you solve your problem because I'm facing this problem right now


[Deployment] Staging/review builds require page refresh to see the latest

Staging and review builds seem to require a page refresh for me to see the latest.
I'm pretty sure this didn't used to be the case but also not clear what's changed.

We've also seen folks get an error where they've loaded the HTML index page and then failed to load a JS resource.

This would be nice to at least understand further before user testing.

See also #553

We think this has been resolved by https://github.com/microbit-foundation/python-editor-next/pull/687
Closing.


refactor(lint): add flake8-return rules

Summary
Enable all RET errors on ruff.
As some of these error codes might not be desired, I seperated each of them into an individual commit (except for RET506, I fixed some of that in RET505 inadvertently).
Checklist

[ ] If code changes were made, then they have been tested

[ ] I have updated the documentation to reflect the changes
[x] I have formatted the code properly by running pdm lint
[ ] I have type-checked the code by running pdm run pyright

[ ] This PR fixes an issue
[ ] This PR adds something new (e.g. new method or parameters)
[ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
[ ] This PR is not a code change (e.g. documentation, README, ...)

@onerandomusername would you mind updating and resolving conflicts?


[1.12] Fluid pump suggestion

Industrial Foregoing Version:  industrialforegoing-1.12.2-1.12.13-237.jar
TeslaCoreLib Version: Tesla Core Lib : <IP_ADDRESS>
Crashlog If Applicable (Upload to pastebin/gist):
I have a problem with the Fluid pump, it sometimes stops pumping oil, my suggestion is when you place the pump, it's automatically in pause mode, so you can add upgrade for range. I would like to have the option to set a filter by bucket of that liquid in the gui and have the option to turn off/on the cobblestone replacing the liquid. And I don't know if it's intentional, but the pump doesn't output the oil to the ender tank at the top.

:wave: Sorry but Industrial Foregoing has ended support for version 1.12. I'm closing this issue as it will no longer be updated for that version. Thanks for playing with the mod.


Add election/elected hotspots

Expands the v1/hotspots/elected route with

v1/hotspots/elected - lists "currently elected" hotspots
v1/hotspots/elected/<block> - lists the elected hotspots that were active at the given block height
v1/hotspost/elected/hash/<hash> - lists the elected hotspots in the given transaction hash. The transaction identified by the given hash is required to be a consensus_group_v1

Fixes: #145

hmm @madninja , for this URL: https://api.helium.io/v1/hotspots/elected/hash/4ksnRuUS9aiXcXJKNsjN0m--IzmFcNQwDoo5_uuj2zc
I'm getting:
{
    "error": "Not Found"
}

Am I doing it right? (Or am I falsely assuming that this being merged into master automatically made the endpoint live? 😅  )
https://explorer.helium.com/txns/4ksnRuUS9aiXcXJKNsjN0m--IzmFcNQwDoo5_uuj2zc

@danielcolinjames the deploy did not go well yesterday. We'll try again

Should be deployed now @danielcolinjames


Add Azure to managed deployments

I updated several pages that talked about Cloud to have them also mention Hyperscale.
One area I didn't change are the "portal" pages like https://docs.citusdata.com/en/v8.2/portals/citus_cloud.html
That would be take a little more work, but I can do it if desired.

@jonels-msft typo on getting_started. Otherwise looks good to :shipit:  and then we should come back and try to make a pass on the portal pages as well.


Apply contributors columns to landscape and tablets

Issue
none
Overview (Required)

I changed the contributors columns count from 3 to 6 when the device is landscape or tablet.

Links

https://developer.android.com/guide/practices/screens_support.html

Screenshot
landscape

Before
After

tablet

Before
After

:eyes:

LGTM! Thanks for good improvement 👏


Change dims keyword of sum functions to dim

I have come across a case where linopy does not adhere to the naming of xarray and this problem can only be solved with an unnecessary type check. Here is a short linear equation that should work with both pure xarray instances and a xarray/linopy mix.
For this let $$func(A,x,\tilde x) = A^T(x-\tilde x) = A^Tx - A^T\tilde x = u$$
where

$A \in \mathbb{R}^n \times \mathbb{R}^m$ is some (xarray) data matrix
$\tilde x \in \mathbb{R}^n$ is a (xarray) data array
$x \in \mathbb{R}^n$ is EITHER a (linopy) variable OR a (xarray) data array
$u \in \mathbb{R}^m$ is the result.

The following minimal example shows that a type check must be made in the implementation of $func$. The reason for this is only the different naming of dim and dims:
import linopy
import xarray as xr

def func(A, x, x_tilde):
    tmp = A * x - A * x_tilde
    if type(tmp) == xr.DataArray:
        return tmp.sum(dim="X")
    return tmp.sum(dims="X")

dimX = xr.DataArray(["x1", "x2", "x3"], dims=["X"])
dimU = xr.DataArray(["u1", "u2", "u3", "u4"], dims=["U"])
A = xr.DataArray(
    [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]],
    coords={"X": dimX, "U": dimU},
)
x_tilde = xr.DataArray([10, 20, 30], dims=["X"])

x_as_variable = linopy.Model().add_variables(coords=[dimX])
x_as_value = xr.DataArray([1, 2, 3], coords=[dimX])

print(func(A, x_as_variable, x_tilde))
print("===")
print(func(A, x_as_value, x_tilde))

with the expected output
LinearExpression (U: 4):
------------------------
[u1]: +1 var0[x1] + 2 var0[x2] + 3 var0[x3] - 140
[u2]: +1 var0[x1] + 2 var0[x2] + 3 var0[x3] - 140
[u3]: +1 var0[x1] + 2 var0[x2] + 3 var0[x3] - 140
[u4]: +1 var0[x1] + 2 var0[x2] + 3 var0[x3] - 140
===
<xarray.DataArray (U: 4)>
array([-126, -126, -126, -126])
Coordinates:
  * U        (U) <U2 'u1' 'u2' 'u3' 'u4'

In my opinion the dimskeyword should be renamed to dim. Of course this is a breaking change, but with a DeprecationWarning in the long and an alias in the short run this should be no problem.
I'm happy to submit a PR if this is something worth doing.

@leuchtum thank you for your issue. You are totally right, I and cannot remember why I did not named the keyword consistently with xarray... :(
I would be very happy about a PR!


Feature/attempt listener

This creates an AttemptListener that can be used as a callback to notify clients when a pin challenge has been failed/succeeded and how many attempts have been tried.
al.setAttemptListener(new AppLock.AttemptListener() {
@Override
public void onFailure(int attempts) {
// code
}
@Override
public void onSuccess(int attempts) {
// code
}
});

The PR for 'attempt listening' is a much better solution. Closing this.


[Question] Setting HTTP headers for a URL source

With better_player package I can set HTTP headers for a URL source as following:
      var newSource = BetterPlayerDataSource(
        BetterPlayerDataSourceType.network,
        url,
        drmConfiguration: null,
        headers: {"Cookie": cookie},
      );

I tried the same with the extras parameter but could not play the same URL source successfully:
                      player.open(
                        Playlist(
                          [
                            Media(_video.text, extras: {
                              "Cookie": cookie
                            }),
                          ],
                        ),
                      );

Is there a way to set HTTP headers for a URL source?

it's not exposed but you can use this
https://github.com/alexmercerind/media_kit/blob/1074b66694f6c6c858153ec7b779c40cdadcf1f6/media_kit_test/lib/main.dart#L403
with setting this
https://mpv.io/manual/master/#network

@Quackdoc Thank you very much. It worked!
                      if (player.platform is libmpvPlayer) {
                        (player.platform as libmpvPlayer)
                            .setProperty("audio-files", _audio.text);
                        (player.platform as libmpvPlayer).setProperty(
                            "http-header-fields", "Cookie: $cookie");
                      }
                      player.open(
                        Playlist(
                          [
                            Media(_video.text),
                          ],
                        ),
                      );

closing this for now, but im starting to wonder if there should be a more elegant way to expose these properties. possibly on a per source basis instead of the whole playlist

FYI: work in the macOS pull-request [WIP], is not ready for commercial usage.
I assume default INNA libmpv shared libraries include GPL code.

@alexmercerind Thanks for the reminder. Just experimenting for my personal use.


[App Config] Add the prefix if not present for feature flags

Resolves https://github.com/Azure/azure-sdk-for-js/issues/14686
Adds the prefix if not present in the keys for feature flags
Part of https://github.com/Azure/azure-sdk-for-js/issues/15135

/check-enforcer override


chore(*): fix lint & CI failures

Feature or Problem

CI for wash E2E tests is failing due to rust-std not being installed -- rustc-hash can't find std::. We're using swatinem/rust-cache with a shared key, so changing the rust-toolchain.toml should be enough to trigger a new build (and ensure that std is in there going forward).
Related Issues

Release Information

Consumer Impact

Testing

Unit Test(s)

Acceptance or Integration

Manual Verification

Closing this in favor of a new PR -- the rustc-hash was fixed with changes to upstream


Is there any config that needs to be applied?

Is there any config that needs to be applied?
I installed this but I don't see any highlighting or added functionality in my .html files that have references to partials.
If it's relevant at all, my vscode sees these files as Golang HTML Template files (vs plain html files)

Hi, @BrianLeishman, which extension are you using for getting Golang HTML Template files? The extension currently only works for html files. I can include the Golang HTML Template as well, but as it is not a standard format which VSCode supports, I need to know the internal language name to get it working.


not able to reveal NFTs

Hello,
So I was able to mint and buy all of the NFTs that i created to then be able to sell them but for some reason i am not able to reveal the NFTs. Would this be because of the csv file i created? The traits are all showing correctly and everything seems to be good but it just doesnt let me reveal them.

this repostiory is only for opensea's stream-js, you may have better luck asking in the opensea discord dev channel or opening a support ticket.


Remove print statements for boto warning

views/s3.py should remove print statements warning that boto is not installed. This should use a proper logger so that this can be silenced.
Or remove altogether. I'm using the local backend and getting these warnings for some reason.

Just a ping on this - if you've got time for the PR, it's still welcome!


Fix framework warnings

While playing with this task https://github.com/basicrum/backoffice/issues/51 and running unit tests I noticed that we are getting deprecation notices:
Remaining direct deprecation notices (1)

  1x: The "Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand" class is deprecated since Symfony 4.2, use "Symfony\Component\Console\Command\Command" with dependency injection instead.
    1x in SimpleImportTest::setUp from App\Tests\BasicRum\Beacon

Remaining indirect deprecation notices (5)

  2x: The "twig.exception_controller" configuration key has been deprecated in Symfony 4.4, set it to "null" and use "framework.error_controller" configuration key instead.
    2x in SimpleImportTest::setUp from App\Tests\BasicRum\Beacon

  1x: The "App\Command\CreateSuperadmintUserCommand" class extends "Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand" that is deprecated since Symfony 4.2, use {@see Command} instead.
    1x in SimpleImportTest::setUp from App\Tests\BasicRum\Beacon

  1x: Enabling the "sensio_framework_extra.router.annotations" configuration is deprecated since version 5.2. Set it to false and use the "Symfony\Component\Routing\Annotation\Route" annotation from Symfony itself.
    1x in SimpleImportTest::setUp from App\Tests\BasicRum\Beacon

  1x: The "Symfony\Component\HttpKernel\EventListener\ExceptionListener" class is deprecated since Symfony 4.4, use "ErrorListener" instead.
    1x in SimpleImportTest::setUp from App\Tests\BasicRum\Beacon

Other deprecation notices (5)

  5x: Creating Doctrine\ORM\Mapping\UnderscoreNamingStrategy without making it number aware is deprecated and will be removed in Doctrine ORM 3.0.
    1x in SimpleImportTest::setUp from App\Tests\BasicRum\Beacon
    1x in UserAgentImportTest::setUp from App\Tests\BasicRum\Beacon
    1x in DeviceTypeTest::setUp from App\Tests\BasicRum\Layers\DataLayer\Query
    1x in VisitGenerateTestCase::testSeparatingVisitDurationWhenVisitExpiredMoreThanOnceInSameScannedChunk from App\Tests\BasicRum\Task
    1x in VisitGenerateTestCase::testClosingVisitThatHasNoOtherPageViewsButLastScannedViewForOtherVisitsHasGreaterTimeThanVisitExpireTime from App\Tests\BasicRum\Task

I would like to try to resolve the problems once with merge: https://github.com/basicrum/backoffice/pull/52

Created pull request pr #55

Hello @korzol
I checked the PR and works fine but I still get one warning when I start the unit tests:
Remaining indirect deprecation notices (1)

  1x: Enabling the "sensio_framework_extra.router.annotations" configuration is deprecated since version 5.2. Set it to false and use the "Symfony\Component\Routing\Annotation\Route" annotation from Symfony itself.
    1x in SimpleImportTest::setUp from App\Tests\BasicRum\Beacon

Could you take a look?
Also when I do composer update I get this:
Package symfony/webpack-encore-pack is abandoned, you should avoid using it. Use symfony/webpack-encore-bundle instead.
Package zendframework/zend-code is abandoned, you should avoid using it. Use laminas/laminas-code instead.
Package zendframework/zend-eventmanager is abandoned, you should avoid using it. Use laminas/laminas-eventmanager instead.

Could you check this as well?

Hello @ceckoslab

I still get one warning when I start the unit tests

Fixed this.
Working on another ones

@ceckoslab  Just pushed latest fixes.
However there is one small issue I am not sure how to deal with:
symfony/webpack-encore-bundle add public/build directory into .gitignore. However public/build/manifest.json is required for normal website functionality. At least empty one, like this:
$ cat manifest.json
{}

If we leave it as is (ignored) then we need to add a note to installation process
Kindly advice how to proceed with this one

Thanks @korzol
It works well, I merged the PR!


[FEATURE] Addition in About Us Section

We can add some lines with an image aligned right of the text in About Us section and what is our website about a little bit above the Meet Our Members part

I would like to work on this.

@Vanshiii203 Go ahead


does knife search ordering work?

I've tried to query a sorted list of nodes from chef but can't get it to work. I've tried multiple syntaxes but couldn't figure out a working order expression. I'm not sure if ordering is not working at all, or if I was just unable to find the correct syntax. I'm using chef-client 12.5.1 with chef server 12.5.1-1.
The most intuitive syntax i tried was:
# knife search node os:linux -o name -i
53 items found

act.<anonymized>.at
btv.<anonymized>.at
mis.<anonymized>.at
obk.<anonymized>.at
obk.<anonymized>.at
bks.<anonymized>.at
lnz.<anonymized>.at
obk.<anonymized>.at
nwv.<anonymized>.at
obk.<anonymized>.at
...

Can you help me with the correct syntax and/or add an example to https://docs.chef.io/knife_search.html?
Thanks in advance,
Lothar

knife search works fine, but sorting search data has been deprecated for a long time. You need to sort it on your side.

May I suggest the removal of the option from knife search and the documentation then? An option without function doesn't make any sense to me.

I'm +1 on removing the option or at least adding a warning if we are worried about breaking people's existing scripts.

How is this not fixed yet?  And how is this marked as fixed?  As of chef version 12.18.31, this is still in the documentation, both in man and on your website, as a feature, yet it's not there.
Also this would be a really useful feature.  I wish it wasn't removed.

@glajchs Unfortunately implementing configurable ordering is difficult in a paginated API. It wasn't removed so much as it never worked in the first place (back in the Ruby Chef Server days long ago).

Ah, that's a good reason it's not supported.  Let's just get it out of the docs and it'll be good!


DROP DB Performance improvements

Description
Similar fixes to Create DB PR
Relies on this as well PR LINK
We assume the database dbo role when dropping schema and role owned objects.

DROP SCHEMA -  the owner can drop the schema (and thereby all contained objects) even if they do not own some of the objects within the schema.
DROP OWNED BY role1, role2 - drops all the objects within the current database that are owned by one of the specified roles. Any privileges granted to the given roles on objects in the current database or on shared objects (databases, tablespaces, configuration parameters) will also be revoked.

Since we have assumed the dbo role, dropping the PG database privileges granted to dbo is not possible & hence we handle it with a new revoke statement with sysadmin as the assumed role.

DROP DB
After
Before

DBs2990
15 ms
NA

DBs1000
7 ms
329 ms

DBs500
6 ms
98 ms

DBs10
4 ms
6 ms

Issues Resolved
[BABEL-4438]
Signed-off-by: Tanzeel Khan<EMAIL_ADDRESS>Check List

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

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

DROP SCHEMA - the owner can drop the schema (and thereby all contained objects) even if they do not own some of the objects within the schema.
-> Would add some reference where is this assume comes from.
DROP OWNED BY role1, role2 - drops all the objects within the current database that are owned by one of the specified roles. Any privileges granted to the given roles on objects in the current database or on shared objects (databases, tablespaces, configuration parameters) will also be revoked.
-> Would add some reference where is this assume comes from.


Accessibility : Repetitive and unclear heading text (Failure WCAG 2.4.6)

Unclear and repetitive headings are confusing and overwhelming for a screen reader user. Examples of failures found:
1) Contact us, Contact [Institution] : Repetitive headings with different level
,

2) Featured (invisible),  Features : Similar naming confuses the user and are overwhelming for a screen reader user.
Related WCAG technique:
G130: Providing descriptive headings
Canada.ca Style Guide: 5.1 Write useful page titles and headings

@RubyDo. Would you be able to give us a bit more info?

Contact us vs Contact [Institution]. "Contact us" is a H2 in the template, while "Contact [Institution]" is not heading. There is a "Contact us" listed as an H3 in a guidance section - that section wouldn't be on a live page for the public. I don't think there's an issue?

2)Featured (invisible) vs Features: this one I can see. Do you have a proposal for the invisible heading? Would "News and features" work?
Thanks!

Oh, sorry, on point no 1: the "Contact [Institution]" currently IS a heading - we will change that so it's just a bulleted item. I think that would take care of this one?

Sorry, I got this all wrong... On point 2:
There is a Featured at the top (featured link), and Features at the bottom.
If we rename the first one (the invisible link) "Featured link", would it take care of it?

Hello @quidampepin
https://design.canada.ca/coded-layout/institutional_landing_page_guidance.html
Re:1, yes removing the  and putting the three links in a list and wrapping it in a section tag would solve all issues. Here is a sample of code
`Contact Us

Contact [Institution]
Top contact task 2
Top contact task 3
 `
Re2: I would remove the first one (invisible)
Featured
 and the preceding section In my opinion, the use of this blue section may vary from an organization to the other depending on the context
Context 1:
Check attached -

and this is when the content is related to the H1, then those links would blend well with the H1 content and therefore the code would have no section or invisible heading. Check photo attached
e.g. `[Institution name]
Short description of the institution’s mandate.
  [...]  [...]  `
Context 2: like the

And this is if there is a need to shed a light on something urgent then use the topic to create a descriptive VISIBLE heading h2
`
Short description of the institution’s mandate.
Super task

Financial assistance of COVID-19
  [...]  [...]
`

@RubyDo The headings have been updated to be more specific.
The featured link will remain a single item. It's intended use is a single transient promotion, like CRA during tax season warning of fraud. It is not meant to be a list of multiple items. This could be confusing if it looks like a secondary list of MR items - such changes would need to be tested and validated before being considered. We recognize with COVID-19 there are additional links and messages that need to come forward. What we've seen from testing is that banding alone has been quite effective in sectioning COVID content from everyday content (although the ideal is always to integrate it into the relevant content, but this takes time):
https://www.canada.ca/en/public-health/services/diseases/coronavirus-disease-covid-19.html
http://test.canada.ca/covid-19-guidance/proto/contact-us.html


How to check that which card is move to which lane

I want to check that which card is moving to one lane to other lane is there any option to checking the card current positions.
@rcdexta
Thanks you.!
Mehul Jariwala

Board's event：
move card:
handleDragEnd = (cardId, sourceLaneId, targetLaneId, newPosition, _card){
...
}
move lane:
handleLaneDragEnd = (removedIndex, addedIndex){
...
}

@mehuljariwala, like @changyu72 , there is a method provided by the board called handleDragEnd, which automatically receives certain parameters like targetLaneId, which is what you are looking for. Whatever you need to do with this value, process it and/or save it to the state within that function.

@mehuljariwala It sounds like you've got a solution to your problem, so I'm going to close this issue for now.
Feel free to re-open it if there's still something wrong, thanks!


[MicroAuth] HTTP status code: 403 Please try again later.

Using the latest maintenance build, I am experiencing a 403 error after attempting to start the application. Waited approximately 1 hour and tried again to no avail. I am able to use the Mojang API to check available usernames, not quite sure why access is being forbidden (potentially something to do with a MS account?). Config below.
config.toml
[account]
username =<EMAIL_ADDRESS>password = "my_password"
# Leave the rest empty if you do not have security questions
sq1 = ""
sq2 = ""
sq3 = ""

[config]
offset = 0
auto_offset = false
spread = 0
microsoft_auth = true
gc_snipe = true
change_skin = false
skin_model = "slim"
skin_filename = "example.png"
# Name queueing example:
# name_queue = ["Marc", "Dream"]
name_queue = ["Marc", "Dream"]

Marc Dream are just example usernames.

Do you live in the US or Japan. I'm checking Cloudflare logs because it is blocking your ip for some reason.

Alright it's my fault. I misconfigured the firewall for my API. Try again, I'm terribly sorry.

Seems to be working now. Thank you.


add clones selector

Current coverage is 88.68% (diff: 100%)

Merging #4694 into master will increase coverage by <.01%

@@             master      #4694   diff @@
==========================================
  Files           121        121
  Lines         73855      73868    +13
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          65500      65513    +13
  Misses         8355       8355
  Partials          0          0

Powered by Codecov. Last update 69c00bc...04bc840

How about repeat, as no actual copying / cloning is performed?

How about repeat, as no actual copying / cloning is performed?

repeatSlice is in #4695 .

fixed

@DmitryOlshansky @klickverbot Could you please help to move forward with this and #4693, #4698. This PR is required to build good examples for the future concatenation utilities, other 2 are trivial and will help to build unittests for ndslice too.

LGTM I'm not sure about the name though. The only thing that springs to mind is Episode II: Attack of the Clones :)

Episode II: Attack of the Clones :)

barf

LGTM I'm not sure about the name though.

repeateSlice is another selector, see #4695

will open after ndslice.algorithm be merged


dev up client manifest fails to spawn a working pod

the up manifest under dev fails with the following:
kubectl -n observatorium logs observatorium-xyz-observatorium-up-5978d796c-8p555
level=error caller=main.go:153 ts=2020-05-27T07:59:26.4076684Z name=up msg="could not parse command line flags" err="--queries-file is invalid: open /etc/up/queries.yaml: no such file or directory"

This is not being used in CI, is it there by mistake?
This should either be fixed or removed.
P.S.
The up pod created by the job does not use --queries-file

@krasi-georgiev I think you last touched this no? (cc @kakkoyun as I think you reviewed it so maybe you're familiar with it :) )

checking


Make it browserify-friendly

Because main.js uses ES2015, this tells browserify to compile it with babelify first. I wish there was a way to simply override your package.json from my project :confused:

ah, can not see any problem with having this in there, thanks!


A strange issue when run on a real phone

When i integrate the code to my project as the usage , then run on a real phone. then the android studio showed me this:
E/dalvikvm: Could not find class 'com.rom4ek.arcnavigationview.ArcNavigationView$1', referenced from method com.rom4ek.arcnavigationview.ArcNavigationView.calculateLayoutAndChildre
It makes me being at sea , could give me some suggestions

Hi there. Could you post a full stacktrace of the error?

After searching for a while on the stackoverflow, the possible issue, I think, could be the compatibility of NavigationView. On  Android API 5.0.0 it ran ok ,while it failed on  Android API 4.4.4.
It functioned well on both API version above when i replaced NavigationView with a general Layout such as LinearLayout .
I ran the demo of ArcNavigationView, it functioned well on both Android API 5.0.0 and Android API 4.4.4. So i guess the possible issue could be the settings of my project.
Well, could you give me some suggestions.
When i used NavigationView as the left side view. the full stacktrace of the error is here.
03-18 18:09:38.575 27885-27885/com.nanshanstudio.dispalymd I/InstantRun: Instant Run Runtime started. Android package is com.nanshanstudio.dispalymd, real application class is null.
03-18 18:09:38.580 27885-27885/com.nanshanstudio.dispalymd W/InstantRun: No instant run dex files added to classpath
03-18 18:09:38.620 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.view.Window$Callback.onProvideKeyboardShortcuts, referenced from method android.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcuts
03-18 18:09:38.620 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve interface method 21420: Landroid/view/Window$Callback;.onProvideKeyboardShortcuts (Ljava/util/List;Landroid/view/Menu;I)V
03-18 18:09:38.620 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
03-18 18:09:38.620 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
03-18 18:09:38.620 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve interface method 21422: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
03-18 18:09:38.625 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
03-18 18:09:38.625 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve interface method 21426: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
03-18 18:09:38.625 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
03-18 18:09:38.625 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve virtual method 726: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
03-18 18:09:38.625 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
03-18 18:09:38.625 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve virtual method 748: Landroid/content/res/TypedArray;.getType (I)I
03-18 18:09:38.710 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm-heap: Grow heap (frag case) to 39.016MB for 11933268-byte allocation
03-18 18:09:38.780 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable
03-18 18:09:38.780 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve virtual method 689: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
03-18 18:09:38.780 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity
03-18 18:09:38.780 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve virtual method 691: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
03-18 18:09:38.785 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.content.Context.getColorStateList, referenced from method android.support.v7.content.res.AppCompatResources.getColorStateList
03-18 18:09:38.785 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve virtual method 455: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList;
03-18 18:09:41.035 27885-27885/com.nanshanstudio.dispalymd I/dalvikvm: Could not find method android.widget.FrameLayout., referenced from method com.ashokvarma.bottomnavigation.BottomNavigationBar.
03-18 18:09:41.035 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve direct method 21865: Landroid/widget/FrameLayout;. (Landroid/content/Context;Landroid/util/AttributeSet;II)V
03-18 18:09:41.040 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: VFY: unable to resolve static field 10293 (BOUNDS) in Landroid/view/ViewOutlineProvider;
03-18 18:09:41.085 27885-27885/com.nanshanstudio.dispalymd W/ResourceType: Failure getting entry for 0x7f02005d (t=1 e=93) in package 0 (error -75)
03-18 18:09:41.085 27885-27885/com.nanshanstudio.dispalymd W/ResourceType: Failure getting entry for 0x7f02005e (t=1 e=94) in package 0 (error -75)
03-18 18:09:41.085 27885-27885/com.nanshanstudio.dispalymd W/ResourceType: Failure getting entry for 0x7f020062 (t=1 e=98) in package 0 (error -75)
03-18 18:09:41.085 27885-27885/com.nanshanstudio.dispalymd W/ResourceType: Failure getting entry for 0x7f02005f (t=1 e=95) in package 0 (error -75)
03-18 18:09:41.085 27885-27885/com.nanshanstudio.dispalymd W/ResourceType: Failure getting entry for 0x7f020061 (t=1 e=97) in package 0 (error -75)
03-18 18:09:41.085 27885-27885/com.nanshanstudio.dispalymd W/ResourceType: Failure getting entry for 0x7f020060 (t=1 e=96) in package 0 (error -75)
03-18 18:09:41.085 27885-27885/com.nanshanstudio.dispalymd W/ResourceType: Failure getting entry for 0x7f02005d (t=1 e=93) in package 0 (error -75)
03-18 18:09:41.090 27885-27885/com.nanshanstudio.dispalymd W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41e35c50)
03-18 18:09:47.075 27885-27885/com.nanshanstudio.dispalymd I/Process: Sending signal. PID: 27885 SIG: 9
the layout file I used below

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/navigation_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<include
    android:id="@+id/tv_content"
    layout="@layout/drawer_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

<com.rom4ek.arcnavigationview.ArcNavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@android:color/white"
    app:itemBackground="@android:color/white"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"
    app:arc_cropDirection="cropInside"
    app:arc_width="96dp"/>

//the layout refer to LinearLayout
<include
    layout="@layout/drawer_menu_right"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:layout_gravity="start" />

<include
    layout="@layout/drawer_menu_right"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="end" />

</android.support.v4.widget.DrawerLayout>

As you can see from the log, you have problems with Instant Run. So try to disable it, and then run, or try to update gradle/instant run version. I will close the issue as it's not relevant to my library.


Missing validation against parameter name format

Expected Behavior
This doc mentioned that the parameter names should follow the following rules:

Must only contain alphanumeric characters, hyphens (-), underscores (_), and dots (.).
Must begin with a letter or an underscore (_).

For example, foo.Is-Bar_ is a valid parameter name, but barIsBa$ or 0banana are not.

Therefore, there should be existing validation against parameter names that users specified. For example, the following parameter names are invalid, which should be caught and reported by the admission webhook when the taskrun yaml is applied.
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  generateName: validation-
spec:
  taskSpec:
    params:
      - name: 0foo
        default: "bar1"
      - name: a b
        default: "bar2"
      - name: $x
        default: "bar3"
    results:
      - name: echo-output
        description: "successful echo"
      - name: bad-echo
        description: "bad echo behaviour"
    steps:
      - name: echo-params
        image: bash
        script: |
          set -e
          echo $(params.0foo) $(params.a b) $(params.$x) | tee $(results.echo-output.path)
          echo $(params.0fo) | tee $(results.bad-echo.path)

Actual Behavior
taskResults output
  taskResults:
  - name: bad-echo
    value: |2+

  - name: echo-output
    value: |
      bar1 bar2 bar3

When you apply the above taskrun yaml, it can be successfully applied, which should've been reported because of invalid param name format instead.
From taskrun result, echo-output is populated with values bar1 bar2 bar3, which should not happen because the parameter names are all invalid i.e. 0foo starts with 0, a b has a space in the middle, $x starts with $
In addition, the taskrun result bad-echo is shown in the taskResults list under status, but has some confusing value +2.

Steps to Reproduce the Problem

Save above yaml code into a file, and apply it
see the taskrun
kubectl get tr <TASKRUN_NAME> -o yaml
find status -> taskResults

Additional Info
Kubernetes version:
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.1", GitCommit:"86ec240af8cbd1b60bcc4c03c20da9b98005b92e", GitTreeState:"clean", BuildDate:"2021-12-16T11:41:01Z", GoVersion:"go1.17.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.6-gke.1503", GitCommit:"2c7bbda09a9b7ca78db230e099cf90fe901d3df8", GitTreeState:"clean", BuildDate:"2022-02-18T03:17:45Z", GoVersion:"go1.16.9b7", Compiler:"gc", Platform:"linux/amd64"}
WARNING: version difference between client (1.23) and server (1.21) exceeds the supported minor version skew of +/-1

Tekton Pipeline version:
Output of tkn version or kubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'
Client version: 0.21.0
Pipeline version: devel

Also found that a param without a name also works, which is weird
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  generateName: validation-
spec:
  taskSpec:
    params:
      - name:
        default: "bar1"
    results:
      - name: echo-output
        description: "successful echo"
    steps:
      - name: echo-params
        image: bash
        script: |
          set -e
          echo $(params.) | tee $(results.echo-output.path)

Thoughts

The purpose of the function ValidateVariableP called in task_validation.go is to use extractVariablesFromString to parse the name part from the string $(params.<NAME>) and check if the name is one of param names in vars - a set of all param names in task spec.
extractVariablesFromString seems to extract param names that follow the two rules mentioned at the beginning of the issue using the pattern it composed at the function's beginning.
The bug is that when the param name is invalid format, extractVariablesFromString will return empty, and ValidateVariableP will return nil, which means it cannot catch the invalid param name. When the validation is done without any error, the taskrun is actually executed and when 0fo is actually referenced in echo $(params.0fo) | tee $(results.bad-echo.path), it's found that oh it doesn't exist in task's params list and some unexpected behaviour appears.  taskResults:
  - name: bad-echo
    value: |2+

@chuangw6 thank you for this report, it sounds like validation there can use some improvement and unit tests :)
Do you plan to work on a fix for this or shall we mark it as help wanted?

Hi @afrittoli ,
Yeah, I am happy to look into this.
Just wonder why two rules for param name forma are in place. Are we restricting this to avoid something or is it just a convention for variable names? Can you help me understand this?
Thank you!

Proposal: disallow the usage of dots(.) in param names
This doc mentioned that the parameter names should follow the following rules:

Must only contain alphanumeric characters, hyphens (-), underscores (_), and dots (.).
Must begin with a letter or an underscore (_).

But we need to disallow the usage of dots(.) in param names.
Reason:
TEP-0075 proposes supporting object/dictionary type parameters that will have keys defined in properties section. See the parameter foo in the following example. And to reference a particular field in this object parameter we can use dot notation i.e. $(params.foo.key1), which is mentioned here.
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  generateName: object-param-test-
spec:
  taskSpec:
    params:
      - name: foo
        properties:
          key1: {}
          key2: {}
        default:
          key1: "val1"
          key2: "val2"
      - name: foo.key1
        default: "tricky"
    results:
      - name: echo-output
    steps:
      - name: echo-params
        image: bash
        script: |
          set -e
          echo $(params.foo.key1) | tee $(results.echo-output.path)

This reference approach for a key of the object parameter will have conflicts when it appears together with a parameter whose name contains dot(.) such as foo.key1. For example, when we use $(params.foo.key1), it's impossible to know whether it's referencing the particular key key1 of the object parameter named foo OR it's referencing a standalone parameter named foo.key1. This confusion is caused by the fact that containing a dot in parameter name is allowed currently.
Therefore, we should not allow to use dot(.) in parameter names.

/assign

Result name and Param name
The interpretation of this regex seems that result name format has same rules with param name except that a rule (not mentioned for param names) which is result name shouldn't end with -, _ or ..
We should make sure result name and param name follow same rules and enforce that in param names.


Align granules to VEDA notebook guidelines

EPIC
#263
Description
The granules notebook should be reviewed using the this guidance and includes the following components:

Style
Rendering Information
Notebook Sections

Acceptance Criteria (Tasks):

[x] Style should be consistent with guidance provided
[x] Rendering information should be complete and accurate. If there is no author/date information available, consult MAAP leads @wildintellect @abarciauskas-bgse for guidance
[x] Ensure notebooks include the recommended standard sections

Approved and merged


powershell_package regression in 16

Description
powershell_package resource seems to not work in Chef 16.
Chef Version
16.6.14

Platform Version
Ubuntu 18.0

Replication Case
This:
powershell_package 'ComputerManagementDsc' do
  action :install
end

Works fine in 15.10.12 but not in 16.6.14
Client Output
[2020-10-15T19:19:48-07:00] INFO: Processing powershell_package[ComputerManagementDsc] action install (vcrs_windows::dsc line 1)

================================================================================
Error executing action `install` on resource 'powershell_package[ComputerManagementDsc]'
================================================================================

Chef::Exceptions::Package
-------------------------
No candidate version available for ComputerManagementDsc

Resource Declaration:
---------------------
# In C:/chef/cache/cookbooks/vcrs_windows/recipes/dsc.rb

  1: powershell_package 'ComputerManagementDsc' do
  2:   action :install
  3: end
  4:

Debug output added nothing but here's some trace output:
[2020-10-15T20:11:08-07:00] TRACE: Provider for action install on resource powershell_package[ComputerManagementDsc] is Chef::Provider::Package::Powershell
Get-Package : No package found for 'ComputerManagementDsc'.^M
At line:1 char:3^M
+ ( Get-Package 'ComputerManagementDsc' -Force -ForceBootstrap -Warning ...^M
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^M
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...lets.GetPackage:Ge ^M
   tPackage) [Get-Package], Exception^M
    + FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.C ^M
   mdlets.GetPackage^M
 ^M
Find-Package : No match was found for the specified search criteria and package ^M
name 'ComputerManagementDsc'. Try Get-PackageSource to see all available registered ^M
package sources.^M
At line:1 char:3^M
+ ( Find-Package 'ComputerManagementDsc' -Force -ForceBootstrap -Warnin ...^M
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^M
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...ets.FindPackage:Fi ^M
   ndPackage) [Find-Package], Exception^M
    + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageM ^M
   anagement.Cmdlets.FindPackage^M
 ^M
[2020-10-15T20:11:34-07:00] TRACE: Token Elevation Type: TokenElevationTypeDefault

================================================================================
Error executing action `install` on resource 'powershell_package[ComputerManagementDsc]'
================================================================================

Chef::Exceptions::Package
-------------------------
No candidate version available for ComputerManagementDsc

Resource Declaration:
---------------------
# In C:/chef/cache/cookbooks/vcrs_windows/recipes/dsc.rb

  1: powershell_package 'ComputerManagementDsc' do
  2:   action :install
  3: end
  4:

Compiled Resource:
------------------

Stacktrace

What version of windows are you running that resource on? I'm guessing it is 2016 or under? Powershell will use tls1.0 by default on OS versions prior to 2019. Recently the powershell gallery requires tls 1.2. Unfortunately when you issue package commands, the error message does not just tell you you are on a unsupported tls. Now the fact that 15.10.12 works is actually a bug and it really doesn't work. If you check to see if the package is actually installed after the converge, you will see that it is still not present even though the converge appears successful.
You can set this registry value to force tls1.2: Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

Windows 10. Same regression on 2012. Where's the TLS coming from, it's all local commands?

On windows 10 it will depend on the build and I don't know what the cutoff was. I was not able to repro on my windows 10 but I have the latest release build. I would expect the same error on 2012 (assuming the tls settings are unchanged). If you run Get-Package after it "works" on v15, do you see the ComputerManagementDsc package included?
The commands are powershell package management commands which are using the .Net framework under the hood and using its TLS config.

looks like this was the PR that fixed the error suppression in v15

Huh. It is not in fact listed. Yet, I'm able to use that DSC....

How about running Get-DscResource -Module ComputerManagementDsc? Does that show it?

PS C:\Users\phil> Get-DscResource -Module ComputerManagementDsc
WARNING: There are no modules present in the system with the given module
specification.
PS C:\Users\phil>

What is the resource from that package that you are able to use?

  dsc_resource 'install ssh-server' do
    resource :windowscapability
    module_name 'ComputerManagementDsc'
    property :name, 'OpenSSH.Server~~~~<IP_ADDRESS>'
    property :ensure, 'Present'
  end

Oh, I apologize. I was running that on a machine where we weren't using that (2012). Here's a machine where we were (10):
PS C:\Users\root> Get-DscResource -Module ComputerManagementDsc

ImplementedAs   Name                      ModuleName                     Version
-------------   ----                      ----------                     -------
PowerShell      Computer                  ComputerManagementDsc          8.4.0
PowerShell      IEEnhancedSecurityConf... ComputerManagementDsc          8.4.0
PowerShell      OfflineDomainJoin         ComputerManagementDsc          8.4.0
PowerShell      PendingReboot             ComputerManagementDsc          8.4.0
PowerShell      PowerPlan                 ComputerManagementDsc          8.4.0
PowerShell      PowerShellExecutionPolicy ComputerManagementDsc          8.4.0
PowerShell      RemoteDesktopAdmin        ComputerManagementDsc          8.4.0
PowerShell      ScheduledTask             ComputerManagementDsc          8.4.0
PowerShell      SmbServerConfiguration    ComputerManagementDsc          8.4.0
PowerShell      SmbShare                  ComputerManagementDsc          8.4.0
PowerShell      SystemLocale              ComputerManagementDsc          8.4.0
PowerShell      TimeZone                  ComputerManagementDsc          8.4.0
PowerShell      UserAccountControl        ComputerManagementDsc          8.4.0
PowerShell      VirtualMemory             ComputerManagementDsc          8.4.0
PowerShell      WindowsCapability         ComputerManagementDsc          8.4.0
PowerShell      WindowsEventLog           ComputerManagementDsc          8.4.0

And that was, in fact installed by that powershell_package DSC. It also shows up in get-package:
ComputerManagementDsc          8.4.0            https://www.powershellgallery... Pow

So it's possible that:

2012 - the install was always failing, silently, and we didn't notice because we weren't using that resource
10 - it was always working because it's a new-enough build, but I hadn't tried an upgrade there, so this failure wouldn't show up there.

Not entirely certain. I can add a :registry dsc_resource to set the key you mention to work around all of this and see if that works.

Yeah I think that would be the right work around.

It seems to me like either the resource should set that, or provide a better error or ... I'm not entire certain what other options are. As it stands, it seems bad.

I probably would not want to make a magical registry edit (even though technically people should edit their registry). But we could prepend the PS command with [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 which will set it for the shell that chef has spawned.


export-ignore github workflows

.github folder should not be in created projects

Nice catch, thanks 👍