DPG, content-type info lost, if body is not required

swagger
https://github.com/Azure/autorest.testserver/blob/main/swagger/media_types.json#L56-L67
vanilla
https://github.com/Azure/autorest.java/blob/main/vanilla-tests/src/main/java/fixtures/mediatypes/MediaTypesClient.java#L187
but it "text/plain; charset=UTF-8" is lost in DPG.

Also add more tests on media-type

Some possible case for non-required body.
PUT /resources/{name}
with all properties in body optional, hence that body itself can be optional.
But in this case, we want to avoid user to add content-type=application/json on every call with a body.

For multiple content type case, we will add content-type in @param or param table section depends on the body is required or not.
For single content type, if body is required, code supply the content type. If body is optional, we need to add content-type in header param table section, and the description should mention the value required.
For more details, refer to issue：https://github.com/Azure/autorest.java/issues/1534

@haolingdong-msft
Do you remember whether we eventually did this: "For single content type, if body is required, code supply the content type. If body is optional, we will add content-type in header param table section, and the description mention the value required."?

@weidongxu-microsoft , I think we did not handle the body optional case for single content type in TSP, but I remember we handle it for DPG previsouly. I can create an issue to track this.
DPG code:
https://github.com/Azure/autorest.java/blob/main/protocol-tests/src/main/java/fixtures/mediatypes/MediaTypesClient.java#L88-L123
swagger: https://github.com/Azure/autorest.testserver/blob/main/swagger/media_types.json#L52

It should be same. Maybe there's some different on media-type data when converted from tsp.

@weidongxu-microsoft Agree, created an issue to track: https://github.com/Azure/autorest.java/issues/2185

We may use a similar trick to set it only when there is body, but content-type not set.
        requestOptions.addRequestCallback(request -> {
            if (request.getBody() != null && request.getHeaders().stream().noneMatch(h -> h.getName().equalsIgnoreCase("content-type"))) {
                request.setHeader(HttpHeaderName.fromString("content-type"), "<single_content_type>");
            }
        });


Upgrade Linux Kernel for main from 6.6.21 to 6.6.22

Subject says it all.

See instead https://github.com/flatcar/scripts/pull/1801


[FEATURE] Healthcheck CLI

Would you consider implementing the ping command for use when run in a container?
I think that would be rather useful.

Sure! I think it would be useful.

Coming with v0.4.0.


pass through option container styles

Hi, thanks for the contribution but do mind explaining a little bit? Thanks.

As I understand, you are adding the optionContainerStyle prop. Please update README as well to describe your intent.

@csudanthi Do you mind updating the README?


add header classes to allow paragraphs and other elements to be treated 2ecc79a  as headers

This PR adds .h1 - .h6 as utility classes for making paragraphs and other elements function as headers.  I'm making this PR separate from the header-variable PR because it could be argued that this is a bad idea; if text is a header, it should be tagged as a header, not as a paragraph.
However, some older readers have trouble spacing headers but can space paragraphs properly, so this is a hack for handling those readers.
I'm presenting this here for discussion; feel free to close it if it doesn't match the design philosophy of the project.

Ah yes, indeed this reminds me of issue #23, and I’m kinda reluctant to add such utilities in typo.less.

I’ve never really been satisfied with the current LESS architecture – or, more simply, the directory structure –: Typo.less is indeed meant as a default you can customise but since it’s hidden in the hierarchy, it may well not convey that idea at all right now, esp. as the filename is not something like “custom.less” or something.

I refrained from changing that because that would be a breaking change.

It is just a default you can build upon/modify i.e. selectors are primarily simple HTML elements (with a specificity of 0001) with default rules for the sake of having a default output, and nothing (much) else.

So users are indeed encouraged to modify those and/or add their own styles on top of it as it was designed for this purpose in the first place.

I’ve been considering that “userland” for a very long time now, and I’d say it’s perfectly fine to add this in a fork, but I’d prefer to keep it default-ish AS-IS – rt was a good default addition for instance.

@ptmkenny Sorry for using this PR as a communication channel, I can’t find a contact mail to coordinate.
First things first, sorry for the delay, I’ve just emerged from a combination of huge coding sprints + sickness, and it seems to me you PR’d everything you wanted to PR. So I’ll try to catch up this weekend, update docs, and push a new release with massive props.
It seems fair to me, given all the work you’ve done, that you pick the codename for this release. Historically, we’ve been using The Clash’s recorded songs for v1 so here’s a comprehensive list: https://en.wikipedia.org/wiki/List_of_songs_recorded_by_the_Clash
The list of songs already used are:

Rock the Casbah
I fought the Law
Idle in Kangaroo Court W1
Rebel Waltz
Kola Kola
Charlie don’t surf
Cheat
Dictator
Silicone on Sapphire
The Street Parade
Stop the World
Armagideon Time

Please feel free to let me know which one you’d like to appear in Releases/Headers.


Make script compatible to python 2.7 and python 3.6

As the python 3.6 is not set to default, the script should work with both 2.7 and 3.6
https://testgrid.k8s.io/sig-node-critical#containerd-NodeConformance

/assign @bsdnet, @dims

/assign @Random-Liu  @dims
This blocks https://github.com/kubernetes/test-infra/pull/19207
and similar to https://github.com/containerd/containerd/pull/4559

/retest

/ok-to-test

I have tested this by creating a gce instance with config and the containerd and docker services are running properly now.

/lgtm
/approve
This is a GCE specific change that unblocks the OSS Kubernetes testing.

/lgtm
One nit: Can you merge two commits into one in this PR?

/retest

/merge

The commits have no Signed-off-by:  and therefore the DCO check is failing the CI run


Resources don't show up correctly on Mac

Civ 1.0.3
Mac OSX
Full Screen w/ 1440x900 resolution

Example:

Duplicate of closed issue #195. Please download the nightly from the OSX/Linux branch or the OSX/Linux workshop release linked from the main workshop page


[WFLY-4464] JDBC driver module-slot is not persisted in domain mode

Jira: https://issues.jboss.org/browse/WFLY-4464
Forum discussion: https://developer.jboss.org/thread/253654
Fixed by checking whether "module_slot" is defined on writing, and whether "driver_module_name" has ":" which separates the module name and module slot on reading.

Can one of the admins verify this patch?

this feels like wrong solution. performRuntime doesn't get executed in domain as it only gets up to Stage.MODEL.
as such all things that need to be in model should be populated in populateModel() method.

@ctomc The jdbc-driver ModelNode has both attribute driver-module-name and module-slot defined, see:
[domain@localhost:9990 /] /profile=full/subsystem=datasources/jdbc-driver=postgresql-9.3:read-resource
{
    "outcome" => "success",
    "result" => {
        "deployment-name" => undefined,
        "driver-class-name" => undefined,
        "driver-datasource-class-name" => undefined,
        "driver-major-version" => undefined,
        "driver-minor-version" => undefined,
        "driver-module-name" => "org.postgresql",
        "driver-name" => "postgresql-9.3",
        "driver-xa-datasource-class-name" => undefined,
        "jdbc-compliant" => undefined,
        "module-slot" => "9.3",
        "profile" => undefined,
        "xa-datasource-class" => undefined
    }
}

But there is no module-slot definition in wildfly-datasources_3_0.xsd schema, which has only a module attribute defined, and data-source subsystem uses format: module:slot as the value of the module attribute to distinguish different slot of the same module.
I think the original method populateModel has done all ModelNode population work, both driver-module-name and module-slot have correct values. The only issue is that it persisted wrong value to the module attribute of the data-sources subsystem(driver element). So I think the I/O part should be the place for this fix, to make sure correct data is persisted when writing, and correct ModelNode(the operation param) is populated when reading from XML configuration.
Line 100 - 107 of JdbcDriverAdd.java is removed in this PR because the ModelNode should be populated in populateModel method, like you said. :-)

@ctomc  @bstansberry I changed operation param to model param in performRuntime method, could you please review it again? Thank you. :-)

@gaol while you are here, why don't we fix this properly and add "slot" attribute to xsd and xml? this ":" solution was a workaround as this was not available in xsd and modifying it would require to much compatibility work.
I don't oppose this being merged as it is now, but I would love to see that we get proper fix for 3.0 xsd in wildfly 9, no need to carry old mistakes on for longer than necessary.

@ctomc Sounds like more legitimate solution. :-)
For xsd update, I need to discuss with Jesper and Stefano, since that needs xsd update in IronJacamar also.

Changing XSD is WildFly 10 material, so ok from here to merge as is for now


Links to Azure and PyPI not working

Showing the name of the constant not the actual value

Not sure if related but I also saw these warning on the prep step

Didn't see this issue the last time I released.


Error while making a group

When i try to save a group i always get this error (I tried on 2 computers)
"Unhandled exception in the application. Click on Continue",
to ignore the error and continue using. If you
If you click on “Exit”, the application will be terminated immediately.
The file or assembly "ChinhDo. Transactions. FileManager,
Version = <IP_ADDRESS>, Culture = neutral, PublicKey Token = null ”or one
Dependency on it was not found."

Same problema here. Any workaround?

I have the same problem, but only since updating to v<IP_ADDRESS> - downgrading to v0.1.4 seems to remove the issue.


Does this tar reset every day?

E：Yes.If it is not moved, it will be closed by the server.
C：是的，放着不动, 就会被服务端关闭。


Portfolio: Add System transactions tab

Proposed design
https://www.figma.com/file/K49Nx7XfocShhHcwwQzQkm/Console-V2?node-id=1616%3A26257

