cargo install --dry-run

--dry-run is an important feature for commands with side effects to help

Give users confidence in what the commands will do (e.g. what binaries will be installed)
Offer a tool for users and developers to debug subsets of the functionality
Allow scripts to check the status of the system

This is a feature to pursue. We can make it as an unstable feature behind -Zunstale-options. However, it is not really in a high priority, so label it as S-needs-mentor for now.

Hey @PaulDance. Thanks for being interested in this.
Thinking backwards from what users want, here is my idea that the initial version of --dry-run could have:

How: Is it an update (replace), a fresh install, or no-op?
What: which binary from which source is going to be installed
Where: to where the binary will be installed

There might be somethings hard to do in the first PR, like programming interface for scripting, or checking if yanked versions will block the installation. That's fine, since we plan to put it behind -Zunstable-options (the process of adding it can be found here). It is benefical for maintainers to review the implementation, if we can break down a feature a into several small PRs. It also increases the chance to merge them sooner.
For the implementation, it might not be as easy as it looks like at first glance. It depends on how acurate we want for cargo install --dry-run. The best option we have is collecting the info after Cargo computing all the necessary build tasks.

In cargo install, the build task computation starts from here. Down from there, the actual compilation starts from this line. After that Cargo collects the compilation results into the Compilation struct. These steps are all in one function Context::compile(). If you have an idea of refactoring, Don't hesitate. But beware, the Context::compile() function is already complicated. We should keep it simple as possible as we can.
You might want to take a look at build-plans and unit graph features. They might be good references for this feature, as they do similar stuff: computing build tasks without excuting them.
We care only BuildContext::roots units, as they are bins/libs requested from the command line to install.

If you have any question, find us on Zulip t-cargo or in the office hours. Cheers!

@weihanglo I think I'm missing where you are going with talking about Context::compile. Could you clarify the connection?

My personal use case would be to be able to detect whether a package needs:

For querying the state (needs install, needs update, updated), we have the data (crates2.json) but we a cargo install --dry-run wouldn't have the programmatic API to access that information except through whatever errors via combinations of existing flags we already provide.  Waiting on #4379 for more programmatic output might take a while.  I wonder if the better route would be to tie these questions into more general version management in #9527

@weihanglo I think I'm missing where you are going with talking about Context::compile. Could you clarify the connection?

To learn where Cargo will install the binaries, we need output infos that are computed in Context::compile.

claim first, question it later~ @rustbot claim

As long as it ends up being implemented with things I care for or that I could add easily, I don't mind, please go ahead. I simply didn't find the time for it yet.

hi~, If there are any good implementations and plans, I'd love to see them happen.

but a cargo install --dry-run wouldn't have the programmatic API to access that information except through whatever errors via combinations of existing flags we already provide.

Wouldn't the standard error stream's content be enough to achieve this for now, even if there wouldn't be any stability guarantee?

Waiting on #4379 for more programmatic output might take a while. I wonder if the better route would be to tie these questions into more general version management in #9527.

These would be better indeed, but as you said, they might take a while. I'm therefore looking for some middle ground that could be easier and quicker to integrate in the meantime.

@rustbot claim

Was going to comment on #13598 but as this is on more fundamental requirements, posting it here.
We have a couple different points where we can stub out behavior for dry-run

During compilation like #13598
During install

Install is more complete at the cost of more time to perform (and less invasive).  The challenge is each user might come to dry-run with different needs.  In terms of precedence, we do the full work in cargo publish --dry-run.

@PaulDance are you still working on this?

Not at the moment, no, sorry. You can probably unassign me from here and close the PR since a full rewrite is required anyway.

@rustbot claim

From the few simple tests I conducted, things seem to work fine 🙂

In the case where a package needs to actually be installed or updated, the crates are in fact really downloaded and not just printed as such, right? If so, would it be possible to make it so that the same lines would be printed without actually downloading the crates or would it be too complicated to achieve in this iteration? Just looking to add a little speed without sacrificing end result information.

We need to download to discover what bins are present.
A general question though is what level of fidelity/reporting do people want from this? For example, yank or msrv messages will only show with a compilation.

We need to download to discover what bins are present.

For the top crate or for all? I would have guessed that after downloading the requested crate and locking the dependencies, downloading the dependencies would be optional.

True but that still runs into the second half of my comment.

My personal use case would be to determine whether something needs to be done or not. What exactly needs to happen is not of importance for me, in this first iteration at least. Fidelity is not that important for me in this regard and I would therefore be fine with Cargo only printing that it downloaded some crates while it actually did not, which should be compatible with the notion of dry run. This way, the level of reported information should stay the same while it just goes a little bit quicker.
I'll let others comment on what exactly they would need, though. For example, what happens after the downloads is not simulated at all. That part may be easier to achieve once the build plan feature lands, if I remember correctly at least.

A middle-ground solution could be that we switch cargo install to do a cargo check --profile dev instead of cargo build --profile release.  Dry-run mode will be faster while we still get all of the error reporting.  Care will need to be taken in case we rely on the full results of cargo build to male sure everything still works.


fix: make cargo happy

cc @the-emerald Could you help review this PR?
Fixes: #1

LGTM, it compiles, passes tests, and the benchmark figures on my computer look similar to on in the readme - so I don't think there's any preformance regression!

LGTM, it compiles, passes tests, and the benchmark figures on my computer look similar to on in the readme - so I don't think there's any preformance regression!

thanks


How to add ENT labels to ENE_ONTONOTES_MAPPING

I would like to add some new labels to ginza, like ‘speech’ and ‘music’ and to classify these new entities. I think I need to add these new labels to this ‘ene_ontonotes_mapper.py’. But I am not sure how to retrain this ginza model to predict these labels?
https://github.com/megagonlabs/ginza/blob/develop/ginza/ene_ontonotes_mapper.py
https://github.com/megagonlabs/UD_Japanese-GSD/blob/master/ene_mapping.xlsx

@YiAthena Please use this issue.

Hi @hiroshi-matsuda-rit , thanks for opening the issue. I would like to add some new labels to ginza, like ‘speech’ and ‘music’ and to classify these new entities.  I think I need to add these new labels to this ‘ene_ontonotes_mapper.py’. But I am not sure how to retrain this ginza model to predict these labels?

Thank you for asking.
I'd like to describe the basics of GiNZA's NER first.
The NER model of GiNZA uses Sekine's Extended Named Entity (ENE) label system in the pipeline of spaCy.
The ENE label set is defined in https://github.com/megagonlabs/ginza/blob/develop/ginza/ene_ontonotes_mapper.py .
Also, you can get spaCy's OntoNotes-based NE labels via spacy.ene_type_(Token) or spacy.ene_label_ontonotes(Token)
The mapping from ENE to OntoNotes is defined in the document below.
https://github.com/megagonlabs/UD_Japanese-GSD/blob/master/ene_mapping.xlsx
Next, I'd describe how to extend the NE labels on GiNZA.
We can use Language.update() to the pipeline of GiNZA as well as spaCy.
https://spacy.io/usage/training#example-train-ner

@YiAthena I revised above comment. Please read it again.

@YiAthena I'd like to close this issue. Please feel free to reopen this issue or open new related issues.

Hi @hiroshi-matsuda-rit sorry for my late reply. I successfully added new NE to the Ginza model. Thank you very much for your kind help!
I have another small question. Sometimes there is a number attached to the printed entity label. For example:
print("Entities", [(ent.text. ent.label_)])
Entities[('13時', 'TIME40')]
I don't know what does '40' mean. I understand this might be a space's question. I searched but didn't  find the answer.
I would be appreciate if I could get any information.


Update doc

This PR updates a sample in doc to align with the latest version.

Thank you for the contribution, @izeye !
Merging...
Looking forward for more!


安全输出

希望增加安全输出支持 如beetl的安全输出一样 支持  a.b.c.d!def 任何一个环节为空 输出空串 或者 指定默认值

        你们的邮件，可不可以不发给我

                            张张希明

<EMAIL_ADDRESS>

    签名由 网易邮箱大师 定制

        在2018年12月28日 10:25，Ju.chao 写道： 通需要这个需求

—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/aui/art-template","title":"aui/art-template","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/aui/art-template"}},"updates":{"snippets":[{"icon":"PERSON","message":"@jcrom in #527: 通需要这个需求\r\n"}],"action":{"name":"View Issue","url":"https://github.com/aui/art-template/issues/527#issuecomment-450274687"}}}
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/aui/art-template/issues/527#issuecomment-450274687",
"url": "https://github.com/aui/art-template/issues/527#issuecomment-450274687",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]


unexpected heartbeat behavior

Given a trivial program like https://gist.github.com/liamstask/e76f07ed86d4345ac6ac (abbreviated not to include the headers, but let me know and I can send complete source), I see the following output:
missed some seqs: 99 : 2421, interval: 3119
missed some seqs: 2519 : 4849, interval: 3002
missed some seqs: 4947 : 7285, interval: 3008
missed some seqs: 7383 : 9602, interval: 3002
missed some seqs: 9700 : 11918, interval: 3001
missed some seqs: 12016 : 14247, interval: 2999
missed some seqs: 14345 : 16578, interval: 3001
missed some seqs: 16676 : 18924, interval: 3005
missed some seqs: 19022 : 21301, interval: 3000
missed some seqs: 21399 : 23649, interval: 3003
missed some seqs: 23747 : 26057, interval: 2998
missed some seqs: 26155 : 28518, interval: 3004
missed some seqs: 28616 : 30892, interval: 3003
missed some seqs: 30990 : 33252, interval: 2998
missed some seqs: 33350 : 35624, interval: 3006
missed some seqs: 35722 : 37962, interval: 2999
missed some seqs: 38060 : 40310, interval: 3004
missed some seqs: 40408 : 42692, interval: 2998
missed some seqs: 42790 : 45107, interval: 3008
missed some seqs: 45205 : 47434, interval: 3000
missed some seqs: 47532 : 49874, interval: 2999
missed some seqs: 49972 : 52303, interval: 3000
missed some seqs: 52401 : 54794, interval: 2999
missed some seqs: 54892 : 57190, interval: 3001
missed some seqs: 57288 : 59516, interval: 3003
missed some seqs: 59614 : 61847, interval: 3006
missed some seqs: 61945 : 64204, interval: 3002
missed some seqs: 64302 : 66554, interval: 3000
missed some seqs: 66652 : 68938, interval: 3004
missed some seqs: 69036 : 71381, interval: 3002
missed some seqs: 71479 : 73775, interval: 2996
missed some seqs: 73873 : 76161, interval: 3002

