What is the status of Next Branch

Hi is the next branch stable, usable, etc ?
Looking to do a talk on new HTTP API, looking for working clients.
Vladimir

Thanks for asking! The "next" branch is not stable. A lot of the
scheduler and executor http v1 API support is there now though. The client
interface is pretty low level. We'll probably implement a higher-level API
at some point (maybe something to make it easier to port frameworks written
against the current API in master).
The Go interfaces are subject to change pending review. So while it's
totally possible to play around with the bits people can expect probably
breakage at some point.
The http v1 specs for scheduler and executor are only beta, and still
experimental as far as Mesos itself is concerned. One of the next bits to
deal with is authentication. And I don't think anyone has tested the SSL
stuff I added. There's still some bugs at the Mesos level w/ respect to the
HTTP API. YMMV.
All that said ... the example scheduler and executor in the cmd/ directory
seem to function as intended.
HTH
On Wed, Apr 20, 2016 at 11:31 AM, Vladimir Vivien<EMAIL_ADDRESS>wrote:

Hi is the next branch stable, usable, etc ?
Looking to do a talk on new HTTP API, looking for working clients.
Vladimir
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/mesos/mesos-go/issues/240

Awesome @jdef . Yes, that helped.  Thanks.

@jdef I can see there has been a lot of activity with the next branch since I last took a look at it. I had a couple of questions about this as well.

If I chose to implement a framework on the current mesos-go implementation, when the Next branch does get merged to master, in your opinion how much work will it be to adapt my framework to the Next code base?
I am curious as to when you think Next will be ready to go mainstream for use? What is your plan for a date to releasing this?

A1. It'll likely take some significant work unless there's a shim/compatibility layer added to the next/ API. the API in master defines verbose callback style interfaces and is quite different than the API in next/.  PR's for such a compat layer are welcome!
A2. goal has been to have an initial release of the next/ API sometime this June. Might get pushed to July, but hopefully not much later.
xref #245

thanks for the info

Since Mesos 1.0 is out with the HTTP scheduler/executor API being blessed as stable, what's the timeline for making the mesos-go scheduler/executor client a stable starting point to build frameworks on?

I'm certainly glad to see interest here! I'd like to do some minor
clean up of the mesos-go/next API, and would also like to sync to the
latest mesos v1 protobufs before an initial beta release. It's possible
that an initial release may land in September.
Is lack of a stable Golang-based mesos v1 API blocking your development
efforts?
On Fri, Aug 19, 2016 at 10:05 AM, R.B. Boyer<EMAIL_ADDRESS>wrote:

Since Mesos 1.0 is out with the HTTP scheduler/executor API being blessed
as stable, what's the timeline for making the mesos-go scheduler/executor
client a stable starting point to build frameworks on?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mesos/mesos-go/issues/240#issuecomment-241027471, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACPVLNVw_kSrw-7nYQgsIq14P-G6P0AUks5qhbgrgaJpZM4IL0eJ
.

Eagerly awaiting the release of the next branch !

+1

+1

I am very interested in this and wouldn't mind testing / helping in any way I can.

@jdef I have a large (internal) java framework that I'd love to port to Go for non-mesos reasons and the questionable nature of the mesos-go package is the only thing keeping me back. It's a combination of the work not being given any sort of done-ness stamp of approval, and the fact that the ideal branch to build against isn't master which is weird.
If you intend to have dual-support for the old and new scheduler/executor apis, would it make sense to move the entire next branch to be the master branch of a new library like mesos/mesos-api-go or something like that?

great question @rboyer. it's certainly possible to imagine a world in which the old scheduler and executor APIs are supported by a new v1 implementation under the hood. or also to imagine what you suggest: separate projects, one for the old API/impl and one for the new. i can see arguments for both.
my most recent thinking has been to move the older APIs to a v0/ directory, and the new APIs into a v1/ directory, keeping both within the mesos/mesos-go project. for example, by importing github.com/mesos/mesos-go/v1 you'd get the mesos package for the mesos v1 API. this would facilitate both ongoing maintenance effort in the v0 tree (mesos still supports v0, after all) as well as new effort in the v1 tree. and both would be developed on master.
thoughts/concerns/comments?

That might work.  Also you might be able to use the http://labix.org/gopkg.in service to keep both variations available with nicer go get names.
The one thing to watch out for would be making sure that a transitive library resolution wouldn't download the union of the v0 and v1 dependency chains.

Is there an estimate on a blessed v1 branch? Very much looking forward to being able to use this.

Hi @jdef I was hoping you could post an update on this. I need to write a scheduler for a new project running on Mesos v1 and would like to use Go if possible.

#274

@jdef Thank you!


Process Hendrik's feedback on section 5

Just so we don't forget :) Also, something needs to be mentioned here about the execution model.

Closing, see #43.


Fixed a few spelling mistakes

Thanks to @lukeapage
npm i markdown-spellcheck -g
mdspell -axn "site/src/**/*.md"

Very nice!


Title text misplaced

The title of the Swipe action is cutting with bottom, and I am not sure where contentVerticalAlignment is or there may be another problem. Please refer ti the attached screenshot and help me. I am new to iOS. Thanks...

.

Please update to latest version of the library. Thanks.


Unit tests don't run in pull requests from forked repos

The unit test workflow is required for merging a pull request, but the action hangs when a pull request is opened from a fork.

Can you fix this by checking the box in the image below?
A word of caution - I believe this will give PRs from forks access the repository secrets - so you want to be careful with this setting.


TF (v1.9+) unable to call subprocess when making a tf.data.dataset during training in an estimator

What I am trying to do:
I have a TSV file consisting of string and integer values.
Each line in the file corresponds to a record e.g.
a  1  2    # record 1
b  3  4    # record 2

The values of these records are a condensed way of storing part of the input data.
I have a bash function that can take the stringified tsv file, e.g.
my-bash-func "a\t\1\t2\nb\t3\t4\n"

which will return the input for my model.
I have a python wrapper function which uses subprocess to pipe the file to this bash command and return the output to python:
process(['my-bash-func'], stdin="a\t\1\t2\nb\t3\t4\n")

where process might be defined as:
def process(command:list, stdin:str, popen_options={}):
    '''
    Arguments:
        command (list): a list of strings indicating the command and its
            arguments to spawn as a subprocess.

        stdin (str): passed as stdin to the subprocess. Assumed to be utf-8
            encoded.

        popen_options (dict): used to configure the subprocess.Popen command

    Returns:
        stdout, stderr
    '''
    command = clean_command(command)
    popen_config = POPEN_DEFAULTS.copy()
    popen_config.update(popen_options)
    try:
        pid = subprocess.Popen(args = command, **popen_config)
        stdout_data, stderr_data = pid.communicate(stdin)
    except OSError as err:
        error_message(command, err)
        sys.exit(1)
    if pid.returncode != 0:
        error_message(command, 'pid code {}'.format(pid.returncode), stdout_data, stderr_data)
    return stdout_data, stderr_data

an example output might be:
"x\t\y\t3\nw\tv\t8\n"

after parsing, splitting lines and tabs, the constructed input is now:
a  1  2  x  y  3  # record 1
b  3  4  w  v  8 # record 2

with this information both the input to the model and the label for the input can be constructed, via a python function:
record = ["a", 1, 2, "x", "y", 3]
(features, label) = restored_record_to_feature_label_tuple(record)

for each epoch during training some randomness needs to be injected. This is done via altering the values in the TSV e.g. record 1 (from the TSV) might have the following values over three epochs:
a   1  2    # record 1 from TSV on epoch 1
a  -1  3    # record 1 from TSV on epoch 2
a   2  1    # record 1 from TSV on epoch 3

even with tf.py_func I have been unable to find a way to string together this input pipeline:
# pseudo-code

# only needs to be done once. This TSV can also be encoded as tf Records.
tsv_data = parse_tsv(read_tsv(filename))

# done once per epoch
tsv_data_plus_randomness = randomify(tsv_data)

# reconstruct input (calls subprocess)
reconstructed_input = parse_tsv(
    process(
        ["my-bash-func"],
        stringify(tsv_data_plus_randomness)
    )
)

features, labels = restored_record_to_feature_label_tuple(reconstructed_input)

Ideally the above code can become a function compatible with tf.Estimator api
train_fn = # everything after reading in the tsv the first time

train_spec = tf.estimator.TrainSpec(input_fn=train_fn)

I understand that this amount of processing is a bottleneck for the model. Ideally, if there were 100 epochs, the data for the 100 epochs of randomness would be pre-calculated and stored. Due to the nature of the model and the usefulness going forward, being able to work with the TSV (at the cost of training time) is worth the trade off. I state this after having done this approach already.
I have a reusable custom estimator template which might be of use for trying to figure out why this is not possible.
It seems that once the data is a tf.data.Dataset (be if from tf.data.experimental.CsvDataset or tf.data.TFRecordDataset), this amount of pythonic interface is not possible.

