A11Y: Select / PaginationV2 component: WAI-ARIA properties must reference valid IDs

Describe in detail the issue you're having.

The Select component uses a WAI-ARIA property (aria-describedby) that references an invalid ID.
The reference is to an error message which is set to 'null' if the Select component's input is valid.
In the case of Pagination or PaginationV2 the Select component is used for items per page and page selection. These values are typically set programmatically and are never invalid. Pagination / PaginationV2 never sets the "invalid" or even "invalidText" properties on the Select component. As a result, for Pagination/PaginationV2 the Select component will always refer to an invalid ID for its aria-describedby property.

Is this a feature request (new component, new icon), a bug, or a general issue?

Issue affecting accessibility compliance.

Is this issue related to a specific component?

Select, and all other components using Select (such as Pagination for example).

What did you expect to happen? What happened instead? What would you like to see changed?

ARIA properties should reference valid IDs. See
https://www.w3.org/TR/WCAG20-TECHS/ARIA1

What browser are you working in?

Chrome 67.0.3396.99 / FF 61.0.1 / Safari 11.1.2

What version of the Carbon Design System are you using?

carbon-components-react 6.18.4
Steps to reproduce the issue
Can be seen using the Carbon Design System's Storybook:
The 'aria-describedby' property references 'bx-pagination-select-2-error-msg'. An element with that ID does not exist.

Seems to duplicate #1367, which has a fix. Feel free to reopen if it's not the case. Thanks!

Seems to duplicate #1367, which has a fix. Feel free to reopen if it's not the case. Thanks!

Thank you for reporting! Seems to be a duplicate of #1367. Please don't hesitate to speak up if it's not the case!


Error setting up dual_smart_thermostat at boot

Hi!
The integration is working perfectly, but at boot I have this error logged by home assistant:
2022-04-07 10:40:35 ERROR (MainThread) [homeassistant.components.climate] Error while setting up dual_smart_thermostat platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 257, in _async_setup_platform
    await asyncio.gather(*pending)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 614, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 798, in add_to_platform_finish
    await self.async_added_to_hass()
  File "/config/custom_components/dual_smart_thermostat/climate.py", line 272, in async_added_to_hass
    async_track_state_change_event(
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 251, in async_track_state_change_event
    if not (entity_ids := _async_string_to_lower_list(entity_ids)):
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 524, in _async_string_to_lower_list
    return [mstr.lower() for mstr in instr]
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 524, in <listcomp>
    return [mstr.lower() for mstr in instr]
AttributeError: 'NoneType' object has no attribute 'lower'

Could it be due to the fact that some entities are not yet available (e.g. heater, target_sensor or openings)? Is thre any workaround?
Thanks!

Hi @swingerman I'm still seeing this in the latest version, is it supposed to be fixed? Can I provide any additional detail?

This should be fixed by now. Could you please paste your yaml of the thermostat?


Pass in two identical images

Passing two identical images to the network, why the pixel displacement is not 0

Does it work properly on the example images?

Does it work properly on the example images?

It can run normally on the example image, but if two identical images are passed in, the pixel displacement is not 0

Can you give more details about the error? Are the displacements close to zero (<1px), or very large? Is this specific to some data, or it exist for many pairs.
If the error is small, I could image this happening due to dataset bias, considering VCN is still a data-driven method and is not trained on pairs with zero motion. If the error is not negligible, it would be interesting to look into. A way to address this is to add zero-motion pairs to the training data.


RandomScore only supports int seed

As i understand you can easily use a string based seed in elasticsearch but the IRandomScoreFunction only supports an integer seed. Using a sessionid or similar rarely produces an int so is there anything wrong in making IRandomScore be string based instead?

See #1359 it looks like this is lined up for 2.0

So much for trying to search before opening issue, will close this one


settings for "fully connected" convolution

In order to perform "fully connected" convolution, I'm considering the following settings :

first 2 dimensions (width and height) of "weights" tensor : same as for input data tensor
first 2 dimensions (width and height) of output data tensor : both set to 1
in PadStrideInfo : padding set to 0
Are any additional settings required for this type of convolution ?
How should "stride" be set in PadStrideInfo ? Is there any meaning to this setting anyway ?

Hi @joel-mi,
for what concerns the fully connected layer, you shouldn't need the PadStrideInfo information.
The configure function for NEFullyConnectedLayer (https://github.com/ARM-software/ComputeLibrary/blob/master/arm_compute/runtime/NEON/functions/NEFullyConnectedLayer.h#L62) accepts the following arguments:

Tensor: input. This input tensor can either come from a convolution layer or from another fully connected layer
Tensor: weights. This input tensor stores the weights of the fully connected layer
Tensor: biases. This input tensor stores the biases of the fully connected layer
Tensor: Output. The output result
Optional. transpose_weights. It says if the tensor for the weights must be transpose

Thanks.
Gian Marco

Thanks
I didn't notice that there was a NEFullyConnectedLayer class, so by mistake I was trying to use NEConvolutionLayer for fully connected


set checkpoint interval

Description
fix checkpoint interval not set bug.

Codecov Report

Merging #587 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #587      +/-   ##
============================================
+ Coverage     54.19%   54.25%   +0.06%
- Complexity      716      717       +1
============================================
  Files           178      178
  Lines          3126     3128       +2
  Branches        206      206
============================================
+ Hits           1694     1697       +3
+ Misses         1315     1314       -1
  Partials        117      117

Impacted Files
Coverage Δ
Complexity Δ

...ub/stream/binder/EventHubMessageChannelBinder.java
65.71% <100%> (+2.07%)
4 <0> (ø)
:arrow_down:

.../binder/properties/EventHubConsumerProperties.java
64.7% <0%> (+5.88%)
6% <0%> (+1%)
:arrow_up:

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 8655ff6...a1072de. Read the comment docs.


adding field to file.store for ignoring paths from annotationTitle

In order to be able to store files to different paths than paths absolute to dir where they were pushed from added IgnorePathsFromAnnotationTitle field to file.Store struct and adjusted resolveWritePath func.
For instance file from this layer could be downloaded directly to workDir
  {     "layers": [       {         "mediaType": "application/vnd.oci.image.layer.v1.tar",         "digest": "sha256:3b6420de981ca4f6d70be7c0dc96429e85dc6d45b1612bc70b7aeb7698bd1626",         "size": 271,         "annotations": {           "org.opencontainers.image.title": "/var/folders/something-ridiculous/pushed-from-temp.yaml"         }       }     ]   }

@softpuff Thanks for contributing to ORAS-go. Could you raise an issue to elaborate on the scenario and reason for this PR?

Sorry, raised an issue #416 and signed commit


[FLINK-32108][test] KubernetesExtension calls assumeThat in @BeforeAll callback which doesn't print the actual failure message

What is the purpose of the change
KubernetesExtension implements BeforeAllCallback which calls the assumeThat in the @BeforeAll context. assumeThat doesn't work properly in the @BeforeAll context, though: The error message is not printed and the test fails with exit code -1.
Brief change log

Remove assumeThat in KubernetesExtension.
Disable related ITCase by @EnabledIf if KubeConf prop is not set.

Verifying this change
This change is already covered by existing test.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

Not sure if there's a simpler/more elegant way, @XComp do you have any other thoughts 🤔

tbh, I don't like it that much. There's a risk that @EnabledIf is missed when adding a new test. I'm wondering whether we should keep it like it is if there's no way to fix it within KubernetesExtension itself. WDYT? :thinking:

There's a risk that @EnabledIf is missed when adding a new test.

Yes, that's also why I introduced the assertion check in checkAndSetKubeConfigFile to fast-fail this if @EnabledIf is missed. Without considering complexity, we can even perform static code checks on this, maybe something like ITCaseRules.
I even have some doubts about whether the use of KubernetesExtension is discouraged by Junt. IIUC, the idea of the Junit framework is that we need to decide whether to skip tests based on conditions, rather than using certain extensions based on conditions, so it did not provide good support for this pattern.

I'm wondering whether we should keep it like it is if there's no way to fix it within KubernetesExtension.

If we keep it as it is, there doesn't seem to be much of a problem. So, I don't have a particularly strong tendency.

Perhaps we can keep this ticket open and wait for a better solution. 😆


Adding more omit patterns to coverage run in .travis.yml

Coverage remained the same at 70.367% when pulling 7c7478e4e8584ee14f38c4d6d8fe87a45238ec7c on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage remained the same at 70.367% when pulling 7c7478e4e8584ee14f38c4d6d8fe87a45238ec7c on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage decreased (-70.4%) to 0.0% when pulling 1093659d161a1e7228b24b20029168a880177915 on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage decreased (-70.4%) to 0.0% when pulling 3fc3dad794e358b84c1f2639bbcb1f195127319b on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage decreased (-22.9%) to 47.446% when pulling 512de67b877cff77f851593f728d4bd29f3f632b on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage decreased (-70.07%) to 0.301% when pulling 6fdac5507987b6c0295bf5a96245163e42f6f29f on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage decreased (-70.4%) to 0.0% when pulling 543ed00aef353ef4efc043a96c6faa0b129c2fb0 on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage decreased (-70.4%) to 0.0% when pulling 9599141eaa79d96d31fca91a128f2a5e20d09686 on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Coverage decreased (-70.4%) to 0.0% when pulling fdc2066897154f13813987cb08cf7a8e39d700a5 on coverage into c79ede9c817bf2c72c36ae14be81f3b1f0d71fad on master.

Adding cla: yes label, as the PR author is a googler at the time of this PR was created.


Unable to add/edit text.

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
When trying to edit the text in the text box or add a text in the text box, the moment I press any key on the keyboard it shows a banner titled unknown error uncaught type error.
To Reproduce
Steps to reproduce the behavior:

Open a blank or exiting diagram
Add the text box
Type the any text in the text box

Expected behavior
The text box can be used to type the desired text or edit the existing one.
Screenshots

draw.io version 20.8.3

Desktop

MacOS Ventura
Chrome
Version 108.0.5359.124 (Official Build) (arm64)

Additional context

Duplicate of #3187
Please search the existing issues before posting.


Add Podspec

Add Podspec so it can be used through CocoaPods. (I'd like to use it as a dependency in a Pod I'm publishing (BoltProtocol, dependency for Theo, the Neo4j driver for Swift))

Heh... sorry if that was a bit eager: https://twitter.com/CocoaPodsFeed/status/869985712883552256

@niklassaers hehe yeah what's up with that? Did you push this podspec to CocoaPods trunk? 😮

Yeah, I assumed I didn't have permission, and wanted to see the information provided about who has permission that I get in the error text. Turned out I had permission. Whoops. Sorry about that.

@niklassaers No worries, I appreciate the enthusiasm 😉 please transfer the pod to me though 😄 and thanks for adding this podfile 👍

Thanks. Will do :-)

Pod should be transferred now :-)