The interval appears to correspond with the heartbeat period. i.e., if I adjust the PublisherAttributes for the talker to include pa.times.heartbeatPeriod.seconds = 5; instead of the default 3 seconds, I see the reported interval change to approximately 5 seconds.
I would not expect the heartbeat to affect the delivery of data packets in this way. Is this a bug, or do I have something misconfigured?

Hi Liam,
I've tested your example. What you are seeing is a normal behavior. I will try to explain it.
Data are not been lost, but they are not been published. If you capture the returned value from write function, then you will see a lot of writings are failing. This is because writer history is full. Data is removed from the writer history when it is acknowledged by all readers. This acknowledge occurs when the writer sends a HEARTBEAT to notify what data it sent, and the reader respond with an ACK to notify what data it has.
In your example you are sending data very fast. 1000 samples per second. The default heartbeat period is 3 seconds. In three seconds the writer is not sending the next heartbeat, then the readers don't acknowledge. As the writer history is 100, from 3000 samples written in 3 seconds, only 100 are really sent. There are two solutions:

Increase the writer history:

/* Talker::init() */
...
pa.topic.historyQos.kind = KEEP_ALL_HISTORY_QOS;
pa.topic.historyQos.depth = 5000;
pa.topic.resourceLimitsQos.max_samples = 5000;
pa.topic.resourceLimitsQos.allocated_samples = 5000;
...

Decrease the heartbeat period in the writer and the heartbeat response period in the reader:

/* Talker::init() */
...
pa.topic.resourceLimitsQos.allocated_samples = 100;
// 10 milliseconds period
pa.times.heartbeatPeriod.seconds = 0;
pa.times.heartbeatPeriod.fraction = 42949673;
pa.qos.m_reliability.kind = RELIABLE_RELIABILITY_QOS;
...

/* Listener::init() */
...
sa.qos.m_reliability.kind = RELIABLE_RELIABILITY_QOS;
// 10 milliseconds period
sa.times.heartbeatResponseDelay.seconds = 0;
sa.times.heartbeatResponseDelay.fraction = 42949673;
...

@richiprosima thank you for the quick response, that makes sense.
Does this mean that it's possible for subscribers with very long heartbeat intervals to prevent delivery of data to other subscribers on the same topic, by forcing the publisher's history to fill up?

Hi Liam,
The heartbeat period is a parameter on the publishing side, therefore is common for all the subscribers. You are right, a very long heartbeat period could fill your history if you are writing too fast.
The solution is either increase your history buffer, either decrease the heartbeat period, or a combination of both. It depends on your use case.

great - i had not seen that the default heartbeatResponseDelay is ~116ms, which I imagine should usually be OK without additional configuration. thanks - will close this out.


Cordova native speech to text functionality

Hey Edwin!
I was one of the students who attended the Meteor 2015 hackathon where you presented Dispatch (I was from team pluto, if that still means anything).
If I remember correctly, you mentioned during your presentation that you were able to somehow access the native speech to text functionality on an iOS device (if I'm not mistaken you were using an iPad during the presentation). I'm curious to know, how were you able to achieve this? From what I've read, Cordova isn't able to access siri on iOS, and as such I have been relying on an external api (e.g google speech) to carry out speech recognition.
I've been trying to get rid of the google speech dependency but have yet to find a good alternative. Native speech recognition sounds promising, but I took a look through your code and can't seem to locate where you implemented the feature. Do you think you could give me some pointers regarding this? Any help would be greatly appreciated.
Thanks!

It's actually very simple, and I'm usually surprised when people try anything else.
Simply have a text input, and instead of typing text, use voice dictation. That way, you can type text and/or use voice, and the naive iOS dictation is by far the best anyway :)

Oh I see. That's a really interesting approach, although now I can see why I didn't look into that option before. For one, I never knew about this feature because I just realized I had dictation disabled in settings (I must have disallowed microphone access during setup or something). Also, it seems like this method requires the text input to be visible for the user to be able to access dictation. With Pluto being an app that requires dictation without any option for typing, the text input field is not so ideal. I suppose I could mask the text input and somehow delegate clicks to the dictation key, but even that seems to be troublesome since the dictation key isn't standard as far as I know. All said, I do agree that it works really well for apps like Dispatch where dictation is just an opt-in feature. I'll try to see if I can find a way to use this as a workaround to google speech. Thanks for the help!


tests/network-ovn: Add MicroOVN as a backend for network-ovn test suite

related to https://github.com/canonical/lxd/pull/14327

@simondeziel @boltmark some tests related to network forward are failing. Is it related to this recent change: https://github.com/canonical/lxd-ci/pull/333 ?

@gabrielmougard I did a retry and now it fails here https://github.com/canonical/lxd-ci/actions/runs/11599574607/job/32486594868?pr=330#step:10:4509

Closing as #368 does essentially the same except that we test only the latest/edge channel of MicroOVN.


book: Add nix to linux installation guide

Adds instructions to start a new shell with gtk4 and gcc using Nix with nix-command enabled

Not sure if we should include experimental commands. Maybe use the current way of installing nix packages?

nix-command (and flakes) isn't really in beta, it's been around for quite some time now. At this point, there's just two different ways of using nix, via the old CLI, and via the new one. If you wish, I can add instructions for the old CLI too.

As long as you have to activate a experimental flag for the new one I will only accept instructions for the old one.

@Hofer-Julian Hey, this slipped out of my mind - I just realised that libraries won't be available when installed using a shell, regardless of whether it uses the old or new syntax. The dependencies need to be added to a derivation - I've updated the instructions accordingly


after using mmap, there's a small chance that the file read operation will get stuck for nearly 2 minutes

Alluxio Version:
2.9.3
Describe the bug
it's not really a bug, just asking for advice;
we use alluxio to accelerate data set access in AI training,  training pod read file via alluxio-fuse (mmap file and read at not fixed position); however, during the training, it was found that the GPU usage sometimes dropped to 0;
according to the log position, reading data was stuck (nearly 2 minutes); because mmap is used, strace cannot see the read syscall, but there are no other syscalls during the time it is stuck (other interference factors are eliminated);
meanwhile, we enabled the debug log for FUSE and found that during the period when it was stuck, it did not receive any requests. The time taken between the entry and exit of FUSE requests was very short (at the millisecond level) both before and after it got stuck;
furthermore, we used strace to trace the read and write behavior of the FUSE process on /dev/fuse.
strace -f -tt  -q  -T -P /dev/fuse  -x -y -p ${fuse-pid}

it appears that there were no requests with particularly high latency;
under such circumstances, could it be that the kernel is causing this, either by not dispatching requests to FUSE quickly enough, or by not returning the responses to the upper-level application promptly enough?

@LuQQiu @jiacheliu3 Do you have any idea on this issue?

With kernel -> JNI C++ -> Java
C++ attaching thread to Java, matching c++ object to java object, these matching need to done in very case sensitive way.
not quite sure whether mmap break some of the previous assumptions
e.g. the data transfer way, object management way or threading way


Remove amqplib from requirements.

Coverage remained the same at 90.431% when pulling 4602ae03421ff7ab5f30af702df8869b86a1a52b on akatsoulas:remove-amqp into 012132a0ae5b0ca87b1f9320bb58d12e52b54bff on mozilla:master.


Add percent_of_expected_deaths signal and dry-run mode to NCHS mortality data pipeline

Add percent_of_expected_deaths signal

values are around 1
no metric level 2 (num or prop) for this signal, just report the raw values

Add a dry-run mode, so that the test cases are independent from the token

I noticed that they actually update the dataset every weekday. (The column data_as_of is always the date of today) Maybe we want to run the pipeline everyday in order to get the backfill info.(The pipeline will run for only less than 10 seconds every time)

Checking code coverage in the tests:
----------- coverage: platform linux, python 3.8.5-final-0 -----------
Name                                                                                Stmts   Miss  Cover   Missing
------------------------------------------------------------------------------------------------------------------------
/home/dskel/Code/covidcast-indicators-1/nchs_mortality/delphi_nchs_mortality/pull.py          38      9    76%   46-48, 54-55, 76, 81, 90-91
/home/dskel/Code/covidcast-indicators-1/nchs_mortality/delphi_nchs_mortality/run.py           72      6    92%   37-39, 123, 141-142, 146
------------------------------------------------------------------------------------------------------------------------
TOTAL                                                                                127     16    87%

There are a few ValueExceptions in pull.py that haven't been tested: 54-55, 76, 81, 90-91. It may be worth it to add a simple test case for each of those.
The run.py lines are mostly archiver cases, which I think we can assume to have been tested as part of the archiver util.

Not part of this set of commits, so maybe this belongs to another issue, but I'm wondering if the lines 63-67 in pull.py are necessary. Doesn't groupby automatically group the unique values and make a multi-index?
    state_list = df["state"].unique()
    date_list = df["timestamp"].unique()
    index_df = pd.MultiIndex.from_product(
        [state_list, date_list], names=['state', 'timestamp']
    )
    df = df.groupby(
            ["state", "timestamp"]).sum().reindex(index_df).reset_index()

Not part of this set of commits, so maybe this belongs to another issue, but I'm wondering if the lines 63-67 in pull.py are necessary. Doesn't groupby automatically group the unique values and make a multi-index?
    state_list = df["state"].unique()
    date_list = df["timestamp"].unique()
    index_df = pd.MultiIndex.from_product(
        [state_list, date_list], names=['state', 'timestamp']
    )
    df = df.groupby(
            ["state", "timestamp"]).sum().reindex(index_df).reset_index()

This is added in case the values for some states are missing for certain dates.

This is added in case the values for some states are missing for certain dates.

I see, so this is to make sure that every state has the same number of reported dates?

This is added in case the values for some states are missing for certain dates.

I see, so this is to make sure that every state has the same number of reported dates?

Yes.

Should FIPS here be replaced by state?
    # each FIPS has same number of rows
    if (len(days_by_states) > 1) or (days_by_states[0] != len(unique_days)):
        raise ValueError("Differing number of days by fips")

@dshemetov Agree on documentation -- @jingjtang can you add a section to DETAILS.md describing the details of:

how often we check for updates from NCHS
how those changes are tracked
how often we upload to the API
how that changeset is generated

@jingjtang See my first comment for code coverage concerns. I think we should try to make sure we have tests that cover all the code lines, so we don't have surprises down the road. In particular:
run.py