Addendum:
I have been very open about what I know and do not know regarding Tensorflow. I have read extensively the documentation and even produced a concept to reduced the redundancy of the tf record interface via [FIO][https://pypi.org/project/fio/].
What I propose above is not an outrageous input pipeline and shouldn't be so obscure in regards to figuring out how to implement it.
I went on quite an adventure trying to achieve a reusable estimator. While tf.estimator is "supported" (not actively developed but pre-made estimators may be added) in tf 2.0, it is likely to be removed or completely deprcyated by tf 3.0. Below includes a sampling of the adventure, and it is important to note, that even with some questions having >1k views, many are unanswered. Further, several issues (e.g. the issue regarding exporting device placement https://github.com/tensorflow/tensorflow/issues/23834) took so long to get any attention by developers that now that TF 2.0 is just about here, no one really cares to invest too much time into actually making user estimators functional as they will be replaced with keras models.
Despite the colabs linked in these SO questions have been quite useful and individuals besides myself have used them (even apparently a company in china), sparing themselves the misery of figuring out how to get a basic custom model going (with some quality of life bells and whistles).
I state all this to emphasize that I would not be asking this if I could figure out how to do it from the existing TF documentation / source code.
some of the relevant S.O.  questions:

https://stackoverflow.com/questions/53634736/tensorflow-estimator-api-use-numpy-functions
https://stackoverflow.com/questions/53414168/tensorflow-exportoutputs-predictouput-and-specifying-signature-constants-defau
https://stackoverflow.com/questions/53410469/tensorflow-estimator-servinginputreceiver-features-vs-receiver-tensors-when-and
https://stackoverflow.com/questions/53409652/tensorflow-estimator-clear-deivces-in-exporters
https://stackoverflow.com/questions/53409547/tensorflow-estimator-bestexporter-event-file-pattern-doesnt-do-anything
https://stackoverflow.com/questions/53356558/tensorflow-v1-10-load-savedmodel-with-different-device-placement-or-manually-se
https://stackoverflow.com/questions/53356029/tensorflow-v1-10-serving-custom-estimator
https://stackoverflow.com/questions/53355055/tensorflow-estimator-to-tensorflow-js
https://stackoverflow.com/questions/53317235/tensorflow-custom-estimators-defining-estimator-spec-triggers-error
https://stackoverflow.com/questions/53307954/tensorflow-custom-estimator-predict-throwing-value-error
https://stackoverflow.com/questions/53226898/tensorflow-custom-estimator-stuck-when-calling-evaluate-after-training
https://stackoverflow.com/questions/52874647/tensorflow-v1-10-why-is-an-input-serving-receiver-function-needed-when-checkpoi
https://stackoverflow.com/questions/52641737/tensorflow-1-10-custom-estimator-early-stopping-with-train-and-evaluate
https://stackoverflow.com/questions/52064866/tensorflow-1-10-tfrecorddataset-recovering-tfrecords
https://stackoverflow.com/questions/52035692/tensorflow-v1-10-store-images-as-byte-strings-or-per-channel

@gadagashwini any ideas?

@ymodak I'd be curious to know your thoughts

@tanzhenyu  thoughts?

You seem to be using older version(1.x) of Tensorflow which is not supported anymore. Please try the latest Tensorflow version and let us know if the problem still persists. Thanks!


Question

Great work with this keyboard. It's awesome.
I wonder if for the Keyboard Pane there is a way to turn off the keyboard?
My use case is that, I can connect a physical keyboard, to my device so then i d like to add a toggle on the screen to turn on/off the keyboard on demand.
Is this possible? or will i have to fork the project and make custom modifications?

There is no global switch anywhere. I would suggest you fork and provide a PR.

Sounds good. Thank you.


2.04: volumeServer.evacuate moves one volume only

volumeServer.evacuate fails to move all volumes but succeeds in moving one volume at a time.
I've started a new volume server and I'm trying to move data from another volume server (which I want to decommission):
> volumeServer.evacuate -node <IP_ADDRESS>:9334 -force
moving volume 2 <IP_ADDRESS>:9334 => <IP_ADDRESS>:8080
2020-10-14 00:24:04.230186 I | copying volume 2 from <IP_ADDRESS>:9334 to <IP_ADDRESS>:8080
2020-10-14 00:24:07.278448 I | tailing volume 2 from <IP_ADDRESS>:9334 to <IP_ADDRESS>:8080
2020-10-14 00:24:19.473121 I | deleting volume 2 from <IP_ADDRESS>:9334
2020-10-14 00:24:19.682220 I | moved volume 2 from <IP_ADDRESS>:9334 to <IP_ADDRESS>:8080
error: failed to move volume 19 from <IP_ADDRESS>:9334

> volumeServer.evacuate -node <IP_ADDRESS>:9334 -force
moving volume 4 <IP_ADDRESS>:9334 => <IP_ADDRESS>:8080
2020-10-14 00:24:30.661134 I | copying volume 4 from <IP_ADDRESS>:9334 to <IP_ADDRESS>:8080
2020-10-14 00:24:32.954465 I | tailing volume 4 from <IP_ADDRESS>:9334 to <IP_ADDRESS>:8080
2020-10-14 00:24:45.109108 I | deleting volume 4 from <IP_ADDRESS>:9334
2020-10-14 00:24:45.272594 I | moved volume 4 from <IP_ADDRESS>:9334 to <IP_ADDRESS>:8080
error: failed to move volume 3 from <IP_ADDRESS>:9334

Re-trying the command volumeServer.evacuate -node <IP_ADDRESS>:9334 -force always stops after processing one volume which it manages to evacuate successfully. With one volume processed per command invocation, running volumeServer.evacuate enough times eventually managed to move/delete all the volumes from server <IP_ADDRESS>.

I could not reproduce this locally. It would be good to see the output of volume.list before a volumeServer.evacuate execution.

I can confirm that this is the case in my deployment.

one thing to note though, is that my setup consists of servers of different sizes, so no two servers have the same number of available volumes. This seems to cause issues with volume.balance, and apparently volumeServer.evacuate shares some routines with volume.balance in terms of selecting the new best server to move to.

@chrislusf Could you test the case where every volume server has a different number of available volumes and see if this can be reproduced? Also volume.balance does not seem to behave correctly in this case.

Please share the output of volume.list

@chrislusf I will DM you with the link to my volume list because 1) it's huge; 2) it contains some of my S3 bucket names that I may not want to make public.


⚠ Shakedown Social - Homepage has degraded performance

In c186589, Shakedown Social - Homepage (https://shakedown.social) experienced degraded performance:

HTTP code: 200
Response time: 18378 ms

Resolved: Shakedown Social - Homepage performance has improved in 8b595c4 after 2 minutes.


ideas for image x-y positional documentation

I had somewhat of a difficult time getting started with my first board. The issue was a repeated edit file, run pinout, reload image process as I tried to position pinout items on my image with a trial-and-error process. I wrote a little script to automate the first two (then manually refresh the browser):
#!/usr/bin/env bash

while  [ 1 -eq 1 ]; do
  inotifywait -e modify styles.css pinout_ulx3s.py data.py
  echo "Change! $(date)"
  rm pinout_ulx3s.svg
  python3 -m pinout.manager --export pinout_ulx3s pinout_ulx3s.svg
done

Perhaps this would be useful to others... but I'm also wondering if better documentation on the positioning parameters would help? What do you think of taking the quickstart data file, and having it notated in an image with all the respective data file <x,y> coordinates as defined in the respective data file?

good feedback. I did in fact have a diagram with all required measurements demonstrated on it but it got omitted (for no good reason) along the way.
I'll revise the docs and add it some better explanation regarding positioning. If you struggled other will too.

I had another thought about this topic - pinout is very unfriendly regarding resized images. Current recommendation is to resize images and use them at a 1:1 ratio. BUT this effectively promotes resizing to screen-viewing-sizes and creates a barrier to diagrams setup for print destinations.
Alternative approach I'm thinking of:

Cater for image resizing,

Calculate the scaling ratio behind-the-scenes
Record 'critical coords' in the Image class
Image class returns scaled 'critical coords' on request

Whilst I leave users to 'count pixels' and find their own coordinates on their image, a tool that outputs a grid overlay on an image might help users guess-timate coords with no other tools required... ?

Feature has been implemented -- 0.0.14 (next release) will cater for scaling of images and adding coordinates to them.
This makes the scripting process a little longer but clearly defines the step of measuring/recording key coordinates with the image. Coordinates are also scaled with image scaling providing a more robust UI.

0.0.14 released!
tutorial also updated with some diagrams and a dedicated 'measuring up' step.
initial testing has proven (in my opinion) the change to be a great addition to usability.


cli-shared-utils using a node-ipc version that contains protestware

Version
5.0.1
Environment info
System:
    OS: Windows 10 10.0.19042
    CPU: (12) x64 Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz
  Binaries:
    Node: 12.16.3 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.15 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 7.24.1 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 98.0.4758.102
    Edge: Spartan (44.19041.1266.0), Chromium (99.0.1150.39)
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.2.1
    @vue/babel-helper-vue-transform-on:  1.0.2
    @vue/babel-plugin-jsx:  1.1.1
    @vue/babel-plugin-transform-vue-jsx:  1.2.1
    @vue/babel-preset-app:  5.0.1
    @vue/babel-preset-jsx:  1.2.4
    @vue/babel-sugar-composition-api-inject-h:  1.2.1
    @vue/babel-sugar-composition-api-render-instance:  1.2.4
    @vue/babel-sugar-functional-vue:  1.2.2
    @vue/babel-sugar-inject-h:  1.2.2
    @vue/babel-sugar-v-model:  1.2.3
    @vue/babel-sugar-v-on:  1.2.3
    @vue/cli-overlay:  5.0.1
    @vue/cli-plugin-babel: ~5.0.0 => 5.0.1
    @vue/cli-plugin-eslint: ~5.0.0 => 5.0.1
    @vue/cli-plugin-router: ~5.0.0 => 5.0.1
    @vue/cli-plugin-vuex:  5.0.1
    @vue/cli-service: ~5.0.0 => 5.0.1
    @vue/cli-shared-utils:  5.0.1
    @vue/component-compiler-utils:  3.3.0
    @vue/web-component-wrapper:  1.3.0
    eslint-plugin-vue: ^8.0.3 => 8.5.0
    vue: ^2.6.14 => 2.6.14
    vue-eslint-parser:  8.3.0
    vue-hot-reload-api:  2.3.4
    vue-loader:  17.0.0 (15.9.8)
    vue-router: ^3.5.1 => 3.5.3
    vue-style-loader:  4.1.3
    vue-template-compiler: ^2.6.14 => 2.6.14
    vue-template-es2015-compiler:  1.9.1

Steps to reproduce
Node-ipc added a new dependency called peacenotwar to the latest version and due to that everytime you do a run serve it creates a war protest file on your desktop.
https://github.com/RIAEvangelist/node-ipc/commit/1220522453a0388cb4af1a74fe9a0482b6b3a9f3
https://github.com/RIAEvangelist/peacenotwar
What is expected?
Vue cli cli-shared-utils should use an older node-ipc version
What is actually happening?
It's using the latest

Fixed in 5.0.3 and 4.5.16. Thanks for the report!

Why continue using an untrustworthy package from an untrustworthy vendor?
node-ipc should be replaced by alternatives.

Would you prefer:
a) We don't continue using it and break Vue CLI until we found and implemented a replacement
b) We continue using it - locked to a safe version - until wef found and implemented a replacement
On that note: Could you name a suitable replacement? Are you willing to send a PR? We would be happy to merge it.

Implementing IPC through sockets is trivial and could be done even without dependencies entirely. I know that node culture is to never write code yourself, not even one liners, so here is an alternate package:
https://github.com/lanmower/hyper-ipc
I'd gladly look into replacing and contributing if trustworthiness is not a priority for paid vue team.

I have a question that I still have no clear answer for, so I hope someone more knowledgeable can respond to properly:
Can we be sure that the locked node-ipc version 9.2.1 is and will always be trustworthy in the future? Is it possible for the node-ipc author to modify that particular version with different code and replace the 9.2.1 package on npm? Can we trust that 9.2.1 will always remain unaltered on npm?
I guess there's an obvious response/explanation to this, but I'm still willing to hear it.

Implementing IPC through sockets is trivial and could be done even without dependencies entirely.

It's very likely to break backward compatibilities;
And we need to be very careful about the possible regressions and vulnerabilities of the not-widely-used new package.

Can we be sure that the locked node-ipc version 9.2.1 is and will always be trustworthy in the future?

No, transitive dependencies may break things too. So I'm gonna ship a version that bundles node-ipc and all its dependencies.

Is it possible for the node-ipc author to modify that particular version with different code and replace the 9.2.1 package on npm?

Not possible.

Can we trust that 9.2.1 will always remain unaltered on npm?

Yes.

@sodatea Indeed, node-ipc 9.2.1 depends on several other packages from RIAEvangelist (event-pubsub, js-message, js-queue, node-cmd) and are allowed to accept minor & patch updates, so those need to also be locked down to safe versions:
 "dependencies": {
    "colors": "*",
    "event-pubsub": "4.2.3",
    "js-message": ">=1.0.5",
    "js-queue": ">=2.0.0"
  },
  "devDependencies": {
    "codacy-coverage": "^2.0.0",
    "jasmine": "^2.4.1",
    "istanbul": "^0.4.1",
    "node-cmd": ">=1.2.0"
  }