No Attribute names

The 3 attributes are not labeled with Force, Finesse, and Fortitude

Should be fixed with 1.4.1

Thank you!


Response Assert Json Structure

It would be great if there was a function on the like in Laravel that allows you to verify the structure of the JSON response rather than specific value as in all case you might not be interested what really in the data want to be sure that it is present.
e.g. response.assertJSONStructure([    'bearer', 'token', 'refreshToken ]);
Why this feature is required (specific use-cases will be appreciated)?
It's very much a nice to have. However in my case I am testing a sort of register user endpoint and expect back the auth object. I would like to verify that the token is part of the response but I generally don't care what the actual value is.
Have you tried any other work arounds?
This seems to do the job however it's not particularly clear to read.
  assert.containsAllKeys(response.body, ['token'])
Are you willing to work on it with little guidance?
yes

Hey @wardy484! 👋
This is indeed a very great feature to have.
I'll happily merge a PR that provide some JSON Schema validation 👍

Any updates?

Will start working on it as part of AdonisJs v5 release


UUU

Simbol : UUU
Name : UNetwork Token
Mixin : https://mixin.one/snapshots/32d02bce-40e5-394e-8dab-915f760b17b5
Cmc : https://coinmarketcap.com/currencies/u-network/
Contract: https://etherscan.io/address/0x3543638ed4a9006e4840b105944271bcea15605d
Website: https://u.network

Please follow Logo design format:
Logo must be round and the background shouldn’t be transparent and white.

I will open another pull request


Limit the size of the CN field in certificate requests

Checklist

[x] Affected Issues have been mentioned in the Closing issues section
[ ] Documentation has been written/updated
[x] PR title is ready for changelog and subsystem label(s) applied

This PR checks the auto-generated domain length and, if it is larger than the maximum 63 characters, inserts a shortened version into the ingress's tls.hosts list. This first domain is used in the CN field of the certificate request, and when it is larger than 63 characters the certificate request is invalid and cert-manager cannot generate certificates for the ingress.
IMPORTANT NOTE: this PR also makes a change to the lagoonbuild-controller deploy spec. Previously we were replacing the ${environment} and ${project} variables in the routerPattern before sending it to the controller. However this replacement logic is also present in the controller itself:
https://github.com/amazeeio/lagoon-kbd/blob/149a57af9b7e5258194214e89d7f27f90d59a3e6/controllers/lagoonbuild_controller.go#L311-L327
Since this PR uses the raw routerPattern, it removes the logic which does the replacement in the Lagoon API. However this may break any other build-deploy systems - I've only tested against the lagoonbuild-deploy controller.
~This PR also depends on https://github.com/amazeeio/lagoon-kbd/pull/37~ merged.
Closing issues
Closes: #2310

@smlx - this is targeted at main - do we want this in the 1.14 release - if so, it'll need to be modified for master?

moved to the Lagoon2 milestone as this is against main


BUG some times the folder tests/.phpsu gets created. This should never happen

@ChrisB9 I did not see this on may system, can you confirm that this is no problem anymore?

i cannot reproduce it anymore - seems like this bug has vanished
closing this for now


Can't locate DateTime.pm in @INC

t/Data-Commons-Image/06-dt_created.t and t/Data-Commons-Image/07-dt_uploaded.t fail if DateTime is not installed:
Can't locate DateTime.pm in @INC (@INC contains: ...
BEGIN failed--compilation aborted at t/Data-Commons-Image/06-dt_created.t line 5.
t/Data-Commons-Image/06-dt_created.t ...
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
Can't locate DateTime.pm in @INC (@INC contains: ...
BEGIN failed--compilation aborted at t/Data-Commons-Image/07-dt_uploaded.t line 5.
t/Data-Commons-Image/07-dt_uploaded.t ..
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run

Fixed in 0.02 version


View/Edit option in Data Management

Have successfully loaded 25-LY .chv dataset. Stars display. However, under the view/edit option in Dataset Management, no data appears on the table. How do I get that?

yes, fixing that now. I know what it is. If you run the Query dialog, it resets it.

problem will be fixed in 0.2 release


Possible axis mislabelling in bayesflow.diagnostics.plot_calibration_curves

Hello all,
Thank you all for the marvelous work on Bayesflow.
I have been trying to understand the calibration curve outputted by bayesflow.diagnostics.plot_calibration_curves. It seems to me that the calibration curve should be a function of predicted probability instead of the true probability. As defined in the expected_calibration_error function,
    # Loop for each model and compute calibration errs per bin
    for k in range(n_models):
        y_true = (m_true.argmax(axis=1) == k).astype(np.float32)
        y_prob = m_pred[:, k]
        prob_true, prob_pred = calibration_curve(y_true, y_prob, n_bins=num_bins)

        # Compute ECE by weighting bin errors by bin size
        bins = np.linspace(0.0, 1.0, num_bins + 1)
        binids = np.searchsorted(bins[1:-1], y_prob)
        bin_total = np.bincount(binids, minlength=len(bins))
        nonzero = bin_total != 0
        cal_err = np.sum(np.abs(prob_true - prob_pred) * (bin_total[nonzero] / len(y_true)))

        cal_errs.append(cal_err)
        probs.append((prob_true, prob_pred))
    return cal_errs, probs

Then, the true probability array should be the first element in the output list instead of the second element. Going back to the bayesflow.diagnostics.plot_calibration_curves function,
    # Determine n_subplots dynamically
    n_row = int(np.ceil(num_models / 6))
    n_col = int(np.ceil(num_models / n_row))
    cal_errs, cal_probs = expected_calibration_error(true_models, pred_models, num_bins)

    # Initialize figure
    if fig_size is None:
        fig_size = (int(5 * n_col), int(5 * n_row))
    fig, axarr = plt.subplots(n_row, n_col, figsize=fig_size)
    if n_row > 1:
        ax = axarr.flat

    # Plot marginal calibration curves in a loop
    if n_row > 1:
        ax = axarr.flat
    else:
        ax = axarr
    for j in range(num_models):
        # Plot calibration curve
        ax[j].plot(cal_probs[j][0], cal_probs[j][1], color=color)

If I did not misunderstand, the true probability is plotted in the x-axis while the predicted probability is plotted in the y-axis. However, the axis labels are,
        ax[j].set_xlabel("Predicted probability", fontsize=label_fontsize)
        ax[j].set_ylabel("True probability", fontsize=label_fontsize)

Did I miss anything here? Once again, thank you for the splendid work on Bayesflow!

Hi Chad, thank you very much for spotting this important issue! The axis ordering is now corrected.


GEOPY-684: merge release/0.9.0 to develop branch

GEOPY-684 - merge 0.9.0 to develop branch

already has 0.9.0 in develop: 0.9.0 had to be merged to main to fix main, and main has been merged to develop


micro-nightly: add version 2.0.11-dev.38

Closes #217

Based on manifest in Main

[x] I have read the Contributing Guide.

/verify

Thank you :)

No problem! :)