lines 37-39
pull.py
lines 76, 81, 90-91

If you're absolutely sure those work, I can relent on this issue. Just trying to enforce some testing consistency.

@jingjtang See my first comment for code coverage concerns. I think we should try to make sure we have tests that cover all the code lines, so we don't have surprises down the road. In particular:

run.py

lines 37-39

pull.py

lines 76, 81, 90-91

If you're absolutely sure those work, I can relent on this issue. Just trying to enforce some testing consistency.

Added a new test case for missing cols. As for others:

run.py 37-39 is added for the automation usage, will check with @korlaxxalrok later
pull.py They are just final sanity checks for the previous code.

LGTM!


Separate URL generator and URL matcher

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
✔

Tests pass?
✔

You have to change yii-demo config after applying this PR.
Old config
return [
    //...
   RouterInterface::class => new AppRouterFactory(),
   UrlMatcherInterface::class => Reference::to(RouterInterface::class),
   UrlGeneratorInterface::class => Reference::to(RouterInterface::class),
]

New config
use Yiisoft\Router\RouteCollectorInterface;
use Yiisoft\Router\GroupFactory;
use Yiisoft\Router\FastRoute\UrlGenerator;

return [
    //...
    RouteCollectorInterface::class => new GroupFactory(),
    UrlMatcherInterface::class => new AppRouterFactory(),
    UrlGeneratorInterface::class => UrlGenerator::class,
]

New AppRouterFactory
class AppRouterFactory
{
    public function __invoke(ContainerInterface $container)
    {
        $routes = [
            Route::get('/', [SiteController::class, 'index'])
                ->name('site/index'),
            Route::methods([Method::GET, Method::POST], '/contact', [ContactController::class, 'contact'])
                ->name('site/contact'),
            Route::get('/test/{id:\w+}', [SiteController::class, 'testParameter'])
                ->name('site/test'),
            Route::methods([Method::GET, Method::POST], '/login', [AuthController::class, 'login'])
                ->name('site/login'),
            Route::get('/logout', [AuthController::class, 'logout'])
                ->name('site/logout'),
        ];

        $collector =  $container->get(RouteCollectorInterface::class);
        $collector->addGroup(Group::create(null, $routes));

        return new UrlMatcher(new RouteCollection($collector));
    }
}

The config examples in the first post were prepared to update this PR.

Overall 👍

Thanks!


Is there a missing section between the end of installation and getting started?

Describe the bug
Docs go from installation to "visit spotify.your.doman/" however this fails with a 404.
The docs dont mention set up of SSL anywhere and even when going insecure it's still a 404
To Reproduce
Steps to reproduce the behavior:

Install
Try to visit https://spotify.your.domain
SSL warning page
Click through "unsafe" and you get a 404

Expected behavior
I expected the set up page to load
Screenshots

Desktop (please complete the following information):

OS: Win 10
Browser Chrome
Version latest

Traefik takes care of all SSL automatically through LetsEncrypt. Can you post the output of docker-compose logs traefik from the root directory?

For the sake of internal testing do we need the SSL for this to work? I am otherwise getting the same 404 page not found error

For local testing, use the domain docker.localhost (should be in the README). Once the station is deployed on a real domain, Traefik will take care of the SSL certificates.
In Chrome, you can bypass all certificate warnings by setting this flag to enabled: chrome://flags/#allow-insecure-localhost

Closing as no reply from OP


Feature: Automatic case conversion of custom SQL types

It is customary in postgres to name types using snake-case, eg. my_custom_type. The default diesel print-schema behaviour is to map this to My_custom_type which doesn't follow the Rust naming convention for types.
This can be solved using the patch feature, but it would be more convenient if print_schema could be configured to perform automatic case conversion, similar to serde's rename_all attribute.

Duplicate of https://github.com/diesel-rs/diesel/issues/2012


Improve "not currently supported" part of README.md

Following Issue #136 , I just propose a quick README update to make it more explicit that unions can't be shared across services + a link to the FAQ to provide more details.

Good idea, thanks @pasdeloup. Just to be exhaustive, could you please add there's also no support for shared scalars and enums? There is discussion around this in https://github.com/movio/bramble/issues/10.

Codecov Report

Merging #137 (f54d5f0) into main (70a8e42) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #137      +/-   ##
==========================================
+ Coverage   69.58%   69.61%   +0.03%
==========================================
  Files          24       24
  Lines        2630     2630
==========================================
+ Hits         1830     1831       +1
+ Misses        669      668       -1
  Partials      131      131

Impacted Files
Coverage Δ

auth.go
87.42% <0.00%> (+0.62%)
: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 70a8e42...f54d5f0. Read the comment docs.

Thanks @pasdeloup


Starter template project with raylib

Good day! Thank you for your work!
It will be great to have starter (game) template project with raylib.
Also are you going to publish it to https://packages.msys2.org?

Hello, thank you for your interest in this project! To answer to your suggestions:

Yes, I'm planning to create a starter template for raylib and ferox when the v1.0.0 release is ready. This means I still have bugs to fix and features to implement.

I haven't thought about it yet, but I think it would be great for this project to be published to the MSYS package list when we get a stable release.


failed to start istio-webhook

knative-operator version sha256@2a4add19e8ba5f59e6bb2754e828bed4eb988ad516ea118adf401a15624f22cc
knative-serving cr
  name: knative-serving
  namespace: knative-serving
  resourceVersion: '13680984'
  uid: 23324a02-950c-49d5-b49e-a337d3eccf3d
  selfLink: >-
    /apis/operator.knative.dev/v1alpha1/namespaces/knative-serving/knativeservings/knative-serving
spec:
  registry:
    override:
      activator: >-
        knative/activator:e93d0d34250c312fd4b856f92ab682f95e0730c70683c8308c12006fca776ae9
      autoscaler: >-
        knative/autoscaler:d1e385623fe668b0432a6bd1fbdfe5242ec5f637e94b253b73a98e4297278d54
      autoscaler-hpa: >-
      knative/autoscaler-hpa:805bbe9dcfefa942505625b3e0638bfe4275ff13e1f5858ac7de995ff6e0a1c6
      controller: >-
      knative/controller:b049234187c3a8035a6196344a2759244dc421822ac39738113e3aedf3eb8374
      istio-webhook: >-
      knative/net-istio-webhook:203acf3ac797f1e66a6ea3aa02a7060d199af521d7fbc5633ef79a05a4aec8fa
      networking-istio: >-
      knative/net-istio-controller:5555b83528d9f694268c521c78caae0a9c31c7e1c98795d854f6fe990d561312
      webhook: >-
      knative/webhook:fdf57643768d1b4337dbb347dade96cbdb2cdca74e564909f73895bf377fbadf

log of istio webhook pod
panic: failed to convert the environment variable "WEBHOOK_PORT" : strconv.Atoi: parsing "tcp://<IP_ADDRESS>:9090": invalid syntax

goroutine 1 [running]:
knative.dev/pkg/webhook.PortFromEnv(0x20fb, 0xd)
knative.dev/pkg@v0.0.0-20210215165523-84c98f3c3e7a/webhook/env.go:37 +0x1e8
main.main()
knative.dev/serving/cmd/webhook/main.go:158 +0xab

This is an interesting issue.
What is the value for WEBHOOK_PORT, that you set for the deployment istio-webhook?
tcp://<IP_ADDRESS>:9090"? If you change the default value for WEBHOOK_PORT, plz use an integer as valid port number.

This issue happens as net-istio's webhook and serving's webhook have same container name webhook. Please configure the registry override with net-istio/webhook and webhook/webhook like this:
spec:
  registry:
    override:
      webhook/webhook: >-
      knative/webhook:fdf57643768d1b4337dbb347dade96cbdb2cdca74e564909f73895bf377fbadf
      net-istio/webhook: >-
      knative/net-istio:somethingsomething-hash

/close
I think this can be closed. Please feel free to re-open it if anyone is still getting the error.


AttributeError: On Streamlit

AttributeError: This app has encountered an error. The original error message is redacted to prevent data leaks. Full error details have been recorded in the logs (if you're on Streamlit Cloud, click on 'Manage app' in the lower right of your app).

Traceback:
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/scriptrunner/script_runner.py", line 443, in _run_script
exec(code, module.dict)
File "/app/yolov5-streamlit/main.py", line 105, in
detect(opt)
File "/app/yolov5-streamlit/detect.py", line 77, in detect
pred = model(img, augment=opt.augment)[0]
File "/home/appuser/venv/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/app/yolov5-streamlit/models/yolo.py", line 123, in forward
return self.forward_once(x, profile)  # single-scale inference, train
File "/app/yolov5-streamlit/models/yolo.py", line 139, in forward_once
x = m(x)  # run
File "/home/appuser/venv/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/home/appuser/venv/lib/python3.7/site-packages/torch/nn/modules/upsampling.py", line 154, in forward
recompute_scale_factor=self.recompute_scale_factor)
File "/home/appuser/venv/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1186, in getattr
type(self).name, name))

Update requirements and now it works.

Thank you


Improve test coverage over 78%

The overall test coverage of the project is not high and needs to be increased to 78%

The current code basically covers testing, and the remaining parts do not need to be covered or need to be optimized.
So it is believed that the goal has been achieved and the issue is about to be closed.


Document how java.util.concurrent.ForkJoinPool.common.* system properties should be set for Druid nodes

See the class-level Javadoc for ForkJoinPool:

java.util.concurrent.ForkJoinPool.common.parallelism: I think it should be N_CPU / 2 on historical and broker nodes and realtime peons (note that the default is N_CPU) to leave more CPU resources to query-processing threads, and N_CPU - 1 (or - 2?) on other types of Druid processes (Coordinator, MiddleManager, Overlord, Router).
java.util.concurrent.ForkJoinPool.common.exceptionHandler - probably we should create a Druid-specific exception handler that does the right thing in terms of logging, alerting, etc (or such ExceptionHandler already exists in the codebase?) but we can't configure it programmatically from inside a Druid process, it must be configured via the system property before the Druid process has started.

Related to #7143.
FYI @gianm @jihoonson @drcrallen

IMHO this shouldn't be a fork join pool specific thing, but part of a larger "here are your CPU thread pools" kind of documentation that includes jetty pools, http client pools, etc.
Processing and ForkJoinPool.common sounds like a great start for such a doc


Settings name update