Details
Intention is that this tab shows the transactions you didn't explicitly make - liquidation, fees paid/received, search/release levels being hit, etc. @candida-d - any suggestions for a better title than 'System transactions'…?

@PeteWilliams I've had a few ideas but nothing I particularly like so I'm keeping them to myself for now.
However I've had another thought. Could the event & action columns be combined? They come across to me as a bit "developery" versus more user-centric. I don't know if this is limited based on the API or otherwise but I think it could do more work for users. What do you think?

Just a note that I really don’t think we should call these system transactions in the UI. They are all part of processing user transactions, like everything occurring on chain and I think the nomenclature will be really confusing.
They are called ledger entries in the API, they could also be internal transfers, ledger transfers, etc. but I suspect being consistent with the API is the right plan.


Fix grammar

Fix grammar
Summary of the changes (Less than 80 chars)

"to" -> "with"

Thank you for your help!


On Windows, --profile always fails because z3tracer doesn't parse carriage returns

I think this is actually an issue for https://github.com/verus-lang/smt2utils/tree/main/z3tracer , but I'll post it here because it causes an issue for Verus.  When using verus --profile on Windows, Z3 generates a log file that has carriage return characters in it.  When the Verus profiler sends this log file to z3tracer, the z3tracer lexer/parser fails because it only handles line feeds and spaces, not carriage returns.  Hopefully, it's easy to extend the z3tracer lexer/parser to handle carriage returns as another form of whitespace.

I pushed an update that seems to solve the problem for some Z3 log files I manually converted to Windows line endings.  Please let me know if you're still seeing issues on a proper Windows machine.

Thanks!  That solved the lexing/parsing problem.


[azure-security-keyvault-cpp] Update to Aug Release for Keyvault Packages

Update vcpkg ports for Azure SDK release. This release may contain multiple ports.

Adding azure-security-keyvault-administration to release
cc: @gearama


StackLlama: fixed RL training and added args

added steps argument and break to respect max training epochs added more PPOConfig args to script args
removed llama tokenizer hacks
black + isort
switched to LlamaTokenizer from AutoTokenizer because

the latter loads LlamaTokenizerFast
LlamaTokenizerFast will output token_type_ids see https://github.com/huggingface/transformers/issues/23818 and https://github.com/huggingface/transformers/pull/23909
these token_type_ids cause an error in our reward model pipeline, namely TypeError: LlamaForSequenceClassification.forward() got an unexpected keyword argument 'token_type_ids'

You can use return_token_type_ids=False  as a quick fix to prevent them from being passed

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Fixed style and quality and Switched back to Autotokenizer, thanks for the tip @ArthurZucker


Update user.js

the pref says

/* 0411: disable SB checks for downloads (both local lookups + remote)

This is the master switch for the safebrowsing.downloads* prefs (0412, 0413)
[SETTING] Privacy & Security>Security>... "Block dangerous downloads" ***/
// user_pref("browser.safebrowsing.downloads.enabled", false);

disable means the setting needs to be false. Descriptions match the value regardless of whether or not the pref is inactive or active (i.e commented out or not)


support CAPABILITY_SEEK_TO on ios

This is a great addition @ananevam 👍 Could you also include it to the tests?

let me know when this is ready for me to take a look at again @ananevam . looking forward to this 💃

@dcvz Thanks for the error fix


Alert Toast (.hud display mode) is displayed behind the navigation bar items

Describe the bug
If there is a navigation bar item that has a long text, the .alert toast will be displayed behind it
To Reproduce
Steps to reproduce the behavior:

Create a view with a NavigationView
Add a navigation bar item with a long text to the trailing position (example: Add to favorite)
Trigger an .hud AlertToast

Expected behavior
The AlertToast should be on top of the navigation bar items
Screenshots

Smartphone:

Device: iPhone 13
OS: iOS 15
Version: 1.3.7

It would be a pleasure to contribute to this issue 😄

I'm closing the issue because I just have to add the .toast to the NavigationView and not inside it
Sorry 😅

FYI: you can also set the offsetY in .toast


not reading .curlrc

I write a ~/.curlrc specify the proxy, which can be used for a normal shell script calling curl, which can work OK.
But this trans awk script calling curl, but looked not looking .curlrc for my proxy settings there.
Anybody had same issue like me?
Thx.

If you already have set the HTTP_PROXY env variable or specified a proxy in trans's config file, trans will always prioritize those when calling curl. Can you post your trans -V?

And which translation engine are you using?  What type of proxy is running on port 8888?
Be aware that for Google Translate, trans does not invoke curl at all. Due to gawk's limited library support, there is currently no built-in support for SOCKS proxies in trans itself, so you'll have to use it with proxychains. For Bing, however, there shouldn't be a problem.

If the engine is auto, it will assume google. Looked like awk's inet/tcp network programming out of my understanding talking about the proxy setup in initHttpService function(line 3999). One way to improve maybe to do additional check of the curl env.(e.g. .curlrc) to see if any proxy set there and read it.
just my two cents.

trans does not (and should not) read .curlrc, because it is not curl. But when it calls curl, curl uses the proxy configured in .curlrc automatically and trans does not know that.
You can configure the variable proxy in trans's own config file, but do follow the syntax. If you set a proxy in .trans it will be passed on to curl and override the default setting you have in .curlrc.


Endpoint advanced configurations are not available with get API payload.

Description:
After saving the endpoint advanced configurations from the old publisher UI as follows.

They are not available with the payload of get api call from new rest api.

Fixed by switching to the older endpointConfig element which was already there from 0.x REST APIs


Big document style example

Considering the broadness of Asciidoc's syntax and potential output perhaps it might be a good idea to create a document including as much different formatting as possible to test if the included styles are showing it all correctly in a way that fits.

Closing, because I think the examples/stylesheet example already serves this purpose. Once I have implemented another stylesheet I can update the test and GH action to build it for all available stylesheets.


giphy: Add just space as a content to fool popover library.

Since we don't have content for GIPHY popover at the time
popover is rendered, we need to render with some fake
content otherwise popover library doesn't allows for us
to show the popover.
This came into notice after 5adc6d7297c055de00661db8bd965138a2846091
broke show popover behaviour for GIPHY but didn't break it for
emoji popover as emoji popover already renders with some content.
Prior to this commit, popover library used title as content for
GIPHY popover.
Discussion: https://chat.zulip.org/#narrow/stream/101-design/topic/giphy.20integration

Merged, after adding a comment since that line feels like it deserves explanation when reading the code.  Thanks @amanagr!


Added isometric renders of block models rendered in-game

:D

isn't the correct folder name block, not blocks?

Honestly, i have no clue: it really varies through even Minecraft's code.......

https://github.com/object-Object/HexMod/tree/docgen-2-1.20/Common/src/main/resources/assets/hexcasting/textures/block

oh, also - could you perhaps generate a render for the Farmer's Delight skillet? I think it would be funny to show the true pansexual recipe

HAH
yeah, let me fix that

closing this, give me a miniute


storagetransfer: unskip tests

Tests for the storagetransfer submodule are currently all skipped due to a kokoro infrastructure issue. Sample error:
++ gcloud secrets versions access latest --project cloud-devrel-kokoro-resources --secret=go-storagetransfer-aws
github/golang-samples/testing/kokoro/system_tests.sh: line 104: gcloud: command not found
+ export STS_AWS_SECRET=
+ STS_AWS_SECRET=
++ S=
++ python3 -c 'import json,sys,os;obj=json.loads(os.getenv("S"));print (obj["AccessKeyId"]);'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ export AWS_ACCESS_KEY_ID=
+ AWS_ACCESS_KEY_ID=

It looks like the gcloud command is being run before gcloud is installed on the image. This can be fixed either by changing when this is executed, or calling gcloud from within TestMain instead.

@JesseLovelace's OOO, will ping once he's back.

This issue was fixed in https://github.com/GoogleCloudPlatform/golang-samples/pull/3200/files, and all the tests were unskipped


Use new GitHub Issue Templates

See: https://help.github.com/articles/about-issue-and-pull-request-templates/
I would propose splitting up the current issue template into two:

Bug report
Feature Request

@arturbosch @schalkms If you think this makes sense I can set this up.

What would be awesome! Yes please.

+1


[com.google.fonts/check/production_glyphs_similarity] Remove overlaps

Observed behaviour
@madig said on chat, fontbakery's com.google.fonts/check/production_glyphs_similarity calculates a different area depending on whether a glyph has overlaps or not, so this flags fonts as having different glyphs when a static font with the same name as a cut-from-vf one has no overlaps but the GF one does.
@anthrotype then suggested the fontbakery check can be adapted accordingly, computing the area of the glyphs after overlaps have been removed.
Probably doing the comparison with overlap, then detecting them and telling users it is going to  remove and rerun the check, and it can take a while.
Expected behaviour
Compare apples to apples

For testing, compare the static instances in https://github.com/wix-incubator/wixmadefor/releases/tag/1.200 against what the GF API returns (check e.g. Euro, AE).


Issue 544

Overview
Fixed #544 by distinguishing between credentialResponse.ID and credentialResponse.Credential.ID.
Description
This PR makes explicit the distinction between the two elements, which previously caused confusion. Documentation was also updated.
How Has This Been Tested?
All tests were updated with simple renaming.

LGTM, just to be clear,
the top level will be just a guid
the nested cred object will be a localhost:8080/guid ?