Page transfer

Transfer of pages from user to cluster.
@ItsiW: are clusters able to transfer pages from one to another?

Not for beta. Post-beta pages can have multiple owners and creators can fully transfer to other users by getting others to own, then leaving

Not for beta. Post-beta pages can have multiple owners and creators can fully transfer to other users by getting others to own, then leaving

pages can have multiple owners

No.

pages can have multiple owners

No.

No.

uuhhh... yes?

Done in backend.

What does this mean exactly? And where do we put it?

This is blocked by #547

This is blocked by #547

To pick the community to transfer to?

Yes

To pick the community to transfer to?

This can now be done with org.couchers.api.search.Search.Search (that's a lot of searches...), set include_communities = true, title_only = true, and it'll perform a fuzzy search on community names.


Reuse Classes from Material directly

Throughout my app, I use Material Date Picker and I only use date range picker in a couple of places. Therefore, I decided to use this library in conjunction with Material Date Picker. However, because SatDatePicker redefines some of the adapter classes, it doesn't work with anything other SatNativeDateModule. (you can but it's no immediately obvious why importing other DateModule/DateAdapter is not working properly).

MAT_DATE_FORMATS
DateAdapter
MAT_DATE_LOCALE

I think we should either rename them to SAT_DATE_FORMATS, SatDateAdapter, SAT_DATE_LOCALE or reuse the definition from material directly. At the very least, we should add the following workaround to the docs to make it clear, we are dealing with different definitions of the class / token.
import {
  DateAdapter as SatDateAdapter,
  MAT_DATE_FORMATS as SAT_DATE_FORMATS,
  MAT_DATE_LOCALE as SAT_DATE_LOCALE,
  SatDatepickerModule,
} from 'saturn-datepicker';