If you haven't already, please read through our contributing guidelines before opening your PR
What is the purpose of this PR?
Closes #712 and #713.
FOV_ID = 'SampleID'  ->  FOV_ID = 'fov'
CELL_TYPE = 'cell_type'  ->  CELL_TYPE = 'cell_meta_cluster'
CLUSTER_ID = cell_meta_cluster  ->  CELL_TYPE_NUM = 'cell_num'
KMEANS_CLUSTER = ' cell_meta_cluster_rename'  ->  KMEANS_CLUSTER = 'kmeans_neighborhood'
How did you implement your changes
Changes the names to be more clear, and also removes or adjusts the outdated cell table columns.
Fixed the spatial LDA pre-processing notebook, which was incorrectly using KMEANS_CLUSTER instead of CELL_TYPE. Individual functions now generate the CELL_NUM column, rather than requiring it in the cell table; I was able to completely remove the need for this column in the LDA code, but spatial enrichment still uses it.
Note: After removing the integer cell cluster id, the LDA notebooks now show the cluster names in the visualizations rather than an integer for each cluster.

Remaining issues
spatial notebooks all run without error, but need to double check the results and logic

Running the kmeans and spatial enrichment notebooks gives essentially the same output as before.
The LDA notebooks have very different results now since it was using the wrong cell table column before, but it all seems to be running without issue now.
I also updated the LDA preprocessing notebook cell showing the settings.BASE_COLS output to have the new names.

Does the cell table need to be recreated to be compatible for any of the settings name changes?

@camisowers Does the cell table need to be recreated to be compatible for any of the settings name changes?

Nope! The settings changes should now reflect the current cell table columns.

Looks good to me. Just one small comment about the spatial enrichment notebook that is a super easy fix.


chore(docs): run ci test even if updating document

Codecov Report

Merging #1969 (206f6af) into master (8dd10a7) will increase coverage by 0.02%.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##           master    #1969      +/-   ##
==========================================
+ Coverage   45.25%   45.28%   +0.02%
==========================================
  Files         472      472
  Lines       84824    84824
==========================================
+ Hits        38385    38410      +25
+ Misses      43393    43366      -27
- Partials     3046     3048       +2

see 11 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


improvement Avoid merging blocks more than once on the build side

Proposed changes
Merging the input block into the build block each time leads to memory usage that is 2 times higher than necessary.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


forcing the hexchat-common version for installs

hexchat installs broken in repo reporting wrong version . set hexchat-common to proper version

This will probably break in a week or two..


Conflict in dependencies nova-resource-cards ^0.1 (required) vs. ^1.0 (published on GitHub)

Please update composer.json, because dependencies are not met.
Problem 1
    - Root composer.json requires formfeed-uk/nova-breadcrumbs ^0.1.3 -> satisfiable by formfeed-uk/nova-breadcrumbs[0.1.3].
    - formfeed-uk/nova-breadcrumbs 0.1.3 requires formfeed-uk/nova-resource-cards ^0.1 -> found formfeed-uk/nova-resource-cards[0.1.0, 0.1.1] but it conflicts with your root composer.json require (^1.0).

On GitHub nova-resource-cards is in 1.0 version :-)

Thanks, resolved.


Use mkimg for rawdisk and zrawdisk to create valid partition tables

rawdisk and zrawdisk are meant to be full disk images, not just the contents of a partition.
booting ZFS from MBR sucks, use GPT.

It seems maybe these two types were not intended to have partition tables.

I misunderstood the point of 'rawdisk' mode. I'll propose a different change.


BROKERS: Select All Languages

@hassanhabib I was doing this task. Could you please assign this to me?

Neither I could refer you @hassanhabib  as reviewer, nor I could link this issue to the PR. Looking forward for your precious feedback...

I think we can close this issue @hassanhabib


afterPrint() is not getting called

Thank you so much for this plugin. It saved lot of time for pinning header.
One issue I saw is that I tried to print table in Chrome, "beforePrint" event called and once I closed the print dialog, afterPrint event is not getting called.  and Lost the functionality of the header.
https://github.com/mkoryak/floatThead/blob/master/dist/jquery.floatThead.js#L889
After more debugging, found the issue that isPrintEvent is undefined and below lines of code setting "empty" function to before and after print.
https://github.com/mkoryak/floatThead/blob/master/dist/jquery.floatThead.js#L993-L996

Below line of code is calling destory on table and passing [true]
https://github.com/mkoryak/floatThead/blob/master/dist/jquery.floatThead.js#L879

and destroy is below line is getting undefined for isPrintEvent arugument
https://github.com/mkoryak/floatThead/blob/master/dist/jquery.floatThead.js#L959

As a workaround, in our code, I have added the print listener code and re-initialize the header in after print method.

Browser?
On Jul 3, 2016 1:50 PM, "simplestep"<EMAIL_ADDRESS>wrote:

Thank you so much for this plugin. It saved lot of time for pinning
header. One issue I saw is that I tried to print table, beforePrint event
called and once I close the print dialog, afterPrint is not getting called.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mkoryak/floatThead/issues/313, or mute the thread
https://github.com/notifications/unsubscribe/AAXbSQaqCOIKgfDIrKUhnk0MxOiNlQg0ks5qR_ZhgaJpZM4JD6gU
.

thanks for debugging it. I will look into this after the holidays here

thanks for the bug report. I was confusing the destroy plugin method with an event handler, which it is not.

Thank you so much for fixing it. Any plans for releasing it soon?

not really, this is the first commit to master since last release. perhaps if you buy me a beer, I will ;)

i released a new version

Wow, thank you so much, much appreciated.


duplicate and broken Java UUID guide link

#5383
Duplicate and broken link in https://github.com/eugenp/tutorials/tree/master/core-java for Java UUID Guide.

@divyum  Thank you :) Merged the PR.


Detect if internet connection is through a carrier grade NAT (starlink)

Users who have starlink internet (as well as many mobile networks) are not able to have reliable connectivity because these services use a CGNAT and constantly have their external ip address changing. The sdk can detect this by checking the interface address against the CARRIER_GRADE_NAT_SUBNET ip range. This can be used to disable blob announcement where it won't be effective and to alert the user that they can't be connected to from the outside.
Detection of the CGNAT might be trickier on starlink connections with a wifi network (the default they ship with, vs ethernet with passthrough) as the interface address will appear to be a normal private lan address. I'm not sure if the wifi router will reply to aioupnp - if it does it probably gives the CGNAT address (this can be tested).

@shyba pointed out a user on an isp with CGNAT who routes through a remote VPN will be connectable and would be a false positive by this metric.

Recently happened across this bit of code:
https://github.com/lbryio/lbry-sdk/blob/f7455600cc03918de0221198053a9246cd69a9e3/lbry/utils.py#L374
It's being used to identify KademliaPeer objects with an invalid IP:
https://github.com/lbryio/lbry-sdk/blob/f7455600cc03918de0221198053a9246cd69a9e3/lbry/dht/peer.py#L179
Some attempt is being made to exclude CGNAT addresses, but I am not clear how the ValueError exception(s) are being handled. These addrs may be kept out of the routing table, but the blob announcer would not know that they're being kept out.


feat(orderBy): Support natural sort