LGTM, just to be clear,
the top level will be just a guid the nested cred object will be a localhost:8080/guid ?

Correct!


AnnotaTR failed on vcf with both SNPs and EnsTRs

I followed the TRtools on GWAS tutorial to run annotaTR on the imputed TRs with both SNPs and TRs it gives an error but works fine for the files with imputed EnsTRs only.
ValueError: --update-ref-alt set but the REF/ALT fields at chr22:17174366 are incompatible between the refpanel and target VCF

I checked this position. This EnsTR also labeled as multi-allelic  SNP, and the REF, ALT, alleles are flipped.
18 #CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT
     19 chr22   17174366        22:17174368:T:TAC       T       TAC     .       PASS
     20 chr22   17174366        22:17174369:TAC:T       TAC     T       .       PASS
     21 chr22   17174366        22:17174371:TACAC:T     TACAC   T       .       PASS
     22 chr22   17174366        22:17174366:TACACAC:T   TACACAC T       .       PASS
     23 chr22   17174366        22:17174367:TACACACAC:T TACACACAC       T       .       PASS
     24 chr22   17174366        EnsTR:chr22:17174366    TACACACACACACAC TACACACACACACACACACAC,TACACACACACAC,TACACAC,TACACACAC,TACACACACACACACACACACACACAC,TAC>
     25 chr22   17174366        22:17174370:T:TACACAC   T       TACACAC .       PASS

maybe its better to be process the SNPs and TRs separately?

I further tracked down to the EnsembleTR reference panel v4, the SNPs start position seems labeled wrong as show above, should we fix this?

I think that annotaTR is supposed to be used on VCFs with TRs only. If it is provided with a VCF with a mix of SNPs and TRs, then the user has to provide the --ref-panel option so that it can detect the SNPs that are not in the reference panel and ignore them. That's my understanding from these lines of code, but maybe @gymreklab can confirm that.
If that is indeed the case, maybe we should explain all this in the docs? We could say something like
annotaTR is designed to operate on VCFs composed only of TRs and it will only output TRs. If SNPs are mixed with TRs in the input VCF, you must provide the `--ref-panel` option so that annotaTR can detect the SNPs to ignore them.

Yes, @aryarm's comment is correct and it would make sense to add clarification in the docs. I don't actually think the SNP/indel positions are incorrect. Those are just how multi-allelic indels at TRs tend to get represented.


Private network routing

I'm trying to set up a configuration where I have:
Client (my laptop) => Google Compute Engine (GCE) server
The GCE server has addresses:

external: aaa.aaa.aaa.aaa
internal: bbb.bbb.bbb.bbb

I need to be able to access all the internal servers on the GCE by their "Internal IP". My laptop is on a <IP_ADDRESS>/24 network and the internal GCE network is a <IP_ADDRESS>/16 network.
I thought the following would work, but I still can't connect to the internal servers. The VPN connection establishes fine.

I don't see a reason this shouldn't work with the right configuration.  I personally haven't setup anything exactly like this however.
First questions that come to mind:

Do you have net.ipv4.ip_forward enabled on your host?  Also might check the containers too, but not sure that will matter.
Have you verified your firewall policies?  In particular iptable's FORWARD chain on the host and the container (aka namespace)?

Advanced troubleshooting with tcpdump starting on client, moving to container (via docker exec), and then on host should lead you to whatever isn't cooperating.

  Using tcpdump would probably confirm that packets are going form <IP_ADDRESS>/24 -> <IP_ADDRESS>/16 but never coming back as GCE doesn't know how to route back to <IP_ADDRESS>/24 and is send them out the default gateway which Google is promptly dropping.
You'd have to do NAT on the VPN and then the VPN clients could access GCE or some black magic on all your cloud hosts.

I had the same problem, but I ran the container with --net option, then with a tcpdump -i tun0  I saw that  the packets forwarded to eth1 (my private network) does not have correct source ip address of the host within the network. With a :
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

I now can ping all the private host ip from my host.

Awesome thanks. I also switched to a TCP connection. The MTU was causing problems with UDP.

Glad to hear you got it straightened out!