@NgModule({
  providers: [
    {
      provide: SatDateAdapter,
      useExisting: DateAdapter,
    },
    { provide: SAT_DATE_FORMATS, useExisting: MAT_DATE_FORMATS },
    { provide: SAT_DATE_LOCALE, useExisting: MAT_DATE_LOCALE },
  ],
})
export class SatDatAdapterModule { }

you can but it's no immediately obvious why importing other DateModule/DateAdapter is not working properly
I'm wonder too. I tried a year ago, but importing from Material not working. Don't know why

The reason is because the DateAdapter class while sharing the same name it's distinctly two different classes. It helps to think in term of namespace. Saturn DatePicker only imports its own DateAdapter, i.e. saturn-datepicker/DateAdapter while if I import @material/DateAdapter, it's not going to fulfill the contract. When you compile, it just comes down to SatDatPicker needs implementation of Class A and providing implementation for Class B is immaterial to SatDatePicker.
Please let me know if this explanation makes sense to you. Otherwise, I can elaborate further.

I knew this.


refactor: Singularity from conda environment might cause errors

The current APAeval conda environment contains Singularity:
https://github.com/iRNA-COSI/APAeval/blob/d4e7c142185f5e8ce45b94ee66510a3cc665a9dd/apaeval_env.yaml#L15
For some reason, e.g. no root access, the Singularity version from conda can lead to execution errors.
This can fixed quite easily though:

Manually remove Singularity from this conda environment and install/use an own version independently. This fix should then be highlighted by an additional note in the install instructions.
Or remove Singularity from the conda environment (i.e. line 15 in apaeval_env.yaml) and require independent installation thereof. Again, this should be reflected in the documentation.

The first fix might be preferred if the error occurs rarely and the second one if it occurs often.

Added note to README for now


feat: use ansible to download ONNX files

Description

This PR uses Ansible to download ONNX files.
Fixes https://github.com/autowarefoundation/autoware.universe/issues/3137
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@kenji-miyake I don't have much experience with Ansible, could you please have a look to make sure I'm on the right path? I'll add more tasks for more files. Thanks :pray:

@xmfcx @mitsudome-r this PR is now ready for review

Related: https://github.com/orgs/autowarefoundation/discussions/3649

@xmfcx this PR is ready for review now, I've added an option to specify the directory to download the files to and updated the ansible scripts to cover all the artifacts.

@lexavtanke could you review this please? If you have any questions, please don't hesitate to ask me or @esteve :pray:

Downloading part works good for ONNX files. But I have mention that it can be confusing for the user that he need to create the structure inside the autoware_data folder by itself. May be it is better to add it to the ansible script. Cause then people use it for preparing the env in is a bit annoying then you need to start process again and again after you meet the errors like this

I also checked updates in documentation and didn't find the folder preparation in the current version.

@lexavtanke and I discussed this over Discord in private, I agree that this PR needs to be updated so that the folders for each package are created before downloading the models, ansible does not create folders automatically and needs to be told to create them beforehand.

@lexavtanke I've updated the PR to make sure that the directories are created per package before downloading the models, can you have another look? Thanks.

@esteve Everything works good with creating folders but I experienced weird things during downloading some files:

Some checksums don't match in my case. I made suggestions in the review.
And now I noticed that ansible role named onnx. I think it can be confusing if it will be used to download artifacts for other packages. May be it is worth to change it to something like get_artfacts or just artifacts. What do you think?

@lexavtanke

May be it is worth to change it to something like get_artfacts or just artifacts. What do you think?

Good idea, artifacts sounds good to me.

@lexavtanke I've fixed all the ansible lint issues, could you have a look this PR again? Thanks.

@xmfcx I guess we need approval from you. Thanks

@xmfcx thanks :slightly_smiling_face:


stanza version

Hi, I am running into some problems. I wanna know which stanza version do you use. Thanks

my version is 0.3 . Here are errors
`python2 DataProcessor/feature_generation.py NYT 5 0 1.0 1
Start nlp parsing
Process Process-1:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f88e210>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-2:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f88a2d0>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-3:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f88a390>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-4:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f887450>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-5:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f887510>: Failed to establish a new connection: [Errno 111] Connection refused',))
Train set parsing done
Process Process-6:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1fe4e210>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-7:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1fe492d0>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-8:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1fe48390>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-9:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1fe46450>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-10:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1fe46510>: Failed to establish a new connection: [Errno 111] Connection refused',))
Dev set parsing done
Process Process-11:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f85e210>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-12:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f8592d0>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-14:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f857450>: Failed to establish a new connection: [Errno 111] Connection refused',))
Process Process-13:
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
Process Process-15:
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
Traceback (most recent call last):
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f859390>: Failed to establish a new connection: [Errno 111] Connection refused',))
self.run()
File "/home/ch/anaconda3/envs/shifted-neural2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 42, in parse
parser = NLPParser()
File "/home/ch/experiment/shifted-label-distribution/DataProcessor/nlp_parse.py", line 23, in init
self.parser = CoreNLPClient(default_annotators=['ssplit', 'tokenize', 'pos', 'ner'], server="http://localhost:9000")
File "/home/ch/.local/lib/python2.7/site-packages/stanza/nlp/corenlp.py", line 47, in init
assert requests.get(self.server).ok, 'Stanford CoreNLP server was not found at location {}'.format(self.server)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/ch/.local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2c1f857510>: Failed to establish a new connection: [Errno 111] Connection refused',))
Test set parsing done
Start em feature extraction
start train feature generation
mention :0
feature :0
label :0
Feature after filter: 0
start test feature generation
start test feature generation
Start em training and test data generation
0
start test
0
start dev
0
start mention part
start feature_type part
Start rm feature extraction
start train feature generation
mention :0
feature :0
label :0
Feature after filter: 0
start test feature generation
start test feature generation
Start rm training and test data generation
0
start test
0
start dev
0
start mention part
start feature_type part`

@Chenhao-Leon - how did you fix this error ?


spirv-fuzz: Fix instruction function use

This change replaces the instruction function GetSingleWordOperand
with GetSingleWordInOperand. Debugging spirv-fuzz, GetSingleWordOperand
was returning the result id of an OpLoad instruction with memory operands.

Looks good to me! Let's wait for the CI to be fixed before testing.


perf: add doc

:tada: This PR is included in version 1.2.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Write RFD assessing opportunities for improving the release process

Make sure it covers:

Better Docker image deploys with cargo-dist
Windows codesigning
macOS codesigning
GitHub Attestations (is this SLSA?)

@alilleybrinker just checking, is this closed by #430 ?

Ah, I suppose it is!


Using env variables in favor of config

For a Docker environment it would be better to set the config via environment variables in the release version.
Passing a config file or building a Docker container with a preset configuration is not best practise :)
What about doing something like this in the code to first try env variables and the fall back to the config:
app_key = get_env("POXA_APP_KEY") || elem(({:ok, app_key} = Application.fetch_env(:poxa, :app_key)),1)

Please read #45 Issue. We discussed that thing. I disagree and think env vars are good, but I am not a maintainer


[HOLD] Support new emojiReaction data format

[ ] Held on https://github.com/Expensify/Auth/pull/7811

Details
In order to facilitate the use of Onyx.merge() when adding and removing emoji, the data formation of reactions was changed from an array to emojiReactions which is an object. This allows for much better incremental changes of the emoji data so that the entire array of emojis doesn't have to be passed to Onyx.set() which is known for causing race conditions (explained in detail here).
This leads to a lot of cascading changes for how emojis are parsed, displayed, and modified, which this PR is updating.
Lastly, there is a network param called useEmojiReactions which allows the PHP and Auth to maintain backwards compatibility to support both reactions and emojiReactions at the same time while the front-end code is being migrated.
Fixed Issues
$ https://github.com/Expensify/App/issues/19531
Tests

Sign into NewDot with User A
Sign into NewDot with User B
Have each of them open a chat with each other
Have them both adding and removing reactions from messages
Verify that the emojis are added and removed as you would expect them to

[ ] Verify that no errors appear in the JS console

Offline tests

Go offline
Add a reaction to a message
Come back online and wait a few seconds (to ensure the network requests are all done)
Refresh the page
Verify the reaction is still there

QA Steps
Same as the tests

[ ] Verify that no errors appear in the JS console

PR Author Checklist

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

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

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

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

TODOs:

[ ] Document new proptypes
[ ] Remove old methods for adding and removing emoji
[ ] Fix a console error that happens when adding the first quick emoji to a message
[ ] Test test test

This has a HOLD on it, but it's OK to start reviewing it. The code is fully tested with the Web-E PR and is in its final state.

OK, PR is updated with:

More simple Onyx key without the reportID (means you need to sign out and sign back in to get the proper Onyx data)
Add some comments to explain what will get cleaned up
Renamed a method that is a callback
Used DRYed proptypes
Re-added a mistakingly removed prop for tooltip content keys
Tried another attempt at sorting the emojis in a more reliable way for when emojis are removed

Updated branch:

Corrected a prop reference that was passing undefined
Corrected some JSDoc params

Also, I suppose we should update the description to say that we're holding on https://github.com/Expensify/Web-Expensify/pull/37193.

@stitesExpensify we can remove the hold, fix the merge conflicts, and merge this I think. Please lmk when you're ready for another review.

@neil-marcellini I don't think so. The PHP part was reverted last week because it broke staging. We need this to be merged and deployed, and then re-merge the PHP, and then we can do this

Lots of conflicts. I'll be fixing them this week.

FYI these conflicts are hard because of the transition to functional components. I'm still working through them.

I'm marking this as a draft so I can easily ignore it until it's ready. I'll review as soon as it is ready.

Hi @rushatgabhane @neil-marcellini @MariaHCD this is finally off hold and I have fixed a ton of merge conflicts. If you could prioritize reviewing this so that it doesn't get super conflicted I would greatly appreciate it :bow:

Okay I fixed all of the changes requested, however I found a really weird bug that I'm not sure how to fix. When you react with skinTone=0 (the darkest skin tone) the skinTones object is coming back as an array 😬 I think that javascript is somehow converting the object {0: asdf} into an array because it is 0 indexed...

Or maybe it's even on the PHP side???

I figured out why it's happening, but not how to fix it :( Posting in #engineering-chat

https://expensify.slack.com/archives/C03TQ48KC/p1688678586327129
json_encode is our problem. We're going to need a PHP PR before we can do this :(

Okay I think I have a solution here https://github.com/Expensify/Web-Expensify/pull/38090

Solution for that problem was merged. We will need for it to go to prod before this can be merged

Okay the Fix for the skinTone=0 issue is now on production, so this is ready for yet another review! I did another round of big merge conflicts because we now support spanish, so any additional testing would be appreciated. We're so close!

Updated!

Aweseome! @rushatgabhane @neil-marcellini if you could check this out before there are more conflicts I would really appreciate it :)

Bump @rushatgabhane you're the last reviewer 😄

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

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

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

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

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@aimane-chnaif thanks for the info!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Is that regression of this PR?
"0:undefined:" displayed in reaction emoji tooltip and some time  "0::"
Bug posted on salack https://expensify.slack.com/archives/C049HHMV9SM/p1689854537784799

https://github.com/Expensify/App/assets/56740856/b9cbdf77-8070-4eea-8246-18f48eefeec1

🚀 Deployed to staging by https://github.com/MariaHCD in version: 1.3.44-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Migrate from git2 to gix

Switch from git2 to gix to increase performance and reduce compile times. tame-index also uses gix, which means that previously two different git implementations were used. Now the implementation is unified, reducing the amount of dependencies.
Please note that this also means that, to avoid duplication of gix in the tree, each time tame-index is upgraded, one should validate that its gix dependency matches up with the gix dependency used here.
Tasks

[x] upgrade
[x] wait for a new release of tame-index

Measurements
Before the change:
cargo build  834.74s user 31.81s system 873% cpu 1:39.23 total
cargo build --release  548.64s user 24.55s system 827% cpu 1:09.27 total

After the change:
cargo build  752.77s user 27.67s system 904% cpu 1:26.31 total
cargo build --release  505.19s user 20.98s system 892% cpu 58.938 total

Why gix indicates breaking changes basically by default
gix uses cargo smart-release to handle setting manifest versions based on conventional git commit comments, and to release interconnected crates in the correct order, based on need. There is also the notion of safety-bumps, which means that the downstream will indicate breaking changes if an upstream crate indicates a breaking change. This is because some crates may re-export their dependencies, adding their API surface in the process. However, this isn't always the case and generally, gix indicates breaking changes way more than it would have to. Wouldn't it be nice if breaking changes could be detected instead of assumed?
I think it would be a dream if cargo semver-check could somehow be integrated into the release-process of gix so that safety-bumps could be done based on actual need. Thus far I didn't look into this as it's an optimization, but it would definitely be very, very nice to have. And I am just mentioning this here in case it's interesting or even inspiring.