This is a feature request. I searched issues and pull request and didn't find anything, sorry if this is a dupe.
I think that many of us would like to be able to ask orderBy to sort strings in a "natural" way (i.e. foo 92 "is smaller than" foo 147, as opposed to the current lexicographical order which sorts 1 before 9).
I'd be willing to submit a pull request but first I'd like to know if this is a feature the Angular team would like to add, discuss the possible syntax, and get some guidelines (I took a look at orderByFilter and noticed it's really optimized for performance).
Thanks!

This is one of those things and always found a reasonable workaround (eg
for this case, (+somefield.substr(4))), but would be open to it if there is
enough community interest

Maybe a flag to force orderBy to convert input into integers?

@Narretz I'd like to know your oppinion about this feature, I could create a new filter.

I've definitely run into this problem before, where I have a field that I want to order by in an ng-repeat, and the field is a number but for a variety of reasons is stored in js as a string. I've fixed the problem by writing a custom filter that converts to int before comparing using parseInt(num, 2), but would be nice if there was already a filter that did this.

Is it just me or does this sound like a better fit for an external module (rather than a core feature) ?

Now that #14468 has landed in master, it will be even easier to do this by providing a custom comparator function. I'm going to close this for now, since it seems like a better fit for an external module.


Some CSS does not work when nesting

Is your feature request related to a problem? Please describe.
CSS does not work when displaying nested arrays
.vs-list-item + .vs-list-item
    border-top 1px solid rgb(235,235,235)

Thank you very much for the contribution I will review it to see the problem

What do you need to do? .vs-list-item + .vs-list-item what is the purpose? and it seems that what you want to do is this .vs-list-item> .vs-list-item to only affect the child nodes vs-list-item.

I was short of explanation, I'm sorry
https://github.com/lusaxweb/vuesax/blob/dd0fbe77d38144eb8f01b297b4c1698d45eaf660/src/components/vsList/vsListItem.vue#L47
This property does not work if it is nested
But in vue, you need to specify "v-for" for the element.
a DOM configuration like this is generated
        <vs-list>
          <vs-list-header vs-title="Group 1"></vs-list-header>
          <vs-list-item vs-title="Item 1.1" vs-subtitle="Item 1.1"></vs-list-item>
          <vs-list-item vs-title="Item 1.2" vs-subtitle="Item 1.2"></vs-list-item>
          <vs-list-header vs-title="Group 2" vs-color="success"></vs-list-header>
          <vs-list-item vs-title="Item 2.1" vs-subtitle="Item 2.1"></vs-list-item>
          <vs-list-item vs-title="Item 2.2" vs-subtitle="Item 2.2"></vs-list-item>
        </vs-list>

How about this? Do you have any problems?


409 response to PUT /worker/task even when the worker is ready to accept more tasks.

Overview
Currently through the cli there is no way of running more than one plan without restarting the server each time, because if you try to do this you will get a 409 response, indicating the worker is still busy.
Looking at the worker logs however it is not busy; there is a bug somewhere.
Steps to recreate
checkout main and type, in two terminals:
[user@terminal1] blueapi serve
[user@terminal2] blueapi controller run sleep '{"time": 1.0}'
{'task_id': '...'}
<some seconds later...>
[user@terminal2] blueapi controller run sleep '{"time": 1.0}'
Traceback (most recent call last):
  File "/venv/bin/blueapi", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/venv/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rose/Documents/projects/blueapi/src/blueapi/cli/cli.py", line 64, in wrapper
    func(*args, **kwargs)
  File "/venv/lib/python3.11/site-packages/click/decorators.py", line 38, in new_func
    return f(get_current_context().obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rose/Documents/projects/blueapi/src/blueapi/cli/cli.py", line 99, in run_plan
    updated = client.update_worker_task(WorkerTask(task_id=task_id))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rose/Documents/projects/blueapi/src/blueapi/cli/rest.py", line 60, in update_worker_task
    return self._request_and_deserialize(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rose/Documents/projects/blueapi/src/blueapi/cli/rest.py", line 77, in _request_and_deserialize
    raise BlueskyRemoteError(str(response))
blueapi.cli.amq.BlueskyRemoteError: <Response [409]>

I've found out why;
the PUT endpoint for 'worker/task' has the following logic:
if handler.worker.get_active_task() is not None:
    raise HTTPException(status_code=409, detail="Worker already active")
elif task.task_id is not None:
    handler.worker.begin_task(task.task_id)

This bug indicates the HTTP exception is raised even when the worker logs indicate it is active. The method for handler.worker.get_active_task just returns self._current, which is an Optional[TrackableTask[Task]] - i.e. if self._current is not None, this rest endpoint will raise this exception.
self._current is set to None upon initialisation but it is not unset after it is actually done in self._cycle. So this is a one line change.


Adds self-contained dev environment to make getting started easier

Hey folks, here's a self-contained dev environment to make it easier to develop and getting started.
I added a few sentences to the readme; the general idea is this

We provide a docker file for self-contained and reproducible dev environment. No manual instructions needed, no need to fumble around with installing libgeos and other native deps to compile shapely etc.
We provide convenient makefile targets, so first time usage is as easy as make; make up and for development you can get into a shell in this self-contained environment with make sh

Thanks for the PR! I think changes from #19 might affect this. Since there is flask debug server now generating the static site for dev purposes it would probably be the thing to run in docker?

Hey folks, looks like you merged #19 first which changes a bit how we do things.
I'm rebasing this changset now, running into two issues

#19 introduces the frozen-flask dependency, but in version v0.14 (from Mar 2017) which only works with Python <3.9. I'm updating it to latest, so that it will work with stable Python. Because we are packaging everything up in the Dockerfile, the docker environment will work just fine but I thought it's a good idea to fix it for others just in case people develop without docker.
#19 now proxies files with custom route endpoints in app.py where we now read osm_data.geojson. This means app.py requires the osm_data.geojson file to reside in the repository's root directory. But in the build step, we are only serving the build directory which does not contain the osm_data.geojson file. This issue is unrelated to this pull request, but I already wanted to flag it with you folks because I noticed it while rebasing.

I just rebased and pushed this changset; @praszuk and @ttomasz can you have a look again and more importantly also give it a try locally?
make

will build the self-contained and reproducible dev environment, downloading the data once in the end and baking it into the image.
make up

will then start the debug app.
For developing, instead of make up you can get into a shell in the dev environment with
make sh

where you can then run the scripts.
Because we mount the files from the host into the container, there is no need to re-build the docker image other than e.g. if we are changing dependencies in the requirements.txt file, or we're making other changes to the dev environment.


Add preview questions

What is the context of this PR?
Adds preview of survey questions accessible from the introduction page. This expands and refactors changes made in the spike PR https://github.com/ONSdigital/eq-questionnaire-runner/pull/904. Validator PR #168 was also required as we add new schema field and some extra validation as described on the card.
How to review
New tests and new schemas were added, one linear and one with hub.
Checklist

[ ] New static content marked up for translation
[ ] Newly defined schema content included in eq-translations repo

 Viewing questions before starting the survey - Iteration 1 (5 SP)

Two demo business schemas added, will be removed after.

When Print is used, collapsable (twisties) are not expanded.
On print, there is also a blank page as the first page if any of the twisty is expanded already.
There are some issues with PDF, i.e text is cropped, highlight/text isn't bold when they should be. This can be looked at separately as we don't have time now, can you raise a card to review the Preview questions PDF output.

Just for future reference, regarding print blank page, I spoke to Rich and he said it seems it is a bug but only seems to happen when the page is longer than a page and only using chrome, its been fixed now though but not released yet.

The tests need to be extended to cover things like:

Ensure metadata is rendered
Ensure answers aren't rendered
The features such as "guidance", "description" etc. exist
Print button exists
PDF button exists
The twisty works (functional test)

I checked all the comments and the only outstanding are those regarding functional tests of some extra scenarios, metadata resolved (if unit test of context is not enough), answers not piped, print and pdf button (but the download pdf path is already tested). More info about functional tests -> https://github.com/ONSdigital/eq-questionnaire-runner/pull/996#pullrequestreview-1317687084.


[COMP] Use new version of deb-s3 for validating job publishing

port https://github.com/MinaProtocol/mina/pull/16305 to compatible

!ci-build-me

!ci-nightly-me


Perform value operations opaquely on ABI-inaccessible types

Track whether types are fixed-ABI and ABI-accessible at the SIL level.
Fixed ABI means that we can do value operations on the type without any metadata: value-allocations, copies, and destroys.  It's currently equivalent to being fixed-size, but (1) being fixed-size isn't useful by itself at the SIL level and (2) you can imagine resilience or generics micro-optimizations where there's like an attribute that tells us the size of a type without actually telling us how to copy it.  All types are fixed-ABI except:

layout-unconstrained generic types,
resilient value types, and
value types which contain a subobject of such a type (except within indirect enum cases).

ABI-accessible means that it's legal to perform value operations on the type.  We cannot perform value operations on a type T if it's not fixed-ABI and we can't construct metadata for it in the current file.  The latter will be true if T is private to a different file (in non-WMO builds) or internal to a different module because the metadata-accessor symbol will be private or hidden, respectively.  Importantly, in these cases, it always illegal to use T directly in the current file, which means that SIL generated from that source code won't contain any direct value operations on T.  However, we may be able use some type C that's itself permitted to use T and which is accessible to the current file.  If C contains subobjects of type T, value operations on C must perform value operations on T recursively.  This is okay as long as we don't either:

inline code that contains value operations on T or
naively attempt to recursively expand a value operation on C into value operations on its subobjects.

(Note that we cannot simply treat C as an opaque type because we may need to perform operations on it that would not be legal on a totally opaque type, such as directly accessing a known-stored property.  It is tempting to try to define that away by saying that we never use direct property access on such types and instead go through property accessors.  However, this would require us to guarantee the emission of property accessors for properties, which we'd like to avoid.  Also, it's not actually possible to define this problem completely, because the current file might define a type C2 which contains C as a subobject.  The same recursive trouble applies to C2 as would apply to C, but we must be able to directly access the properties of C2 in order to define its constructors and accessors.  Any model which can support directly accessing the properties of C2 can equally support it for C as well.)
The SIL optimizer currently never tries to expand value operations on objects in memory.  (It does sometimes expand value operations on scalars, and this may be a problem for the opaque-values effort.)  However, IRGen currently recursively expands value operations on non-resilient types.  That is fixed as the final commit in this PR.
The SIL verification that I've added here is definitely incomplete.
Fixes rdar://39763787 / SR-7549.

@swift-ci Please test.

@slavapestov @jrose-apple A review would be appreciated.

ABI-accessible means that we can perform value operations at all.

@rjmccall  Did you mean "cannot"?

@xedin No, that would be ABI-inaccessible. :)

@jrose-apple I'm just asking for a review on the bit in SIL.cpp, although of course I won't complain about other comments.

@rjmccall Yeah, I figured :) It just that sentance reads like there is something missing...

@xedin Good point.  I've rewritten that entire paragraph; let me know if it's still unclear.

@rjmccall It's definitely much clearer now, thank you!

Build failed
Swift Test OS X Platform
Git Sha - 1840eb688b923dfb4ea2a360d8af855531f57f64

@swift-ci Please smoke test.

Rebased and incorporated Jordan's feedback.


Fixed some minor issues

Issue Reference
Fixed customer group name issue in Catalog edit page.
Fixed category description error message issue.
Fixed empty image issue in attribute page.

@shivendra-webkul
Checked and Found that both the issues are fixed. Please find the screenshots below.
Category - https://prnt.sc/TONbdnQAGZIl
**Catalog Rule - https://prnt.sc/eyAaaRNiQtZ6  **


[examples] base-cra-tailwind-ts migration to Vite

[x] I have followed (at least) the PR section of the contributing guide.

With this pull request CRA is replaced with Vite in the base-cra-tailwind-ts example. Adresses https://github.com/mui/material-ui/issues/37367
Removed old unnecessary files that were generated by CRA.
Additionally added a components folder and moved Button, Slider and Player components into it.
Preview: https://github.com/dvkam/material-ui/tree/base-vite-tailwind-ts/examples

I don't see a reason to remove the CRA example when they can both coexist peacefully here. If the examples folder is getting too cluttered, we can consider other ways of organizing it.

If you want to keep the CRA examples and just add same with Vite let me know and I will make the necessary changes.

Thanks for your patience @dvkam ! Let's go ahead and move forward here by replacing this CRA example with Vite as you've proposed here. I don't think we need the CRA example in this case after all.

Hey @samuelsycamore thanks for the update, I will make the needed changes asap. Do you want me to adapt this example so its the same like this one: https://github.com/mui/material-ui/blob/master/examples/base-vite-tailwind/README.md but with TS?
Just need to know how you want me to proceed (see the two open threads above).

Hey @samuelsycamore thanks for the update, I will make the needed changes asap. Do you want me to adapt this example so its the same like this one: https://github.com/mui/material-ui/blob/master/examples/base-vite-tailwind/README.md but with TS?
Just need to know how you want me to proceed (see the two open threads above).

Thanks for checking in @dvkam ! Yes, let's aim for consistency across these examples and follow the lead of the one you linked here.

Since this PR has gone stale, I've made the requested changes to get the base-ui-vite-tailwind-ts example merged. I've also added a couple small fixes to base-ui-vite-tailwind.


Handle rng:notAllowed in constraint modules

The 1.3 spec shows this example for defining a constraint:
<div>
<a:documentation>MODULE INCLUSIONS</a:documentation>
<include href="topicMod.rng"/>
<include href="hazardstatementDomainMod.rng"/>
<include href="highlightDomainMod.rng">
<ditaarch:domainsContribution
>(topic hi-d-noUnderline-c)</ditaarch:domainsContribution>
<define name="u">
<notAllowed></notAllowed>
</define>
</include>
<include href="indexingDomainMod.rng"/>
<include href="utilitiesDomainMod.rng"/>
</div>

With the intent being that the notAllows for the u element removes it from any content models it's part of.
Need to implement this processing so that notAllowed patterns are removed from any context where they are referenced.
This requires ensuring that the resulting parameter entity or model group is valid. For example, if all members of a group are removed, the group itself must be removed. If a parameter entity ends up being empty, then references to the parameter entity must be removed in contexts where a reference too an empty parameter entity is not allowed (i.e., content models).

@drmacro, I've been attempting to use this project. It works to convert RNG to DTD & XSD for basic shells and topic specializations, although I did have to workaround a $resultUri issue in rng2ditadtd.xsl. What's the status of the constraint support?
When I attempt to convert /test/topicmod-constraint, I get this error:
     [java] Type error at char 22 in xsl:variable/@select on line 110 column 7 of rng2catalogs.xsl:
     [java]   XTTE0570: Required item type of value of variable $rngDocs is document-node(); supplied
     [java]   value has item type xs:base64Binary
     [java]   at xsl:call-template name="generateCatalog" (file:/D:/dita-rng-converter/xsl/rng2catalogs/rng2catalogs.xsl#123)


Publish release build artifacts

Make changes so the build system across all the repos works seamlessly with both debug and release packages.
Note: The native code is already release even in the debug packages since we do not explicitly set NDK_DEBUG and debuggable is not set in the manifests either.

https://github.com/Samsung/GearVRf/pull/1061
https://github.com/gearvrf/GearVRf-Demos/pull/408


Deprecate python 3.8 and add python 3.11

Signed-off-by: Thomas Sjögren<EMAIL_ADDRESS>

@konstruktoid I modified label to enhancement force bumping of version number because it will break for py38 users. We ship different metadata, one that can break installation for some.
Yep minor for some, potentially breaking for others.


CB-8147. Make node specific metadata (hostGroup, YARN NM attributes)

available on cluster nodes.

New metadata file created under /opt/metadata/node.json on cluster
nodes, which contains the hostGroup name, and service specific
attributes.
The service specific attributes introduced in this PR are for YARN,
and specify whether a node is a compute or worker based on the services
running on the node (instead of relying on the hostGroup name).

Tested by launching a custom DE template with hostGroupNames changed with 2.31-b111 as the base. New files created etc posted on the jira.

@keyki

Thanks for the review @lacikaaa . Will update the PR once I'm back after a short break.
One of the concerns I had is whether the patch applies to various scenarios like new nodes, scale-up, new cluster etc. I think it covers the various cases - but something I was hoping to get review feedback on.

If you drop things from the Node class I would check that perspective, but we push down pillars when we are scaling, so I think you are covered. I still think the calculation of the pillars should be refactored as I suggested as it would simplify that part of the code and you won't have to add it at so many places where nodes are created.

@lacikaaa Haven't tested the changes on a cluster yet. Will do that tomorrow. Please do not commit before that. This is ready for review though.

Tested on a cliuster as well. This should be good to go in now.


Loading Plists into spriteFrameCache is extremely slow on android

I currently have about 8 png spritesheets (1024x1024 or 2048 x 2048) with associated plists (created by TexturePacker). Their total size on disk is fairly small at 6mbs. I need the assets loaded before startup. Running the project on my desktop browser poses no problem, but on Android (including on my new fairly good phone), it takes around 11 seconds to startup. On my wife's older phone, it took close to 20. After the painful startup time, the game runs smoothly.
My init code is as follows in the main.js:
    cc.LoaderScene.preload(g_resources, function () {
        GameManager.init();
       // !!!! At the start of init I loop through g_resources and load
       // the plists into the cc.spriteFrameCache
        cc.director.runScene(new MenuScene());
    }, this);

Does anyone have any insight into why adding plists to the spriteFrameCache is taking so much time to load? I am only adding a 6mb of resources and I cannot understand why there is such lag. I know that adding the plists is the source of the problem, since I tried to load them on demand (instead of up front) and each time I called cc.spriteFrameCache.addSpriteFrames, there was about a two second delay.
I was experiencing this issue in v3.3. Since I am at a loss I tried to update to v3.5 to see if the issue would go away, but it has not.
I appreciate any help that can be provided. I am not sure if this is a bug that affects others as well.

So we you say test on Android, you packed the game into a native APK to test or in Android's browser?

Hello,
I tested on android by compiling both Release and Debug native APKs. I tested them by moving the built APK to my phones and then doing a normal install. If there is any other information/code that I can provide, please let me know. I am not sure if this would occur on iOS as well, unfortunately, I do not have a Mac/iPhone.
Thank you.

Hi,
This still is a major concern for me. Loading the plists up front is taking a very long time. I am doing it in the following manner:
        plistCollection.forEach(function(plist) {
                cc.spriteFrameCache.addSpriteFrames(plist);
        });

I am not sure why it is so slow on the phone, is there a way somehow to load them in parallel? If not, does anyone have any idea what would cause such slowness?

How large is your sprite frame plists ?
Have you preloaded them with cc.loader.load or cc.LoaderScene.preload ?

On average my png spritesheets are 1024px x 2048px (500kb) and the plist files are 37.6kb. There are about 45 frames in each sheet. I have about 8 spritesheets that I am loading.
In order to decrease the loading time, I tried to alter the pixel format of the images, for example, I tried to change them to use RGBA4444. Maybe that will actually work, but unfortunately, it seems that cocos2d loads all textures regardless in RGBA888.
When I put the following code in my plist for loop
                    cc.Texture2D.defaultPixelFormat = cc.Texture2D.PIXEL_FORMAT_RGBA4444;
                    cc.spriteFrameCache.addSpriteFrames(filePath);

when I check the cc.textureCache, all the images still have a pixelFormat of 2 (PIXEL_FORMAT_RGBA8888) , even though they should all have 8 (PIXEL_FORMAT_RGBA4444).
Is there a different way to set the pixel format that I am simply not aware of? If I can do it, perhaps that would be a solution.
Thank you.

cc.Texture2D.defaultPixelFormat = cc.Texture2D.PIXEL_FORMAT_RGBA4444;
Sorry, I see a problem in our code, it's not correctly implemented, I will fix it today

Thank you for letting me know, I couldn't figure out what I was doing wrong!

Here it is: https://github.com/cocos2d/cocos2d-x/commit/4146a6edf48db363e65e8e7bc5f0b5c4773544fc

It still seemed to load slowly on my phone :(
When I have time I will look up the documentation on how to call C++ code from JS, maybe I can do the loading in C++ textureCache.addImageAsync method and see if there is some kind of improvement. Before I do that I need to read some more to see if there is some kind of other solution

I suggest you to try textureCache.addImageAsync.

 The image loads correctly, but when I try to add the image's associated plist in a callback, it still blocks the main UI thread for about 500 milliseconds. I have even tried putting an async.parallel in the callback to avoid the blockage, but it still seems to occur. Is there anyway to adSpriteFrames in an async manner as well?
Thank you.
        console.log('adding texture ' + texture);
        cc.textureCache.addImageAsync(texture, function() {
            cc.async.parallel([function(next) {
                console.log('adding plist ' + plist);
                cc.spriteFrameCache.addSpriteFrames(plist);
                next();

            }], function() {
                deferred.resolve();
            });
        });

        return deferred.promise;

I suspect that this pull request may help with my issue:
https://github.com/cocos2d/cocos2d-x/pull/12367


generalized entry points

This function is entry point from which another entry point can be called.
If you want to call this function:
    def myfunction(myarg='default'): pass

that is residing in the folder mylib.myfolder.myfile,
then specify your task as follows:
    "python_wheel_task": {
        "package_name": "spetlr",
        "entry_point": "spetlr_task",
        "named_parameters": {
            "entry_point": "mylib.myfolder.myfile:myfunction",
            "myarg": "myval"
        }
    }

The named parameter 'entry_point' is mandatory.
All arguments must be of type string.

This addition completely eliminates the need to create entry points in the project setup.cfg which I find much cleaner.

There are no test here since I don't know how to test this in the pipeline. I have however tested this code by using is in a project ant it works as expected.

Maybe add some documentation with a couple of examples of how to implement this and explain what it achieves


Tag '2.0.0' does not exist, Tag '2.0' is the correct one

Pod install does not find commit with tag '2.0.0', but rather works with the tag '2.0'.

Thanks for pointing that out!


Board

Adds Turns, Leaderboard and multiple Dice.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

97 of 97 (100.0%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
188

Relevant Lines:
188

💛  - Coveralls


[WIP][ll] Port of Device trait from LL

Extras:

removed DescriptorHeap
renamed DescriptorSetPool to just DescriptorPool
module renamed descriptor_set to descriptor
module renamed texture to image

This PR is far from done, only core is building successfully now...
@msiglreith I couldn't just sit being blocked so I started hacking this away. I realize there might be possible collision with your work, hence I upload everything I got. Please feel free to rebase on it. I'm open to ideas on how to efficiently collaborate on the LL transition.

I'm fine with this one as discussed.
Yesterday, I pushed all my local work so there are no outstanding collisions from my side. For collaboration, it's propbably the best to work on different backends which reduces friction and changes to core should be pushed as soon as they appear because they affect everyone's work.
Hooray on the new Device trait 🎊
Time to remove handles from the core!


tokenizer undefined in evaluate (red teaming)

There might be a minor bug with example_submission.py in red_teaming. At https://github.com/centerforaisafety/tdc2023-starter-kit/blob/main/red_teaming/example_submission.py#L199, tokenizer is needed for evaluate() but it won’t be defined when os.path.exists(generations_path) is True.
Also, this tokenizer should strictly be the llama-2 one, right? Since it is used to get the embedding from llama-2. This is probably not a problem since red_team_model_path is always set to llama-2, but if red_team_model_path is set to a different model, then there might be a mismatch. It might be more robust to hard code llama-2 tokenizer here.

Fixed by pull #10. Thank you!


Create explicit way to define input/output binding for cases when there is no implicit trigger (i.e., Function, Consumer etc)

Technically it could be an equivalent for what we had before with @Input and @Output of annotation-based model.
The Spring Cloud Stream should bind those by just properties and just expose MessageChannel beans, like it does for functions at the moment anyway.
End-user will decide what to do with those channels in target microservice logic.
Basically the goal is still to be able to leverage Spring Integration features especially when there is no straightforward alignment with functional model.

Pushed and back-ported to 3.1.x

It doesn’t work if I have functional binding and this one in the mix.
Thanks


skip comment block if first line does not match signature

Currently if the first line does not match but the second line does, then the block will be included starting from the second line. This is unexpected and increases the risk that a random line in non-doc comments gets misinterpreted as a docblock.

The parser also seems to interpret this as a valid two-line docblock:
/// Viewport methods
proto.addControl = require('./addControl')
proto.approach = require('./approach')
proto.atCamera = require('./atCamera')
proto.atPage = require('./atPage')
proto.atPageFn = require('./atPageFn')
proto.findMostDistant = require('./findMostDistant')
proto.getControls = require('./getControls')
proto.getItemAt = require('./getItemAt')
proto.getSpace = require('./getSpace')
proto.isPerspective = require('./isPerspective')
proto.orthogonal = require('./orthogonal')
proto.perspective = require('./perspective')
// TODO MAYBE proto.setBackgroundDepth
proto.toPage = require('./toPage')

This produces (BEGIN SNIPPET)
tapspace.components.Viewport methods
TODO MAYBE proto.setBackgroundDepth
(END SNIPPET)
Somehow the code between seems to connect the two comment lines.

Fixed


'Counter' object has no attribute '_value'

I tried this a million different ways, and no cigar. Even the Python Intellisense on VSCode sees that an inc() method is available, but it throws this error everytime I try to increase counter value:
request_exceptions_total = Counter(
    name="request_exceptions_total",
    documentation="Total number of excepted requests.",
    labelnames=["endpoint", "user", "status_code", "message"],
)

company_name = get_company_info_from_api_key(req=request)
request_exceptions_total.labels(
    endpoint=request.path,
    user=company_name,
    status_code=status_code,
    message=message
)
request_exceptions_total.inc(amount=1)

Error: Exception has occurred: AttributeError
'Counter' object has no attribute '_value'
I have tried leaving out the label values when a label is created, but no success there either. I went to the Google answers page, but no one had an answer for this.

It looks like you are calling .inc() on the base metric, not the metric defined by specific labels. You need to do:
request_exceptions_total.labels(
    endpoint=request.path,
    user=company_name,
    status_code=status_code,
    message=message
).inc(amount=1)

or you could store the result of .labels(...) in a new variable if you want.

Yep. That was it!


Tx type is inconsistent in how it stores data witnesses.

Summary
There are few inconsistencies in the Tx type and now it's been moved into plutus-apps. Possibly all of them stem only from my misunderstanding. Tx lacks support for withdrawals or certifications which I'd like to add, but probably it is better to first address these.
1. Should datums be stored on the side in Map DatumHash Datum field or instead packed together with inputs?
TxIn for now CAN contain datum as:
data TxInType =
      -- TODO: these should all be hashes, with the validators and data segregated to the side
      ConsumeScriptAddress !Validator !Redeemer !Datum -- ^ A transaction input that consumes a script address with the given validator, redeemer, and datum.
    | ConsumePublicKeyAddress -- ^ A transaction input that consumes a public key address.
    | ConsumeSimpleScriptAddress -- ^ Consume a simple script

-- | A transaction input, consisting of a transaction output reference and an input type.
data TxIn = TxIn {
    txInRef  :: !TxOutRef,
    txInType :: Maybe TxInType
    }

The TODO comment is not mine.
But Transaction also has the txData field for various datums (which ones exactly if datums can be stored with TxIn?).
So which is better:
a) datum in TxIn or
b) datum in a map and referenced by hash in TxIn'?
Also could someone explain at what stage is can the txInType field be Nothing and when is it expected to be Just ...? For example toCardanoTxBody fails if it's Nothing.
2. Should validators be stored on the side in seperate container or instead packed together with inputs/withdrawals/etc?
This is simmilar to the previous one but here validator scripts apply not only to inputs but also minting, certyfying and withdrawing.
Currently input validators are stored alongside inputs ^, minting policies are stored in a set and withdrawals or delegation certificates are not yet accounted for.
Should we:
a) keep input validators with inputs, certyficate validators with certyficates, withdrawal validator with withdrawals, minting validators in a set
b) input validators in one set, certyficate validators in second set, ..., minting policies in 4th set
c) all scripts in a single set
d) other combination of above solutions
Here b) is wasteful as single script can be used for both minting and withdrawing (certyfying also?). a) keeps the most information. c) splits between what transactions contain in ledger and what they contain when are submitted for verification.
3. Should redeemers be stored on the side in seperate container or instead packed together with scripts?
Currently redeemers for inputs can be stored alongside inputs ^. There is also seperate txRedeemers ::~ Map RedeemerPtr Redeemer field, which as the comment suggests is currently only used for minting. Withdrawals also would use redeemers.
Here there are two questions: i) do we refer to redeemers:
a) by RedeemerPtr whereRedeemerPtr [Spend|Mint|Cert|Reward] Integer refers to the i-th script of a given type
b) by something else like RedeemerHash
and simmilarly as above, ii) do we keep redeemers:
a) alongside withdrawals, minting policies and inputs accordingly
b) in seperate containers
c) in one common container
Of course we can use any indexes in such a map and still lookup RedeemerPtr's indirectly. But if we want to use RedeemerPtr's at all then minting policies can't be in an unordered set.
Steps to reproduce the behavior
_
Actual Result
_
Expected Result
_
Describe the approach you would take to fix this
I would work on this, but would enjoy some explanation on who is the main client of Tx type, is it now plutus-ledger-constraints?
I would most likely