sink(cdc): fix the check about resolvedTs and checkpointTs (#9772)

This is an automated cherry-pick of https://github.com/pingcap/tiflow/pull/9772
What problem does this PR solve?
Issue Number: close https://github.com/pingcap/tiflow/issues/9769
What is changed and how it works?

make owner scheduler broadcast correct ResolvedTs if redo is enbaled;
correct the check about comparing resolvedTs and checkpointTs in processor;

Release note
None

/lgtm

/ok-to-test

/label ok-to-test

/remove-label needs-ok-to-test

/test all


Add wrapper for DF MS5607 and update Bebop configuration

This adds the wrapper for the MS5607 driver and adapts the Bebop configuration.
Furthermore, it contains an improvement for the Bebop upload script.

Reviewed, didn't see anything wrong.

Rebased and applied.


Update Datarobot scoring example

Datarobot example uses integration jobs, which are being deprecated (https://docs.datarobot.com/en/docs/mlops/deployment/deploy-pred/integrations.html#integrations). Instead it's updated using Batch prediction job definitions (https://docs.datarobot.com/en/docs/mlops/deployment/deploy-pred/batch-pred-jobs.html).

thank you!


BUG- Cannot properly center table headers

Description
In a table, if you want the headers to be centered for each column, they are not properly centered because the button for the arrow is always present in the calculation of the width, even if editable=False and active=False
How to reproduce
A code fragment  (centertst.py)
import pandas as pd
from taipy import Gui
from taipy.gui import State

df = pd.DataFrame.from_records(
    [["ID1", 1, 2], ["ID2", 3, 4]], columns=["Wide", "A", "B"]
)

page = (
    "<|{df}|table|width=260px|show_all=True|editable=False|active=False"
    + "|width[A]=50px|width[B]=50px"
    + "|>"
)

if __name__ == "__main__":
    Gui(page=page, css_file="centertst").run(
        dark_mode=False,
    )

and CSS file centertst.css:
.taipy-table :is(th, td) {
    border-width: 2px;
    border-color: lightgray;
    border-style: solid;
}

.taipy-table th {
    text-align: center !important;
    background-color: green;
}

.taipy-table td {
    text-align: center !important;
    background-color: lightblue;
}

Expected behavior
The centering should be aligned between the header and the contents of the columns.
Screenshots

Using Chrome inspect, you can see how the button is still there, even though it is inactive:

Runtime environment
Please specify relevant indications.

OS: Windows 10
Browser:  Chrome  108.0.5359.124 (Official Build) (64-bit)
taipy-gui:  2.0.4

Tx Dr Irv
And Happy New Year

So I tried to make a change and couldn't get it to work.  But that's because I don't understand how to work/debug with the typescript code.  See https://github.com/Avaiga/taipy-gui/issues/372#issuecomment-1371270004

Let me know if you need help
We can set up a screen sharing session if that helps

Let me know if you need help We can set up a screen sharing session if that helps

Yes, I can do that now if you're available.   Send me an email with an invite (you should have my email from our previous meetings)

Would it be OK tomorrow around 6 PM Paris time ?

Would it be OK tomorrow around 6 PM Paris time ?

Yes.  Do you want to send an invite?  Or should I?


atf-v1.3-armada-17.10 doesn't compile with gcc 7.2

atf-v1.3-armada-17.10 fails to build with gcc 7.2:
$ make USE_COHERENT_MEM=0 LOG_LEVEL=20 MV_DDR_PATH=$(pwd)/../mv-ddr-marvell PLAT=a80x0_mcbin CROSS_COMPILE=aarch64-linux-gnu- LD=aarch64-linux-gnu-ld.bfd all fip
[...]
lib/psci/psci_common.c: In function ‘psci_do_state_coordination’:
lib/psci/psci_common.c:220:27: error: array subscript is above array bounds [-Werror=array-bounds]
psci_req_local_pwr_states[pwrlvl - 1][cpu_idx] = req_pwr_state;
cc1: all warnings being treated as errors

Merged in: https://github.com/MarvellEmbeddedProcessors/atf-marvell/commits/atf-v1.3-armada-17.10


Are the PDF and Epub version also available?

I can only find the HTML version on the build server.

No those version are not build. Actually, I had a problem with the plugin that is needed to build these other file types.

We should fix this when we have time to do so.

Is this fixed or did you move this topic to Jira?

Moved to JIRA
Kevin Smeets | Experienced Software Engineer,
Application Services | CGI
Stationstraat 49, 6411 NK Heerlen, Nederland
T: +31 88 564 4005 | M: +31 6 5060 5292
kevin.smeets<EMAIL_ADDRESS>| www.cgi.comhttp://www.cgi.com/ | www.cginederland.nlhttp://www.cginederland.nl
Volg CGI Nederland op: LinkedInhttp://www.linkedin.com/company/cgi-in-nederland | Twitterhttp://twitter.com/CGI_NL | Facebookhttp://facebook.com/CGINederland | YouTubehttp://www.youtube.com/user/CGINederland
CGI Nederland B.V., registered office in Amstelveen, The Netherlands
Registration Number Chamber of Commerce: 33136004
[cgi-logo-email-45x25]
P Save a tree. Don't print this e-mail unless it's really necessary~
CONFIDENTIALITY NOTICE: Proprietary/Confidential Information belonging to CGI Group Inc. and its affiliates may be contained in this message. If you are not a recipient indicated or intended in this message (or responsible for delivery of this message to such person), or you think for any reason that this message may have been addressed to you in error, you may not use or copy or deliver this message to anyone else. In such case, you should destroy this message and are asked to notify the sender by reply e-mail.
From: Sander Jansen<EMAIL_ADDRESS>Sent: maandag 22 februari 2016 8:58
To: OSGP/Documentation
Cc: Smeets, Kevin
Subject: Re: [Documentation] Are the PDF and Epub version also available? (#9)
Is this fixed or did you move this topic to Jira?
—
Reply to this email directly or view it on GitHubhttps://github.com/OSGP/Documentation/issues/9#issuecomment-187060723.


Feature - custom click handler with data point for Grouped Bar

Added a custom click handler for the Grouped Bar chart.
Description
Added a new event to dispatcher called customClick with the handler that passes the clicked bar data point via callback for the user to use (see logs in the screenshot).
Update: Had to install Array.prototype.find ship. It needs to be included in PhantomJS to accept the Array.prototype.find method used in getNearestDataPoint function here https://github.com/eventbrite/britecharts/blob/master/src/charts/grouped-bar.js#L607
Motivation and Context
https://github.com/eventbrite/britecharts/issues/534
How Has This Been Tested?
Added new test that checks if function was invoked (similar to the mouseover and other events)
Screenshots (if appropriate):

Types of changes

[ ] Refactor (changes the way we code something without changing its functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style guide of this project.
[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

looks great to me. That was blazing fast!!! Thanks a lot!


Refactor bibliographic/:id/availability to use fewer alma API calls for CDL information

We believe we are making an extra API call to get the work order type on show pages. Update the code so we’re not doing an extra call here.

I believe this is already done. The code only makes the extra API call if the status is unavailable:
def holding_status(holding:, sequence:)
  ...
  elsif status[:status_label] == "Unavailable"
    # Notice that we only check if a holding is available via CDL when necessary
    # because it requires an extra (slow-ish) API call.
    status[:cdl] = cdl_holding?(holding["holding_id"])
  end
end

https://github.com/pulibrary/bibdata/blob/alma/app/adapters/alma_adapter/availability_status.rb#L63-L66

Neither the Bib API or the Holding API gives us the information that we need to determine if a record is available via CDL. We need to drill down to the Items API to get information about work orders (which is where CDL is indicated).
With the current implementation we always make the Bib API call. We only make the additional items API call if the item is available. I believe this is as good as it gets.
Some background information:
The Bib API (https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/9965126093506421?format=json&apikey=your-key) returns something like this:
{
  "mms_id": "9965126093506421",
  "record_format": "marc21",
  "linked_record_id": {
    "value": null,
    "type": null
  },
  "title": "Beautiful passing lives : poems /",
  "author": "Harkness, Edward.",
  "issn": null,
  "isbn": "1929355734 (pbk.)",
  "network_number": [
    "(NjP)6512609-princetondb",
    "6512609",
    "(OCoLC)700510448",
    "(OCoLC)ocn700510448"
  ],
  "place_of_publication": "New York, NY :",
  "date_of_publication": "c2010.",
  "publisher_const": "Pleasure Boat Studios,",
  "holdings": {
    "value": null,
    "link": "https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/9965126093506421/holdings"
  },
  "created_by": "import",
  "created_date": "2020-12-02Z",
  "suppress_from_publishing": "false",
  "suppress_from_external_search": "false",
  "sync_with_oclc": "BIBS",
  "sync_with_libraries_australia": "NONE",
  "originating_system": "ILS",
  "originating_system_id": "6512609-princetondb",
  "anies": [XML-CONTENT-GOES-HERE]"
  ],
  "requests": {
    "value": 1,
    "link": "https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/9965126093506421/requests"
  },
  "link": null
}

The XML in the anies fiels has the holding information in the AVA datafield:
<datafield ind1=" " ind2=" " tag="AVA">
        <subfield code="0">9965126093506421</subfield>
        <subfield code="8">22202918790006421</subfield>
        <subfield code="a">01PRI_INST</subfield>
        <subfield code="b">firestone</subfield>
        <subfield code="c">Stacks</subfield>
        <subfield code="d">PS3558.A62424 B43 2010</subfield>
        <subfield code="e">unavailable</subfield>
        <subfield code="f">1</subfield>
        <subfield code="g">1</subfield>
        <subfield code="j">stacks</subfield>
        <subfield code="k">0</subfield>
        <subfield code="p">1</subfield>
        <subfield code="q">Firestone Library</subfield>
    </datafield>

Notice that there is no work order here.
The Holdings API call (https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/9965126093506421/holdings?format=json&apikey=your-key) gives the following information:
{
    "holding": [
        {
            "holding_id": "22202918790006421",
            "library": {
                "value": "firestone",
                "desc": "Firestone Library"
            },
            "location": {
                "value": "stacks",
                "desc": "stacks: Firestone Library"
            },
            "call_number": "PS3558.A62424 B43 2010",
            "suppress_from_publishing": "false",
            "link": "https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/9965126093506421/holdings/22202918790006421"
        }
    ],
    "bib_data": {
        "title": "Beautiful passing lives : poems /",
        "author": "Harkness, Edward.",
        "isbn": "1929355734 (pbk.)",
        "publisher": "Pleasure Boat Studios,",
        "mms_id": "9965126093506421",
        "issn": null,
        "network_number": [
            "(NjP)6512609-princetondb",
            "6512609",
            "(OCoLC)700510448",
            "(OCoLC)ocn700510448"
        ],
        "place_of_publication": "New York, NY :",
        "date_of_publication": "c2010.",
        "link": "https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/9965126093506421"
    },
    "total_record_count": 1
}

Again, notice that there is no work order information here.

Thank you for double-checking @hectorcorrea


Export to vrm0 instead of vrm1

This pr will change the download mode to be vrm0 instead of vrm1

Export vrm0 works in unity, blender, vrm-viewer web app and 3d-calidoface


Type error on Indexer Property

On Feb 20th, this commit REMOVES the indexer property on BigNumber
On Feb 24th, this commit ADDS the indexer property to Instance (which BigNumber implements)
Because of this we now have a type error: Instance has an indexer property, but BigNumber (which inherits from Instance) doesn't.

Wallet Transfer
ether token account

Thanks for the report, such as it is.
See #208 for background.


Void Portals not generating

It seems the void portal no longer generates a portal in the void rather, it teleports you to the exact same coordinates as the block you were on when you got in. a portal in the void seems to teleport you a few blocks off from the block you were on prior to the teleport and also no longer generates an over-world portal.

knew i shoulda tested the new system a bit more :P will get a fix out soon

Okay. Glad to help!

Do you know if the Xia portal has the same issue? When I tested it last night it seemed fine.

The xia portal seems fine.

pretty sure I found the issue as to what happened and thankfully the only mod that would need to be updated will be TamModized. Will test it first this time :P

Okay.


image/runtime: Update iptables-wrapper script

Description
The original iptables-wrapper script is coming from 1, however,
this was spinned off to 2 in k8s upstream repo. This commit is
to get the latest iptables-wrapper script.
Signed-off-by: Tam Mach<EMAIL_ADDRESS>Testing
This is spin-off from #19852 so that we can decide to backports these changes (e.g. ubuntu upgrade vs iptables-wrapper update) independently.

/test

/test-runtime

/test

What's the context for why the script was changed upstream?

What's the context for why the script was changed upstream?

Sorry for late reply. As per my understanding, this script was not maintained and updated for quite sometime. The recent update in upstream is to keep up with latest k8s deployment:

most of k8s deployment is with linux distribution with recent iptables version (e.g. 1.8.7)
NFT mode is preferred compared to legacy mode.

https://github.com/kubernetes-sigs/iptables-wrappers/commits/master/iptables-wrapper-installer.sh

Changes LGTM, I'm not sure how useful it is to review the actual iptables script. Do we feel that CI will give us a good enough signal to avoid regressions? Do we still feel this is risky?

I think CI is giving us some confidence for sure, but it's hard to have complete confidence on iptables 😢 . Can we have it as part of 1.12 release, and then will backport to older version if required ?

Closed this one as we are considering other approach to make sure kubelet and cilium are using the same iptables mode.


Nav not displayed on initial load if items = 1

If the items property is set to 1 it seems that the nav is not displayed on initial load. If I have a Slider which displays 1 item at a time, I still want to see the nav. I think this might be a bug, I believe the following should be items > 0 or items >= 1 :
https://github.com/ganlanyuan/tiny-slider/blob/master/src/tiny-slider.js#L454

Thanks @davepenfold ,
This is fixed in the the latest release.


AVRO-3335 Evaluate input of GenerateNames

Additionally updated naming since it does not need to preserve Java like naming.
Jira

[ ] My PR addresses the following Avro Jira issues and references them in the PR title. For example, "AVRO-1234: My Avro PR"

https://issues.apache.org/jira/browse/AVRO-3335

Tests

[ ] My PR adds the following unit tests: Test that method throws new exception

Commits

[ ] My commits all reference Jira issues in their subject lines. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain Javadoc that explain what it does

Thank you, @KyleSchoonover !


Merged new derived variables

I have merged the master branch into this branch, and it passed my manual tests as well as the usual automated tests.  This branch, merged-new-derived-variables, has all the features of new-derived-variables but it shouldn't give any grief to the git merge tool.

I'm pulling into my mac and having a problem with
AttributeError: 'vtkCommonCorePython.vtkUnsignedCharArray' object has no attribute 'InsertNextTypedTuple'
There's a package that needs to be updated but it's not obvious which one.
This is unrelated to metrics. But I'd like to see it pass on my system before the merge.

I've not seen that vtk error.  Could you tell me how you got it?  I'd like to try to reproduce it on my Mac.

It's under the hood in cnvs2.plot(line, bg=1).
You probably won't be able to duplicate it.

Actually all checks passed.


Make saddle-strength nan-aware

Sometimes might get nan output from cooltools.saddle.saddle_strength if there are NaNs in the saddle data. Is there any objection to simply replacing .sum() with np.nansum() everywhere?
https://github.com/mirnylab/cooltools/blob/30d2b06be55f1dafbd529ffb05dde274e64664e2/cooltools/saddle.py#L556-L561

I can't think of any. Go ahead!

closing this since it's been done


An application object of type 'Codeunit' with ID '50100' is already declared by the extension

Describe the bug
When I edit an AL file outside of VS Code I keep getting the message An application object of type 'Codeunit' with ID '50100' is already declared by the extension.
There is no other file that declares this object. I'm in a clean new extension project with just the basic dependencies.
The weird thing is that my extension compiles properly. I just get the warning. My file is in C:/Temp/Test so it can't be the known UNC path problem.
To Reproduce
Steps and to reproduce the behavior:

Create a new codeunit
Change the filename in Windows Explorer
Have an issue.

AL Code to reproduce the issue
Expected behavior
I expect I would not have any issues after renaming or editing a file externally.
Screenshots
If applicable, add screenshots to help explain your problem.

5. Versions:

AL Language: 6.1.362735

Business Central: On Prem 17.0

probably related to https://github.com/microsoft/AL/issues/6077


Column Type Change - Data Disappear

Describe the bug
When I change the column type the data disappears
To Reproduce
Just change the type of the column and the data will disappear
Expected behavior
The data not disappear.
Video
https://user-images.githubusercontent.com/14169134/185154493-46798e51-ba4e-4832-bf2a-18194c6654cf.mp4
Desktop (please complete the following information):

OS: Pop OS
Version: 22.04

when parsing a text type column to date, since they are not compatible with each other, a date is not shown, but the data remains intact in the files until it is modified


op.sh: consistent naming

there's a few more like echo "Checking for compatible python version...", etc.


[core] - downlevel core-tracing

This is a prerequisite to being able to re-export OTel APIs directly instead of redefining them.
Since they use import/export type we'd need to downlevel

I'd like to upgrade API Extractor first

This will not be necessary for the rewrite, nor will it be necessary when the opentelemetry implementation package is added, closing.


release-notes: remove duplicate Misc section, fix formatting and punctuation

Some housekeeping to the release notes.

two suggestions

Thanks a lot, fixed both!


Convert wsync to array in eb.ave_covary2()

As per feedback in PR the wsync array in the clarity.evalulator.haspi.eb.ave_covary() function would be neater as an array.

This will be fixed in PR from branch #85 that is adding tests for the evaluator functions. The work on the branch is taking advantage of the tests to clean up some of the code which is betraying its MATLAB origins in many places 😄


BYG's Ametrine Armor Doesn't Stop Braintrees

As the title says, Ametrine armor from Oh the Biomes You'll Go does not make it so braintrees ignore you. Ametrine is a metal, so Ametrine armor is made of metal.

ametrine is a type of quartz


Update content for clear legal documents

Changes
Add a summary of the changes in this pull request
Adding all the task content and guidance for the clear legal documents section
Checklist

[x] Attach this pull request to the appropriate card in Trello.
[x] Update the CHANGELOG.md if needed.

 Users can complete the clearing of legal documents tasks


make deduplication_on_engagement work with close_old_findings

During #983 and #1002 I realized that deduplication_on_engagement is not yet support with close_old_findings during imports. I think this is needed because otherwise the import could close findings in other engagements and the whole idea of deduplication_on_engagement (I think) is to keep all "duplicate checks" inside the engagement instead of the product.

Hi @valentijnscholten seeing merge conflicts here.

Not sure what happened. Seemed to pop up once I merged your other PR for some reason.

Probably because I had to fix the same flake8 warnings in all three PRs

Conflicts are resolved now.


Feature 1484 upgrade to spring boot 2.7.2

upgrade to spring boot 2.7.2 #1484
upgrade Gradle to 7.5
upgrade dependencies

closes: #1484

@winzj thank you for the review.


working with prisma & enums breaks formatting and/or types

Describe the bug

prisma vscode extension only supports single line syntax highlighting (as seen here: https://github.com/prisma/language-tools/pull/985/files#diff-fdb153efde4d632bf09e6ca7edb77120f2a1d8f888aae21f62d2743682c67a3e)
this is fine, as one can define the interface separately e.g.

// This works
prisma.$queryRaw<{ id: number }[]>`
  SELECT id from machine
`

// This also works

interface Demo {
id: number
}

prisma.$queryRaw<Demo[]>`
  SELECT id from machine
`

// This does not work, because the return type declaration spans multiple lines
prisma.$queryRaw<{
  id: number
}[]>`
  SELECT id from machine
`

now adding safeql to the equation, breaks, when working with enums for some reason
...
          interface Demo {
            task_definition_class_type:
              | 'BASIC'
              | 'WORK_PACKAGE'
              | 'WORK_ITEM'
              | 'ADDITIONAL'
              | 'ROADBLOCK'
              | 'TASK'
              | 'QUALITY'
              | 'LEGACY_PREREQUISITE'
              | null;
          }

          return client.$queryRaw<Demo[]>`
            SELECT
                td.class_type as task_definition_class_type
            FROM table1 ti
            LEFT JOIN table2 td ON ti.task_definition_id = td.id;
        `

results in safeql error:
Query has incorrect type annotation.
	Expected: { task_definition_class_type: "BASIC" | "WORK_PACKAGE" | "WORK_ITEM" | "TASK" | "QUALITY" | "ADDITIONAL" | "ROADBLOCK" | "LEGACY_PREREQUISITE" | null; }
	Actual: { task_definition_class_type: 'BASIC' | 'WORK_PACKAGE' | 'WORK_ITEM' | 'ADDITIONAL' | 'ROADBLOCK' | 'TASK' | 'QUALITY' | 'LEGACY_PREREQUISITE' | null; }[]eslint[@ts-safeql/check-sql](https://github.com/ts-safeql/safeql)

tried to change the order of the union keys -> didn't work either. only fix is to add a //prettier-ignore for the line, so somewhat inconvenient
this works, but again, breaks prisma syntax highlighting
          return client.$queryRaw<
            {
              task_definition_class_type:
                | 'BASIC'
                | 'WORK_PACKAGE'
                | 'WORK_ITEM'
                | 'ADDITIONAL'
                | 'ROADBLOCK'
                | 'TASK'
                | 'QUALITY'
                | 'LEGACY_PREREQUISITE'
                | null;
            }[]>`
            SELECT
                td.class_type as task_definition_class_type
            FROM table1 ti
            LEFT JOIN table2 td ON ti.task_definition_id = td.id;
        `

This is a problem with VS Code and TextMate grammars not being able to span across multiple lines:

https://github.com/microsoft/vscode-textmate/issues/41

However, a workaround exists for many syntax highlighting extensions, to use a comment between the generic arguments list (after the >) and the template string (before the `):

https://github.com/frigus02/vscode-sql-tagged-template-literals/issues/20#issuecomment-1817902214


How to deploy chromeless to AWS Lambda

I tried to follow steps listed in the page
https://github.com/graphcool/chromeless/tree/master/serverless
When i add my endpoint, region and run "npm run deploy" , I get so many npm errors such as
/chromeless/serverless/node_modules/aws-sdk/clients/iam.d.ts (1095,32): Cannot find name 'Buffer'. (Lots of it)
/chromeless/serverless/src/utils.ts (10,12): Cannot find name 'process'.
src/version.ts (3,37): Cannot find name 'require'.
npm ERR! Linux 4.4.0-79-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "deploy"
npm ERR! node v6.11.0
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>deploy: serverless deploy
npm ERR! Exit status 137
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>deploy script 'serverless deploy'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the chromeless-remotechrome-servie package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     serverless deploy
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs chromeless-remotechrome-servie
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls chromeless-remotechrome-servie
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /chromeless/serverless/npm-debug.log
I ran it in both ubuntu and windows. But both didnot help.
I am trying to implement  https://chromeless.netlify.com and make it store screenshot in my S3 bucket.

Yes I did npm install, Then added endpoint and region to serverless.yml and then ran npm run deploy
Is there a specific version of nodejs and npm, i should have?

I also notice that, steps at https://github.com/graphcool/chromeless/tree/master/serverless#setup is incomplete. It doesn't say anything about setting  up AWS key and secret, Doesn't say where to add S3 bucket. Steps for lambda newbies like me will make this wonderful product reach many people.

@billdesk You need to run npm install in the directory above (chromeless) too, not just in the chromeless/serverless directory.
Alternatively, if you are just using the proxy part/folder you can also run npm install @types/node --save-dev in the chromeless/serverless directory before npm run deploy and that will fix the errors for you.

@billdesk please pull the latest changes in the repository and try npm install again in the serverless directory.
@jracollins thank you for pointing out that @types/node was missing in the Proxy's package.json

Thank you @jracollins . It works now. I am able to deploy now.
I have just one question. How do we generate  to create something like UI demo chromeless.netlify.com.
I downloaded javascript and changed the endpoint API but it doesn't work. I am not sure where to change APIkey.

I am facing a similar issue... any clue guys?
Thanks,
xxxxxxx\chromeless\serverless>npm run deploy

<EMAIL_ADDRESS>deploy xxxxxxx\chromeless\serverless
serverless deploy

Serverless: Compiling with Typescript...
Serverless: Using local tsconfig.json
Error --------------------------------------------------
EPERM: operation not permitted, symlink 'xxxxxxx\chromeless\serverless\node_modules' -> 'xxxxxxx\chromeless\serverless.build\node_modules'
 For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

 Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>deploy script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     xxxxxxx\AppData\Roaming\npm-cache_logs\2017-08-01T22_19_47_363Z-debug.log

I followed the instructions provided in the thread. No cluck

Fixed by running the command prompt in admin mode. I think you should update your documentation to clearly state that for windows users. I can't wait to give a try...:-)

@simocl we welcome any PRs that improve the documentation! 😄


GDPR - Data export lifespan

@RubenMattan, I don't know anymore how long the zip was downloadable, 3 days iirc? Pierre says we should better increase it to 7 days.

Not going to do this


Prepare for release 24.3.1

I'll hold off until #475 has landed :)

https://pypi.org/project/flake8-pyi/24.3.1/ 🎉


[$1000] Visiting time zone select page on login displays selected timezone as los angeles for few seconds

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:

Open the app
If logged in then log out
Visit following URL (timezone select URL, can be copied from settings->profile->Timezone->Timezone) : https://staging.new.expensify.com/settings/profile/timezone/select
Login and observe that app displays 'America/Los_Angeles' selected for few seconds before switching to currently selected value

Expected Result:
App should display currently selected value when we visit timezone select page
Actual Result:
App displays 'America/Los_Angeles' selected for few seconds when we visit timezone select page on login
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Version Number: 1.3.47-3
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/eec79203-8cbc-482b-95cf-fc35e37d7641
https://github.com/Expensify/App/assets/43996225/409eceaa-7908-4804-bbdc-363b5447e960
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690710434957949
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014bd05f26e0205708
Upwork Job ID:<PHONE_NUMBER>549071360
Last Price Increase: 2023-08-21

Hmm, ok, I guess that's a bug.
@dukenv0307 It looks like America/Los_Angeles is still highlighted in the list under your solution too, by the way!

Proposal
Please re-state the problem that we are trying to solve in this issue.
Visiting time zone select page on login displays selected timezone as los angeles for few seconds
What is the root cause of that problem?
RCA for this issue is in this function https://github.com/Expensify/App/blob/9294e9eacd53ba2ba805c6e33f18c796ccc3306d/src/pages/settings/Profile/TimezoneSelectPage.js#L90 which will return default timezone if there is not timezone available in currentUserPersonalDetails object which could be empty in case of a new login.
Also the initiallyFocusedOptionKey being selected to default timezone due to code here https://github.com/Expensify/App/blob/9294e9eacd53ba2ba805c6e33f18c796ccc3306d/src/pages/settings/Profile/TimezoneSelectPage.js#L33 and here https://github.com/Expensify/App/blob/9294e9eacd53ba2ba805c6e33f18c796ccc3306d/src/pages/settings/Profile/TimezoneSelectPage.js#L45.
What changes do you think we should make in order to solve the problem?
Use FullscreenLoadingIndicator till we get timezone property in currentUserPersonDetails object using conditional rendering having variable maybe shouldShowOptions inside the render function like below.
        const shouldShowOptions = !_.isEmpty(_.get(this.props.currentUserPersonalDetails, 'timezone'));

This fixes the issue showing default timezone in the input field, but the issue is that focused option is still default timezone (los-angeles)
As I mentioned RCA for this point, even if we have the updated props it a while to update selected timezone to state by then component would render and focus on the default option (los-angeles).
To Prevent that we should calculate the selected timezone and pass it here to initiallyFocusedOptionKey prop's values like below.
    // This ensures instant update with accurate and according to the `currentPersonalDetails` object
    const selectedTimezone = _.get(this.getUserTimezone(this.props.currentUserPersonalDetails), 'selected');
    return (

        <SelectionListRadio
        {/* {...otherProps} */}
        initiallyFocusedOptionKey={_.get(_.filter(this.state.timezoneOptions, (tz) => tz.text === selectedTimezone)[0], 'keyForList')}
        />
    )

What alternative solutions did you explore? (Optional)
NA
##Result
https://github.com/Expensify/App/assets/59088937/7d8abe73-f3df-416a-b37e-a42f41ec5361

Proposal
Please re-state the problem that we are trying to solve in this issue.
The issue occurs in the 'getUserTimezone' function of the file src/pages/settings/Profile/TimezoneSelectPage.js. It defaults to returning the timezone America/Los Angeles.
What is the root cause of that problem?
In the presented scenario, we still don't have the Timezone data in the props.currentUserPersonalDetails object. The received value is "America/Los Angeles," which causes the rendering of text and select components to occur with different values at two different moments.
The first time, in the constructor, we obtain "America/Los Angeles." After that, in 'componentDidUpdate,' the sequence is "America/Los Angeles" and later the real value "America/Sao Paulo" in my case.
What changes do you think we should make in order to solve the problem?
My proposal is to add a control property to identify when the user's timezone data has been loaded. Let's call it "isUserTimezoneLoaded" for the sake of readability and maintainability.
To achieve this, we need to add the following line of code to the constructor and componentDidUpdate methods:
this.isUserTimezoneLoaded = !!this.props.currentUserPersonalDetails?.timezone;

For a better user experience, I have chosen to add the FullscreenLoadingIndicator component, conditioned to the value 'false' in this.isUserTimezoneLoaded. To do this, you will need to include the dependencies FullscreenLoadingIndicator and styles.
Tested use cases:

New user accessing the route directly (not logged in)
New user navigating through the menu (logged in)
Existing user navigating through the menu (logged in)
Existing user accessing the route directly (not logged in)

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01c56cf7aff2950515

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01002e948943eeb864

Proposal
Please re-state the problem that we are trying to solve in this issue.
Visiting time zone select page on login displays selected timezone as los angeles for few seconds
What is the root cause of that problem?

In TimezoneSelectPage, we get this.timezone = this.getUserTimezone(props.currentUserPersonalDetails), then we set the state of timezoneInputText to this.timezone.selected.
this.getUserTimezone returns the CONST.DEFAULT_TIME_ZONE which is DEFAULT_TIME_ZONE: {automatic: true, selected: 'America/Los_Angeles'}

What changes do you think we should make in order to solve the problem?
Replace selected: 'America/Los_Angeles' with selected: '' in the DEFAULT_TIME_ZONE & conditionally return the SelectionListRadio component with initiallyFocusedOptionKey when available.
https://github.com/Expensify/App/assets/56603839/d4992098-bac8-4bf0-a854-30b1ed371ffa

@abdulrahuman5196 Hi - four proposals here to review please!

Bumped @abdulrahuman5196 via Slack for these reviews

instead of waiting on server's response for timezone, why don't we default to the user's current location (from their IP)
Full screen blocking until we have the timezone seems unnecessary to me. Because in most cases, the timezone  will be same as their IP address' timezone

@rushatgabhane What if user changes the timezone? they don't want the timezone based on their IP (sometimes ip info might be wrong?) and they change the timezone... then this issue still comes right?

Reviewing now

@conorpendergrast
We would need to confirm on the expected behaviour here.
Basically everyones rootcause is correct. When we login, we won't have users timezone immediately and we show a default timezone and when we get proper data from the APIs we update the display with the appropriate timezone.
What do we want to do inbetween time of login and the time of API response having proper timezone?
Should we show a loading indicator? Or do we show something else?

@conorpendergrast Can we check this https://github.com/Expensify/App/issues/23940#issuecomment-1676296775 and https://github.com/Expensify/App/issues/23940#issuecomment-1676681884

@conorpendergrast Bump on the above

Oh wow, I'm sorry, I missed those questions for so, so long. I'll bring those for discussion internally!

I've posted to #expensify-open-source, sorry again for the delay there! In that I've recommend we:

show a skeleton UI until we have received the user’s timezone setting (automatically set or manually set) and timezone
Where automatic timezone is the user preference, at that point I recommend we keep the current behaviour of showing the timezones as inactive options

No disagreement (and a small amount of agreement) on that proposal so far

@dylanexpensify Hey! I posted about a path forward above, so the next step is to take that, get agreement, and then move this along. Thank you!

There hasn't been much movement in slack yet @dylanexpensify

@abdulrahuman5196 bumped for more thoughts, then we can move forward if not!

Posted internal for urgency

We decided this is a minor edge case polish, closing


Feature request: add onTruncate function

Like react-truncate, it would enable me to dynamically show/hide a More/Less button for the content.

Is there any ETA to this feature as I think its gonna be very crucial feature.There is no point if the user cannot show/hide text


Popover closing on click in interactive area

Now, when clicking on an element inside a popover, which, after clicking, should disappear, it causes the popover to be hidden,
For example, when a button is replaced by a loading indicator:
...
@action
nextPage() {
   this.is_pending = true;
  // some code
}

...

{{#unless this.is_pending}}
     <button {{on 'click' this.nextPage}}>Load next page</button>
{{/unless}}

{{#if this.is_pending}}
     <i class="loading-indicator"></i>
{{/if}}

Clicking on the "Load next page" button closes the popover.
It seems to me that this happens due to an incorrect check in _hideOnClickOut:
if (!targetReceivedClick && !this._popperElement.contains(event.target))

Node in  event.target has already been removed from the document at this stage, so a search in _popperElement returns false and the popover is closed.
An alternative could be a similar check:
let click_in_popper = false,
target_path = event.path(event); // `event.path` doesn't work in Firefox, but there are alternatives like `composedPath()`
for(let i = 0; i< target_path.length; i++) {
  if(target_path[i] == this._popperElement) click_in_popper = true;
}

if (!targetReceivedClick && !click_in_popper) {
  this._hideAfterDelay();
}

It seems to me that such a condition better reflects the essence of this function.

Could you provide a failing test?  I would like to know if this is the behavior with current version or this has persisted from previous versions.

Could you provide a failing test? I would like to know if this is the behavior with current version or this has persisted from previous versions.

I can only demonstrate on version 1.0.0 as Ember Twiddle doesn't want to download the version above, but my project is using version 1.2.3. The problem is identical

I think this change is fine but since it would change a behavior that others might be relying on, maybe we can make this an optional code path?  I can make it either a component level property or a project build option. This way you can get the functionality you want without the need of a breaking change. How does that sound?

To be honest, I cannot imagine a situation where this "feature" could be deliberately used. That is, there is a conflict between the API method that closes the popover, and the closing by removing the element when you click on it, which is not obvious. That is, as for me, this is still a bug and not a "feature".
About the property for a component ... It doesn't occur to me what to call it. That is, in fact, for correct behavior, you will either need to specify 2 properties, for example, interactive and some_property. Which, it seems to me, is not correct if we assume that the new check option is preferable. Or ... Use something like the interactive_alternative property, but here the problem is about the same as in the first case. I have no more ideas here.
The build option for the project as a whole looks more viable, but it seems to me that it would be logical to make the new check option by default, in order to avoid further use of the old "feature". Thus, new users will have a correct check by default, and old users will see the changes in the list of releases and set the required build option, if necessary.

Since I'm not the original author and only the most active maintainer, I can pray that maybe @kybishop could shed some light on his original thinking in authoring the code.
With that said I have to balance what has been considered "expected behavior" for many releases and what has now been brought to my attention as the "right" way to something. Since you are the only person to raise this concern doesn't mean you are wrong, it just means it's isolated (as of now) to your needs.
I think the compromising approach here is to set a this a configuration parameter so that at the very minimum you get this into the origin/upstream code and you don't have fork and maintain your own version. If enough people start raising the issue as one they would like to see as the default, I will consider implementing this change and making the appropriate semver adjustments.  Does that sound like a fair solution at this time?

I have nothing against any solution that looks logical. In my project, I have already redefined the behavior by extending the component in the initializer, and this question was created more to highlight the problem, which, perhaps, not many people have encountered, since they do not use complex components inside the popover, or made their own internal edits like me. In any case, I cannot specify how this addon should develop, which does not negate the fact that the current behavior looks like a flaw, as it generates unexpected behavior.
If you think it's more logical to make an additional build option for the new behavior for the first time, before @kybishop sheds light on his idea, I have nothing against

I'm personally a huge fan of semver and releasing often; too many software projects feel like they need something new and shiny with every major version release. I fully support a major version release with a fix. My only request is that it be cross browser compatible (I noticed the comment about firefox). @BwehaaFox I think the use-case you mentioned simply never came up for me, and my more simple uses worked without issue.
At this point I'm far enough removed from Ember that the project is "mine" only so much as it is under my name. @tylerturdenpants you're more than welcome to release and handle things as you wish, the same goes for the other collaborators (within reason, of course).

I do not know what the minimum browser requirements for this addon are, but composedPath judging by Can I Use has quite high support. You can use it instead of event.path or use the conditionevent.path || event.composedPath (). You can also leave support for the old version if none of these paths are supported.


Update dependency-injection.md

More accurately describe the applicable apps for DI when pointing to .NET docs. It is for all .NET apps other than web apps, not just console apps.
/cc @Rick-Anderson

@IEvangelist  thanks, I like that language better. I'll start using it in the other extensions topics.


Azure Controller: How to ensure client_id and client_secret are stored encrypted

[Build]
docker 2018/10/23
[Expected result]
these should be stored encryptedin the bssapp datastore according to the other controllers
[Observed result]
unencrypted in bss datastore

Those secrets should be declared as password type parameters in the technical service XML. These are string parameters ending with "_PWD".

From what I have checked it appears that _PWD suffix only changes the type of input field in the UI so it is masked and can not be read from the UI. It does not change in any way how the values are stored both in bss and bssapp databases. They are still a plain text values.

these should be stored encrypted in the bssapp datastore according to the other controllers

Actually, the "expected result" is inaccurate because other controllers do not use subscriptions to pass this kind of data. They are stored as controller attributes in different tables.

@fest-floreks
First, you are right that the _PWD suffix is for masking the values on the UI only. However, If you'd dig a bit deeper you would find that the parameter encryption is implemented in the provisioning API in OSCM. Service parameters of password type are stored encrypted. When OSCM creates the instance request it prepares the service parameters with handling encryption.
APP processes the description from the instance request and stores the instance with encrypted parameter.
The service instance parameter are decrypted when creating the provisioning settings which passed to the controller.
I believe the only thing that is missing here is the definition of the parameter type as PWD.
<ParameterDefinition ... id="CLIENT_ID_PWD" valueType="PWD">


Add link to original AP profile to bridge accounts on Bsky

Maybe this is implemented already, in which case it's not working if the bio is so long that it gets cut off.
The bridge may have to truncate the bio itself to make it fit Bsky's constraints, until/unless Bsky raises its display limits for accounts hosted elsewhere.

Yes! Great point. We do this sometimes, in some places, eg see<EMAIL_ADDRESS>on the fediverse, screenshot below, but it's inconsistent. Fortunately, I know why, shouldn't be a difficult fix.

First pass at this is done! Still a bit awkward, too much vertical whitespace, and needs links, but it's a start.

Bluesky profile descriptions don't have facets, so we can't link arbitrary text. I think the best we can do right now is include URLs, and they'll get auto-linked. Sigh. More details: https://github.com/bluesky-social/atproto/discussions/2504

Also the truncation should break at word boundaries. As an example, we cut off a URL in https://bsky.app/profile/did:plc:whco57z2rz6jvi3wv3o56jdi, which is awkward.

OK, I think I'm happy with where this is right now. Examples:
https://bsky.app/profile/snarfed.indieweb.social.ap.brid.gy

[bridged from indieweb.social/@snarfed on the fediverse by fed.brid.gy ]

https://indieweb.social/<EMAIL_ADDRESS>
[bridged from snarfed.bsky.social on Bluesky by Bridgy Fed]

Now to update existing users' profiles. Running this now:
import pages

users = (
  ActivityPub.query(ActivityPub.enabled_protocols == 'atproto',
                    ActivityPub.status == None).fetch()
  + ATProto.query(ATProto.enabled_protocols == 'activitypub',
                  ATProto.status == None).fetch())

logging.getLogger().setLevel(logging.ERROR)

for i, user in enumerate(users):
  print(i, user.key.id(), user.handle)
  pages.update_profile(user, user)

Argh, scratch that, I still need to prevent the "bridged from" snippet from getting truncated.

OK, done with that, restarting the backfill now.

Worked on my profile, thank you!

Done in snarfed/granary@85b9e19b363cd83cc20279593d2fe4ad5b6ac96f. Not going to bother re-backfilling all of those profiles; they'll refresh on their own eventually.


feat: add Google OAuth2 Authentication for user login

This pull request implements Google OAuth2 authentication as a login option. This feature will allow users to log in using their Google accounts, making the authentication process seamless and secure. It enhances user convenience and security, reduces the need for password management, and offers a popular and trusted authentication method.

Description
The changes this makes to the existing code-base is:

Created schemas for google oauth response
Created a configuration using authlib for google oauth
created google_oauth_services module to handle user creation for authenticated users via google oauth
create a route to handle the initial call to authenticate with google
created a callback-route that handles successful or un-successful response from google authentication server
updated main.py to include session management as required for the use of google oauth
updated the requirements.txt with google oauth dependencies/modules
wrote unittests(pytest) to mock the flow of google oauth (includes teardown)
wrote unittests(pytest) to confirm that data are been saved to the database after authentication (includes teardown)

Related Issue
Google OAuth2 Authentication for User Login

Motivation and Context
Google oauth is currently a consistent way users all over different web applications use to access a resource(API or UI) seamlessly. Not having it as a feature to this would make the boilerplate look like it time travelled not into the future, but back into the past. It is now a necessity to have a feature in applications for Oauth to be present. With this feature, a user does not need to go through the hassle of authenticating or accessing a resource by creating new passwords and memorizing it, the user would easily login with an already existing account on google.

How Has This Been Tested?
I Tested the google oauth login route using my browser, I started the application locally, opened the link on my browser, the link redirected me to the login screen of google, I entered my details, it redirected me to the callback route, and my details were saved to the database, and in return I received an access token and a refresh token with user data. The changes  made to the boilerplate did not affect any other part of the code, as it solely depends on just using the create_access_token function already created.
Screenshots (if appropriate - Postman, etc):
Opened http://localhost:7001/api/v1/auth/login/google

Redirected to Google login screen

Selected my account

Gave my permission

Google sent response to my callback route, callback handled and generated tokens while returning user data

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Tasks Completed

[x] Google OAuth2 Login Endpoint: Redirects the user to Google's OAuth2 login page and handles the OAuth2 flow.
[x] Callback Endpoint: Handles the OAuth2 callback, exchanges authorization code for tokens, and fetches user information.
[x] Token Management: Issues JWT access and refresh tokens and stores them in relation to the user.
[x] User Information Update: Fetches and updates user information from Google on re-authentication.
[x] Error Handling: Properly manages errors related to authentication, token exchange, and user information fetching.

Expected Outcome

The user will be able to easily authenticate with their Google account, receive a token and a refresh token, and use the service with the issued tokens. The system will handle user information updates and error scenarios effectively.

Please review the changes and let me know if there are any adjustments or additional features required. Thank you!

@CodewithSegNet
@joboy-dev

Everything looks good. proceed with the changes requested by @sundayMba.

please create a different file for google oauth in the route, seperation of concern is very important. don't reuse auth.py, use a new file for that.

I have gone ahead and created a new file for google_login and done the necessary changes. Please go ahead and review again.
Thank you.

Create a file in routes for social account login and add your code there Call it social_auth.py

I have gone ahead and created a new file for google_login and done the necessary changes. Please go ahead and review again.

Amended merge conflicts.
Apologies for going back and forth with this.
Kindly review again @CodewithSegNet  @SundayMba  @Goketech  @joboy-dev

Thanks @johnson-oragui Great job. I left some comments.

Thank you for the review. I have included your suggested refactoring, updated the tests url endpoints too.
Kindly review again.


Displaying map route suggestions?

How can one display map routes which google suggests for any two points ? Or how to display any already suggested stored in DB. I know this is a stack overflow question but stack overflow's answer denied that such a thing is not possible.

Query the Google API for routes, loop trough the given route parts and create Polyline's for it.
I also do not think this is an issue for 'react-native-maps' as this is just a general question on how to approach something.

also see #778


TODO: mark current doc as obsolete

With the rewrite I expect to be finished in few days, the current docs will become outdated.

Just update it lol


Style tailwindcss setup

Description
setup tailwindcss on the frontend and added the basic styles required in the theme.

Fixes #204

How Has This Been Tested?
On the homepage, the use of tailwind can be seen.
live testing link: link
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no lint warnings

@Dipo-Jaiye  @omzi


Call component instance method in specific component when multiple of the same component are on screen

The code in this section is for calling a method in a razor component. If there are more than one of the same component onscreen, the function is called only on the last one in the DOM.
Is it possible to specify which one to call the method on?
https://docs.microsoft.com/en-us/aspnet/core/blazor/call-dotnet-from-javascript?view=aspnetcore-3.1#component-instance-method-call

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

ID: 7bdccf73-41ed-b996-86c1-d8b7838f8773
Version Independent ID: 32d99e69-dc2d-c452-cfdb-2bf1f1956e16
Content: Call .NET methods from JavaScript functions in ASP.NET Core Blazor
Content Source: aspnetcore/blazor/call-dotnet-from-javascript.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

I thought this was already covered down where the topic recommends .......

When there are several components, each with instance methods to call, use a helper class to invoke the instance methods (as Actions) of each component.

... and the example that follows.

@guardrex  Isn't that for calling the method in multiple components? I want to call one method in one specific component (there are more than one component of this type).

That's not the way that I recall it ... I thought it did what you're asking about.
I'm ⛰⛏ digging out from under three forms validation issues right now ... almost done; but given that it's Friday and I'm out of hours this week, I'll have to take a closer look early next week.

I thought this was already covered down where the topic recommends .......

When there are several components, each with instance methods to call, use a helper class to invoke the instance methods (as Actions) of each component.

... and the example that follows.

Ah, when I read that, I read it as "this is how you call the method on all the components on screen."
Is it saying the same thing as the following?

When several components of the same type are rendered on screen, use a helper class to invoke the instance method (as an Action) on the desired component(s).

I'm not sure ... I'll have to take a closer look next week.
I'm buried ⛰⛏ in code at the moment. :smile: lol
I'll get back to you on this as soon as I can.

I'm back. Yes, I think an update to the sentence would be good. I'll put that in now.


cat_prune_snapshot is not a legal parameter

Specified the module dir as environment variable, created playbook and used ansible-playbook prune_snapshot.yml to run playbook but got following error message:
ERROR: cat_prune_snapshot is not a legal parameter of an Ansible Play

The module was not loading properly, fixed now.


Add ESLint

Linting is the process of checking the source code for Programmatic as well as Stylistic errors.

Adding ESLint will be helpful in identifying some common and uncommon mistakes that are made during coding.

ESLint covers both code quality and coding style issues.

Add ESLint to this project.
Add scripts in package.json i.e. npm run test-lint should run lint tests.
Do not make any changes to other files.

Please refer this.

i will do this

@aleoof Please go ahead.

resolved


Implement CSV downloads for collections

https://github.com/participedia/api/issues/1006

I'm being nosey, and this is probably in progress, but I don't see the Results CSV button on collections pages yet.

@paninee i just left a couple comments. when you have reviewed/updated, please ship and test on staging and then to prod. thanks!


Reduce the impact of block methods on tokio runtime

What type of enhancement is this?
Performance
What does the enhancement do?
We have some scenarios where we need to call an asynchronous method in a synchronous method in tokio runtime.
example: https://github.com/GreptimeTeam/greptimedb/blob/develop/src/catalog/src/remote/manager.rs#L532
At present, our solution is to create a new thread every time a synchronous method is called, and then call block_on on this thread to execute the asynchronous method.
There are two problems:

Every time a synchronous method is called, a thread will be created. It is too expensive.
The execution time of the synchronous method is too long, which may cause the tokio runtime blocking.

There are two ideas:

use tokio::task::block_in_place, But it doesn't work with the current_thread runtime.
use a thread pool, but only problem one is solved, problem 2 is not resolved.

Implementation challenges
No response

I think we can completely resolve this issue by not using DataFusion's catalog list

Looks like there is already an async version of catalog in datafusion
https://github.com/apache/arrow-datafusion/issues/3777
https://github.com/apache/arrow-datafusion/pull/4607
Maybe we need to upgrade datafusion.

Maybe we need to upgrade datafusion.

They are already available in our deps

@killme2008 now datafusion only has async version of getting table. we need other methods to be async too, like iterating tables names.

@killme2008 now datafusion only has async version of getting table. we need other methods to be async too, like iterating tables names.

Got it, i think we can submit an issue to datafusion for it.

Well, seeing the discussions in https://github.com/apache/arrow-datafusion/issues/3777 , I don’t think the async version of catalog list could be easily done, too many breaking changes to APIs including the major one, SessionContext.
I think the best strategy is to get rid of the table management of datafusion. We can just use datafusion as a pure query engine.
Btw, datafusion itself also realize this issue, see https://github.com/apache/arrow-datafusion/issues/5291

2023年4月6日 11:34，dennis zhuang @.***> 写道：
@killme2008 https://github.com/killme2008 now datafusion only has async version of getting table. we need other methods to be async too, like iterating tables names.
Got it, i think we can submit an issue to datafusion for it.
—
Reply to this email directly, view it on GitHub https://github.com/GreptimeTeam/greptimedb/issues/1335#issuecomment-1498444710, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHR2DYCOE63NLHHHWVKVYTW7Y2UHANCNFSM6AAAAAAWUZL7AU.
You are receiving this because you commented.

We could cache the catalog data and refresh them in the async context. I remember that @v0y4g3r has some ideas on it.

Ballista shares the same idea, it has a “refresh” method that update all catalogs cached in local. However, the “refresh” is an all-to-all comparison, not efficient. If we were to implement the same refreshment, I think we have to do the same: fetching all catalogs from remote and then compare(or replace) with local cache. Not good.

2023年4月6日 12:13，Yingwen @.***> 写道：
We could cache the catalog data and refresh them in the async context. I remember that @v0y4g3r https://github.com/v0y4g3r has some ideas on it.
—
Reply to this email directly, view it on GitHub https://github.com/GreptimeTeam/greptimedb/issues/1335#issuecomment-1498466500, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHR2D6GIMCTC4SF5GGO7YLW7Y7FJANCNFSM6AAAAAAWUZL7AU.
You are receiving this because you commented.

Anyway, a cache is necessary if we don't want to issue a remote call to the meta each time we access the remote catalog. But I think we don't need to do an all-to-all comparison, we only need to replace the local cache with the remote data.
We can use different cache policies for catalogs, schemas, tables, and tables' metadata. e.g.

For catalogs, schemas, and tables, we update them periodically
For metadata of tables, we can use a fixed capacity cache (with TTL?) and update the individual table entry on a cache miss

metasrv has push capability, which can achieve incremental updates of cache based on push.


CRI: Support exposing ports.

cc @euank
Would modify the upstream to remove unnecessary Name field, and the skip when host port == 0.

Since the upstream changes are in, this can be rebased and a couple TODOs removed. Looks good other than that

Updated. @euank

Updated the PR. PTAL @euank

LGTM!
You have to actually do some clicking for the cla stuff (here), but I know your company signed it so we'll go with human verified :)


c_passwd struct layout

Hey while I was trying to add home directory and shell support to the library I noticed the struct layout of c_passwd did not match the one defined on my system (Arch Linux).
I don't know whether that layout is actually different on your machine or if it was just an oversight since you did not use the values yet. Anyways I added home_dir and shell to the User struct on my fork and fixed the struct layout if you want to take a look.

Fixed in #4!