I think it would be a dream if cargo semver-check could somehow be integrated into the release-process of gix so that safety-bumps could be done based on actual need. Thus far I didn't look into this as it's an optimization, but it would definitely be very, very nice to have.

That'd be great! Unfortunately cargo-semver-checks currently can't connect different crates' APIs together since the rustc/rustdoc mechanism for doing this reliably isn't available yet. There's interest from the rustdoc team to do this, I just don't think it's happened yet.
It might be possible to do by scanning the 3rd party crates directly to find which APIs had breaking changes, then separately scanning gix to find which 3rd party APIs it uses, and finally intersecting the two datasets. This would require some custom work that I unfortunately don't have cycles for, but I'd be happy to mentor contributors who might be interested in it!

This is awesome, thank you! I especially love the max-performance feature name :)

I hope for a future version of gix, I will be introducing ultra-performance ;). For what's done here, I actually think max-performance isn't needed and the feature could just be removed. It's definitely your call - the trade here is performance for purity 😅.

Would you mind adding a comment near the gix and tame-index requirements that mentions the need to keep them in sync?

Makes perfect sense and is now done.
Please note that I just finished some compile-time optimization work which comes to effect only once tame-index has upgraded as well. I will wait until that happened unless you want to rather see that happen in a separate PR. Please let me know.

I hope for a future version of gix, I will be introducing ultra-performance ;). For what's done here, I actually think max-performance isn't needed and the feature could just be removed. It's definitely your call - the trade here is performance for purity 😅.

I trust your judgment. I haven't looked too closely at what the tradeoff is, and I'm happy to do what you think is best. Excited to get ultra-performance one day too! 🔥

Please note that I just finished some compile-time optimization work which comes to effect only once tame-index has upgraded as well. I will wait until that happened unless you want to rather see that happen in a separate PR. Please let me know.

Either way is totally fine. I'm probably not going to manage to make another release before I head to RustConf next week, so waiting is fine and probably won't make any difference. But again, your call, I'm equally happy to wait or merge this as-is.

Alright, then I will wait for tame-index so the switch to latest version of gix becomes possible. I'll keep you posted :).

The CI failure seems to be unrelated. Probably it works when restarted.

I am a bit puzzled about the reproducible CI error:
Error: failed to open crates.io git index

Caused by:
    Refusing to initialize the non-empty directory as '/home/runner/.cargo/registry/index/github.com-1ecc6299db9ec823'

Maybe this isn't the switch to gix, but rather, the switch to the latest tame-index? It seems to try to open the crates-index, and initialize it despite non-empty. Maybe it's related to the way the crates-index is created on CI?
I downgraded tame-index just to see if that makes CI pass. In the mean-time, do you @obi1kenobi  have suggestions on how to reproduce the CI failure locally?

The problem with CI I am running into is as follows:

the cache restores the crates-index directory in a form that contains a .cache directory, but no .git directory
This causes tame-index to fail to open the git repository, which makes it think it can clone it
That fails as the folder it tries to clone into isn't empty - it contains the .cache directory after all.

CC @Jake-Shadle who might have an idea if tame-index could possibly handle that (and I am not suggesting it should) and CC @obi1kenobi who might know more about this CI setup and how it could be adjusted to include a .git directory.
Thanks everyone for their help.

Our caching setup just uses the Swatinem/rust-cache action, so I'm not sure why a .git directory might not be present if it's expected to be there. I haven't had a chance to look into how Rust's .cache directory is expected to be structured, but I've deleted the GitHub Actions cache entry that the job was using, so we can see if the problem repeats even after a cache miss.

Ah with the wiped cache, some of the debugging code is causing the job to fail. Sorry about that!

No worries at all, thanks for your help! Maybe it works now :).

Evicted the cache again, re-running CI.

I have seen it green once by the way :)!
This is the last push, and if it's still green it should be ready to go.