Take out data witnesses into maps. Have a common map for all datums, validators and redeemers respectively.
Refer to them indirectly elsewhere.
that is options 1b, 2c, 3c

System info
plutus: <IP_ADDRESS>

I think we shouldn't be using Redeemers = Map RedeemerPrt Redeemer inside Tx. For now when mint scripts are matched with redeemers this is done like so link:
zip [0..] $ Set.toList txMintScripts

and redeemerPtr's are indices into this list. But how can one correctly construct a transaction if at a moment of adding entry (redeemerPtr, redeemer) into txRedeemers, one doesn't know the final order a mint script would end up in mint scripts set.
Either we order mint scripts (and withdrawals/certificates/inputs) or we refer to redeemers differently. I think we include redeemers together with inputs/withdrawals/etc and then there is no invariants to keep.


Fix use of binding patterns in closures

Purpose
Fixes #41236
Fixes #41832
Fixes #41858
Approach
For mapping/tuple binding patterns a block is created in the desugar phase and the variable definitions by the are defined inside this newly created block. Thus these variables are omitted from the map that is passed to the lambda function created from the closure. In the fix when a generated block from the desugar phase is identified using the internal flag and when the internal flag is present the variable definitions are attached to the parent of the block node created.
Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

type Doctor record {
    string name;
    string category;
};

