feat: add eslint plugin no-html-links

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[x] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.

Motivation
Described in:  https://github.com/facebook/docusaurus/issues/6472

Test Plan
Jest unit tests are included.

Output of `yarn test no-html-plugins`

PASS packages/eslint-plugin/src/rules/__tests__/no-html-links.test.ts
  prefer-docusaurus-link
    valid
      ✓ <Link to="/test">test</Link> (239 ms)
      ✓ <Link to="https://twitter.com/docusaurus">Twitter</Link> (2 ms)
    invalid
      ✓ test (3 ms)
      ✓ test (2 ms)
      ✓ test (1 ms)

Test Suites: 1 passed, 1 total
Tests:       5 passed, 5 total
Snapshots:   0 total
Time:        0.67 s, estimated 1 s
Ran all test suites matching /no-html-links/i.

Test links

Docs preview: https://deploy-preview-8156--docusaurus-2.netlify.app/docs/api/misc/@docusaurus/eslint-plugin/no-html-links
Comments
The solution is fairly simple, I played around with when the message should be returned to the user (e.g. a tag has no attributes). However, if we want to enforce docusaurus links all the time this feels more accurate.

Wonder if we want to be that strict and never allow any absolute URL by default, so maybe adding an option can be convenient?

An option like ignoreFullyResolved would be my go-to, yes. It would be tricky to check template literal values, though. Recommending always using <Link> is not that bad and may allow us to do other useful things in the future.

ignoreFullyResolved seems fine, even if it only allows hardcoded href props that can already be convenient.
Not sure "fully resolved" is very common, where does it come from?

Recommending always using  is not that bad and may allow us to do other useful things in the future.

Agree, but maybe we'll need to improve it then because for example not merging rel (current behavior) is a bit annoying

ignoreFullyResolved seems fine, even if it only allows hardcoded href props that can already be convenient.

Maybe we also should add an option to ignore mailto or let them pass as default behaviour?

I'd say, anything that starts with a protocol should be ignored.

I was thinking about "fully resolved paths". I don't know where that term crosses my mind either.

I want to review this before merging. I think I can find some time this weekend

conflict resolved
@Josh-Cena do you still want to review it?

@Josh-Cena ?

@Josh-Cena let me know if you want to do something about this PR 🤪 otherwise I'll apply some suggestions, do a few minor changes and merge it

Mostly LGTM. I wonder if we should add an option to ignore fully dynamic and not statically analyzable href props, but that could be an extension because using Link can't harm in any case.

Look good enough to merge
Added some extra code to handle hardcoded/static template literal strings too href={"https://xyz.com"} as it wasn't the case.
For more dynamic cases where static analysis is possible, that can be handled in a follow-up PR

Was wondering if it's possible to pre-evaluate AST nodes with TSESTree @Josh-Cena @JoshuaKGoldberg
Apparently, Babel is able to do that successfully:

Feel free to complete the missing cases if you know how to ;)


Multiple filter text keywords.

Could you add separate, multiple keywords feature with basic logic (AND, OR, etc.)?

Hello, and thanks for the suggestion! Unfortunately I don't actively update
this app anymore so I won't be able to add for now, but I do accept PRs.
On Tue, Dec 22, 2020 at 4:48 PM Jakub Konior<EMAIL_ADDRESS>wrote:

Could you add separate, multiple keywords feature with basic logic (AND,
OR, etc.)?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Klocman/Automatic-Volume-Mixer/issues/10, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADRZC4DNNX466RZJFC6ZAWDSWC5URANCNFSM4VFZVKCA
.

That's a pity.


move gulp inside eng/mgmt

https://github.com/Azure/azure-sdk-for-java/pull/6365

@weidongxu-microsoft thanks for cleaning this up. Is there any way to also include https://github.com/Azure/azure-sdk-for-java/blob/master/swagger_to_sdk_config.json as part of this move or is it part of another process?

@wesback swagger_to_sdk_config.json is used by swagger team for automation. I will involve Phoenix @NullMDR in the discussion. If we move it their script need modification (and need to be done in sync).
Hello Phoenix, is it OK that we move swagger_to_sdk_config.json to some inner folder?

@weshaggard @weidongxu-microsoft Currently SDK Automation only support swagger_to_sdk_config.json in root folder. If you have a strong need on this feature we could discuss on it.

@weshaggard @weidongxu-microsoft Currently SDK Automation only support swagger_to_sdk_config.json in root folder. If you have a strong need on this feature we could discuss on it.

Thanks for the info. No strong reason just trying to clean-up the root of the repo. It would be nice if you guys could have an issue on your backlog to allow repo's to set this as a configuration option so folks aren't stuck with it being only in the root of the repo.


Typeguard

I need a way to typeguard a jimp instance in typescript, is this possible currently?
Thinking something like Buffer.isBuffer possibly Jimp.isJimp.
For some reason x instanceof Jimp doesn't work.

no but you could probably write something yourself. incoming ts rewrite might fix this


On success data is not being returned. Only file list is returned

You need to provide code sample and steps to reproduce if you need help


Remove deprecated mod that nobody wants, A.K.A. DD

We don't just delete mods because someone comes along and says that "nobody wants [it]". If nobody downloads it, then nobody downloads it, and when KSP 1.4 comes along, it'll disappear from people's CKAN clients if it doesn't get updated.


File share scale targets are incorrect

I see recently this article seems to have changed for file share limits.  The article used to say that standard file share IOPS was 1000 and that Large file shares option increases to 10,000 IOPS.  But now it says that a file share iops limit is the 'storage account limit' which above shows 20k IOPS.  Pretty sure this is not correct.  i am still seeing standard account file share iops limits are 1000 and 10,000 if LFS is enabled.

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

ID: 991338c0-1a61-99e1-41ea-45fd5d5fd63d
Version Independent ID: f2dd8b70-29f2-bb22-38f5-097c5eb6b797
Content: Azure Files scalability and performance targets
Content Source: articles/storage/files/storage-files-scale-targets.md
Service: storage
Sub-service: files
GitHub Login: @roygara
Microsoft Alias: rogarana

Hello @javester,
Thank you for your feedback! We will review and update as appropriate.

@javester The 20,000 IOPS limit is referring to the storage account. The 1,000/10,000 limit per file share is still there in the Azure file share scale targets. This is clarified in this paragraph:
Azure file shares are deployed into storage accounts, which are top-level objects that represent a shared pool of storage. This pool of storage can be used to deploy multiple file shares. There are therefore three categories to consider: storage accounts, Azure file shares, and files.


zopen-importenvs fails under /bin/sh

but works under bash