devDependencies of a dependency will not be installed during npm install.
The only risky transitive dependency is<EMAIL_ADDRESS>which is a transitive dependency of<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

@sodatea What about the js-message dependency?

@sodatea What about the<EMAIL_ADDRESS>dependency? Same author...

Published versions cannot be altered, thus no risk.

Can we be sure that the locked node-ipc version 9.2.1 is and will always be trustworthy in the future?

No, transitive dependencies may break things too. So I'm gonna ship a version that bundles node-ipc and all its dependencies.

@sodatea When can we expect the new @vue/cli versions that bundle node-ipc 9.2.1? I have completely uninstalled the CLI and will not use it to create any vue projects because we cannot simply trust what RIAEvangelist does in his other packages, the transient dependencies I've mentioned above (event-pubsub, js-message, js-queue, node-cmd). If you take a look, he has been further "developing" the peacenotwar module since then, so it's only a matter of time until this blows up again.


✨ Manually set Dagger Cloud run title

What are you trying to do?
I'd like to be able to set the title of my runs in dagger cloud. I execute multiple pipelines per commit, so it's a little hard to find what I'm looking for based on commit title.
Why is this important to you?
I run a (sequential) pipeline that

Builds everything
Runs terraform for each environment

Right now each of the above is a separate dagger call. It's hard to find say, the terraform dev run when it all looks like this

I imagine a solution could be to just set pipeline labels or something similar
How are you currently working around this?
Just clicking a whole lot.

cc @marcosnils


insert a start check to verify that crate back off factor is less than 120 and it does not conflict with WQ retry

have a look here, i am not sure what's the impact on queue workers.

It should be okay, but there must be a way to configure it since w/ WQ you also have retry intervals, so the admin should be able to configure the Crate client's backoff factor to make sure the total amount spent by the client retrying a connection is less than the minimum retry interval in WQ...
Originally posted by @c0c0n3 in https://github.com/orchestracities/ngsi-timeseries-api/pull/503#discussion_r687656070

Hi @c0c0n3 @chicco785 , I would like to contribute on this issue. Please assign

@daminichopra I've added my comments to #573, thanks alot!!

Hi @c0c0n3 I am continuing on PR #573.


Spot selected to edit, not updated on Notebook immediately.

Are you able to reproduce the problem in a new project after restarting the app?
Yes/No
Steps to reproduce the behavior:

Select a spot say TM30
Check that TM30 details are available on Notebook
Long press to edit any other spot, say TM31
Observe that Notebook still shows TM 30 details.

Expected behavior
Notebook should immediately reflect TM31 details, when it is long pressed to get edited.
Currently, once the edits are done or cancelled, the notebook displays TM30 details but not immediately when the TM30 is selected to edit.
Screenshots

comments on the slide :

closed using 982836f68111e9aec537112798d150649c649bae


[WAIT TO MERGE] Sharding Capabilities

This will add sharding to DiscordPHP.
Wait to merge until https://github.com/hammerandchisel/discord-api-docs/issues/17 is implemented and released.

:+1: looks good! Only thing would be that would it be possible to provide the options to the WebSocket class instead of through the Discord client?

Could you resend this in on the develop branch?


Add a picture to the profile.

many pictures of andreas or cats... Decision decision..

the cat api

:O


create_virtual_machine_deployment() works only once

It looks like currently there is no ability to add multiple virtual machines to a single cloud service when creating the VMs from a captured image.
The first call to ServiceManagementService.create_virtual_machine_deployment() succeeds, but subsequent ones fail with the following error code:
ConflictErrorThe specified deployment slot Production is occupied.
It looks like the suggested resolution is to use the add_role api. The calls succeed, but VMs are not getting created.

I got it working by using the wait_for_operation_status(request_id, timeout_in_seconds) call. It was not obvious from the API that the REST calls are async, and the response is a request id, which can be used to query for the status of the operation. The wait_for_operation_status makes the calls synchronous.
In summary, use create_virtual_machine_deployment for the very first VM in the cloud service, and then use add_role api to add new virtual machines to the same cloud service.


Support task cancellation

Description
Covalent now supports dispatch cancellation. Executor plugins can opt in to this functionality by registering a job identifier for each task (in this case the job id or arn) and implementing a cancel method. This method will be invoked by Covalent when the user requests that the task be cancelled.
Methods provided by Covalent
All executor plugins automatically implement the following methods to be invoked in the plugin's run() method.
async def set_job_handle(self, job_handle)

saves a job identifier (job_handle) in Covalent's database. The job_handle can be any JSONable type, typically a string or integer, and should contain whatever information is needed to cancel the job later. For instance, AWS Batch's cancel_job method expects the job's jobId.
async def get_cancel_requested(self) -> bool