function addDoctor(Doctor doctor, string[] categories) {
    var {category} = doctor;
    var addCategory = function() {
        _ = category;
    };
}

@poorna2152 I think it's better to resolve this in the BIRGEN phase. When we consider the example above, it is desugared into a block statement. Due to that, the closure map is generated within that block statement as follows
type Doctor record {
    string name;
    string category;
};

function addDoctor(Doctor doctor, string[] categories) {
    {.
        map<(any|error)> $map$block$_4 =  {}
        map<(any|error)> recordVar_1 = <map<(any|error)>> doctor;
        $map$block$_4[category] = <(any|error)> <> $recordVar$_1[category]
    }

    var addCategory = function() {
        _ = category;
    };
}

In the collectClosureMapSymbols function(in the closure desugar), we collect the closure maps required for load lambda functions. In this case, those closure maps exist within the block statement. So we cannot identify the closure map required to load the above lambda function in the closure desugar phase.
Since we flatten the block statement in the BIRGEN phase, we have access to the closure map within the function scope. With that, we can use it for creating the fpload instruction in the BIRGEN phase.

@poorna2152, can you resolve the conflicts and address comments?

type Doctor record {
    string name;
    string category;
};

function addDoctor(Doctor doctor, string[] categories) {
    {
        map<(any|error)> $map$block$_4 =  {}
        map<(any|error)> recordVar_1 = <map<(any|error)>> doctor;
        $map$block$_4[category] = <(any|error)> <> $recordVar$_1[category]
    }

    var addCategory = function() {
        _ = category;
    };
}

Current fix is done in the closure desugar level and this fix moves the category variable to the map defined in the function scope
addDoctor (Doctor doctor, string[] categories) {
    map<(any|error)> $map$block$_3 =  {};
    {
        map<(any|error)> $recordVar$_1 = <map<(any|error)>> doctor;
        $map$block$_3[category] = <(any|error)> <> $recordVar$_1[category];
    }
    function () returns () f = LambdaRef:$lambda$_0; Return: ()
}

Since we flatten the block statement in the BIRGEN phase, we have access to the closure map within the function scope. With that, we can use it for creating the fpload instruction in the BIRGEN phase.

IMO, this results in the BIR gen phase having to know more about how exactly desugaring is done for these constructs and reduces independence between the phases. Additionally, ideally, code that we have after desugaring should be code that is generally valid if a user wrote it, so I would fix this at (closure) desugar itself.

We need to fix this for error binding pattern as well. When consider the following example it is crashed
type SampleErrorData record {|
    int code;
    string reason;
|};

type SampleError error<SampleErrorData>;

function getSampleError() returns SampleError {
    return error("Transaction Failure", error("Database Error"), code = 20,
                            reason = "deadlock condition");
}

public function main() {
    var error(_, cause, code = code, reason = reason) = getSampleError();
    var addCategory = function() {
        _ = code;
    };
}


Add SendBytesText method to Datachannel

This is a convenience method to reduce allocations.
Many marshalers return already a []byte result, so casting to string and bytes again may cause unneccesary allocations.
Description

What do you think of adding a PPID as an optional argument/config? If we add this then an argument could be made for SendStringBytes.
Is it possible to use Byte API and take to string in browser?

What do you think of adding a PPID as an optional argument/config? If we add this then an argument could be made for SendStringBytes.
Is it possible to use Byte API and take to string in browser?

That would be ok for me, but maybe is confusig for others to set the correct PPID or understand is meaning

@Sean-Der Should I update the PR with a method that accepts the PPID as an argurment? does this method would be an extra method or it will replace others?