btw. it would be nice to save the importenvs into a file instead of having to run it each time.
then it could be added to ~/.profile or used for a zigi environment file (which is read in and used in the bpxwunix environment stem.


Write "Your First Game" Page

[ ] Write the text
[ ] Include the ready-to-use-assets

[ ] Game code .wasm
[ ] Default Palette
[ ] A few sprites

Closing this since I don't think its necessary anymore!


Suggestion: script for getting --bigkeys

OS
Windows
ISSUE DESCRIPTION
Or is there a feature similar to that? Basically to get the largest KEYS in a specific db (db0,db1,etc)
To have a script like "redis-cli --bigkeys"

it seems that we can't get bigkeys analysis inside a redis connection, except redis-cli --bigkeys


Doesn't follow singer spec for discovery

Tried running this locally as I wanted to get this tap added to the Meltano Hub here https://github.com/meltano/hub/issues/1684
The issue is that when you run this tap in discovery mode it outputs a singer message, not the catalog as it should, see https://github.com/singer-io/getting-started/blob/master/docs/DISCOVERY_MODE.md
To replicate

Download the latest release wget https://github.com/planetscale/singer-tap/releases/download/v0.26.0/ps-singer-tap_0.26.0_linux_amd64.tar.gz
tar xvf *.gz
./ps-singer-tap --config config.json --discover > catalog.json
Take a peek at catalog.json

{"type":"SCHEMA","streams":[{"type":"","stream":"testtable","tap_stream_id":"tap-mysql:testtable","schema":{"type":["null","object"],"additionalProperties":false,"properties":{"test":{"type":["null","string"]}}},"table-name":"testtable","metadata":[{"metadata":{"selected":false,"replication-method":"INCREMENTAL","inclusion":"available","breadcrumb":[]}},{"metadata":{"selected":false,"inclusion":"available","breadcrumb":["properties","test"]}}],"key_properties":null,"bookmark_properties":null}]}

This isn't a valid catalog.  A valid catalog doesn't have "type":"SCHEMA" so if we "popped" type from this json object everything looks right to me!

Thanks for filing this issue, we'll prioritize it accordingly and take a look at it.


Enhancing the API so that it provides some first OSMOSE parameter values

@jhpoelen
The time is ripe to enhance the API so that it provides estimates for "simple" OSMOSE parameters to be incorporated in the CSV files of the "osmose_config.zip" file. The simple OSMOSE parameters I am referring to are the following (https://github.com/jhpoelen/fb-osmose-bridge/blob/master/src/main/resources/com/github/jhpoelen/fbob/fishbase-mapping.csv):
species.lifespan.sp
species.K.sp
species.lInf.sp
species.t0.sp
species.length2weight.condition.factor.sp
species.length2weight.allometric.power.sp
species.maturity.size.sp
species.maturity.age.sp
species.sexratio.sp
predation.ingestion.rate.max.osmose.sp
predation.predPrey.stage.threshold.sp
predation.accessibility.stage.threshold.sp
plankton.TL.plk
plankton.size.min.plk
plankton.size.max.plk
Please let me know when you have made some progress on this front; I will then use the wizard, download the "osmose_config.zip" file to thoroughly check its content, and let you know my thoughts.
Many thanks.

@agruss2 Thanks for your detailed issue description. I included necessary improvements to ensure the correct mapping of provided parameters and extended test cases to check the provided implementation (see https://github.com/jhpoelen/fb-osmose-bridge/blob/master/src/test/java/com/github/jhpoelen/fbob/TraitFinderIntegrationTest.java). Please confirm that the mapping is as expected.

@jhpoelen
Thanks a lot for having worked on this.
I used the wizard to see if the changes that you have introduced lead to the definition of relevant values for "simple" OSMOSE parameters, but unfortunately ran through a bug described in #77.
Please try to solve issue #77. I will then reuse the wizard to download a config zip file so as to check that the simple OSMOSE parameter values provided by the API make sense.

@jhpoelen
Thanks a lot for having worked on this; this is a good start.
I went through all the steps and downloaded an osmose config zip file.
Here are the errors that I have noticed:
(1) species.lifespan.sp0 was set to 0, while it should be greater than 0;
(2) species.maturity.size.sp1 and species.maturity.size.sp2 were both set to 0, while they should both be greater than 0;
(3) species.maturity.age.sp0, species.maturity.age.sp1 and species.maturity.age.sp2 do not appear in the "osm_param-species.csv" file, while they should;
(4) species.sexratio.sp0, species.sexratio.sp1 and species.sexratio.sp2 were all set to 0, while they should all be greater than 0;
(5) predation.accessibility.stage.threshold.sp0, predation.accessibility.stage.threshold.sp1 and predation.accessibility.stage.threshold.sp2 were all set to 0, while they should all be greater than 0;
(6) plankton.size.max.plk0 was set to 0, while it should be greater than 0;
and
(7) plankton.size.min.plk0 was set to 0, while it should be greater than 0.
I think that I know why we get these results. This is because, currently, the API considers only 1 species for each functional group to derive some parameter values. This should be altered so that we get relevant values for the different parameters of all functional groups. Issue #59 states: "List of up to 100 species provided for an order will be ranked by decreasing data richness. The species will be extracted from the fishbase api." This needs to be implemented so that the API can get a long list of species for each functional group instead of only one single species. Could you please work on this issue with @FIN-JBarile and @FIN-casey as soon as possible?

@agruss2 Thank your for your feedback.
Please provide the functional groups and associated species that you used to generate your result, including the fishbase spec code if possible.

@agruss2 I've made it so that defaults are applied on the group level. Previously, the defaults were applied on the species level.
consider group X that contains species A and species B. Fishbase does not have a value for trait T for species A, but it does have a value for trait T for species B.
So previously, if value for trait T was not available for species A, the api would place the default instead.
Now, if a value was not available for species A, the api considers the next species in the group (i.e. species B) and attempts to retrieve the value for trait T for that species. If all species have been exhausted, the api will place the default value for trait T.
Once @FIN-JBarile and @FIN-casey  implement #59 and provide the ordered list to the API, appropriate trait values should be found in the resulting osmose configuration archive.
@agruss2 please confirm that the behavior is as expected.

@jhpoelen
Thanks a lot, this is excellent !
You are describing very well what we want to do here.
So, I went through all the steps and downloaded a new osmose config zip file.
I noticed that, now that the strategy that you are describing is implemented, we are obtaining fewer errors. Here are the errors that I have noticed this time:
(1) species.lifespan.sp0 was set to 0, while it should be greater than 0;
(2) species.maturity.size.sp2 was set to 0, while it should be greater than 0;
(3) species.maturity.age.sp0, species.maturity.age.sp1 and species.maturity.age.sp2 do not appear in the "osm_param-species.csv" file, while they should;
(4) species.sexratio.sp0, species.sexratio.sp1 and species.sexratio.sp2 were all set to 0, while they should all be greater than 0;
(5) predation.accessibility.stage.threshold.sp2 was set to 0, while it should be greater than 0;
(6) plankton.size.max.plk0 was set to 0, while it should be greater than 0;
and
(7) plankton.size.min.plk0 was set to 0, while it should be greater than 0.

@agruss2 thanks for your details.
Please provide a sealifebase/fishbase urls, species names and expected value for each of the traits you mentioned.
Also, please provide the functional groups and their taxa.

@agruss2 While I am waiting for your details on specifics of expected "greater than zero" values for your specific test, I am able to address two items.
Re: (1) species.lifespan.sp0 was set to 0, while it should be greater than 0;
I noticed that you  changed the default from 0.0 to 0.5. The changes broke the build and were not propagated. You should have received an email about this from travis. I fixed the issue yesterday, and the expected default should now appear.
Re (3) species.maturity.age.sp0, species.maturity.age.sp1 and species.maturity.age.sp2 do not appear in the "osm_param-species.csv" file, while they should;
This property has been added.
Re (5) predation.accessibility.stage.threshold.sp2 was set to 0, while it should be greater than 0;
According the the fishbase-mapping.csv file, this property is using an unsupported column name selected (discussed in #76). So, I would expect only observed default values for this property to appear.
This leaves:
(2) species.maturity.size.sp2 was set to 0, while it should be greater than 0;
(4) species.sexratio.sp0, species.sexratio.sp1 and species.sexratio.sp2 were all set to 0, while they should all be greater than 0;
(6) plankton.size.max.plk0 was set to 0, while it should be greater than 0;
and
(7) plankton.size.min.plk0 was set to 0, while it should be greater than 0.
In order for me to resolve these issue, I need:

the fishbase species id and name
the expected osmose property value (e.g. 0.1234, instead of "greater than 0")
a link to the fishbase / sealifebase page that reports the expected osmose property

Thanks you for your patience and providing the details needed to nail down these important issues.

@agruss2 please note the updated comments above.

@jhpoelen
Here is the selection that I made in the wizard:

sp0:
Functional Group: Amberjacks
Focal Functional Group: Yes
Species: Seriola dumerili; Seriola fasciata; Seriola zonata

sp1:
Functional Group: SmallPelagics
Focal Functional group: Yes
Species: Sardinella aurita; Harengula jaguana; Opisthonema oglinum; Decapterus punctatus

sp2:
Functional Group: KingMackerel
Focal Functional Group: Yes
Species: Scomberomorus cavalla

plk0:
Functional Group: RedGrouper
Background Functional Group: Yes
Species: Epinephelus morio

@agruss2 thanks again for your detailed feedback and your patience.
I have documented your observations in separate issues in an attempt to organize our work. This is why I am closing this issue. If you find any new suspicious values in generated osmose configuration file, please open a separate issue.


Could not find source or metadata file in path; make sure you called with a .csv file

Hi,
I'm trying to convert a csv file into RDF format unsuccessfully. I tried to run the command proposed on the pypi.org site of the cow-csvw library:
cow_tool convert myfile.csv
The whole error message is
Converting addresses.csv to RDF
Initializing converter for addresses.csv
Something went wrong, skipping addresses.csv.
Traceback (most recent call last):
  File "C:\Users\dende\AppData\Local\Programs\Python\Python39\lib\site-packages\cow_csvw\csvw_tool.py", line 55, in __init__
    c = CSVWConverter(source_file, delimiter=delimiter,
  File "C:\Users\dende\AppData\Local\Programs\Python\Python39\lib\site-packages\cow_csvw\converter\csvw.py", line 203, in __init__
    raise Exception(
Exception: Could not find source or metadata file in path; make sure you called with a .csv file

I tried also using the absolute file path without success. After checking the "csvw_tool.py" script I couldn't find the problem. The Exception is raised from an if block where the target file is not found. I included the csvw_tool folder path in the PATH environmental variable but obviously the file is not encountered by the script.
Any hint?

Ok, I had to apply build prior to convert command.


Convert google doc covering what flutter engineers need to do when a new android version is released to a md doc

https://docs.google.com/document/d/1q9L2-0bXSJpeBwgcNcYIN9X5B6cyP13p6EFSH0JBdgQ/edit?tab=t.0#heading=h.c0uts5ftkk58

https://github.com/flutter/flutter/wiki/New-Android-version


Error?

Traceback (most recent call last):
File "CryptoTriangularArbitrageBinanceBot.py", line 24, in
from binance.client import Client
ImportError: No module named binance.client

This error is caused when (I believe) you have not placed the "cryptotriangular..." (or any other bot) file in examples folder of Roibal/Python-Binance/ fork .
I am putting this answer here in case anyone else runs into this problem at a later date.


Error package 'knitr' not found

After selecting the YAML file, i got the following error:
Error package 'knitr' not found
This is the Console Output:
Warning: Error in utils::packageVersion: package ‘knitr’ not found
Stack trace (innermost first):
109: utils::packageVersion
108: knit_meta_reset
107: render
106: discover_rmd_resources
105: find_external_resources
104: copy_render_intermediates
103: output_format$intermediates_generator
102:
101: do.call
100: contextFunc
99: .getReactiveEnvironment()$runWith
98: shiny::maskReactiveContext
97:
86: doc
85: shiny::renderUI
84: func
83: origRenderFunc
82: output$reactivedoc
7:
6: do.call
5: rmarkdown::run
4: eval [~/Team Data Science Process/Azure-TDSP-Utilities-master/DataScienceUtilities/DataReport-Utils/Run-IDEAR.R#14]
3: eval
2: withVisible
1: source
What is wrong with it?

You need to install the "knitr" package.
Try to execute this before running the rmarkdown document:
install.packages('knitr')

Hi @rbobadilla ,
Thanks for trying IDEAR.  Can you try installing knitr with install.packages('knitr') as @symeprog suggested?  It looks like knitr package is not installed correctly in your setup. Let me know if it solves the problem.
Xibin


Cost model empty state not displaying when no models

Refactored cost models' empty state to test user filters only
https://issues.redhat.com/browse/COST-1518
Empty state

No match

Loading

Codecov Report

Merging #1992 (73c9106) into master (0058c88) will increase coverage by 0.67%.
The diff coverage is 58.03%.

@@            Coverage Diff             @@
##           master    #1992      +/-   ##
==========================================
+ Coverage   70.51%   71.19%   +0.67%
==========================================
  Files         307      386      +79
  Lines        5392     7036    +1644
  Branches     1083     1507     +424
==========================================
+ Hits         3802     5009    +1207
- Misses       1482     2001     +519
+ Partials      108       26      -82

Impacted Files
Coverage Δ

src/api/forecasts/awsCloudForecast.ts
40.00% <0.00%> (-26.67%)
:arrow_down:

src/api/forecasts/awsForecast.ts
40.00% <0.00%> (-26.67%)
:arrow_down:

src/api/forecasts/azureCloudForecast.ts
40.00% <0.00%> (-26.67%)
:arrow_down:

src/api/forecasts/azureForecast.ts
40.00% <0.00%> (-26.67%)
:arrow_down:

src/api/forecasts/ocpCloudForecast.ts
40.00% <0.00%> (-26.67%)
:arrow_down:

src/api/forecasts/ocpForecast.ts
40.00% <0.00%> (-26.67%)
:arrow_down:

src/api/queries/providersQuery.ts
80.00% <0.00%> (ø)

src/api/reports/gcpReports.ts
100.00% <ø> (ø)

src/api/tags/gcpTags.ts
100.00% <ø> (ø)

...components/async/asyncComponent/asyncComponent.tsx
100.00% <ø> (ø)

... and 369 more

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 3147d10...73c9106. Read the comment docs.


[$250] UI - Border radius of attached protected pdf does not match with parent component @dhairyasenjaliya

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to staging.new.expensify.com
Go to any conversation
Send password protected pdf
Notice blue border of protect attachment
Notice there is white space in all corner

Expected Result:
Blue border radius of protected pdf should match with parent component
Actual Result:
Blue border radius of protected pdf does not match with parent component (leaves white spaces in corner)
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers): any
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: @dhairyasenjaliya
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1664363401205419
View all open jobs on GitHub

This can be external

PROPOSAL
if (html !== text) {                 const editedTag = props.fragment.isEdited ? '<edited></edited>' : '';                 const htmlContent = html + editedTag;                 return (                     <RenderHTML                         html={props.source === 'email'                             ?${htmlContent}                            :${htmlContent}}                     />                 );             }
The issue is with the HTML being rendered. If we remove the borderColor, borderWidth and borderRadius from the HTML it will be fixed.
@kbecciv

@eVoloshchak
I gave the solution because the gray outline is not visible apart from the incorrect border. Still if we need the border to be there we can set the border-radius to 15px , rn it is 8px in HTML.

I gave the solution because the gray outline is not visible apart from the incorrect border.

For me it's visible

Still if we need the border to be there we can set the border-radius to 15px , rn it is 8px in HTML.

Yeah, that would be perfect!
Could you please include a code snipped with this change?

@eVoloshchak
In styles.js -> tagStyles -> img
Existing object:
img: {
            borderColor: themeColors.border,
            borderRadius: variables.componentBorderRadiusNormal, // 8
            borderWidth: 1,
        }

Updated object:
img: {
            borderColor: themeColors.border,
            borderRadius: 10,
            borderWidth: 1,
        }

That's what it looks like for me with borderRadius: 10.
We need to figure out why it's inconsistent, so in case we change the border radius of this card (or blue border around it), this issue doens't appear once again. They should have the same variable with border radius

That's what it looks like for me with borderRadius: 10. We need to figure out why it's inconsistent, so in case we change the border radius of this card (or blue border around it), this issue doens't appear once again. They should have the same variable with border radius

Sorry, it was 15. I mention 10 by mistake.

Proposal
I think the image that is being used should be fixed so that it fits correctly but if we want a front end solution I propose changing the border radius but only for the pdf
we can check if it's a pdf by Str.isPDF(source)
and if it's true we will use borderRadius 15 ( we will add it in the styles.js)
https://github.com/Expensify/App/blob/93587b19296f6c07567b5576418725ae213321ed/src/components/HTMLEngineProvider/HTMLRenderers/ImageRenderer.js#L73
 style={[styles.webViewStyles.tagStyles.img, Str.isPDF(source) && styles.bR15]}

I think the image that is being used should be fixed so that it fits correctly

Agree, I also think this is the best solution. It would make it consistent with all of the other images

but if we want a front-end solution I propose changing the border-radius but only for the pdf, we can check if it's a pdf by Str.isPDF(source)

Awesome, that's what was missing from the previous proposal. I think it should be 14 instead of 15, but it's kinda hard to tell
To summarize, we have 2 ways to fix this issue

Replace the "Password protected PDF" image with the one with the correct border-radius (probably requires changes to the back end)
Change border-radius on the front-end for the "Password protected PDF" image only

@marcaaron, could you please take a look at this, what do you think?

I think the image that is being used should be fixed so that it fits correctly

Agree with this approach as well, but I would maybe modify it so that the image can have any custom border set in the front end so that we do not need to cut a new image each time someone changes the border.
So basically something like:

generic version of this image without a border at all
if we have the pdf that is password protected put the blue border on it
otherwise use the grey one

Where does this image come from? I'm not really sure tbh. Maybe @Expensify/design knows.

Ah yeah, we should just use a version that has no rounded borders, I agree.
Hmm I'm not sure where it's hosted, but I remember @michelle-thompson working on it not that long ago? Maybe she can dig up the GH for it?

I found the graphic but have to remove the border first - @shawnborton do you think we should make any updates to font/branding while we're at it?

That makes sense to me. Do you have the old GH handy from where you first did this update? I'm trying to figure out where this is hosted - it might be something that we need to update internally on the Expensify end in the Web repo.

I wasn't able to find it in my issues, but I think I worked with @thienlnam on this before so he might know!

Yes, agree on all the sentiments here that we should be updating the image asset instead of making a front-end solution.
Here's that old issue for adding this - https://github.com/Expensify/Expensify/issues/136829

@thienlnam do you know if the image is in the Web repo somewhere?

It's in the Web-PDFs repo var/pdfs.expensify.com/assets/encrypted-file-thumbnail.jpg
https://github.com/Expensify/Web-PDFs/blob/2240636796dd4ab730329552341bea83227efb5d/var/pdfs.expensify.com/assets/encrypted-file-thumbnail.jpg

Going OOO for a week so unassigning, but looks like this is going to be internal before it's external - so I think we should consider just making it internal.

Agree, I think we need to assign internally to an engineer to update the file in the location Jack posted above.

I can take this one now. I think this actually needs to be assigned to an internal engineer though, so let me try to do that, unless you can quickly tackle this one @thienlnam?

I'm heading OOO after today as well, though if it's just to update the file locations you should have write access to make a PR in that location (maybe?). But I'll just pullerbear another engineer to help ya out with this

Oh goodness sorry for the pings, I accidentally pressed the external label but it assigned an engineer so problem failed successfully

the new file is a png and the old one a jpg, is this a problem, should they both be the same formart? I'm not sure we use the formart when when ussing assets. @shawnborton

It seems like Web-PDFs is not deployable at the moment, we need to wait for the upgrade to php8

BZ?

Check this @sketchydroide -> https://docs.google.com/document/d/1JVk4S8r_ets5lwM6KdpggQHG7li_H3VSE8qETYbe6gI/edit

ahh Bug Zero of course

Huh, I'm not certain what's going on in this issue. The linked PR is merged, but is Web-PDFs still not deployable?

last time I checked it was because we couldn't deploy Web-PDFs yet due to the PHP 8 thing, I'll check if this has changed in the last week

@iwiznia any update on the PHP upgrade and deploying this? 🙇🏼
Sorry to bring you in, but it's just easier to track that way

Oh right, I have been meaning to bug Ionatan on this one. 😄

Looks like this issue is just waiting on a production deploy to close.

confirmed, closing

hello @sketchydroide @JmillsExpensify Upwork job for reporting the issue is missing

Bump for Upwork job for reporting the issue @JmillsExpensify

Ah for clarity, the US is currently on holiday. Let me create a quick job for you though since it seems we're both online.

Upwork job is here: https://www.upwork.com/jobs/~01ca1e43be96f08f0e.

Appied , Ah I see sorry for trouble have a great holiday

Not a problem! Let's get this settled for you, as I'm online. Just sent you an offer via Upwork. 🙌🏼

Accepted offer @JmillsExpensify

Payment issue and contract closed! You should be all set now, let me know if I can help with anything else.

All good thank you👍 @JmillsExpensify


Remove RoboFile.php

[ ] release task move to NPM scripts
[ ] test:server task move to NPM scripts

already covered by this https://github.com/Codeception/CodeceptJS/pull/2025


Add option to toggle on behavior

keep the default behavior of turning on the rest plus when it starts playing music or light, but allow a configuration option to only turn on with switch.  This would allow setting sound and light before the device turns on.

testing in https://github.com/dahlb/ha_hatch/pull/18 now


can't invite the bot because it's unverified

when i try to add this bot to a server all i get is the message 'This bot can't join more servers as it has not been verified or is requesting gateway intents it has not been verified for. Ask the bot's developer about https://dis.gd/bot-verification so you can add it to your server!'

Hello! Sorry that you're an issue with inviting the bot, you can read more about this here: https://github.com/exilravu/MemerBot#bot-invite-link-offlineno-longer-working

Hello! Sorry that you're an issue with inviting the bot, you can read more about this here: https://github.com/exilravu/MemerBot#bot-invite-link-offlineno-longer-working


Add a "metadata" file contents flag

Currently this supports "yaml" as the only option, which will output the yaml config (as JSON) into the file specified in the image.
Fix #107
This should be extended to add more metadata, eg moby tool commit and version used to build, and anything else useful.

Can we add a sample use and/or doc?

AH yes, will update doc; was going to add to linuxkit.yml too

added doc


Update tls dependency

I'm not sure if this breaks anything. But it would be good to use the latest version of TLS.

Closed in favour of https://github.com/markhibberd/network-api-support/pull/27


why port 9229 had been used!

VSCode Version:1.40.1

OS Version: Darwin x64 18.6.0

Steps to Reproduce:
1.i don't use port 9229
2. it just can't run my service

Does this issue occur when all extensions are disabled?: Yes

Duplicate of #85328

I'm having the same issue. Everything was working perfectly. I have a basic node project that I'm not able to debug anymore. I think it all happened after the last update. Already wasted a few hours of my time and yet haven't found a solution.


added pre_backup_cmd to backup items (wip)

Opening this PR as I did this change locally and thought it would add value to the role.
I have a changing number of databases I need to backup that need to be dumped to file before each backup. Since the names and numbers are not known at playbook-runtime I cannot use the stdin-feature in this role. My solution is a pre_backup_cmd.
Let me know if this is interesting. I am open to refining the change as needed.

Hi @felixandersen
If I understood it correctly it sounds like a good idea.
But by browsing over the code I am not absoludly sure if I understood it correctly.
Could you give an config example and maybe some minor explaination for the README? :kissing_heart:

I added an example to the README to clarify. That specific pre_backup_cmd however is untested. My deployment runs a separate python-script that does a similar thing.

systemd has an option for Nice in the service
[Service]
    Type=simple
    Restart=always
    RestartSec=60
    #ExecStartPre=/bin/sleep 20
    User=colibri
    Nice=-10
    StandardOutput=null
    StandardError=null

Seems like maybe it would be better to use that? Or maybe even add a dictionary of service options that could be added as a loop.


Uninstallation issue

The problem
Getting error messages about not finding the Dialogic files on every run of my project after uninstalling the plugin
I installed this for a project that ended up not needing a dialog system. So I uninstalled it months back and I don't exactly know how but I vaguely remember reading the docs or something telling me to delete the files and going into project settings > plugins and removing it there.
I did that and now have no files or plugins installed but on every run of my project, I get the same error messages and I've tried to get rid of them several times without ever finding a solution.
Describe the bug
I installed this for a project that ended up not needing a dialogue system. So I uninstalled it months back, I vaguely remember reading the docs or something telling me to delete the files and going into project settings > plugins and removing it there. I believe I also had issues installing it as it didn't function properly which might've contributed to this issue. I'm not 100% sure but I might've installed it on a 3.5 version of the project while now I'm on 4.0.2
I did that and now have no files or plugins installed but on every run of my project, I get the same error messages and I've tried to get rid of them several times without ever finding a solution.
To Reproduce
Since this happened months ago, I can't really remember how but I believe I just:

Deleted the "addons" folder containing the plugin.
Removed the plugin within the project settings

Expected behavior
Since I believe the installation wasn't done properly. I don't know if this will result in the same behavior.
Screenshots

System (please complete the following information):

OS: Windows 10
Godot Version: 4.0.2
Dialogic Version: No clue as there are no files left in the directiory.

I don't expect a solution, support or anything but if anyone has any ideas on how to fix this, I'd very much appreciate it!

Hey, this could be caused by the godot class cache. I have seen similar stuff multiple times now.
You can go into the .godot folder of the project and delete the cache file (not super sure what its called rn, but I think you will identify it). This will force the cache to be relisted on the next project start.

I found the file called "global_script_class_cache.cfg" which only contained entries for Dialogic. I deleted it as you suggested and restarted Godot which does seem to fix it entirely. Thank you!

I will consider this fixed

Im encountered this issue as well when I was trying to uninstall it from my project, I'd say this is not fixed and require people to delete the global_script_class_cache.cfg too.
Unfortunately deleting the global_script_class_cache.cfg fix it but all my scripts that detecting reference to a class are also deleted and required me to re-open all the files that declaring Class.
Would great if we can reopen this and maybe consider deleting the plugin from the cache file when uninstalling it.


Add vispy to requirements

Hi team,
As part of our work on the new napari plugin engine, we’ve been running some automated tests to see whether plugins will be easily converted to the new plugin engine. While running these tests, we noticed that your plugin fails to be imported after installation in a fresh environment due to a missing requirement. You can see details in this github action run.
This PR therefore adds vispy to your install requirements so that users can install your plugin more confidently.
Note that this may not be a complete list - to check whether your plugin can be easily installed on other machines, we recommend using GitHub workflows to test your plugin in a fresh environment - the napari plugin cookiecutter provides an example of such a workflow.
If you believe this PR has been opened in error, please feel free to close it and let us know where we went wrong!

Codecov Report

Merging #26 (1cd5e1e) into main (a27ee1d) will decrease coverage by 5.42%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #26      +/-   ##
==========================================
- Coverage   92.77%   87.35%   -5.43%
==========================================
  Files           3        3
  Lines         180      174       -6
==========================================
- Hits          167      152      -15
- Misses         13       22       +9

Impacted Files
Coverage Δ

napari_ome_zarr/_tests/test_reader.py
87.50% <0.00%> (-11.34%)
:arrow_down:

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 a27ee1d...1cd5e1e. Read the comment docs.

Thanks, @DragaDoncila! Happy to re-add. I think the vispy dependency was dropped from the ome-zarr-py repo due to dependency issues, but here happy to follow your lead.
This repo does have a test_and_deploy.yml workflow with a minimal diff from upstream. Any ideas why that didn't trigger the issue you were seeing? Do we need to additionally start testing wit the new engine?

Hi @joshmoore, I think it is good to have the explicit dependency on vispy because you are importing directly from vispy.color in your _reader. An alternative to this would be to depend on napari itself which would ensure vispy was available in clean envs, but that's a much bigger dependency.

This repo does have a test_and_deploy.yml workflow with a minimal diff from upstream. Any ideas why that didn't trigger the issue you were seeing?

The reason the test_and_deploy.yml workflow didn't surface this is because napari is installed as a dependency in tox.ini here, which then goes on to install vispy.
We don't explicitly add napari to requirements in the cookiecutter template because there are some plugin packages providing functionality outside of just plugin functionality. However, looking through the different plugins as part of this conversion process, we may need to start providing a lightweight napari dependency for typing/layer models/etc. that doesn't also install a qt backend, etc.

Do we need to additionally start testing wit the new engine?

We recommend moving your plugin to the new plugin architecture as soon as possible. The conversion process is simple and is explained in this guide - note that this is all still a work in progress however, and there may be frequent changes made to the docs.

Filed #27 to capture the update, but merging for now. Thanks, again.


fix: LibBridge... should be contracts and not libraries

Describe the bug
Rethink the design of Bridge and Library contracts.
With the current design, there are some issues:

Libs are supposed to be used by various smart contracts deployed on the chain, and these functionalities are bridge specific, no other contracts will ever use them.
(Bug) Currently libs arent emitting events, for example: retryMessage, processMessage should emit events
In this example we have a lib that is emitting an event, but the code is not clean (see fileLibBridgeData.sol)

// Note: These events must match the ones defined in Bridge.sol.
event MessageSent(bytes32 indexed msgHash, IBridge.Message message);

Possible solution:

Add events to IBridge
Create BridgeBase.sol and add state as an internal variable
Change libs to contracts with internal functions
Bridge.sol is inheriting functionality and emitting appropriate events, calling internal functions from BridgeData.sol... etc..

Steps to reproduce
No response
Additional context
No response

The bridge contract code are split into multiple libraries to get around the code-too-large error. This is the best solution we have found. You can test your ideas to see if the code can still be deployable, if so, we will consider your approach.


Change the logic of the towers to only fire at the specfic color. Add…

Things changed:

Added sprites and levels for the towers. Thinking of maybe extending and having a resource to upgrade the towers in the future
Added firing logic for towers. Towers now only fire at enemies of the same color

no quantum logic has been implemented or added as of yet


[zh-cn] sync configuration/secret

content/zh-cn/docs/concepts/configuration/secret.md

/lgtm
/approve


Write Docker Deployment Docs

Finish docs on docker deployment

Completed and release here https://docs.hypha.app/developers/localdeveldocker/#get-the-code and here https://github.com/HyphaApp/hypha-docs/blob/main/docs/developers/localdeveldocker.md


bug

What version of Hugo are you using (hugo version)?

$ hugo version

Does this issue reproduce with the latest release?

thank you @joemorr


GetMetricData incompatible with JAVA SDK v2

I'm experiencing the issue that queries to a moto cloudwatch (v 1.3.16) return no points from the AWS Java SDK v2.
The strange thing is, however, that in the raw-response (seen from the logs of the Java SDK) the data is present.
I tried to debug this a bit more and found out that the Responses have some deviations:
Moto CloudWatch response:
<GetMetricDataResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/"><ResponseMetadata><RequestId>C90CEILPMV40F7STZZO49Y1N80L3KS82NGX163E91N925OKWA2TT</RequestId></ResponseMetadata><GetMetricDataResult><MetricDataResults><member><Id>myQuery</Id>USERS Average<StatusCode>Complete</StatusCode><Timestamps><member>2021-01-29 12:38:13.408389</member></Timestamps><Values><member>1.0</member></Values></member></MetricDataResults></GetMetricDataResult></GetMetricDataResponse>

Formatted:
<GetMetricDataResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/">
   <ResponseMetadata>
      <RequestId>C90CEILPMV40F7STZZO49Y1N80L3KS82NGX163E91N925OKWA2TT</RequestId>
   </ResponseMetadata>
   <GetMetricDataResult>
      <MetricDataResults>
         <member>
            <Id>myQuery</Id>
            USERS Average
            <StatusCode>Complete</StatusCode>
            <Timestamps>
               <member>2021-01-29 12:38:13.408389</member>
            </Timestamps>
            <Values>
               <member>1.0</member>
            </Values>
         </member>
      </MetricDataResults>
   </GetMetricDataResult>
</GetMetricDataResponse>

AWS Response:
<GetMetricDataResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/">
  <GetMetricDataResult>
    <MetricDataResults>
      <member>
        <Timestamps>
          <member>2021-01-29T16:44:00Z</member>
        </Timestamps>
        <Values>
          <member>1.0</member>
        </Values>
        USERS
        <Id>myQuery</Id>
        <StatusCode>Complete</StatusCode>
      </member>
    </MetricDataResults>
    <Messages/>
  </GetMetricDataResult>
  <ResponseMetadata>
    <RequestId>d5ffe654-2796-4391-97f1-6979b9d78f11</RequestId>
  </ResponseMetadata>
</GetMetricDataResponse>

The most significant difference seems to be the date format to me (2021-01-29 12:38:13.408389 vs. 2021-01-29T16:44:00Z).
I ran both queries in the same hour. While AWS sends the query in UTC moto seems to use my local timezone `Atlantic/Bermuda.
Apart from that, the labels are different (USERS vs. USERS Average).
I could not yet find out what makes the AWS SDK to simply ignore the results.
I would be glad about help!

Here is some Java code to reproduce:
@Test
@Test
void test() {
    final Instant now = Instant.now();

    final PutMetricDataRequest putRequest = PutMetricDataRequest.builder().namespace("Exasol")
            .metricData(MetricDatum.builder().metricName("USERS").timestamp(now.minus(Duration.ofMinutes(2)))
                    .value(1.2).build())
            .build();
    cloudWatch.putMetricData(putRequest);

    final MetricDataQuery metricDataQuery = MetricDataQuery.builder().id("myQuery")
            .metricStat(MetricStat.builder().stat("Average").period(60)
                    .metric(Metric.builder().namespace("Exasol").metricName("USERS").build()).build())
            .build();
    final GetMetricDataResponse result = cloudWatch.getMetricData(GetMetricDataRequest.builder()
            .metricDataQueries(metricDataQuery).startTime(now.minus(Duration.ofHours(100))).endTime(now).build());
    final List<MetricDataResult> metricDataResults = result.metricDataResults();
    assertThat(metricDataResults.size(), equalTo(1));
}

With the system timezone set to UTC I saw in the logs: 2021-02-01 09:06:31.227896, with Atlantic/Bermuda I saw: 2021-02-01 05:08:33.997027.
In both cases, the test failed.
So there seem to be multiple bugs:

One that the returned timestamp is dependant on the system timezone
Another that causes the JAVA SDK not to show the results (maybe the date format, or something else)

Thanks for providing the test case, @jakobbraun. There are other instances where the Java SDK will choke on a wrongly formatted datetime, so I wouldn't be surprised if the results will appear when we fix the format.
Marking it as a bug.

Hi @bblommers , @jakobbraun , It's seems that the bug is more related to the structure of XML response.
In the AWS SDK v2 XML unmarshaller, the code assume that the result is located in the first child node.
XmlElement resultRoot = hasResultWrapper ? document.getFirstChild() : document;
In the case of this moto response the first node is the ResponseMetadata and GetMetricDataResult  like in the AWS result.
PR to fix this : #3675

This should now be fixed as of moto >= 1.3.17.dev253/


sync is showing different anime

For now i m hving this error only on mieruko chan anime

On anime info page when i try to sync using left swipe its showing different anime

And when i click from sync tab its showing the below error

U can fix the error loading anime page https://drive.google.com/file/d/1CcuWinkzQ3nJyC04dxY78i5mbmakr63B/view?usp=drivesdk

U can fix the error loading anime page https://drive.google.com/file/d/1CcuWinkzQ3nJyC04dxY78i5mbmakr63B/view?usp=drivesdk

Thanks that prblm solved
but still its showing different anime instead of mieruko its showin


Theme Module error

Using VS 2017, the typescript compiler gives me an error in the theme.module.ts.
const NB_THEME_PROVIDERS = [   ...NbThemeModule.forRoot(     {       name: 'cosmic',     },     [ DEFAULT_THEME, COSMIC_THEME ],   ).providers,   ...NbSidebarModule.forRoot().providers,   ...NbMenuModule.forRoot().providers, ];
In the [DEFAULT_THEME, COSMIC_THEME] line tells me that cannot be asigned the arguments to a undefined type.
Any idea?
thanks in advance

The issue is that DEFAULT_THEME and COSMIC_THEME are not of NbJSThemeOptions.
The error can be avoided setting "noImplicitUseStrict" to true in tsconfig.json but the typescript intellisense gets the error. How can I import NbJSThemeOptions, if it is imposible, there is a bug in nebular.

Okkj
On Tue., 28 Nov. 2017, 7:41 am tonibabieka<EMAIL_ADDRESS>wrote:

The issue is that DEFAULT_THEME and COSMIC_THEME are not of
NbJSThemeOptions.
The error can be avoided setting "noImplicitUseStrict" to true in
tsconfig.json but the typescript intellisense gets the error. How can I
import NbJSThemeOptions, if it is imposible, there is a bug in nebular.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/akveo/ngx-admin/issues/1420#issuecomment-347337551,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AY4FmGRF6ZnZqkvcczrYuAtshjiCOlV8ks5s6yyOgaJpZM4QqGtb
.


Multiple pages

Hi, I am just wondering whether it is possible to have multiple sites to put my Publications, Talks and so on, instead of having them on my homepage. Thanks

Refer to the documentation on Creating Widget Pages: https://sourcethemes.com/academic/docs/managing-content/

Yes, I have figured it out. The Docs are really helpful.
Many thanks!!!


Duplicating Closing tag

It seems that anytime a closing tag is generated it dupes it, resulting in:

This is probably because you've enabled then disabled then enabled the package. I also experienced this. Every time you disable/enable it, it will create an extra closing tag.
To fix this, just make sure the package is enabled and close/reopen Atom.


add deploy after build with updated chart

add github actions for sec scan
resolves ortelius/ortelius#201

/lgtm

resolves ortelius/ortelius#123, ortelius/ortelius#118


Working with Meteor's new reify

Hi. first of all thanks for the great plugin. It's allowed us to take an awful Meteor/CoffeeScript project (written by us years ago) and refactor it into something manageable. However, Meteor recently changed its build pipeline so that a tool called reify runs over the code replacing import statements with calls into the reify runtime before the source hits babel (and this plugin). So when this plugin outputs an import statement, it never gets translated.
I know this is not an issue with this project (feel free to close). But I'm wondering if you have any pointers. I made an example repo for the Meteor issue (that got no resolution). I'll cut-n-paste the README below.
babel-plugin-tcomb broken
The babel-plugin-tcomb Babel plugin does not function correctly with Meteor
core package ecmascript after version 0.6.1.
Setup
$ cd /path/to/app
$ meteor npm install
$ meteor

Background
We use flow, tcomb, and babel-plugin-tcomb for static and runtime
type-checking, respectively. In this example project, the echo function
in main.js should only be passed foo1 or foo2, as described by FooType
in FooType.js. The second call to echo passes an illegal argument, bar1
and we expect a tcomb generated TypeError.
Details
In this example project, the ecmascript packages is pinned to 0.6.1. Under
this version, the following code is generated for the FooType.js module.
module.export({
    FooType: function () {
        return FooType
    }
});

var _t; module.import('tcomb', {
    "default": function (v) { _t = v }
});

var FooType = _t.enums.of(['foo1', 'foo2'], 'FooType');

This code correctly exports tcomb's type checker for FooType and the misuse
of the echo function in main.js is correctly detected:
TypeError: [tcomb] Invalid value "bar1" supplied to foo: FooType (expected one of [
  "foo1",
  "foo2"
])

Updating the ecmascript package to version 0.6.2 creates the following code:
import _t from "tcomb";

var FooType = _t.enums.of(["foo1", "foo2"], "FooType");

Which causes a syntax error:
import _t from "tcomb";
^^^^^^

SyntaxError: Unexpected reserved word
    at Object.exports.runInThisContext (vm.js:53:16)

Adding babel-plugin-transform-es2015-modules-commonjs doesn't help:
$ meteor npm install --save-dev babel-plugin-transform-es2015-modules-commonjs

$ cat .babelrc
{
  "plugins": [
    "tcomb",
    "transform-es2015-modules-commonjs"
  ]
}

FooType is not exported:
"use strict";
var _tcomb = require("tcomb");
var _tcomb2 = _interopRequireDefault(_tcomb);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var FooType = _tcomb2.default.enums.of(["foo1", "foo2"], "FooType");

Question
Is there a fix for this issue or are we stuck with<EMAIL_ADDRESS>(and
therefore release <IP_ADDRESS>)?
Thanks,
Peter.

Closing because partially resolved in Meteor.


"No data to report." when there is a .coverage file in the directory

This is more of a request for help to work out where something is going wrong.
Describe the bug
coverage report and coverage xml are reporting "No data to report." when there is a .coverage file in the same directory.
Unfortunately, this is only happening in my CI, even though I can run the same thing fine using the same docker container in my local environment.
To Reproduce
How can we reproduce the problem?  Please be specific. Don't link to a failing CI job. Answer the questions below:

What version of Python are you using? 3.7.3
What version of coverage.py shows the problem? The output of coverage debug sys is helpful.

-- sys -------------------------------------------------------
               coverage_version: 7.1.0
                coverage_module: /root/.local/lib/python3.7/site-packages/coverage/__init__.py
                         tracer: -none-
                        CTracer: available
           plugins.file_tracers: -none-
            plugins.configurers: -none-
      plugins.context_switchers: -none-
              configs_attempted: .coveragerc
                   configs_read: /builds/development/brisbane-team/source/src/.coveragerc
                    config_file: /builds/development/brisbane-team/source/src/.coveragerc
                config_contents: b'[run]\n#concurrency=thread  # multiprocessing means no PyCharm coverage reports\nbranch=True\ninclude=\n    apps/*\n    lib/*\nomit=\n    *migrations*\n    *templates*\n\n[report]\ninclude=\n    apps/*\n    lib/*\nomit=\n    *migrations*\n    *templates*\n'
                      data_file: /builds/development/brisbane-team/source/src/.coverage
                         python: 3.7.3 (default, Oct 31 2022, 14:04:00) [GCC 8.3.0]
                       platform: Linux-5.10.0-20-amd64-x86_64-with-debian-10.13
                 implementation: CPython
                     executable: /usr/bin/python3
                   def_encoding: utf-8
                    fs_encoding: utf-8
                            pid: 14
                            cwd: /builds/development/brisbane-team/source/src
                           path:
                                 /root/.local/bin
                                 /usr/lib/python37.zip
                                 /usr/lib/python3.7
                                 /usr/lib/python3.7/lib-dynload
                                 /root/.local/lib/python3.7/site-packages
                                 /usr/local/lib/python3.7/dist-packages
                                 /usr/lib/python3/dist-packages
                    environment: ABB_PYPI_PASSWORD = [MASKED]
                                 ABB_PYPI_USERNAME = gitlab-ci-token
                                 COVERAGE_PROCESS_START = ./.coveragerc
                                 HOME = /root
                   command_line: /root/.local/bin/coverage report --debug config,dataio,process,self,plugin,sys -i
         sqlite3_sqlite_version: 3.27.2
             sqlite3_temp_store: 0
        sqlite3_compile_options: COMPILER=gcc-8.3.0, ENABLE_COLUMN_METADATA, ENABLE_DBSTAT_VTAB,
                                 ENABLE_FTS3, ENABLE_FTS3_PARENTHESIS, ENABLE_FTS3_TOKENIZER, ENABLE_FTS4,
                                 ENABLE_FTS5, ENABLE_JSON1, ENABLE_LOAD_EXTENSION, ENABLE_PREUPDATE_HOOK,
                                 ENABLE_RTREE, ENABLE_SESSION, ENABLE_STMTVTAB, ENABLE_UNLOCK_NOTIFY,
                                 ENABLE_UPDATE_DELETE_LIMIT, HAVE_ISNAN, LIKE_DOESNT_MATCH_BLOBS,
                                 MAX_SCHEMA_RETRY=25, MAX_VARIABLE_NUMBER=250000, OMIT_LOOKASIDE,
                                 SECURE_DELETE, SOUNDEX, TEMP_STORE=1, THREADSAFE=1, USE_URI
-- end -------------------------------------------------------

What versions of what packages do you have installed? The output of pip freeze is helpful.

Can we circle back to this one if required? Reason being it might not be immediately relevant (until it is).
In my Gitlab CI, I'm using --parallel-mode to generate individual .coverage.* files for each chunk that the tests have been split into and I add them as artifacts.  In a combine-coverage job, I then do a combine and attempt to generate an XML report. For the purposes of debugging, I'm also attempting to do a regular coverage report to eliminate something specific with XML processing.
I'm satisfied that the combine is doing the right thing (here is some output from that)
$ cd src
$ coverage combine
Combined data file .coverage.runner-wx4-kmch-project-330-concurrent-3.12.996768
Combined data file .coverage.runner-wx4-kmch-project-330-concurrent-1.13.570607
Combined data file .coverage.runner-bvqau87e-project-330-concurrent-0.12.672559
Combined data file .coverage.runner-bvqau87e-project-330-concurrent-2.12.888405
Combined data file .coverage.runner-bvqau87e-project-330-concurrent-1.14.133811
Combined data file .coverage.runner-wx4-kmch-project-330-concurrent-0.14.422645
Combined data file .coverage.runner-wx4-kmch-project-330-concurrent-2.13.320369
Combined data file .coverage.runner-bvqau87e-project-330-concurrent-3.12.223668
$ ls -asl
total 7056
   4 drwxrwxrwx   8 root root    4096 Jan 31 02:11 .
   4 drwxrwxrwx   7 root root    4096 Jan 31 01:52 ..
4960 -rw-r--r--   1 root root 5079040 Jan 31 02:11 .coverage
   4 -rw-rw-rw-   1 root root     239 Jan 30 23:32 .coveragerc
   4 -rw-rw-rw-   1 root root     367 Jan 30 23:32 .prospector.yaml
   4 -rw-rw-rw-   1 root root     103 Jan 30 23:32 .pylintrc
   4 -rw-rw-rw-   1 root root     230 Jan 30 23:32 .pylintrc-py3k
   4 -rw-rw-rw-   1 root root     278 Jan 30 23:32 .pylintrc-py3k-pycharm
   4 drwxrwxrwx 181 root root    4096 Jan 30 23:32 apps
   4 drwxrwxrwx  35 root root    4096 Jan 30 23:32 bin
   4 drwxrwxrwx   5 root root    4096 Jan 30 23:32 certs
   4 drwxrwxrwx  10 root root    4096 Jan 30 23:32 lib
   4 -rwxrwxrwx   1 root root     250 Jan 30 23:32 manage.py
2028 -rw-rw-rw-   1 root root 2074553 Jan 30 23:32 r_to_service_id.csv
   4 drwxr-xr-x   4 root root    4096 Jan 31 02:10 reports
   4 -rw-rw-rw-   1 root root    2394 Jan 30 23:32 setup.py
   4 -rw-rw-rw-   1 root root     102 Jan 30 23:32 sitecustomize.py
   4 drwxrwxrwx   7 root root    4096 Jan 30 23:32 source
   4 -rw-rw-rw-   1 root root    1972 Jan 30 23:32 tox.ini

However, the following commands both result in "No data to report"
$ coverage report --debug config,dataio,process,self,plugin,sys -i  || true
cwd is now '/builds/development/brisbane-team/source/src'
New process: executable: '/usr/bin/python3'
New process: cmd: ['/root/.local/bin/coverage', 'report', '--debug', 'config,dataio,process,self,plugin,sys', '-i']
New process: pid: 14, parent pid: 10
-- config ----------------------------------------------------
         attempted_config_files: .coveragerc
                         branch: True
                   command_line: None
                    concurrency: -none-
                    config_file: /builds/development/brisbane-team/source/src/.coveragerc
              config_files_read: /builds/development/brisbane-team/source/src/.coveragerc
                        context: None
                    cover_pylib: False
                      data_file: .coverage
                          debug: config
                                 dataio
                                 process
                                 self
                                 plugin
                                 sys
                     debug_file: None
               disable_warnings: -none-
                dynamic_context: None
                   exclude_list: #\s*(pragma|PRAGMA)[:\s]?\s*(no|NO)\s*(cover|COVER)
                      extra_css: None
                     fail_under: 0.0
                         format: None
                       html_dir: htmlcov
              html_skip_covered: None
                html_skip_empty: None
                     html_title: Coverage report
                  ignore_errors: False
     include_namespace_packages: False
                    json_output: coverage.json
              json_pretty_print: False
             json_show_contexts: False
                    lcov_output: coverage.lcov
                       parallel: False
            partial_always_list: while (True|1|False|0):
                                 if (True|1|False|0):
                   partial_list: #\s*(pragma|PRAGMA)[:\s]?\s*(no|NO)\s*(branch|BRANCH)
                          paths: {}
                 plugin_options: {}
                        plugins: -none-
                      precision: 0
                 relative_files: False
                report_contexts: None
                 report_include: apps/*
                                 lib/*
                    report_omit: *migrations*
                                 *templates*
                    run_include: apps/*
                                 lib/*
                       run_omit: *migrations*
                                 *templates*
                  show_contexts: False
                   show_missing: False
                        sigterm: False
                   skip_covered: False
                     skip_empty: False
                           sort: None
                         source: None
                    source_pkgs: -none-
                          timid: False
                     xml_output: coverage.xml
              xml_package_depth: 99
-- sys -------------------------------------------------------
               coverage_version: 7.1.0
                coverage_module: /root/.local/lib/python3.7/site-packages/coverage/__init__.py
                         tracer: -none-
                        CTracer: available
           plugins.file_tracers: -none-
            plugins.configurers: -none-
      plugins.context_switchers: -none-
              configs_attempted: .coveragerc
                   configs_read: /builds/development/brisbane-team/source/src/.coveragerc
                    config_file: /builds/development/brisbane-team/source/src/.coveragerc
                config_contents: b'[run]\n#concurrency=thread  # multiprocessing means no PyCharm coverage reports\nbranch=True\ninclude=\n    apps/*\n    lib/*\nomit=\n    *migrations*\n    *templates*\n\n[report]\ninclude=\n    apps/*\n    lib/*\nomit=\n    *migrations*\n    *templates*\n'
                      data_file: /builds/development/brisbane-team/source/src/.coverage
                         python: 3.7.3 (default, Oct 31 2022, 14:04:00) [GCC 8.3.0]
                       platform: Linux-5.10.0-20-amd64-x86_64-with-debian-10.13
                 implementation: CPython
                     executable: /usr/bin/python3
                   def_encoding: utf-8
                    fs_encoding: utf-8
                            pid: 14
                            cwd: /builds/development/brisbane-team/source/src
                           path:
                                 /root/.local/bin
                                 /usr/lib/python37.zip
                                 /usr/lib/python3.7
                                 /usr/lib/python3.7/lib-dynload
                                 /root/.local/lib/python3.7/site-packages
                                 /usr/local/lib/python3.7/dist-packages
                                 /usr/lib/python3/dist-packages
                    environment: ABB_PYPI_PASSWORD = [MASKED]
                                 ABB_PYPI_USERNAME = gitlab-ci-token
                                 COVERAGE_PROCESS_START = ./.coveragerc
                                 HOME = /root
                   command_line: /root/.local/bin/coverage report --debug config,dataio,process,self,plugin,sys -i
         sqlite3_sqlite_version: 3.27.2
             sqlite3_temp_store: 0
        sqlite3_compile_options: COMPILER=gcc-8.3.0, ENABLE_COLUMN_METADATA, ENABLE_DBSTAT_VTAB,
                                 ENABLE_FTS3, ENABLE_FTS3_PARENTHESIS, ENABLE_FTS3_TOKENIZER, ENABLE_FTS4,
                                 ENABLE_FTS5, ENABLE_JSON1, ENABLE_LOAD_EXTENSION, ENABLE_PREUPDATE_HOOK,
                                 ENABLE_RTREE, ENABLE_SESSION, ENABLE_STMTVTAB, ENABLE_UNLOCK_NOTIFY,
                                 ENABLE_UPDATE_DELETE_LIMIT, HAVE_ISNAN, LIKE_DOESNT_MATCH_BLOBS,
                                 MAX_SCHEMA_RETRY=25, MAX_VARIABLE_NUMBER=250000, OMIT_LOOKASIDE,
                                 SECURE_DELETE, SOUNDEX, TEMP_STORE=1, THREADSAFE=1, USE_URI
-- end -------------------------------------------------------
Opening data file '/builds/development/brisbane-team/source/src/.coverage'
self: <CoverageData @0x7f0bb8d05ef0 _no_disk=False _basename='/builds/development/brisbane-team/source/src/.coverage' _suffix=None _filename='/builds/development/brisbane-team/source/src/.coverage' _file_map={} _dbs={} _pid=14 _lock=<unlocked _thread.RLock object owner=0 count=0 at 0x7f0bb85283c0> _have_used=False _has_lines=False _has_arcs=False _current_context=None _current_context_id=None _query_context_ids=None>
No data to report.
$ coverage xml --debug config,dataio,process,self,plugin,sys -i -o reports/coverage/coverage.xml || true
cwd is now '/builds/development/brisbane-team/source/src'
New process: executable: '/usr/bin/python3'
New process: cmd: ['/root/.local/bin/coverage', 'xml', '--debug', 'config,dataio,process,self,plugin,sys', '-i', '-o', 'reports/coverage/coverage.xml']
New process: pid: 24, parent pid: 10
-- config ----------------------------------------------------
         attempted_config_files: .coveragerc
                         branch: True
                   command_line: None
                    concurrency: -none-
                    config_file: /builds/development/brisbane-team/source/src/.coveragerc
              config_files_read: /builds/development/brisbane-team/source/src/.coveragerc
                        context: None
                    cover_pylib: False
                      data_file: .coverage
                          debug: config
                                 dataio
                                 process
                                 self
                                 plugin
                                 sys
                     debug_file: None
               disable_warnings: -none-
                dynamic_context: None
                   exclude_list: #\s*(pragma|PRAGMA)[:\s]?\s*(no|NO)\s*(cover|COVER)
                      extra_css: None
                     fail_under: 0.0
                         format: None
                       html_dir: htmlcov
              html_skip_covered: None
                html_skip_empty: None
                     html_title: Coverage report
                  ignore_errors: False
     include_namespace_packages: False
                    json_output: coverage.json
              json_pretty_print: False
             json_show_contexts: False
                    lcov_output: coverage.lcov
                       parallel: False
            partial_always_list: while (True|1|False|0):
                                 if (True|1|False|0):
                   partial_list: #\s*(pragma|PRAGMA)[:\s]?\s*(no|NO)\s*(branch|BRANCH)
                          paths: {}
                 plugin_options: {}
                        plugins: -none-
                      precision: 0
                 relative_files: False
                report_contexts: None
                 report_include: apps/*
                                 lib/*
                    report_omit: *migrations*
                                 *templates*
                    run_include: apps/*
                                 lib/*
                       run_omit: *migrations*
                                 *templates*
                  show_contexts: False
                   show_missing: False
                        sigterm: False
                   skip_covered: False
                     skip_empty: False
                           sort: None
                         source: None
                    source_pkgs: -none-
                          timid: False
                     xml_output: coverage.xml
              xml_package_depth: 99
-- sys -------------------------------------------------------
               coverage_version: 7.1.0
                coverage_module: /root/.local/lib/python3.7/site-packages/coverage/__init__.py
                         tracer: -none-
                        CTracer: available
           plugins.file_tracers: -none-
            plugins.configurers: -none-
      plugins.context_switchers: -none-
              configs_attempted: .coveragerc
                   configs_read: /builds/development/brisbane-team/source/src/.coveragerc
                    config_file: /builds/development/brisbane-team/source/src/.coveragerc
                config_contents: b'[run]\n#concurrency=thread  # multiprocessing means no PyCharm coverage reports\nbranch=True\ninclude=\n    apps/*\n    lib/*\nomit=\n    *migrations*\n    *templates*\n\n[report]\ninclude=\n    apps/*\n    lib/*\nomit=\n    *migrations*\n    *templates*\n'
                      data_file: /builds/development/brisbane-team/source/src/.coverage
                         python: 3.7.3 (default, Oct 31 2022, 14:04:00) [GCC 8.3.0]
                       platform: Linux-5.10.0-20-amd64-x86_64-with-debian-10.13
                 implementation: CPython
                     executable: /usr/bin/python3
                   def_encoding: utf-8
                    fs_encoding: utf-8
                            pid: 24
                            cwd: /builds/development/brisbane-team/source/src
                           path:
                                 /root/.local/bin
                                 /usr/lib/python37.zip
                                 /usr/lib/python3.7
                                 /usr/lib/python3.7/lib-dynload
                                 /root/.local/lib/python3.7/site-packages
                                 /usr/local/lib/python3.7/dist-packages
                                 /usr/lib/python3/dist-packages
                    environment: ABB_PYPI_PASSWORD = [MASKED]
                                 ABB_PYPI_USERNAME = gitlab-ci-token
                                 COVERAGE_PROCESS_START = ./.coveragerc
                                 HOME = /root
                   command_line: /root/.local/bin/coverage xml --debug config,dataio,process,self,plugin,sys -i -o reports/coverage/coverage.xml
         sqlite3_sqlite_version: 3.27.2
             sqlite3_temp_store: 0
        sqlite3_compile_options: COMPILER=gcc-8.3.0, ENABLE_COLUMN_METADATA, ENABLE_DBSTAT_VTAB,
                                 ENABLE_FTS3, ENABLE_FTS3_PARENTHESIS, ENABLE_FTS3_TOKENIZER, ENABLE_FTS4,
                                 ENABLE_FTS5, ENABLE_JSON1, ENABLE_LOAD_EXTENSION, ENABLE_PREUPDATE_HOOK,
                                 ENABLE_RTREE, ENABLE_SESSION, ENABLE_STMTVTAB, ENABLE_UNLOCK_NOTIFY,
                                 ENABLE_UPDATE_DELETE_LIMIT, HAVE_ISNAN, LIKE_DOESNT_MATCH_BLOBS,
                                 MAX_SCHEMA_RETRY=25, MAX_VARIABLE_NUMBER=250000, OMIT_LOOKASIDE,
                                 SECURE_DELETE, SOUNDEX, TEMP_STORE=1, THREADSAFE=1, USE_URI
-- end -------------------------------------------------------
Opening data file '/builds/development/brisbane-team/source/src/.coverage'
self: <CoverageData @0x7fc8e0acbf98 _no_disk=False _basename='/builds/development/brisbane-team/source/src/.coverage' _suffix=None _filename='/builds/development/brisbane-team/source/src/.coverage' _file_map={} _dbs={} _pid=24 _lock=<unlocked _thread.RLock object owner=0 count=0 at 0x7fc8e02eeea0> _have_used=False _has_lines=False _has_arcs=False _current_context=None _current_context_id=None _query_context_ids=None>
No data to report.

I've tried using various debug options to see if coverage has an issue with opening the file and I've been comparing that with what is produced in my local environment.
I've also set up my combine-coverage job to upload the resulting .coverage file and have been able to run a coverage xml on that individual file successfully, as well as inspect the database via PyCharm Database view with no issue.
I've gone as far as to clone the coverage repo to try and work out what is going on (possibly points of failure and what extra debug options I could use to determine why the .coverage file is not working in the CI environment. However, it's going to take a little bit to get accustomed to the terms.
I'd appreciate any hints on debug settings I could use to work out why it's either not seeing the .coverage file or is unable to process it successfully.

I've been getting a bit more aggressive with debug options.
I've tried enabling COVERAGE_DEBUG_CALLS = 1, but to no avail.
In CI, I get the following at the end of attempting to produce an XML report.
Opening data file '/builds/development/brisbane-team/source/src/.coverage'
self: <CoverageData @0x7f936d5b5c50 _no_disk=False _basename='/builds/development/brisbane-team/source/src/.coverage' _suffix=None _filename='/builds/development/brisbane-team/source/src/.coverage' _file_map={} _dbs={} _pid=24 _lock=<unlocked _thread.RLock object owner=0 count=0 at 0x7f936cd943f0> _have_used=False _has_lines=False _has_arcs=False _current_context=None _current_context_id=None _query_context_ids=None>
00000024 0000 0003 xml_report(outfile='reports/coverage/coverage.xml', skip_empty=None, morfs=[], ignore_errors=None, omit=None, include=None, contexts=None)
No data to report.

In my local environment, I get the following with the same options
Opening data file '/opt/source/.coverage'
self: <CoverageData @0x7ff945439be0 _no_disk=False _basename='/opt/source/.coverage' _suffix=None _filename='/opt/source/.coverage' _file_map={} _dbs={} _pid=28269 _lock=<unlocked _thread.RLock object owner=0 count=0 at 0x7ff944c52600> _have_used=False _has_lines=False _has_arcs=False _current_context=None _current_context_id=None _query_context_ids=None>
00028269 0000 0003 xml_report(outfile='reports/coverage/coverage.xml', skip_empty=None, morfs=[], ignore_errors=None, omit=None, include=None, contexts=None)
Wrote XML report to reports/coverage/coverage.xml
00028269 0000 0004 get_option('report:fail_under')
00028269 0000 0005 get_option('report:precision')

I've also removed the -i option, just in case this was masking an issue with opening the data file.
My next move is to try the sql option and see if there is an issue with reading the database. In my local environment, because it works, this produces a massive amount of data on the screen. It may highlight the underlying issue by only having a small amount of data and a possible error.

There is definitely a whole bunch of SQL processing happening.
I've tracked a possibility. The location of the .coverage file is not the same location as the where the parallel parts were generated, path-wise.
i.e. initially, the coverage parts are generated in /opt/source but due to Gitlab CI, I move them to under the mounted build path, which is /builds/development/brisbane-team/source/src.
When the artifacts are restored, I don't bother to move them from this location. However, the path values in the file table are all prefixed with /opt/source. I'm now realising that the report generator may still look for source code relative to the path that the coverage xml is run in, and if the paths don't match, then we get "No data to report". Which would explain why the coverage xml works when I download it into my local dev in the /opt/source location and run it.
I'll get a little less lazy and move the combined .coverage to the original location before doing the reporting. There's probably a smarter option I can use to tell it what path to look at for sources without having to relocate the .coverage file. Baby steps.

And that turned out to be it!
The coverage <report> program at least needs to be run in the same directory as the coverage run command, if no other configuration items are specified regarding sources that might be on different paths.
I couldn't see anything in the documentation about configuring alternate source location while running reporting, so I've kept the low-tech but high-handling option of moving the .coverage file into place before doing the coverage report.


Add caching to CI environment setup

Mirroring https://github.com/GlacioHack/geoutils/pull/321 in GeoUtils, this PR enables the caching of conda environment using the methods of conda-incubator/setup-miniconda and github/actions/cache to avoid long running CI times, especially on Mac and Windows.
In this PR, the functions environment_yml_nopy and diff_environment_yml are fixed for a couple issues when passing pip dependencies, that wen't unnoticed because they weren't needed in GeoUtils. I will open a PR to fix those in GeoUtils as well.
In short
CI durations before:

ubuntu: 15-20 min, with 3-8 min for environment setup.
mac: 23-30 min, with 7-15 min for environment setup.
windows: 23-30 min, with 7-15 min for environment setup.

CI durations after:
All OSs take 11-18 min, with less than 1 min for environment setup (when uncaching) on Linux and Mac :partying_face:!
On Windows, the uncaching can take longer (up to 7 min) due to the archive extraction issue mentioned in https://github.com/GlacioHack/geoutils/pull/321, that should be solved by GitHub Actions eventually.
Details
See https://github.com/GlacioHack/geoutils/pull/321
Resolves #308

Ready to merge! :smile:


fix(turn-start-time): more accurate turn start time

Taking long animation at the end of the turn into account

@rikumiyao @chrishanel Do you know if it's possible to start a turn without drawing a card or taking fatigue damage?

there used to be a few cards that negated fatigue damage but they should all be wild.

Actually this was the line we were looking for
[Power] PowerTaskList.DebugPrintPower() -     TAG_CHANGE Entity=GameEntity tag=STEP value=MAIN_START

Not GameState.DebugPrintPower(), but PowerTaskList one

GameState.DebugPrintPower() and PowerTaskList.DebugPrintPower() look all the same except that PowerTaskList is emitted later when it actually happens. We probably should use it than GameState?

Im not sure how much of a time difference it would create, but its worth trying

@rikumiyao This is how the timings look like https://gfycat.com/FrighteningCloudyAntelopegroundsquirrel

Actually ye this makes sense, according to this
https://hearthsim.info/blog/fast-hearthstone-log-parsing/
Just make sure this line here is also changed appropriately too
https://github.com/Tespa/hearthstone-parser/blob/ae9f0491c81e32ebca319935223e21b6b24118db/src/line-parsers/turn.ts#L18

Codecov Report

Merging #34 into master will increase coverage by 0.98%.
The diff coverage is 80%.

@@           Coverage Diff           @@
##           master   #34      +/-   ##
=======================================
+ Coverage   76.01%   77%   +0.98%
=======================================
  Files          13    14       +1
  Lines         271   287      +16
  Branches       50    51       +1
=======================================
+ Hits          206   221      +15
- Misses         45    47       +2
+ Partials       20    19       -1

Impacted Files
Coverage Δ

src/GameState.ts
83.33% <ø> (-16.67%)
:arrow_down:

src/line-parsers/game-tag-change.ts
100% <100%> (ø)
:arrow_up:

src/line-parsers/turn.ts
69.56% <57.14%> (ø)
:arrow_up:

src/line-parsers/index.ts
100% <0%> (ø)
:arrow_up:

src/index.ts
100% <0%> (ø)

src/line-parsers/zone-change.ts
73.21% <0%> (+1.78%)
: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 d1e4f4e...b57d273. Read the comment docs.

I'm going to check if the existing events are working after this change

@rikumiyao Should be good to review now

This PR "fixes" the timing but also it actually changes timing of many events. I think I should make this breaking change?


.NET HTML renderer should escape URL quotes

The quotes in background-image: url(' ... ') should be escaped:

This has been fixed


add to setup.py: long_description_content_type="text/markdown",

this is needed to render markdown into pypi with newer versions of twine
...
setup(
author="Jorge Gomes",
<EMAIL_ADDRESS>version="1.1.3-1",
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Console',
'Intended Audience :: Developers',
'Intended Audience :: End Users/Desktop',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
],
description="A basic user tool to execute simple docker
containers in batch or interactive systems without root privileges",
scripts=['udocker'],
install_requires=requirements,
license="Apache Software License 2.0",
long_description=readme + '\n\n' + history,
long_description_content_type="text/markdown",
^^^^^^^

Added to devel branch


Multiple select2 placeholder text cut on the bottom side when used with Bootstrap and displaye with IE11

When a multiple select2 is used in combination with Bootstrap and the browser is Internet Explorer 11 the bottom part of the placeholder text is cut, as shown in the following JS Bin.
demo (use IE11 to reproduce the issue)
One workaround is to add an height to the class .select2-search__field. e.g.
.select2-search__field {
    height: 20px;
}

but this will affect also the height of the search box of the single select (also reported for convenience in the JS Bin) that make use of the same class..
Any other suggestion to solve this issue so that the other select2 features are not affected?
Thanks

Please, send us a JSFiddle example code simulating this scenario (with runnable code and steps described there, to allow us to follow this steps and check the situation). It is much more easy to understand what exactly problem this CSS solves and help to provide some solution or workaround. You are free to reopen when the JSFiddle are done.


[BUG-BE][Resource/Task Group] There is no data with search params on task group queue page.

Search before asking

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

What happened
There is no data with search params on task group queue page.
What you expected to happen
Return the correct data.
How to reproduce
Create a task group associated task flow definition and run it.
Anything else
No Response
Version
dev
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

[FE] Passed through the returned data and query parameters, the parameter passing fields should need to be exchanged.


Fixed the display of schema information

Motivation
pulsar-admin schemas get currently prints out a base64 encoded gibbersh information about the schema details. This is because of the conversion of the correct schema information received from the server into bytes structure inside SchemaInfo. We change that in this pr so that the cli tool prints sane information.
Modifications
Describe the modifications you've done.
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API: (yes / no)
The schema: (yes / no / don't know)
The default values of configurations: (yes / no)
The wire protocol: (yes / no)
The rest endpoints: (yes / no)
The admin cli options: (yes / no)
Anything that affects deployment: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

This PR is fine but I have a larger concern about how we a treating SchemaInfo.data.  In the API/SPI its a byte[] but in other places like GetSchemaResponse, we are converting it to a String.  This seems inappropriate and can cause confusion and bugs.  Currently, I think all SchemaInfo.data for schemas that use this is actually a String stored as bytes which shouldn't break things but I still think its bad practice assume the byte[] is convertible to a String.  Either we change the SchemaInfo.data to a String or we stop making assumptions in other places that we can converted to a String. Perhaps @sijie  @codelipenghui can also comment on this

I am not in favor of using String for storing schema data. because String requires correct charsets to encode and decode. So I would suggest keeping byte[] for storing schema data.
GetSchemaResponse made a bad assumption on converting byte[] to string. Ideally it should be encoded using base64 because json doesn't support byte[] well. It is a legal BC issue that we have to face.
that said, I don't think it is a good idea to use GetSchemaResponse directly. We should still convert the GetSchemaResponse to SchemaInfo. We should also consider fixingGetSchemaResponse to carry byte[] in base64 encoded format.
We can have a util class on displaying SchemaInfo in a correct format.

For struct schema (avro, json, protobuf), we are using avro schema definition on defining the schema structure. So we can convert the byte[] back to the json string and display the json string in a pretty format.

For non-struct schema, we should just use base64 for displaying schema data.

In summary, my opinion is:

it is a display issue. We should just fix the display issue rather than changing the return result.
GetSchemaResponse is buggy. We should consider improving or fixing it.

@srkukarni - FYI I added a method in SchemaInfo for displaying schema definition in #4325

@sijie @jerrypeng
Based on your feedback I have changed the pr. Please take a look again.

This is BC breaking change but GetSchemaResource was incorrect to begin with and can cause bugs.  I am ok with this, but we should document the change as BC breaking in the release nots

@sijie sounds good. Will wait for that to merge and then use that method here

#4325

I think there are 2 issues to addressed here.
a) fix the display issue of schema info in the admin cli.
b) fix the transport issue of schema data in rest api.


Support v2 project definition & standalone project definition

Add support v2 project definition & standalone project definition
Closes #3 & #2

Thanks for the contribution!


Fix recognition of WM_QUIT

If multiple messages are received at the same time as the quit message, then we can miss it because we only check the last message received. To repro this, alt-F4 while moving the mouse. Fix by just keeping track of whether we ever saw WM_QUIT in the message dispatch loop.

Thanks for your PR. I approved.


Update instructions for creating a build script

Apparently you need to include a dependency on gl_common now, if you use a build script.

Hmm, I would prefer to remove the necessity to use gl_common altogether.

Oh, sorry for merging this then!

Nevermind, what I suggested in my comment is not possible.


TNTSearch issues with Grav 1.7/Flex

TNTSearch is having issues with latest 1.7 version.  Just a placeholder so we don't forget to go back and investigate.

Updated tntsearch to v2.4 which fixes a few PHP 7.4 issues.


Prepare release 2.4.0

@dpc should I go ahead and release a new version 2.4.0? please review.

:+1:

It's published to crates.io: https://crates.io/crates/slog-json/2.4.0


Add SSL cert comment

Fixes: #4830

jenkins test centos-container-update

jenkins test playbook syntax

jenkins test centos-container-all_daemons

So....
the automated tests seem to be failing, for reasons that have nothing to do with my change?
now what?

you need to amend your commit and add a signoff and the line Fixes: #4830 inside the commit body (playbook syntax job)
The other job failing is unrelated

jenkins test centos-container-all_daemons

huh. I thought "signed-off" would be only for people who have write access.
How's that now?


Obtain git-version from macro, instead of custom build-script

This implements the idea from @japaric to utilize the git_version crate for obtaining the git hash, instead of the custom build-script we used so far.
In case git is not present on the system the reported version will only consist of the CARGO_PKG_VERSION.

note: I am a bit unsure where exactly to put the extract_git_hash helper function. I mainly considered the utils module. I decided to put it into main.rs for now to not potentially conflict with the upcoming refactoring from @Lotterleben and @japaric.

main.rs will be heavily refactored, but this PR shouldn't be too painful to rebase onto the refactored  code I think. If that*#s okay with you, I'd like to wait with merging this PR until after the refactoring is done.

main.rs will be heavily refactored, but this PR shouldn't be too painful to rebase onto the refactored  code I think. If that*#s okay with you, I'd like to wait with merging this PR until after the refactoring is done.

Sure!

@Lotterleben I've rebased it onto the latest main.

feel free to bors rplus

bors r+


Redis Error

I wanted to use this library and did some testing. This was my code:
`services.AddRateLimiter(options =>
{
options.OnRejected = (context, _) =>
{
if (context.Lease.TryGetMetadata(MetadataName.RetryAfter, out var retryAfter))
{
context.HttpContext.Response.Headers.RetryAfter =
((int)retryAfter.TotalSeconds).ToString(NumberFormatInfo.InvariantInfo);
}
    context.HttpContext.Response.StatusCode = StatusCodes.Status429TooManyRequests;
    context.HttpContext.Response.WriteAsync("Too many requests. Please try again later.");

    return new ValueTask();
};
options.GlobalLimiter = PartitionedRateLimiter.CreateChained(
        PartitionedRateLimiter.Create<HttpContext, string>(httpContext =>
        {
            string clientId = GetClientFromContext(httpContext);
            return RedisRateLimitPartition.GetFixedWindowRateLimiter(clientId, _ =>
               new RedisFixedWindowRateLimiterOptions
               {
                   ConnectionMultiplexerFactory = () => connectionMultiplexer,
                   PermitLimit = 2,
                   Window = TimeSpan.FromSeconds(1)
               });
        }),
        PartitionedRateLimiter.Create<HttpContext, string>(httpContext =>
        {
            string clientId = GetClientFromContext(httpContext);
            return RateLimitPartition.GetNoLimiter(clientId);
        }),
        PartitionedRateLimiter.Create<HttpContext, string>(httpContext =>
        {
            string clientId = GetClientFromContext(httpContext);
            return RedisRateLimitPartition.GetConcurrencyRateLimiter(clientId, _ =>
               new RedisConcurrencyRateLimiterOptions
               {
                   ConnectionMultiplexerFactory = () => connectionMultiplexer,
                   PermitLimit = 5,
                   QueueLimit = 10
               });
        })
        );

});`
It worked as expected for a while, and at some point I started getting this error from Redis:
"ERR Error running script (call to f_a08ae7b80fbefc1d082f3c02f112bb4f38a59fa7): @user_script:8: WRONGTYPE Operation against a key holding the wrong kind of value"
I looked in Redis monitor and saw the error as a result of this command:
"evalsha" "a08ae7b80fbefc1d082f3c02f112bb4f38a59fa7" "3" "rl:{tabdevweb.ini}" "rl:{tabdevweb.ini}:q" "rl:{tabdevweb.ini}:stats" "2" "1000" "0" "1693226580" "rl:{tabdevweb.ini}" "rl:{tabdevweb.ini}:q" "b2ec810f-80ac-4c50-b2b9-e46aad0de33c" "rl:{tabdevweb.ini}:stats"
After a while (next day) the error disappeared and now its working fine again.
Thanks

Hi @avia-w, thanks for taking the time to report this issue.
Given the evalsha command in the error, the issue is arising from a Lua script that's being executed in Redis. The SHA hash (a08ae7b80fbefc1d082f3c02f112bb4f38a59fa7) references this Lua script, and something inside that script at line 8 is causing the problem, eg: https://github.com/cristipufu/aspnetcore-redis-rate-limiting/blob/master/src/RedisRateLimiting/Concurrency/RedisConcurrencyManager.cs#L24C13-L24C87
The error WRONGTYPE Operation against a key holding the wrong kind of value would occur if @rate_limit_key is not holding a sorted set (zset).
It looks like you're using multiple rate limiters with the same cache key (fixed window + concurrency with the same clientId key).
You need to differentiate between these rate limiters, you could, for example, add a prefix to the clientId identifier:
return RedisRateLimitPartition.GetFixedWindowRateLimiter($"fw{clientId}", _ =>
               new RedisFixedWindowRateLimiterOptions
               {
                   ConnectionMultiplexerFactory = () => connectionMultiplexer,
                   PermitLimit = 2,
                   Window = TimeSpan.FromSeconds(1)
               });

return RedisRateLimitPartition.GetConcurrencyRateLimiter($"cc{clientId}", _ =>
               new RedisConcurrencyRateLimiterOptions
               {
                   ConnectionMultiplexerFactory = () => connectionMultiplexer,
                   PermitLimit = 5,
                   QueueLimit = 10
               });


[Improve][format][text] add dateTimeFormatter to parse ISO8601

Purpose of this pull request
added DateTimeUtils.Formatter to read timestamp in ISO8601 format included in text files.
Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

Good job, Thanks for your contribution. Please add e2e test case for this pr. You can see the e2e in seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/src/test/java/org/apache/seatunnel/e2e/connector/file/local/LocalFileIT.java

Added e2e test case related to ISO8601 dateTime format.


Update Taxi Fare tutorial to v 1.0.0

Internal Review URL
Related Code Sample
#AB1484922

Thanks, @luisquintanilla!


Is the average ranking meaningful since each algorithm is test on different number of datasets ?

it seems this is a question about our paper and not this repo. good question though - when we show aggregated rankings (min, max, mean, median, ...) we are aggregating over the same group of datasets for each algorithm. so: when we show average rankings for different algorithms, these averages are taken over the exact same datasets.

hi, thanks for the reply, and sorry about not mentioning the question is for the paper.
I'm now trying to reproduce the table 5 result in the paper, with the results metadataset_clean and metafeature_clean downloaded from google drive and the provided scripts 1-aggregate-results and 2-performance-rankings.
Since table 5 focus on only 36 Tabular Benchmark Suite datasets, I then subset the agg_df_with_default and agg_df using the datasets mentioned in /scripts/HARD_DATASETS_BENCHMARK.sh, before calculating ranks and saving result.
I add a column called dataset_count to see how many datasets were used for each algorithm calculating its statistics across all results, bellow is the result I got. We can see some of the numbers are different from the paper and some are not, more importantly,
catboost, saintandnodehave exact sametime/1000 inst.` compare to the paper, but the results of these three algorithms are calculated using different numbers of datasets.
I'm curious about if I am using the code wrong, can you provided some advice for how to fully reproduce the results of table 5, thank you !!


Generated from latest swagger of eventgrid 2020-04-01-preview

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] The PR targets the latest branch.
[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] Apache v2 license headers are included in each file.

Can one of the admins verify this patch?