Ah, unfortunately it seems to have failed :(
I don't think there's anything particularly unusual about our caching setup, so I'm wondering why other projects haven't run into this issue as well. Perhaps it's just a matter of time / upgrading to newer versions until they do as well? If so, we should probably flag this with whoever we think is best-positioned to contain the problem before it starts affecting other projects.
Do you think this is more likely to be a Swatinem/rust-cache GitHub Action issue, a tame-index issue, or something fundamental in cargo / Rust?

Maybe it was a recent rust-cache update that now prevents .git directories to become a part of the cache, that would explain why it starts happening now. Maybe it's also related to older versions of crates-index/tame-index still being able to clone into an existing directory?
My suggestion is to remove the cache in this case and see if CI times are still acceptable or lower than the longest-running  job. Then the added time due to the index clone might not even be noticeable.

Seems like my guess was correct, the caching issue was related to Rust 1.67 and upgrading the job to 1.70 makes it pass both for cache hits and cache misses.
Our next non-patch release will drop 1.67 support anyway, so I don't feel like we have to get to the bottom of it right now. Merging! Thanks for putting this together, much appreciated 🚀


removed normalize_quantile

Hi @Koncopd, as discussed, we should probably not call this function using this name. As we might have multiple conceptually more different normalization functions in the future, we should probably just be satisfied with this one normalization function for now. The most natural thing is to have a quantile param in normalize_total. What do you think?

Hi, @falexwolf .
Seems right to me. Maybe it is better to rename quantile argument to fraction?

You're right fraction is better! Can you change it directly on this branch?
Also, I did not find a test for this. Can you add one? You can essentially copy your example and the test that's there for normalize_per_cell.
Thank you!

Ok, thank you! Maybe I just didn't find them. If so, please point me to them. Merging this in the meanwhile, you can add the tests in a new PR.


Params: optional arrays within hashes/JSON objects broken

See failing tests below for more specifics.
To reproduce
In a params block, define an array param within a Hash or JSON param:
params do
  optional :data, type: Hash do
    optional :array, type: Array do
      optional :name, type: String
    end
  end
end

When the request body looks like this: { data: {} }
I'd expect that calling declared(params) within the route would return something like this:
{ data: { array: [] } }
or maybe this:
{ data: {} }
What's actually returned is this:
{ data: { array: { name: nil } } }
A hash rather than an array.

Makes sense, thanks for the test!

@dleavitt now that we have a test (thanks), try fixing it?

I ran these tests and only params with nested JSON's seem to be broken. And it is fixable by calling declared(params, include_missed: false) instead of declared(params).
Also, looking at the rest of the specs from lib/grape/validations/params_scope.rb file, it looks like expected behavior and not a bug.

Feel free to close if you're cleaning house!


Torque vectoring

Summary
Implements a torque vectoring algorithm as described at https://ubcformulaelectric.atlassian.net/wiki/spaces/UFE/pages/51904893/Traction+Control+Torque+Vectoring
Changelist

Implements the new algorithm in place of SetPeriodicTorqueRequests

Testing Done

None

Resolved Issues
Checklist
Please change [ ] to [x] when you are ready.

[ ] I have read and followed the code conventions detailed in README.md (This will save time for both you and the reviewer!).
[ ] If this pull request is longer then 500 lines, I have provided explicit justification in the summary above explaining why I cannot break this up into multiple pull requests (Small PR's are faster and less painful for everyone involved!).

Made a bunch of changes, should be very little left to do in terms of code for the current implementation.

I believe this is long outdated so closing. Please reopen if that's incorrect.


ROX-18223: version compatibility support exception handling

Description
Add a support exception to compatibility tests for latest central with sensor 3.74.x. Add functionality to find the latest patch for a given version.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
I will run the CI and check the logs to see if the correct versions were tested

/test images
/test push-images
/test gke-version-compatibility-tests

/test images
/test push-images
/test gke-version-compatibility-tests

/retest


LPS-86194 Add auto-deploy script using Liferay Fragments API

Just started reviewing :) :octocat: Sent from GH.

Pull request submitted to https://github.com/pavel-savinov/generator-liferay-fragments/pull/1. See changes here. :octocat: Sent from GH.


Update requirements

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 73.404%

Totals

Change from base Build<PHONE_NUMBER>5:
0.0%

Covered Lines:
69

Relevant Lines:
94

💛  - Coveralls


Refactor queue configs to common

Details
Multiple modules in graph service imports various queue responsible for graph change task, and instead of initializing with configuration in each and every module, we would like to add a common helper to initialize all queues and their config at one place

#308


No provider for DialogRef when using SystemJS

I'm testing the version 1, but I cannot load a custom component as a dialog when using systemjs.
Here I'm trying to load Test as dialog:
import { Component, ViewContainerRef } from '@angular/core';
import { Modal, BS_MODAL_PROVIDERS, BSModalContext } from 'angular2-modal/plugins/bootstrap/index';
import { ModalComponent, DialogRef } from 'angular2-modal';
import {MODAL_BROWSER_PROVIDERS} from 'angular2-modal/platform-browser/index';
import { bootstrap } from '@angular/platform-browser-dynamic';
@Component({
  selector: 'app',
  template: `<div class="well"><label>Modal test</label><br><div class="btn-group" role="group"><button class="btn btn-default" (click)='test()'>custom component</button>    </div></div>`,
  providers: [BS_MODAL_PROVIDERS]
})
export class App {
  constructor(public modal: Modal, viewContainer: ViewContainerRef) {
    modal.defaultViewContainer = viewContainer;
  }
  test() {
    this.modal.open(Test, new AdditionCalculateWindowData(2, 3))
  }
}
export class AdditionCalculateWindowData extends BSModalContext {
  constructor(public num1: number, public num2: number) {
    super();
  }
}
@Component({
  selector: 'modal-content',
  template: 'Test!'
})
export class Test implements ModalComponent<AdditionCalculateWindowData>  {
  constructor(public dialog: DialogRef<AdditionCalculateWindowData>) {
  }
}
bootstrap(App, [MODAL_BROWSER_PROVIDERS]);

But I get the error ORIGINAL EXCEPTION: No provider for DialogRef!
The systemjs configuration I've used to load angular2-modal is:
System.config({
  packages: { 'angular2-modal': { defaultExtension: 'js', main: 'index.js' }
  map:{ 'angular2-modal': 'node_modules/angular2-modal/' }
})

Am I doing something wrong?

@shlomiassaf I've found the issue. It appears that angular considers DialogRef two different types based on where it is exported.
I've changed the import of  DialogRef from import { DialogRef } from 'angular2-modal'; to import { DialogRef } from 'angular2-modal/models/dialog-ref'; and is now working correctly.

I'll take a look when i come back from my vacation

The commit removes all exports from the barrels (angular2-modal and angular2-modal.all)
One will have to import DialogRef using a direct path, this is not a desired behaviour.
On top of that, a UMD build will break since DialogRef will by unreachable.
I suspect it might be a wrong SystemJS configuration perhaps?
Take a look at the demo, there isn't any issue with DialogRef there.
Also, DialogRef is exported in a barrel, with other exports as well so why only DialogRef has an issue?

I don't think its a systemjs problem since it can load all the files.
In any case I've tried the same configuration used in the example but I get the same error.
System.config({
  packages: {
   'angular2-modal': { defaultExtension: 'js', main: 'index.js' },
   'angular2-modal/platform-browser': { main: 'index.js', defaultExtension: 'js' },
   'angular2-modal/plugins/bootstrap': { main: 'index.js', defaultExtension: 'js' },
   'angular2-modal/plugins/vex': {main: 'index.js', defaultExtension: 'js'},
   'angular2-modal/plugins/js-native': {main: 'index.js', defaultExtension: 'js'}
  },
  map:{ 'angular2-modal': 'node_modules/angular2-modal/' }
})

Debugging the problem occurs when loading the Test instance, BSModalBackdrop constructor runs and has the correct dialog instance. The problem seems to be that DialogRef in imported from two different places.
Regarding the PR was just a way to avoid the wrong import for the DialogRef. I'll close it since it's not compatible with UMD.

The best thing is to setup a proper SystemJS demo in plunker.
I will have to provide a proper UMD bundle for that.... so I'll work on that.

I could share a repo in the meantime.

Also, DialogRef is exported in a barrel, with other exports as well so why only DialogRef has an issue?

I think the problem is in the Dependency Injection. Only DialogRef is injected in the modal

I've put an example in this repo
https://github.com/CaselIT/angular2-modal-dialogref-error
To start it just use npm i then npm start

@CaselIT Every passing day I hate SystemJS more and more and more...

Anyway, I still didn't solve the issue, I don't know if the origin is my code or your code but this is what I found:

Notice that every source file has 2 JS files for the same name?
If you put a break point at each (JS, not TS) you will see it hit's twice.
It actually creates 2 different objects for every exported item in a duplicated file.
Note that it happens in the models directory and framework, most others are fine.
So basically what I think happens is that in the config when you map:
 'angular2-modal': 'node_modules/angular2-modal/',
 'angular2-modal/platform-browser': 'node_modules/angular2-modal/platform-browser'

It actually does the 2nd line as if the 1st line never existed having 2 copies of runtime for every object that is both imported in line 1 and in line 2.
If you go to the demo which is also running SystemJS you won't see such a thing, it has only 1 file per source.
I don't know if its SystemJS, my code, the lite-server or what ever but I just wasted 3 hours on it, this is why I hate systemJS and why I think choosing it for angular as a demo core is the worst thing every...
I understand why, it's the way things will look in the future, but man its a piece of ****

I agree that SystemJS is quite strange at times.
In any case I've the same problem even serving the site with express with servestatic, so it should not be liteserver.
What is even stranger is that I've just checked and in the configuration I map the library only once

Ok I just fixed this bug...
The fault was the tailing / in the map......
Changing from 'angular2-modal': 'node_modules/angular2-modal/' to 'angular2-modal': 'node_modules/angular2-modal' fixes the double file problem and the issue. It seems that it loaded the file twice once as http://localhost:3000/node_modules/angular2-modal/framework/... and once as http://localhost:3000/node_modules/angular2-modal//framework/....
I've updated the repo.
Sorry to have wasted your time for such a thing. :disappointed:
Do you think that it is reasonable to file an issue on SystemJS ?

no problem, I'v learned something new and reduced future head banging, monitor breaking hours 👍
I don't know, you can try they might know about this already, there might be a config for trailing slashes like they had in angular 1 with angular-resource:
$resourceProvider.defaults.stripTrailingSlashes = false;
Anyway, thanks :)

Thanks to you also for this library. :+1:
I'll close this now.


TEXT-188 Speed up LevenshteinDistance with threshold by exiting early

For details, see https://issues.apache.org/jira/browse/TEXT-188

Coverage decreased (-0.02%) to 98.653% when pulling 8c7811c529f62e98cebfaf6f4a05bd11d6073d49 on vesterstroem:TEXT-188 into 58b1cdc9d7059e6a932b907032fcb677d5302c3a on apache:master.

Infra is restarting our JIRA. So will merge it later today @vesterstroem . Thanks again for your contribution and for adding the test :+1:

Merged, with changelog added for 1.9.1. Thanks @vesterstroem

Merged, with changelog added for 1.9.1. Thanks @vesterstroem

You're welcome :-)


Calculate a custom tip: Android Basics with Compose

URL of codelab
In which task and step of the codelab can this issue be found?
Task: Set an action button
Step 4:
Describe the problem
Following step 4 for TextField() in the fun EditNumberField() is incorrect.
Steps to reproduce?
When following the image for step 4, the image shows:
keyboardOptions = keyboardOptions
As a result, the label and TextField() become underlined in red. The error message states the following for the label: @Composable invocations can only happen from the context of a @Composable function
The error message for TextField() states: None of the following functions can be called with the arguments supplied:
Versions
Android Studio Flamingo | 2022.2.1 Patch 2
Build #AI-222.4459.24.2221.10121639, built on May 12, 2023
Runtime version: 17.0.6+0-b2043.56-9586694 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 12
Registry:
external.system.auto.import.disabled=true
ide.text.editor.with.preview.show.floating.toolbar=false
ide.instant.shutdown=false
gradle.version.catalogs.dynamic.support=true
Non-Bundled Plugins:
Dart (222.4582)
DBN (3.3.9882.0)
io.flutter (74.0.2)
Additional information

The issue was that the keyboardOptions did not match KeyboardOptions.


Cannot read property 'id' of undefined

Hi, I'm trying to load a fairly large (20 MiB+) Cap file in the browser and it fails on this error:
TypeError: Cannot read property 'id' of undefined
    at Pointer../node_modules/capnp-ts/lib/serialization/pointers/pointer.js.Pointer.toString (pointer.js:44)
    at Object.format (util.js:263)
    at trackPointerAllocation (pointer.js:786)
    at new Pointer (pointer.js:30)
    at followFar (pointer.js:287)
    at followFars (pointer.js:299)
    at getTargetListElementSize (pointer.js:462)
    at isCompositeList (pointer.js:312)
    at Object.getContent (pointer.js:333)
    at getSize (struct.js:412)

Schema:
struct Dim3 {
    x @0 :Int32;
    y @1 :Int32;
    z @2 :Int32;
}

struct MemoryAccess {
    threadIdx @0 :Dim3;
    address @1 :Text;
    value @2 :Text;
}

struct Warp {
    accesses @0 :List(MemoryAccess);
    blockIdx @1 :Dim3;
    warpId @2 :Int32;
    debugId @3 :Int32;
    size @4 :UInt8;
    kind @5 :UInt8;
    space @6 :UInt8;
    typeIndex @7 :Int32;
    timestamp @8 :Text;
}

struct AllocRecord {
    address @0: Text;
    size @1: UInt64;
    elementSize @2: UInt32;
    space @3: UInt8;
    typeIndex @4: Int32;
    typeString @5: Text;
    nameIndex @6: Int32;
    nameString @7: Text;
    location @8: Text;
    active @9: Bool;
}

struct Trace {
    warps @0 :List(Warp);
    allocations @1: List(AllocRecord);
    kernel @2: Text;
    start @3: Float64;
    end @4: Float64;
    type @5: Text;
    gridDim @6: Dim3;
    blockDim @7: Dim3;
    warpSize @8: UInt32;
    bankSize @9: UInt32;
}

It happens both with unpacked and packed files, but only with some files (when I try a smaller file, it parses fine).
I'm using capnp-ts version 0.2.4 and the file was generated with Cap'n Proto v0.6.1 (in C++).
Do you have any idea what might be causing this?
Thanks.

The stacktrace is misleading; it's failing because of the traversal limit is being exceeded (and then proceeding to fail to fail because the segment is not yet defined... that needs a patch!).
There is potentially a bug in how this is being accounted for since the docs on it were slim; do these same files load fine in another implementation?

I tried to load the file with the C++ implementation that generated it and that was successful. I'll try to reproduce the file and attach it here.


Ported to firefox

Ported to firefox using update-version.ts script that changes the manifest.json version

used through the package.json scripts

"build": "bun run versionCTRL && bun run astro build && bun run csp && bun bundler.ts",

"build:firefox": "bun run versionCTRL firefox && bun run astro build && bun run csp && bun bundler.ts"

Added CI/CD for linting, formatting and building the extension

@AminoffZ i'll get right on it

@AminoffZ i've fixed the linting problems