queries Covalent if task cancellation has been requested. This can be called at various junctures in the run() method if desired.
The run() method should raise a TaskCancelledError exception upon ascertaining that the backend job has been cancelled.
Methods to be implemented by each plugin:
Each plugin defines the following abstract method to be overridden with backend-specific logic:
async def cancel(self, task_metadata: Dict, job_handle: str) -> bool`

Upon receiving a cancellation request, the Covalent server will invoke this with the following inputs:

task_metadata: currently contains the keys dispatch_id and node_id as for the run() method.
job_handle: the task's job identifier previously saved using set_job_handle().

In addition to querying Covalent for cancellation requests, the run() method may need to query the compute backend to determine whether the job is in fact cancelled and raise TaskCancelledError if that is the case.
The code below sketches how to use the above methods:
from covalent._shared_files.exceptions import TaskCancelledError

...
async def proceed_if_task_not_cancelled(self):
  if await self.get_cancel_requested():
     self._debug_log(f"Task Cancelled")
     raise TaskCancelledError(f"Batch job {batch_job_name} cancelled")

async def run(self, function: Callable, args: List, kwargs: Dict, task_metadata: Dict) -> Any:
    ...
    await self.proceed_if_task_not_cancelled()
    # upload pickled assets
    ...
    await self.proceed_if_task_not_cancelled()
    # invoke job/task
    await self.set_job_handle(handle=job_handle)
    ...
    # await self.poll_job_status(task_metadata, job_handle)

async def poll_job_status(self, task_metadata, job_id):
    # Boto3 client invocations to check the job status
    # while timeout_not_exceeded:
    #    job_state = client.describe_job(job_id)
    #    if job_state == "CANCELLED":
    #        raise TaskCancelledError
    #    ...
    #    await asyncio.sleep(poll_freq)

async def cancel(self, task_metadata: Dict, job_handle: str) -> None:
  """
    Cancel the batch job

    Arg(s)
      task_metadata: Dictionary with the task's dispatch_id and node id
      job_handle: Unique job handle assigned to the task by Batch

    Return(s)
      True/False indicating if the job was cancelled
  """
   # boto client invocations to cancel the task
   ...
    if job_cancelled:
        return True
    else:
        # Job cannot be cancelled for one reason or another
        return False

Acceptance Criteria

[ ] In the run() method:

[ ] Save the job handle for the task once that is determined.
[ ] Check whether the job has been cancelled at various junctures

[ ] Implement cancel method
[ ] Ensure that the a workflow is tested with cancellation to ensure cancel functionality correctly integrated

@wjcunningham7 I would like to take a stab at this issue. Could you assign it to me?

@kessler-frost could you assign @WingCode to this issue?


[enhancement]: Unified Canvas "erase" (paint original)

Is there an existing issue for this?

[X] I have searched the existing issues

Contact Details
Discord: shanedk
What should this feature add?
In the Unified Canvas, it's too easy to accidentally paint over part of your image that you don't want to. It would be nice to "erase" what you've drawn, which would basically be tool that would paint back in the pixels from the original PNG file you dropped in.

Could possibly be a dupe of #2991 depending on how it's implemented.


Fix repo link #32

added key "GitHub" to the GitHub list item
added case "GitHub" to on-click function that links to the repo

Thank you for the PR @AlexBurneikis.
I think you just surround the icon with the a tag as follows:
https://github.com/AsaiToshiya/n/blob/1b757e8243b09eaafb8db8ba34bf65ef71ab3e3a/src/App.jsx#L66-L68

Yes, this works too, I just wanted to keep the code all looking the same. :)

Thank you @AlexBurneikis.


Estimated timeline until graphql API?

Hey @berekuk, someone recently asked for a timeline for the metaforecast graphql API. Thoughts, e.g., as a 90% confidence interval?

I hope to PR & merge something next week (90% that it'll replace most of the existing REST functionality, 80% that it'll replace most of it with some exceptions e.g. Algolia).
I'll also create a draft PR in a few hours and explain there in more detail how everything is going.


[6.0.x] Remove libicu build and update list of Swift runtime libraries to be de-duplicated

Explanation: Libicu is entirely unused on non-Darwin platforms too since the Foundation re-core to use _FoundationICU, so shave 35 MB off the 6.0 non-Darwin toolchains by removing it. Also, update the list of libraries that are deduplicated by the autolink-extract tool.
Scope: Only affects code for non-Darwin platforms, that is now entirely unused.
Issue: None
Original PRs: #75262, #75342, and #76224
Risk: Very low
Testing: Passed all CI on trunk
Reviewer: @jmschonfeld @compnerd @parkera @etcwilde
We are unnecessarily still shipping libicu in the 6.0 toolchains despite having another copy in lib_FoundationICU. This was removed in 6.1 months ago without a problem.

@jmschonfeld, need a CI run here.

@swift-ci please test

Passed CI, just needs approval from @compnerd and other owners.

@shahmishal, let me know what you think as the linux platform manager about shaving these unused libraries off the 6.0 toolchain in a patch release.

I would like to get a review from @parkera and @airspeedswift.

I don't want to aggressively cherry pick this back without any evidence that it resolves the named bug. We're already doing it on main, though.

@parkera, this has nothing to do with any bug, I think you might have got this mixed up with #76606. This is just about a simple cleanup on the toolchain for libicu libraries that are now unused on linux and Windows after the Foundation re-core, which uses _FoundationICU instead.

Ok, thanks

Ping @shahmishal, do we need anyone else to sign off? I think you and I pinged all relevant reviewers weeks ago.

Ping @airspeedswift, I think Mishal just wanted you to sign off.

Ping @shahmishal, would be good to get this in before the next patch release.

cc: @airspeedswift

It's been a while, so re-running CI before merging

@swift-ci please test

Passed CI, ready for merge.


Storage won't always load after reconnection

Describe the bug
When a room is full, a new client will not be able to connect to the room, and the client will keep retrying to connect (using slow backoff delays). If a slot in the room frees up, the client will automatically reconnect and continue loading. However, only presence will be loaded, but storage will not.
To Reproduce

Spin up a room
Open many tabs until the max number of people in the room is hit
Open one more tab - this one will not load at all (no presence & no storage) — this is expected
Close one of the existing tabs
Wait for the last opened tab to automatically reconnect and start loading
Notice how only presence gets loaded and storage won't

We found this bug while stress-testing the new connection manager that's in the making (currently 1.1.0-fsm4). However, it turns out this bug isn't introduced there, and exists as far back as Liveblocks 0.15.x (at least, perhaps even earlier).
Expected behavior
Both Presence and Storage will load.
Illustrations
@CTNicholas captured this beautifully in a Loom video.

Notes to self, after digging into the root cause here:

Storage isn't refetched, because it's guarded by this condition.
This condition can be read as "if storage has ever successfully loaded" (which isn't the case in this demo), then refresh it. So it will not get refreshed.

We cannot "just" remove the conditional, however, because it's currently there to prevent a double-fetch from being performed when initially entering the room.
What instead needs to happen is that we need a mechanism to invalidate, or mark stale, the currently downloaded storage root, if any. This could then be marked dirty whenever a connection loss happens (or… if we haven't gotten a server response timely enough), so that we could simply always call startLoadingStorage() again here unconditionally, which would do nothing in the "still loading" case, yet always retrigger a full storage reload after a disconnect has happened.

This is now fixed, and will be part of 1.1.


Dev mem cleanup

Catched the problem related to #218
In stress test added memory cleanup function.
After start mimalloc-test-stress 32 500 50 on i386/debian10 I got next core dump:
xf7e41a2b in memset () from /lib/libc.so.6 (gdb) bt #0  0xf7e41a2b in memset () from /lib/libc.so.6 #1  0x5655650e in memory_cleanup (user_data=0x0, ptr=0xeb800000, size=2097152) at /home/mimalloc/job/mimalloc/test/test-stress.c:68 #2  0xf7fb0453 in _mi_call_user_cleanup (size=2097152, p=0xeb800000) at /home/mimalloc/job/mimalloc/src/os.c:182 #3  mi_os_mem_free (addr=0xeb800000, size=2097152, was_committed=<optimized out>, stats=0xf7f93694) at /home/mimalloc/job/mimalloc/src/os.c:219 #4  0xf7fb1444 in _mi_arena_free (p=0xeb800000, size=2097152, memid=0, stats=0xf7f93694) at /home/mimalloc/job/mimalloc/src/arena.c:222 #5  0xf7fb2003 in _mi_mem_free (p=0xeb800000, size=<optimized out>, id=1, full_commit=false, any_reset=true, tld=0xf7f9368c) at /home/mimalloc/job/mimalloc/src/region.c:394 #6  0xf7fb2569 in mi_segment_os_free (segment=0xeb800000, segment_size=<optimized out>, tld=<optimized out>) at /home/mimalloc/job/mimalloc/src/segment.c:482 #7  0xf7fb3935 in _mi_segment_page_free (page=0xeb80012c, force=false, tld=0xf7f9364c) at /home/mimalloc/job/mimalloc/src/segment.c:814 #8  0xf7fb4ef8 in _mi_page_free (page=<optimized out>, pq=<optimized out>, force=<optimized out>) at /home/mimalloc/job/mimalloc/src/page.c:380 #9  0xf7fb4f68 in _mi_page_retire (page=0xeb80012c) at /home/mimalloc/job/mimalloc/src/page.c:421 #10 0xf7fb5b19 in _mi_free_block (block=0xeb990000, local=true, page=0xeb80012c) at /home/mimalloc/job/mimalloc/src/alloc.c:363 #11 _mi_free_delayed_block (block=0xeb990000) at /home/mimalloc/job/mimalloc/src/alloc.c:471 #12 0xf7fb4d81 in _mi_heap_delayed_free (heap=0xf7f93000) at /home/mimalloc/job/mimalloc/src/page.c:286 #13 0xf7fb7f1a in mi_heap_collect_ex (heap=heap@entry=0xf7f93000, collect=<optimized out>, collect@entry=MI_ABANDON) at /home/mimalloc/job/mimalloc/src/heap.c:139 #14 0xf7fb81de in _mi_heap_collect_abandon (heap=0xf7f93000) at /home/mimalloc/job/mimalloc/src/heap.c:162 #15 0xf7fb9193 in _mi_heap_done (heap=0xf7f93000) at /home/mimalloc/job/mimalloc/src/init.c:235 #16 _mi_thread_done (heap=<optimized out>) at /home/mimalloc/job/mimalloc/src/init.c:363 #17 0xf7f7682f in __nptl_deallocate_tsd.part.0 () from /lib/libpthread.so.0 #18 0xf7f777dd in start_thread () from /lib/libpthread.so.0 #19 0xf7ea889a in clone () from /lib/libc.so.6

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


Rails 5.2.2 dependency not specified

Hello,
Yesterday we updated our rails to 5.2.2 and acts_as_taggable_on stopped working.
Which errors in undefined method [] = for nil class.
We found out that we were on version 5.0 of acts_as_taggable_on. Which meant that when we updated our rails nothing told us that acts_as_taggable_on v5.0 isn't compatible with rails 5.2.2
Best regards,
Michael

As a side note, this error still gets thrown even if you upgrade to 6.0.0.

This is still happening on on the latest version of this library and Rails <IP_ADDRESS>. I am not sure if they are actively working on this gem at the moment.


clipboard changed event

It would be great if there was a built-in event where we could watch the board. For example, the gettext method can be called when the clipboard changes.

I dont think this would be possible to reliably implement. for example on linux it would have to poll on a timer to check for changes. too smaller interval would cause an unreasonable perf impact, too larger interval and we would be likely to miss events

I found a cross-platform node implementation, but I am not sure what it is doing for linux. But yes I guess for blazor won't be another way that timer. That is better than not having it. (Either way, devs will have to implement a timer if there is no other solution)


fix: Redis trademark changes

Description 📝
Added Redis Legal verbiage to the app descriptions and any instance of Redis includes the Trademark logo
Preview 📷

Single node
Cluster

How to test 🧪

Go to /linodes/create?type=One-Click
Ensure mentions of redis include a trademark
Ensure searching for redis still displays the two apps
Ensure the drawer still opens and that there is a legal disclaimer in the drawer
Redis logo should be replaced by 3 generic stacked slices

@mjac0bs Holden will look into the Setup inputs asynchronously


Distinction between definitions fails in some cases

When a <dfn> element contains a function, the parser should interpret the whole function name to distinguish it from previous definitions. Though instead it looks like it only checks parts of the definition.
An example can be seen here:
https://drafts.csswg.org/bikeshed/css-page-floats/
The output says this:

FATAL ERROR: Multiple local 'value' s for 'float' have the same linking text 'right'.
FATAL ERROR: Multiple local 'value' s for 'float' have the same linking text 'near ]?)'.

for the following two definitions:
<dfn>snap-block(<length> [, start | end | near ]?)</dfn>
<dfn>snap-inline(<length> [, left | right | near ]?)</dfn>

Sebastian

Ugh, this is an unexpected result of me eagerly copying the definition text into lt and it colliding with the syntax to introduce multiple definition texts.
It's also a result of this particular spec being marked up slightly wrong. I can fix the spec right now; I'll rewrite this issue to reflect the deeper problem accurately.


[server] Log support compacted row format

Log support compacted row format

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.zhengyunhong.zyh seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


User groups API endpoint

User groups endpoint must return, in addition to normal group data:

Number of shared tables.
Number of shared maps.
Members.

Screen.
cc @viddo

Merged into #4924 branch.


API is DOWN, Please can you fix again

sumanjay.up.railway.app
{"message":"API is Down!","status":false}
Thanks for the previous fixes, but it seems its not working again...

Which api?


not ok - udp_ipv6_only

not ok 341 - udp_ipv6_only
# exit code 134
# Output from process `udp_ipv6_only`:
# Assertion failed in test/test-udp-ipv6.c on line 92: 0 && "this function should not have been called"

https://ci.nodejs.org/job/libuv-test-commit-linux/1617/nodes=centos6-64/console

I'm thinking we should keep this open so that google can better index it in case anyone is able to later investigate it. Unless someone thinks it was a buildbot configuration issue and is now fixed?

Unless someone thinks it was a buildbot configuration issue and is now fixed?

There was some tweaking of firewall rules not too long ago (I think that was you, @sam-github?) so I expect this is fixed now.

Hm, still seems to be bad https://ci.nodejs.org/job/libuv-test-commit-linux/1745/nodes=centos6-64/console


Main menu dosn't often work in IE browser!!!!

Hi~ I used IE 11 64bit browser to view your demo web, and the first linked web, click page link, it can  work, but after it, click orther link, it didn't respond any something!! what do i do to resolve it?

This pr #30 also fix this bug

Fixed on #30 thanks to @christianesperar
Yesterday I took over this project and more updates are coming soon.


feature/add-multiple-files-type-field

save pics field type is TEXT. and JSON data.

Will test it out and let you know

I recommend using the name multiple_images (or something similar), rather than multiple_pics.  pics just doesn't sound very professional.

Works like a charm, but could you please rename it to multiple_images instead. Sounds better.
Once that is done I will merge this in.
Thanks and great work. 👍

@marktopper Sorry, but I was enjoying the Spring Festival. I have been renamed it.

@marktopper  How can I pass StyleCI analysis use ..php_cs?

You may ignore StyleCI. Fixes are automatically made by StyleCI on merge.
And it seems like they have changed the class for the style fixer config.

Hope you had a great festival!


tourism example: Unable to get results if price range is narrowed before query

I first do a narrow search on the price range, then do a search query. After that the map is centered somewhere (?) and I cannot move the price range anymore.

Not sure if this is an example issue or a price range one.

@vvo isn't that an implementation bug in the widget? How to solve that?

Yes most probably an issue in the rangeSlider widget indeed. Did not have a look.

I can reproduce the same wrong behavior by pushing one of the handle on top of the other.

One fix that I see: prevent the handles to overlap. We can do a CSS though :
.ais-range-slider--handle-lower {
  transform: translateX(-50%);
}
.ais-range-slider--handle-upper {
  transform: translateX(50%);
}

I believe we need to add something to our own default css file as @bobylito proposed. But we can also have a look at how http://refreshless.com/nouislider/ does it, this is the slider we use, maybe we stripped too many CSS from their original file.
http://refreshless.com/nouislider/ do not have any issue with overlapping handles. If we find how did they do it, it would be cool

Well actually I just tried the first demo on the website and it does overlap. BUT the last moved handle is on the foreground, our problem is that instantsearch moves the handles programmatically making it impossible to nouislider to know which handle should be in the foreground (and so we may have handles that can't be moved because they are blocked by one another).
IMHO nouislider is failing on the usability aspect by having this overlap and so we should add the CSS :)


Formality LEC Failure Elaboration 116:  Unique case but some items may overlap.

LEC Formality Error code errors reported in csrng_reg_top.sv
Warning: You are using the unique case but some items may overlap. (Signal: addr_hit[0] Block: /csrng_reg_top File: RTL/csrng_reg_top.sv Line: 1951)  (Formality Error code)    Changed from unique case to case
LEC Formality Error code errors reported in entropy_src_reg_top.sv
Warning: You are using the unique case but some items may overlap. (Signal: addr_hit[0] Block: /entropy_src_reg_top File: RTL/entropy_src_reg_top.sv Line: 3592)  (Formality Error code)    Changed from unique case to case
caliptra_fm_errors.tar.gz

@howardtr can you take a look at this since these files are imported from OT?

Completely missed this, will take a look, thanks @calebofearth!

Hey @nstewart-amd -
Following up on this.   Trying to understand the error so hopefully you can tell me where my gap in understanding is
so we have addr_hit vector defined here, which should make this onehot0
https://github.com/chipsalliance/caliptra-rtl/blob/main/src/csrng/rtl/csrng_reg_top.sv#L1808-L1827
  always_comb begin
    addr_hit = '0;
    addr_hit[ 0] = (reg_addr == CSRNG_INTR_STATE_OFFSET);
    addr_hit[ 1] = (reg_addr == CSRNG_INTR_ENABLE_OFFSET);
....
    addr_hit[16] = (reg_addr == CSRNG_MAIN_SM_STATE_OFFSET);
  end

https://github.com/chipsalliance/caliptra-rtl/blob/main/src/csrng/rtl/csrng_reg_top.sv#L1948-L2067
  always_comb begin
    reg_rdata_next = '0;
    unique case (1'b1)
      addr_hit[0]: begin
      end
....
      addr_hit[16]: begin
      end

      default: begin
        reg_rdata_next = '1;
      end
    endcase
  end

Do you have further context on why the error message is saying that the items may overlap?   I'm wondering if there's a special pragma / waiver that I need to include since I believe this should be unique.  (I double checked the constant values to make sure that there wasn't an overlap)

Howard -
I expect the issue is with respect to "default" and pre-assignment.
The default would contain (non-one-hot) encodings that overlap with prior one-hot cases.
I do not recommend priority encoding (case only), since this will be treated as a 16-bit binary encoded value and turn into a massive priority decoder.
`
always_comb begin
reg_rdata_next = '0;
unique case (1'b1)
addr_hit[0]: begin
end
....
addr_hit[16]: begin
end
  //default: begin
  //  reg_rdata_next = '1;
  //end
endcase

end
`

What's the action on this? @howardtr
We fixing or waiving? If this is OT code that has been under use for a while, we may want to leave it as is than causing an entire val to happen because of this change

Thanks for the context @nstewart-amd
I agree that we shouldn't change this to case over unique for the reasons that was listed
I'd like to push for a waiver in this case in regards to the default statement.  Our internal linting tools will complain if the default state is not defined for the reasons given in https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md#case-statements

Bharat,
If it's meant to be strictly unique one hot coding, then I suggest a cleaner coding style of AND/OR structure if the LINT tool doesn't like "unique_case without default".  It's kind of the point of unique_case.
I'm not convinced this results in the intended circuit as coded (i.e. do you end up with all of other cases also as a result of the default?).  I wouldn't be surprised if the synthesis tools implement a 16bit wide case once they detect non-overlapping conditions in the unique case.
Alternately, I think the correct coding for this would have been:
unique case (addr_hit)
16'h0001:
16'b0002:
16'b0004:
...
16'h8000:
endcase

Anecdotally... we modifed the code to "case" and re-ran Formality against netlist synthesized with "unique case + overlaps".
It passes.
Interpretation - Synthesis tools identified overlapping cases, ignored the unique qualifier, and proceeded to build a 16deep priority decoder with a default catchall at the end.

I've put the change into https://github.com/chipsalliance/caliptra-rtl/pull/208
@bharatpillilli @calebofearth - ptal and let me know what the team's experience has been with unique case + default, thanks!

I'm not convinced removing the default will actually remove the warning. @nstewart-amd have you tried this and confirmed it works? Default with unique just adds a catch for when nothing matches, simulation would still fail if multiple matches were detected. Synthesis just doesn't know that the addr_hit signal is going to be one-hot, so it dumps the unique qualifier.
unique case (addr_hit) will work, but likely doesn't synthesizes into 1 hot mux select.
Switching to case from unique case makes sense, that's what the warning is telling us synthesis is doing. This should result in a priority decode rather than the intended parallel decode.
Like Norman said - converting to AND/OR guarantees we get the intended optimized logic.

There's a misunderstanding on one-hot coding and use of case/default here.
It might be good to review this:
https://www.sutherland-hdl.com/papers/2005-SNUG-paper_SystemVerilog_unique_and_priority.pdf
What is a "default" for a case(1'b1)?
For the case(1'b1) coding style, we would typically have:
Verilog2k:
//synopsys parallel_case
case(1'b1)
foo[0]:
...
foo[n-1]
default:
endcase
or
//synopsys parallel_case full_case
case(1'b1)
foo[0]:
...
foo[n-1]
endcase
To defeat the evil twins, I think it should be this.
SystemVerilog:
unique case(1'b1)
foo[0]
....
foo[n-1]
endcase

We have trials running.
We had previously just changed it to "case" to resolve the LINT issue.
Will advise regarding outcome of unqiue case trials.

The default for reverse-case catches the situation where none of the branches are entered (if the one hot value is all 0, we would fall into the default).
Initializing the output also works to handle the "no match" situation deterministically, but I think simulation would balk either way if you have a unique case that doesn't match anything without a default to catch it.
From the Sutherland paper:
The semantic rules of unique have assured (assuming that run-time simulation
warnings are not ignored) that all case items used by the design have been specified. The unique
modifier has also assured (assuming run-time simulation warnings are not ignored) that there will
never be two case items that are true at the same time. Thus, synthesis can safely fully optimize a
unique case statement, removing any latched logic that might have been caused by a case
statement that is not fully specified, and removing any priority encoded logic.

It seems your synthesis tools are deciding to ignore this and drop the unique modifier.

the unique case does not require the default.
the initial assignment already gets     reg_rdata_next = '0;
the addition of "default" implies an "else", which shouldn't be there for the 2 stage AND-OR implied by unique one-hot.

I understand that it's not required to have a default - but I believe simulation will throw an error if there is no default and the case does not match anything. Since the addr_hit vector is assigned to 0 when the address doesn't match anything, we would likely see that error during simulation.
Even the assertion checks that addr_hit is some one hot value OR zero. So either default the addr_hit to a one hot value (add an extra bit to catch a miss?) or explicitly code it as an AND/OR mux and let the addr miss case fall out that way with zeroes.

Michael -
Simulation won't care about default/no-default.  What do you mean "simulation will throw an error"?  It will throw and error because of expected data mismatch elsewhere?
Synthesis and LINT will care about latch inferences.  Simulation just does what it's told.
The current code is foobar.  It assigns rdata=0x0000000, falls into case to pick 1-of-n rdatas, else assigns rdata=0xFFFFFFFF;
The default contradicts the initial blocking assignment.

always_comb begin
    reg_rdata_next = '0;
    unique case (1'b1)
      addr_hit[0]: begin
      end
....
      addr_hit[16]: begin
      end

      default: begin
        reg_rdata_next = '1;
      end
    endcase
  end

I guess it only throws a warning, not an error. Unique directive is powerful because it is a directive to both simulation AND synthesis.
Warning-[RT-NCMUCS] No condition matches in statement
csrng_reg_top.sv, 1950
No condition matches in 'unique case' statement. 'default' specification is
missing, inside caliptra_top_tb.caliptra_top_dut.csrng.u_reg, at time 0ps.
reg_rdata_next is initialized to 0 so that it can be partially assigned inside each case branch. The default case seems to be intentionally assigning '1 when the address misses any valid address.
I think we're spending a lot of effort optimizing a single mux in the design. I'll let Howard decide how to proceed with this, these are the options I see to resolve the Formality error.
Remove the unique directive - we'll get a priority mux.
Remove the default - hopefully synthesizes optimally as a 1hot AND/OR chain. Warnings during simulation might create noise - some vendors may flag this as errors (I know we used to). Need to confirm this resolves formality error.
Explicitly code it as an AND/OR chain.

Feedback from design team:

unique case (1'b1) w/o default coding.
SPG-LINT Happy
Formality Unhappy - FMR_ELAB-116 warning  It looks like it has strong feelings about (1'b1) decoding redundantly.

unique case (addr_hit) w/o default coding,
SPG-LINT Happy
Formality "looks" happy since addr_hit decoding can be unique.
We haven't generated a netlist to compare, but have no reason to expect issue with netlist generation.

@howardtr - can we find a way to close this off?
Options:

If this code is working in a silicon for google as is (eg. titan chip), you can use this that as a waiver with the silicon proof.
Fix it as long as it is not going to open a wide set of new test corner cases (since this block's goal is to use as is and we aren't doing a FEV on it). If needed pull in the google author of the code into this discussion with @nstewart-amd

@bharatpillilli -  I was OOO - will find a way to close this out
@nstewart-amd - Can we add a formal warning waiver since we're re-using this block as-is from OpenTitan.   I'd prefer we stick with the reverse unique case statement (1'b1) and take advantage of the onehot since we'd end up with a large comparator by doing the unique case(addr_hit).
I've already pushed in the changes to remove the default case into main since that's a relatively small change.  We can certainly start a discussion on the OpenTitan side and make sure that the open source community benefits from this discussion.   wdyt?

Hi @howardtr - can you have a side call with @nstewart-amd and @Nitsirks so that its faster?

[AMD Official Use Only - General]
Howard,
re: take advantage of onehot;  This is what "unique case" buys us.  It avoids that clunky (1'b1) with full_case, parallel_case pragmas that would have been needed in legacy verilog.
FMR_ELAB_116 is a fatal in our flow setup currently and we don't have path to waive 1-of-N violations.
Accordingly, I expect we'll need to modify locally if published code violates.
Norman

From: Howard T @.>
Sent: Tuesday, October 3, 2023 2:26 PM
To: chipsalliance/caliptra-rtl @.>
Cc: Stewart, Norman @.>; Mention @.>
Subject: Re: [chipsalliance/caliptra-rtl] Formality LEC Failure Elaboration 116: Unique case but some items may overlap. (Issue #187)
Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
@bharatpillillihttps://github.com/bharatpillilli - I was OOO - will find a way to close this out
@nstewart-amdhttps://github.com/nstewart-amd - Can we add a formal warning waiver since we're re-using this block as-is from OpenTitan. I'd prefer we stick with the reverse unique case statement (1'b1) and take advantage of the onehot since we'd end up with a large comparator by doing the unique case(addr_hit).
I've already pushed in the changes to remove the default case into main since that's a relatively small change. We can certainly start a discussion on the OpenTitan side and make sure that the open source community benefits from this discussion. wdyt?
—
Reply to this email directly, view it on GitHubhttps://github.com/chipsalliance/caliptra-rtl/issues/187#issuecomment-1745502579, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2RWN2W7YLVMYYM4LZU23XDX5RKFZAVCNFSM6AAAAAA3RORZHWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBVGUYDENJXHE.
You are receiving this because you were mentioned.Message ID: @.***>

@howardtr
I've run formal LEC for case(1'b1) version against case(addr_hit) version (both with default removed).
case(1'b1) throws FMR_ELAB_116 violations.
case(addr_hit) is clean.
Formal LEC is PASS.
Reference code and summary of LEC run attached.
csrng_reg_top_formal_lec.tar.gz

@howardtr ?

@nstewart-amd - I've updated https://github.com/chipsalliance/caliptra-rtl/pull/247 with the changes, ptal

#247 has been merged to main via #255. Can we close this issue?

I believe this issue is resolved.

@nstewart-amd, did you get FMR_ELAB-131 warnings in your formality runs with unique case(addr_hit) w/o default?

We see the FMR_ELAB-131, but these are reported as warning severity and not promoted to error in our flows.


Fixed two small typos in Endpoints.md

Thanks

Umm. Apparently cant merge from my phone due to the failed tests.
Will check from computer later

@regexident Thanks a lot!
@esttorhe CI failures are intermittent (see #176). When this happens to me, I do this

"All checks have failed" makes it sound pretty horrible.
Like I BROKE ALL THE THINGS with just plain english. :joy:
No biggie.
Found a typo and thought "nah, I can't spam them with a PR for a single cosmetic character change".
So I looked for another one. Found one and thought "now we're talking!". :smile:

Ha, yeah we need to get CI working again.

:+1:  good tip Ash; I'll do that next time


Decide what to do about making this available with VS Code in a browser

Currently (v0.1.0), the extension does not make itself available to VS Code running in a browser as this was not a target for the first release.
Consider making the changes required and, if need be, force the user to choose a location before displaying any details.
One idea hear would be that if location is empty, display something like "Weather: click to configure" on the toolbar and have that open settings or prompt for a location when clicked. After configured, the display will refresh to the new information.

See also #3

Addressed in 1.0.0


Support Uprobes

Note: This should probably happen after #342
As a user of bpfd, I would like the ability to load uprobes to trace my program.
Uprobes can be attached 3 different ways:

To a shared library - identified by name
To all instances of process - identified by path "/bin/bash"
To a specific instance of process - identified by path and pid e,g "/bin/bash" pid 9

bpfd

Adjust the gRPC API to allow the attachment of uprobes, for the required fields in AttachInfo see: https://docs.aya-rs.dev/user/aya/programs/uprobe/struct.uprobe
Add logic to load uprobes

bpfd-operator

Adjust the CRD to allow for the attachment of uprobe programs
This will include a podSelector to target specific pods within the cluster, similar to what is used in NetworkPolicy.

Challenges
Containers make uprobe attachment a tricky business.
We will need to enforce Process Namespace Sharing on pods that want uprobes.
Then we will spawn a sidecar container to load programs with access to bpffs so the program can be pinned.
Unload is simply a case of removing the pin and doesn't require a sidecar.
The use of a sidecar container is needed to run in the same process namespace as the containers in a pod.
What we'll need to be sure of is whether attachment through /proc/$pid/root will work, where $pid is the entrypoint process of a container in the pod.
Aya considerations
The existing uprobe API should work fine for our usecases, although we may want to add an alternative API that doesn't do symbol resolution, but instead allows the caller to provide the symbol offset directly.

@anfredette Is his complete?

I still need to do the k8s support, which I've started.
On Wed, Sep 6, 2023 at 2:28 PM Andrew Stoycos @.***>
wrote:

@anfredette https://github.com/anfredette Is his complete?
—
Reply to this email directly, view it on GitHub
https://github.com/bpfd-dev/bpfd/issues/369#issuecomment-1708888134, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHY7XYRXWIBSJ6H32SM35DXZC6F3ANCNFSM6AAAAAAWDPSZ5M
.
You are receiving this because you were mentioned.Message ID:
@.***>


Fix an empty prerequisites section in update-daemon-set.md

The "Before you begin" section is empty, adding the {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} to fix it.

The Preview https://deploy-preview-29080--kubernetes-io-main-staging.netlify.app/docs/tasks/manage-daemon/update-daemon-set/

/lgtm
/approve

Thanks. Updated to omit the version check.


How can I fetch comments with specified version of the work_item_tracking_client

I need to fetch comments of a specified workitem of a azure devops project. However, although there is a method called get_comments() in

/venv/Lib/site-packages/azure/devops/v5_1/work_item_tracking/work_item_tracking_client.py

I cannot access to that client. Instead, I get the workitem tracking client that defined at

/venv/Lib/site-packages/azure/devops/released/work_item_tracking/work_item_tracking_client.py

which doesn't include get_comments()  method, I couldn't find where can I choose the version of the client.
The method;
def workitems(self, project=None, repository=None, from_date=None):
        """Fetch the work items from azure devops for a project"""
        wit_client = self.connection.clients.get_work_item_tracking_client()
        if from_date is not None and repository is not None:
            date_param = f"""where [System.CreatedDate] >= '{from_date}'"""
            repo_param = f"""AND [System.AreaPath] = '{repository}'"""
        else:
            date_param = ""
            repo_param = ""
        wiql = Wiql(
            query=f"""
select [System.Id],
[System.WorkItemType],
[System.Title],
[System.State],
[System.AreaPath],
[System.IterationPath],
[System.Tags],
[System.TeamProject]
from WorkItems
{date_param}
{repo_param}
order by [System.Id] desc"""
        )
        if project is not None:
            wiql_results = wit_client.query_by_wiql(wiql).work_items
        else:
            team_context = TeamContext(project=project)
            wiql_results = wit_client.query_by_wiql(
                wiql, team_context=team_context
            ).work_items
        if wiql_results is not None:
            for work_item in wiql_results:
                wit_with_updates_and_comments = wit_client.get_work_item(int(work_item.id),
                                                                         expand="Relations").as_dict()
                updates = [x.as_dict() for x in wit_client.get_updates(int(work_item.id))]
                wit_with_updates_and_comments["updates"] = updates
                comments = wit_client.get_comments(project=project, work_item_id=(int(work_item.id)))
                wit_with_updates_and_comments["comments"] = comments
                yield wit_with_updates_and_comments

When the method is runned an exception emerges stating that
comments = wit_client.get_comments(project=project, work_item_id=(int(work_item.id))) AttributeError: 'WorkItemTrackingClient' object has no attribute 'get_comments'
Thank you.

Hello,
Did you try using the 6.0 version of the work_item_tracking package ?
The (https://github.com/microsoft/azure-devops-python-api/blob/dev/azure-devops/azure/devops/v6_0/work_item_tracking/work_item_tracking_client.py#L379)[get_comments method] is present in this version, but is not in the released package.

Thank you sir.


chore(gitignore): add idea folders to gitignore

Idea folders are auto generated by WebStorm.

This change is

Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

.gitignore, line 10 at r1 (raw file):

npm-debug.log
.DS_Store
.idea*

.idea is a directory right? to keep this in sync with the format above, can you do .idea/?

Comments from Reviewable

@nsthorat done.

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

Comments from Reviewable


Improve type checking in tuple types

Purpose
$subject, to check tuple size.
Fixes #18076
Samples
function testTupleInUnionReturn() returns [string, int, boolean]|string {
    return ["", 5, true, false]; // this should fail
}

Remarks
#18076
#17192
#18074

Codecov Report

Merging #18153 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #18153   +/-   ##
=======================================
  Coverage   15.08%   15.08%
=======================================
  Files          48       48
  Lines        1246     1246
  Branches      192      192
=======================================
  Hits          188      188
  Misses       1044     1044
  Partials       14       14

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 6c98604...29ae314. Read the comment docs.


bbdb-vcard-export: new package

Emacs extension for exporting BBDB as vCard files.

Maybe you will take a look into https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/emacs-packages.nix and add pkg to this?

Updates?

Thanks for the comment and sorry for the delay.  If I understand correctly emacs-packages.nix is for packages in MELPA and bbdb-vcard-export is not in MELPA.  But bbdb-vcard is, and it can also export vCards (albeit with an incompatible interface).  Should I add that instead?

I'm not a emacs maintainer..
@gridaphobe can you look at this PR?

Sorry @jagajaga @thomas-morgan, I'm out of town for a couple weeks and haven't been on my computer as much as usual.
emacs-packages.nix is not strictly for packages that are on MELPA, we just reuse some of MELPA's infrastructure to build package.el-compatible packages.
I think the goal is to eventually move the standalone emacs packages (i.e. in pkgs/applications/editors/emacs-modes) to emacs-packages.nix. Here's how I would restructure your package for inclusion in emacs-packages.nix
bbdb-vcard-export = melpaBuild rec {
  pname = "bbdb-vcard-export";
  version = <date of commit>;
  src = fetchgit {
    url = "https://github.com/emacsmirror/bbdb-vcard-export.git";
    rev = "1e16ccbc1d070eac861886ef4b5a5643ec24fe74";
    sha256 = "1z6kn54gzx43wjv5vsm4bqd2zn86w5zxy59j2nqrgfi5wfz5pnd1";
  };

  packageRequires = [ bbdb ]; # emacs is added by default

  meta = {
    description = "Export BBDB as vCard files";
    homepage = http://www.emacswiki.org/emacs/bbdb-vcard-export.el;
    license = stdenv.lib.licenses.gpl2Plus;
  };
}

@gridaphobe How should we proceed next with this pull request?

I think some people are still using the emacs-modes packages, so I don't have a problem with merging this as is. We should probably come up with a strategy for consolidating the two package sets though.

We have bbdb-vcard from MELPA. If bbdb-vcard-export is also needed, it should be added to emacsPackagesNg instead.


chore(main): release 2.0.27

Auto generated release
2.0.27 (2024-10-29)
Build System

deps-dev: bump eslint-plugin-n from 17.10.3 to 17.11.1 (#271) (37f8037)
deps-dev: bump tailwindcss from 3.4.13 to 3.4.14 (#269) (997f5e1)
deps-dev: bump typescript from 5.6.2 to 5.6.3 (#270) (d6ea51c)
deps: bump @modular-forms/solid from 0.23.0 to 0.24.1 (#273) (a7e0184)
deps: bump @solidjs/router from 0.14.7 to 0.14.10 (#272) (d24ab74)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v2.0.27
:sunflower:


Read multiple bytes for system events

When checking for system events, the current version would read 1 byte per iteration, meaning that when other tasks are ready, reading n bytes becomes interleaved with n other tasks. These tasks may be slow, resulting in unnecessary slowdowns of system events (such as UI events in vscoq).
This change allows reading another byte from its file descriptor when:

The system event has lower priority than the lowest priority ready event
The event just read an available byte from the file descriptor.

Thanks for your contribution, I'll try to double check the code again on Monday, but it looks OK to me.
One thing I'd like to have is a test. I think you can verify the invariant by using 2 pipes and two events of different priorities.
You can then check the second pipe is still full after sel returns with the first event being ready.
Some benchmarking would also be nice, but I don't have a proper infrastructure.
There is another approach that may be worth considering:

read more data here
https://github.com/gares/sel/blob/bccdff52d6516411108197d304cb991ec90a401f/lib/events.ml#L205
pass the extra data (after the \n) to the following event:
https://github.com/gares/sel/blob/bccdff52d6516411108197d304cb991ec90a401f/lib/events.ml#L168-L170

I suspect that VSCode sends the whole header in one go (and maybe also the payload). In this way the number of iterations of the loop pulling ready events is going to decrease substantially.

I took me a while, but here the result:

I now distinguish between events that are ready, that did make some progress and that made no progress
If an event makes progress (or is over) we give another chance to events of the same or lower priority that did advance
We compare priorities using the user part, since internally priorities are a pair (user,timestamp) and for the reasoning above we really don't care about the timestamp (that is used to preserve insertion order)

Both tests fail in main, and work in this branch.
I think that the behavior is now: when an system event starts to make progress, we guarantee we give it enough rounds to complete if his priority is the lowest among the events that are ready or made progress in the previous round. In particular a system even with lower priority than a ready task (Sel.now) does complete (if there is enough data to read).


Elastic v6.5.3 is now available

@vvanholl Please, release a compatible version. Thanks in advance!

Thank you, @vvanholl and @lukas-vlcek!


"Creating wallet" header is missing

There is no header and "Cancel" button on the screen during wallet creation (masternet).

checked


Add Eq1 and Ord1 instances, fix Eq/Ord

@paf31 this one probably could use an actual review...
What do you think about versioning this - minor bump? It is a breaking change, but it's fixing something that was actually unusable before.

Well, it wasn't completely unusable. Free (Const a) would have worked, for example. I think for that reason it should be a major release. We have a few libraries which need major releases soon anyway.

Right you are. I'll hold off on this until then then :)


My toolbar is not at the bottom

After it disappeared and appeared, it starts showing and hiding from the bottom.

Please provide more information...
Closing this until you add more details


Bad ? annotation on MultipartStreamBuilder

Hi,
I'm not sure but on the diff https://github.com/php-http/multipart-stream-builder/commit/67c0c52943235ac1c96b7b72c4c61b9f12b451ba#diff-8005f3317cfca4af8c4c3c618b7799ec
you change
- use Http\Message\StreamFactory;
+ use Http\Message\StreamFactory as HttplugStreamFactory;

but in the constructor the annotation StreamFactory doesn't change
   /**
     * @param StreamFactory|StreamFactoryInterface|null $streamFactory
     */
    public function __construct($streamFactory = null)
    {
        if ($streamFactory instanceof StreamFactoryInterface || $streamFactory instanceof HttplugStreamFactory) {
            $this->streamFactory = $streamFactory;

            return;
        }
        ....
    }

Is it a forgetfulness ?
Thanks for your help

Hey.
It did get changed, didn't it? We removed the annotation, right?


Web

Can you do this package also for Web?

We need this package for web platform

Can use https://github.com/ChampionsGoal/browser_image_compression


SVI in default routing table

Enhancement summary
In current implementation SVIs have to be configured in a specific VRF.
Is it possible to make AVD able to add SVI interface in default routing table?
Which component of AVD is impacted
eos_designs
Use case example
interface Vlan110
   description Tenant_A_OP_Zone
   ip address <IP_ADDRESS>/24
   ip virtual-router address <IP_ADDRESS>

Describe the solution you would like
In inventory/group_vars/DC1_TENANTS_NETWORKS.yaml
tenants:
  # Tenant A Specific Information - VRFs / VLANs
 TenantA:
    mac_vrf_vni_base: 10000
    vrfs:
     Tenant_A_OP_Zone:  <----- HERE IT SHOULD BE POSSIBLE TO USE "default" FOR DEFAULT ROUTING INSTANCE
        vrf_vni: 123
        svis:
          # Service One
          100:
            name: Service_100
            tags: [pub, servers]
            enabled: true
            ip_virtual_router_address: <IP_ADDRESS>
            nodes:
              DC1_LEAF1:
                ip_address: <IP_ADDRESS>/24
              DC1_LEAF2:
                ip_address: <IP_ADDRESS>/24
              DC1_LEAF3:
                ip_address: <IP_ADDRESS>/24
              DC1_LEAF4:
                ip_address: <IP_ADDRESS>/24

Describe alternatives you have considered
No response
Additional context
No response
Contributing Guide

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

Hello,
we tried the new feature  but It seems that something is wrong for our network:

no peering are in "IPv4-UNDERLAY-PEERS peer group".
The new network is not announced on main routing table.
vrf default are defined like it is a normal vrf and not main routing table.

We manually create a configuration that do what we need:
vlan 1009
   name JumpHost

interface Vlan1009
   description JumpHost
   ip address <IP_ADDRESS>/24
   ip virtual-router address <IP_ADDRESS>
   isis enable EVPN_UNDERLAY
   isis metric 1000

interface Vxlan1
  vxlan vlan 1009 vni 11009

router bgp 64740
   vlan-aware-bundle JumpHost
      rd <IP_ADDRESS>:11009
      route-target both 11009:11009
      redistribute learned
      vlan 1009

Is it possible to have a way to manage it by AVD?
Thank you
Nino Ciurleo

Hi Nino,

Hi Nino,
Looking at the generated output AVD tries to follow best practices for deploying services in the default VRF. That includes building an EVPN overlay for the default VRF and only advertising the subnet in that context. That is why you see all the extra prefix lists and route-maps.
See this TOI for details: https://www.arista.com/en/support/toi/eos-4-22-0f/14304-evpn-s-irb-in-default-vrf-type-2-type-5-routes

Looking at it again, I now see that you run ISIS in the underlay. The default VRF feature only supports EBGP currently. We will need to build some more logic to support your use case.
The best practice would still be to exclude this subnet from ISIS and keep it in the EVPN L3VPN for vrf default.

We use ISIS to announce it in BGP EVPN, instead of redistribute connected network.
We do not understand why you need to define a "default" VRF? It would be the main routing table.


[CW-12276] feat(evm): Support Flare mainnet

Task linked: CW-12276 Support Flare on CoolWallet Pro


update osx apis

Hi @rayluo,
I took a stab at updating the macOS Security APIs so that they are no longer using the recently deprecated ones.  Once this library is updated, I am hoping the Azure CLI will turn on encryption by default (or as an opt-in).  I'm happy to amend this change as necessary.  Looking forward to your feedback. cc @jiasli
Joe

@rayluo @bgavrilMS @jiasli I see that a new version of MSAL EX was released. Can someone put eyes on this PR?

Hi @gattjoe - @rayluo and me no longer own public client scenarios. Adding @ashok672 for guidance.
May I ask what's wrong with the deprecated APIs? Moving to new APIs would require a lot of testing.

@bgavrilMS @ashok672
The main background is this PR in the Azure Cli, where it was discussed using the encrypted persistence cache, but that the Apple APIs are legacy.  There was an assertion that the way the Azure Cli was packaged would preclude us from using the newest keychain API, which is not the case.
The main source of Apple keychain API information I used is here: https://developer.apple.com/documentation/technotes/tn3137-on-mac-keychains, where it basically says to use the SecItem keychain API. You can sere here and here how Apple has labeled the keychain APIs that MSAL EX is currently using as deprecated.
There is no difference in behavior with using the new API vs. the old. In reviewing some of your conversations with your peers (on GitHub), I can tell that maintaining compatibility is important for MSAL and by extension MSAL EX. As a result, I spent time to make sure the inputs/outputs of the functions are the same.
I have not spoken to anyone on the Azure Cli team. In the PR referenced above, it seems they are aware that the keychain API is old. I am hoping that if we can update the keychain API with this change, I can perhaps influence them to turn on encryption support with a command line flag before making it the default.
Any feedback is appreciated.

Yes, we know the API is deprecated and Apple doesn't offer support for it. But it works and there is no indication that Apple is removing this support anytime soon.
We tried to move to the SecItem API on the .NET equivalent project, only to find out that it requires a bundle id. So the new APIs are more for apps which are notarized / distributed through the Apple Store. This is not the case of Azure CLI. I may be wrong.

We wouldn't need a bundle id in this context as we are just using the Python bindings to access the APIs. Maybe you can help me convince @jiasli to turn on opt in support for encrypting the persistence cache in OS X.

@jiasli extra security on OSX would be nice


Docker: [error] TypeError: Cannot read property 'Workspace' of undefined

Hello i have been experimenting this error when building on a docker image for quite some time now. I have also been trying different versions of angular dependencies around angular 12.
The error:
[error] TypeError: Cannot read property 'Workspace' of undefined
at Object.getWorkspace (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/utilities/config.js:66:57)
at BuildCommand.validateScope (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/models/command.js:97:67)
at BuildCommand.validateAndRun (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/models/command.js:122:24)
at Object.runCommand (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/models/command-runner.js:201:38)
at process._tickCallback (internal/process/next_tick.js:68:7)
at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
🐞 Bug report

[ ] new
[x ] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?
It seems to work with version 9
Description
The error happens when building on a docker image with a bitbucket pipeline. It does work when building on a windows local machine with the command: ng build --configuration=production && ng run safesante-ysera-front:server --configuration=production && npm run pack
🔬 Minimal Reproduction
ng build --configuration=production && ng run safesante-ysera-front:server --configuration=production && npm run pack
with the following configuration:
{
"version": 1,
"newProjectRoot": "projects",
"projects": {
"safesante-ysera-front": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
  "architect": {
    "build": {
      "builder": "@angular-devkit/build-angular:browser",
      "options": {
        "outputPath": "dist/safesante-ysera-front",
        "index": "src/index.html",
        "main": "src/main.ts",
        "polyfills": "src/polyfills.ts",
        "tsConfig": "src/tsconfig.app.json",
        "assets": [
          "src/favicon.ico",
          "src/assets",
          {
            "glob": "**/*",
            "input": "node_modules/ngx-extended-pdf-viewer/assets/",
            "output": "/assets/"
          }
        ],
        "styles": [
          "node_modules/font-awesome/css/font-awesome.min.css",
<EMAIL_ADDRESS>          "node_modules/font-awesome-animation/dist/font-awesome-animation.css",
          "node_modules/font-awesome-animation/dist/font-awesome-animation.min.css",
          "node_modules/weather-icons/css/weather-icons.min.css",
          "design/css/fullcalendar-vendor.min.css",
          "node_modules/bootstrap/dist/css/bootstrap.min.css",
          "node_modules/angular2-multiselect-dropdown/themes/default.theme.css",
          "src/material-icons-font-face.scss",
          "src/ysera-styles-caro.css",
          "src/ysera-styles-faycal.css",
          "src/ysera-styles-max.css",
          "src/styles.scss"
        ],
        "scripts": [
          "./node_modules/jquery/dist/jquery.min.js",
          "./node_modules/bootstrap/dist/js/bootstrap.min.js",
          "./node_modules/detectrtc/DetectRTC.js",
          "src/assets/picture-in-picture.js",
          "src/assets/lib-jitsi-meet/lib-jitsi-meet.min.js",
          "./node_modules/fast-levenshtein/levenshtein.js",
<EMAIL_ADDRESS>        ],
        "vendorChunk": true,
        "extractLicenses": false,
        "buildOptimizer": false,
        "aot": true,
        "sourceMap": true,
        "optimization": false,
        "namedChunks": true
      },
      "configurations": {
        "production": {
          "budgets": [],
          "index": {
            "input": "src/index.production.html",
            "output": "index.html"
          },
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ],
          "assets": [
            "src/favicon.ico",
            "src/assets",
            {
              "glob": "**/*",
              "input": "node_modules/ngx-extended-pdf-viewer/assets/",
              "output": "/assets/"
            },
            {
              "glob": "Procfile",
              "input": "src/",
              "output": "./"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "namedChunks": false,
          "extractLicenses": true,
          "vendorChunk": false,
          "aot": true,
          "buildOptimizer": true
        },
        "development": {
          "budgets": []
        },
        "remote": {
          "budgets": [],
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.remote.ts"
            }
          ]
        }
      },
      "defaultConfiguration": ""
    },
    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "safesante-ysera-front:build"
      },
      "configurations": {
        "production": {
          "browserTarget": "safesante-ysera-front:build:production",
          "proxyConfig": "proxy-production.config.json"

        },
        "development": {
          "browserTarget": "safesante-ysera-front:build:development",
          "proxyConfig": "proxy-development.config.json"
        },
        "remote": {
          "browserTarget": "safesante-ysera-front:build:remote",
          "proxyConfig": "proxy-remote.config.json"
        }
      }
    },
    "extract-i18n": {
      "builder": "@angular-devkit/build-angular:extract-i18n",
      "options": {
        "browserTarget": "safesante-ysera-front:build"
      }
    },
    "test": {
      "builder": "@angular-devkit/build-angular:karma",
      "options": {
        "main": "src/test.ts",
        "polyfills": "src/polyfills.ts",
        "tsConfig": "src/tsconfig.spec.json",
        "karmaConfig": "src/karma.conf.js",
        "styles": [
          "src/styles.css"
        ],
        "scripts": [],
        "assets": [
          "favicon.png",
          "src/assets",
          {
            "glob": "**/*",
            "input": "node_modules/ngx-extended-pdf-viewer/assets/locale",
            "output": "/assets/locale/"
          }
        ]
      }
    },
    "lint": {
      "builder": "@angular-devkit/build-angular:tslint",
      "options": {
        "tsConfig": [
          "src/tsconfig.app.json",
          "src/tsconfig.spec.json"
        ],
        "exclude": [
          "**/node_modules/**"
        ]
      }
    },
    "server": {
      "builder": "@angular-devkit/build-angular:server",
      "options": {
        "outputPath": "dist/safesante-ysera-server",
        "main": "server.ts",
        "tsConfig": "src/tsconfig.server.json",
        "sourceMap": true,
        "optimization": false
      },
      "configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ]
        }
      },
      "assets": [
        {
          "input": "src/Procfile",
          "output": "./"
        }
      ],
      "defaultConfiguration": ""
    },
    "serve-ssr": {
      "builder": "@nguniversal/builders:ssr-dev-server",
      "options": {
        "browserTarget": "safesante-ysera-front:build",
        "serverTarget": "safesante-ysera-front:server"

      },
      "configurations": {
        "production": {
          "browserTarget": "safesante-ysera-front:build:production",
          "serverTarget": "safesante-ysera-front:server:production",
          "proxyConfig": "proxy-production.config.json"
        }
      }
    },
    "prerender": {
      "builder": "@nguniversal/builders:prerender",
      "options": {
        "browserTarget": "safesante-ysera-front:build:production",
        "serverTarget": "safesante-ysera-front:server:production",
        "routes": [
          "/"
        ]
      },
      "configurations": {
        "production": {}
      }
    }
  }
},
"safesante-ysera-front-e2e": {
  "root": "e2e/",
  "projectType": "application",
  "architect": {
    "e2e": {
      "builder": "@angular-devkit/build-angular:protractor",
      "options": {
        "protractorConfig": "e2e/protractor.conf.js",
        "devServerTarget": "safesante-ysera-front:serve"
      }
    },
    "lint": {
      "builder": "@angular-devkit/build-angular:tslint",
      "options": {
        "tsConfig": "e2e/tsconfig.e2e.json",
        "exclude": [
          "**/node_modules/**"
        ]
      }
    }
  }
}

},
"defaultProject": "safesante-ysera-front",
"cli": {
"analytics": false
}
}
🔥 Exception or Error

ng build --configuration=production && ng run safesante-ysera-front:server --configuration=production && npm run pack
An unhandled exception occurred: Cannot read property 'Workspace' of undefined
See "/tmp/ng-og2cCy/angular-errors.log" for further details.
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR<EMAIL_ADDRESS>build:ssr: ng build --configuration=production && ng run safesante-ysera-front:server --configuration=production && npm run pack
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build:ssr script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output abov

and:

cat /tmp/*/angular-errors.log
[error] TypeError: Cannot read property 'Workspace' of undefined
at Object.getWorkspace (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/utilities/config.js:66:57)
at BuildCommand.validateScope (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/models/command.js:97:67)
at BuildCommand.validateAndRun (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/models/command.js:122:24)
at Object.runCommand (/opt/atlassian/pipelines/agent/build/node_modules/@angular/cli/models/command-runner.js:201:38)
at process._tickCallback (internal/process/next_tick.js:68:7)
at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

🌍 Your Environment
Docker image: teracy/angular-cli

This type of error is generally caused by a mismatch of dependencies within the project.
Can you please provide the output of ng version as well as the output of npm ls @angular-devkit/core?

Thanks for considering the issue. here are the outputs:
ng version:
 _                      _                 ____ _     ___
/ \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|

/ △ \ | '_ \ /  | | | | |/ _ | '__|   | |   | |    | |
/ ___ | | | | (| | || | | (| | |      | || | | |
//   __| ||_, |_,||_,||       _|||
|___/
Angular CLI: 12.0.5
Node: 12.19.0
Package Manager: npm 6.14.13
OS: win32 x64
Angular: 12.2.2
... animations, cdk, common, compiler, compiler-cli, core, forms
... language-service, localize, material
... material-moment-adapter, platform-browser
... platform-browser-dynamic, platform-server, router
Package                                    Version
@angular-devkit/architect                  0.901.11
@angular-devkit/build-angular              12.2.6
@angular-devkit/core                       9.1.11
@angular-devkit/schematics                 9.1.11
@angular/cli                               12.0.5
@angular/flex-layout                       12.0.0-beta.34
@angular/http                              7.2.16
@nguniversal/builders                      9.1.1
@nguniversal/express-engine                9.1.1
@nguniversal/module-map-ngfactory-loader   8.2.6
@schematics/angular                        9.1.11
rxjs                                       6.6.7
typescript                                 4.3.5
webpack                                    5.51.1
npm ls @angular-devkit/core:
<EMAIL_ADDRESS>C:\projects\safe-sante\ysera-front
+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | --<EMAIL_ADDRESS>deduped | +--<EMAIL_ADDRESS>| | --<EMAIL_ADDRESS>| |   --<EMAIL_ADDRESS>| --<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>invalid
| --<EMAIL_ADDRESS>extraneous +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | --<EMAIL_ADDRESS>deduped
| --<EMAIL_ADDRESS>--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>deduped
--<EMAIL_ADDRESS>   --<EMAIL_ADDRESS>deduped
npm ERR! invalid<EMAIL_ADDRESS>C:\projects\safe-sante\ysera-front\node_modules@angular\cli
npm ERR! extraneous<EMAIL_ADDRESS>C:\projects\safe-sante\ysera-front\node_modules@angular\cli\node_modules@angular-devkit\core
I can see there is an error. Is it causing the issue? How to solve it?

I have tried to downgrade to version 12.0.0 of angular/cli in order to resolve the issue

From the output, it appears that a version mismatch is indeed the issue.  @schematics/angular is included automatically by @angular/cli and most likely shouldn't be a direct dependency of the project.  @nguniversal/builders is also on version 9.x which will most likely be problematic with a 12.x CLI.  Updating that package would be recommended as well.
After adjusting those packages, deleting the package lock file and reinstalling may also be useful in these type of situations.
If issues are still occurring, please also attach the dependency and devDependency sections of the project's package.json.

Note to update universal placates please use the below command.
ng update @nguniversal/express-engine

Many thanks, after taking into account the above remarks, the pipeline is now working. You are awesome guys

Glad you were able to get everything working.


[IE10] Cannot call a class as a function console error

I've made a simple demo app here: https://github.com/majapw/react-dates-demo/pull/3
It appears that our baseClass (https://github.com/airbnb/react-dates/blob/master/src/utils/baseClass.js) errors out in IE10 when an HOC-wrapped component extends it. It does not cause any problems when a non-wrapped component extends it.
to: @ljharb @noratarano @lencioni @AntiFish03

The second commit (which inlines the check instead of double-extending) does not error out:
https://github.com/majapw/react-dates-demo/pull/3/commits/d79813cdf3a8576e954a9f0dee4ad8312bea9305

I believe this is because react-with-styles (along with almost every HOC) hoists statics, but does not preserve inheritance (https://github.com/airbnb/react-with-styles/blob/master/src/withStyles.jsx#L23-L33) - I don't think that's something that an HOC could or should reliably solve.
I think the solution is to find an ergonomic way to use the inlined implementation, rather than creating an inheritance hierarchy.

Is the only real answer to this a babel plugin? I've gone my whole life without writing a babel plugin and I was really hoping to maintain that streak.
I guess this could be a PureComponent polyfill of sorts? Does that make sense?

There's really these options:

revert the change, and keep the manual sCU until we're ready to drop support for React < 15.3.
drop support for React <15.3, and use PureComponent, and direct people to use a PureComponent polyfill (which would require us to locate/vet or create one)
manually inline the gross code everywhere
write a babel transform that converts PureComponents to the gross version, and then we can drop that transform when we want to drop support for React < 15.3 (and we could still recommend the polyfill for those people now)

ugggghhhh. okay i'm going to revert the change and publish an 18.0.3 and then republish in 18.0.4 so that I can update our internals and we can WRITE A BABEL TRANSFORM I GUESS. :|


Use ObserveRelationFilter to filter notifications according the URI.

Use ObserveRelationFilter to filter notifications according the URI.
(Instead of duplicate the relation in leshan.)
Signed-off-by: Achim Kraus<EMAIL_ADDRESS>

I saw recently that you implement this in californium. I had planned to integrated this in Leshan.
I look at the code and it's good to merge for me. (Except some formatting issue that I could easily fixed before I integrated this)
Thx a lot Achim.

Integrated in master (commit d5cb926443090ef7d97c546b002b85e8198c7b54)


disabled prop not working without key

Question
disabled prop is not working if we don't provide a key in the field config.
What was the idea behind it?
Here you can reproduce

This issue has been fixed and released as part of v6.1.4 release.
Please let us know, in case you are still encountering a similar issue/problem.
Thank you!