@OrlandoCo I would add an additional paramater to both DataChannelSendConfig(?) that is optional (so no API break)
Then you can add a PPID override, and we can add more options in the future if needed! I would be up for accepting right away, feel free to add other people if you disagree/think it needs more discussion. I could totally be wrong.
These were the things I cared about, push back if you disagree!

Can be zero allocation (have a struct allocated ahead of time that is shared between all)
Doesn't break the API
Lets us add new options in the future without creating new methods

Didn't  Send already do this?
https://github.com/pion/webrtc/blob/285fb782ba71357baec71a927ea855a86bdd4128/datachannel.go#L347-L355

@ffmiyo Send sends data as binary format

@Sean-Der I made the requested changes!

Looking back on this I don't think this is the right way to go. The receiver can cast if needed.
Our API is pretty extensive already. This adds more things to explain to users and test. If there is a use case that not having this completely backs it may be worth exploring more.


As Casperjs is abandoned,is it safe to use PhantomCss

I am a big fan of Phantomcss. But few days ago I get to know that Casperjs abandoned. So my question is- what is the next plan ? Shall we worry about it in any case? How its gong to effect PhantomCss users?
Rref: https://github.com/n1k0/casperjs/issues/987
https://github.com/n1k0/casperjs/issues/1299

It is very important for me and Huddle that we have a viable upgrade path whilst retaining backward compatibility.  I'm looking into decoupling the internals of this project from CasperJS; specifically, making it work as a NodeJS module for integration with NightmareJS (which uses Electron), I'm also considering a minimal port of CasperJS to achieve PhantomJS 2.0 support. However, my contributions are very much driven by the requirements of the Huddle web application and thus, may take some time.
I would love to see contributions, suggestions and PRs to get us there faster.

Really happy to hear that @jamescryer. I've been really happy with my current workflow using PhantomCSS, but the lack of PhantomJS 2.0 support has had me looking at selenium based solutions.
Will certainly keep an eye on what happens with this project in the future.

And from the look of nightmare and Electron, they both look like solid projects. I'd be happy to try out a fork of PhantomCSS that used that stack.

+1

+1

+1

+1

Instead of adding another +1, I started experimenting with nightmare yesterday. It turns out that due to the usage of "bleeding edge" stuff, nightmare itself is broken for me:

the test suite happily "passes" (due to mocha + ES6/ES7)
a vanilla checkout is not able to produce screenshots for me and the test suite fails nearly completely after removing the fancy new stuff

I am still investigating the root cause of my issues with nightmare.

The root cause for nightmare not working for me seems to be a broken electron-prebuilt that nightmare is unable to detect (nightmare more or less fails silently if electron-prebuilt fails).
Apart from that some major re-working for the more sophisticated parts of casperjs (esp. restricting the screenshot to a given selector) will be needed to use nightmare or any other casperjs -> phantomjs stack replacement.

The next thing I will try is "a minimal port of CasperJS to achieve PhantomJS 2.0 support", because:

I think that this will be far easier to implement
it might (hopefully) motivate other people to take over casperjs maintainance and push phantomjs 2.0 support to upstream
it will be easier to retain backwards-compatibility for phantomcss

Thanks for the feedback.  I believe I can get PhantomCSS working with Nightmare, but a Nightmare integration won't be a swap out replacement for CasperJS; this would mean a freeze or rewrite trade-off for existing PhantomCSS/CasperJS test suites in the wild. I'm going to continue investigating Nightmare in the time I have.  CasperJS on PhantomJS 2 is still the ideal solution.

Yes, I think that nightmare would be a nice-to-have alternative (and I am sure that I could bring that to life, too), as well as other pluggable, instrumentable browsers...

Installing phantomjs2 through npm cross platform is a mess, see phantomjs2 issues and phantomjs download page. It seems that phantomjs(2) development is as stuck as that of casperjs.
For the first "minimal port" I will drop requiring phantomjs through npm at all and assume you have a running phantomjs2 binary installed and working in your path. Maybe I will search for / create a thin wrapper npm module that just checks for a working phantomjs2 later on.

Resurrected an old try to make casperjs work with phantomjs2. Test suite nearly passing (still 5 errors left).

And just FYI: there already is a 2.0.1 pre-release that seems to fix the file input regression.

In the meantime I prepared a casperjs version that passes self-tests on pre-built 1.9.6, 2.0.0, 2.0.1 (Ubuntu 14.04.3). Please check if this works for you (and if you have time, if it works on slimerjs and lower phantomjs versions), too.

Since Nightmare has seen lots of development over the past few months, is it easier to make it work with PhantomCSS now? @istr I looked at your branch but didn't see how to make Nightmare work with it…

@Pszek I abandoned my nightmare experiment in favor of contributing to CasperJS and publishing a new beta with PhantomJS 2.0 / 2.1 support. You might want to try my PhantomCSS / PhantomJS 2 branch and/or my PhantomFlow / PhantomJS 2 branch instead.
Integrating nightmare into PhantomCSS seems to be a lot of work at the time being.

@jamescryer If you would like a PR for PhantomJS 2 support, I might be able to prepare something based on my branches.

@Pszek Nightmare needs to mature a little more before it becomes a viable integration target for PhantomCSS, I hit a fair few problems, specifically with regard to long running waits and EventEmitter memory leaks. An Electron integration of some sort is definitely worth investigation though.
@istr I'd certainly be happy to review any PR

I've bumped master branch to v1 which is tracking the latest CasperJS, this works with PhantomJS 2.  It's not ideal to be tracking master, but I think the benefit outweighs the risk. Upgrade went smoothly for me.
Looks like there it lots of great work going on in the CasperJS camp, as soon as they publish a stable (to PhantomCSS) release I will lock down the dependencies.


🐛 Tabs issue: onReaorder null exception

Describe the bug
An error occurs when the onReorder function is not provided.
Expected behavior
onReorder must be able to be null.
The error is noted here: https://github.com/bdlukaa/fluent_ui/blob/master/lib/src/controls/navigation/tab_view.dart#L203

It may be obvious, but to fix it just declare an empty callback.


Add "embed item" checkbox to "Item Media" section to set is_embedded flag

Not sure what the best wording is. Maybe "embed item" is ok for now. Embedded items do not open the item viewer (popup window) and are interactive on the exhibit template

Added embed checkbox to standard, grid and timeline item forms

resolved


Add support for cancellation of fetches.

This will be important, as a change of cluster membership will require cancelling an existing fetch.

LGTM


hello world from Indonesia, using powershell ... yeah...

What the program do ?
it creates hello world...
In what programming language it is written?
PowerShell, but it script tho...

Thank you for participating  in hacktoberfest ❣ if you liked working on this repo you can share it with friends and star this project for helping others


[Bug] - "Sequence" window left the screen

I moved it out of the page, so it's stuck on "top: 1500px" and it was impossible to return window back, because property is fixed and returns on drag
Please limit window movement off screen

This is now fixed. Thanks @nikfedotoff


Delay before rendering begins

Upon page load, there's a small delay before rendering begins & the graph is empty until then... Figure out why & see if it can be fixed

Issue related to React batching setState calls in another project, not a problem with dino-graph


Dev/mip 549/add controller logs to use for auditing

Changelog:

Fix for NLA crashing when node was throwing exception at 'get_node_datasets_per_data_model'.
Dependency Injection of logger is Node and DataModel Registry.
Added logs in controller for auditing entries.

could you also explain a bit about  this change in algorithm_executor
node_landscape_aggregator: NodeLandscapeAggregator -> common_data_elements: Dict[str, CommonDataElement]


Can only run brew installed programs from one system

There is a couple systems that I can ssh between and use with my user profile at work. I installed some software with brew using system A and it works fine there but if I go to system B and run any brew installed programs I get this error 'Illegal instruction (core dumped)'. Running brew itself does not throw any errors on either system however just the brew installed software.

"Illegal instruction" sounds to me like a binary problem. Are all of these systems the same architecture?
It makes sense that this wouldn't affect brew since it's run on a Ruby interpreter.
Can you try installing a program that runs on an interpreter and running that one of the other machines? ant might be a good choice.

Hi, Marcus. The software is compiled for the processor on which you run brew using the GCC option -march=native. You have two options.

Always run brew install on the oldest machine that you want to use
Set the environment variable export HOMEBREW_ARCH=core2

core2 should support your older computers, but if that doesn't work, you can setting it to a different value supported by the GCC -march option. For the possible values, see https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
After picking solution 1 or 2, run brew reinstall formula for the formula that is giving you trouble.


[Pages] debugging guide and image cleanup

Looks great! Noticed a few things so just thought I'd drop them in here for consideration.

If a user's on the light theme, the code block becomes invisible on hover because the text goes gray/white.
The code blocks either aren't selectable or have no color to show they've been selected; this effectively stops copy/pasting.

No idea if these things should be modified at the entire docs level or only at this document, just thought I'd put them here in case. 🙂

Looks great! Noticed a few things so just thought I'd drop them in here for consideration.

If a user's on the light theme, the code block becomes invisible on hover because the text goes gray/white.
EDIT: Looks like this occurs on both themes, actually.
The code blocks either aren't selectable or have no color to show they've been selected; this effectively stops copy/pasting.

No idea if these things should be modified at the entire docs level or only at this document, just thought I'd put them here in case. 🙂

Amazing catch! thank you!


Swift and Xcode should be shown only localy

The problem
Right now, Xcode and Swift are shows globally and locally cluttering the prompt. See #1194.
Describe the solution you'd like

We should remove SPACESHIP_-_SHOW_GLOBAL and SPACESHIP_-_SHOW_LOCAL in favor of SPACESHIP_-_SHOW
Sections should detect swift project files and show versions only within Swift/Xcode projects.

This will be a breaking change, because it removes older options and changes default behavior.
Describe alternatives you've considered
No response
Documentation and adoption
No response

The global and local variables make sense for users who have separate Xcode environments setup with xcenv. Global/Local here refers to different Xcode environments, which is maybe a bit confusing at first (are we referring to global as in the prompt is shown everywhere?).
I actually just stumbled across a good solution regarding what to do if a user doesn't have xcenv installed. Give me a minute to commit before merging.


FranceP2P Logo + Basic website

We need a logo and a website for the meta "mother organization"
It can be very basic, as the main role of "FranceP2P" is to aggregate the regional chapters
It's more like a "router website"

Logo proposal for France P2P :

https://github.com/parisp2p/community/pull/34

New repo and issue created here: parisp2p/francep2p.org#1

Done here: https://github.com/parisp2p/francep2p.org/pull/2 :)