Firefighter

Hey, very nice job!
I am wondering if you're planning to release a new environment for the firefighter problem, i.e., a grid world where a cell might have its state updated (burning, protected, none) after each iteration i.
(in a more simplistic configuration: a firefighter agent, an initial burning cell and a fixed object to protect)
Cheers!

Thanks Diego :)
I've never heard of this environment before, but it seems possible if someone wants to take the time to implement it. Can you explain more about the mechanics? Ie: when do cells become burning? What does it mean for a cell to be protected?

Absolutely! :-) Let's consider a NxN grid where (for the sake of simplicity) a single cell c_{1} has status = BURNING and all others c_{2}...c_{n} have status = NOT_BURNING. A firefighter agent FF is randomly placed at a cell c_{x}, which has status = PROTECTED. Thus, the simulation starts with 1 BURNING cell, 1 PROTECTED cell (where the agent is) and t-2 NOT_BURNING cells, where t=total cells.
In a minimalistic config. at each time step:

the fire spreads (i.e., all neighbor cells of c_{1} catch fire -> status=BURNING)
the FF agent protects one cell (status = PROTECTED)
the number of NON_BURNING cells is updated.

The objective of the game is to enclose and (consequently) stop the fire.
There are some derivations of this game (e.g., to prevent the fire to touch a highway), but this would be (one of) the simplest cenarios.

I think the easiest way to implement this sort of scenario without adding a new kind of object type would be to use colored floor tiles, and have each color mean something different, eg: red means burning, blue means not burning. Note that in MiniGrid the agent normally has a partially observable view and it can turn left/right.
Would every cell on the grid be able to catch fire, or only some cells which can burn?
The agent can protect a cell and stop it from burning by standing on it, but can this cell burn again once the agent moves away?
Do you have a link to another implementation, or pictures?

Normally every cell which is not protected can burn. And as soon as the agent protects the cell, it can not change its status (i.e., protected). So this would be the minimalistic version of the game. Yes, so I have a running implementation here, but was considering to explore your framework. Initial results using Q-Learning were not promising though.

Seems like if all neighboring cells to a burning cell catch fire, and the agent can only move one cell at a time, everything will be burning pretty fast, no? Like, if you have an 8x8 grid, and you set the corner on fire, then in just 7 steps everything is burning?

Oh, sorrry, didn't notice that. I just made it public now should work :-)

If you can protect multiple cells at each step, this environment seems not super weill suited for a gridworld, to be honest. It's more of a strategy game than something with an embodied agent.

Hm...see, actually the protection action just changes the status of a cell, in practice (this was also the way I implemented before in OpenAI). But I could consider, for now, that the agent just protects 1 cell at each step. The problem is that unlike the examples I've found here, the environment, in this case, is dynamic. For instance, imagine the lava crossing game you have, but the lava moves at each iteration (like a fire would [let's not consider speed and other factors here :-)]) and you have to figure out a way to reach a certain cell X.

To implement protection with multiple cells, I guess you could use the done action. The agent moves around, it uses the toggle action to protect the cell in front of it (or under it), and then it executes the done action when it has completed its "turn". Then the state of the world gets updated, and the agent gets to play again, protect more cells.

You'd have to implement the logic in your environment class itself. I would write a function update_fire and call it when self.actions.done is executed by the agent. You'd override the step function to intercept the done and toggle actions. There are examples of environments which override step under gym_minigrid/envs/.
The fire I would model as just colored Floor tiles if you want the agent to be able to walk over them. Red for burning, blue for not burning and green for protected or some such scheme.

I'm going to close this for now because, after further consideration, it seems to me like this environment is too different from the other MiniGrid environments. It doesn't share the same actions and structure. I think it should be its own package. Feel free to fork MiniGrid if you find the code to be a useful starting point.


"flutter upgrade" should have a "get me out of trouble" feature

I had some local changes, so I did this:
ianh-macbookpro:flutter ianh$ git status
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 8 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
nothing to commit, working directory clean
ianh-macbookpro:flutter ianh$ git branch -m "old"
ianh-macbookpro:flutter ianh$ git checkout -B master
Switched to a new branch 'master'
ianh-macbookpro:flutter ianh$ git status
On branch master
nothing to commit, working directory clean
ianh-macbookpro:flutter ianh$ flutter upgrade
Flutter from <unknown> (on )
flutter revision: 0494801b173a69121cc36dc32b27b6d68ffa77cf (12 hours ago)
engine revision : 9e1e1fba5474b458458b65f1aa1d0d730af2705b
fatal: no upstream configured for branch 'master'
Unable to upgrade Flutter. No upstream repository configured for Flutter.
ianh-macbookpro:flutter ianh$

I presumably did bad git here, but flutter upgrade should offer a way to get back on track.

When it does try to recover, would you expect it to (ask first! and) do something like git fetch upstream && git checkout master && git reset --hard upstream/master?

A --force flag was added with https://github.com/flutter/flutter/pull/29192 but it looks like the upstream branch was totally detached, so I'm not sure that should blindly be re-hooked up by the tool since who knows which remote you want origin/master to track (my origin/master tracks my fork, for example).
I'm not sure this can get more magical without decoupling from git.


[feature fix] Renamed pointers in v2 API to node_links

Purpose:
-https://github.com/CenterForOpenScience/osf.io/issues/3822 Because on the OSF pointers are called "links" to avoid confusion with JSON API links, on the API pointers should be renamed to "node_links"
Changes:

Name changes in nodes/serializers.py; route changes in nodes/urls.py; url changes in nodes/test_views.py

Side Effects:
Affects routes, docs, and how we return data.
Notes:
Closes issue:
https://github.com/CenterForOpenScience/osf.io/issues/3822

@brianjgeiger

Don't serializer names appear in the documentation (as the "model" for responses)? If so, then we'll want to rename the NodePointerSerializer.

This help text needs to be updated as well: https://github.com/reinaH/osf.io/blob/513d81c0bc8950011cf020b02057e569b8a32de7/api/nodes/serializers.py#L136-138

Similarly, do view class names and their docstrings appear in the API docs? If so, then these views need to be changed: https://github.com/reinaH/osf.io/blob/513d81c0bc8950011cf020b02057e569b8a32de7/api/nodes/views.py#L197-201

Passing this back to @reinaH . Please do a thorough search of the API for anywhere where "pointer" might be exposed to a user and rename it to use the new language.
Once that is done, ping @brianjgeiger to for review.

You don't have to close it, just make the changes and push to update the existing PR.

On Jul 31, 2015, at 2:50 PM, Reina Hernandez<EMAIL_ADDRESS>wrote:
Closed #3866.
—
Reply to this email directly or view it on GitHub.

Pass done. :penguin:  After these small docstring changes it can go to Steve.

@sloria


1.19.3, 1.19.4 crash when going to config (in game)

Description:
The game will crash.
Steps to reproduce:

Start Minecraft
Click mods
Select Borderless Window
Click Config

Versions:

Minecraft Version: 1.19.3, 1.19.4
Forge Version: 44.12.3 (1.19.3), 45.0.49 (1.19.4)
Mod Version: BorderlessWindow-1.19.1-1.5.2

Crash report  (if any, please use gist or pastebin and provide a link here):
https://gist.github.com/ForgeTheSteel/1de77b03f0deb5174cab2b3080c713a9 (1.19.3)
https://gist.github.com/ForgeTheSteel/273d6a8e7a099bac35b834f26a70470e (1.19.4)
Please list other mods that seem to cause the issue.
None
Thank you for your reporting!

Thanks for reporting! The crash is resolved for MC 1.19.4.


remove type-ignore declaration in repl.py to fix #125

fix lint error causing broken master branch

Please pardon the merge without review. The broken master was really bothering me.


Death by infinite loop

Using honggfuzz (nice tool btw), I have faced an interesting issue.
I was fuzzing a dynamic library on Android (closed source), using persistent mode and basic hardware code coverage.
Several code paths were full of infinite loops, triggering tons of hangs.
And basically, honggfuzz was dying in a few seconds (with performances dropping from very good to very very bad).
After investigating, I've found that honggfuzz was killing the child due to a timeout, as expected, but feedback routines were still called.
Problem is, during an infinite loop, performance counter values are high.
So faulty test case was found interesting by fuzz_perfFeedback and kept, literally poisoning the fuzzer by maximizing the hangs.
I've written a quick and dirty patch, and performances came from an average of 10 tests per seconds to more than 1000.
ignore_hangs_patch.txt

Sorry for providing a lame .txt instead of a pull request, but I honestly didn't spend more than a few minutes on my patch, didn't thinking about better ways or consequences. As I said, a few thoughts and a dirty hack ;)

I've added:
https://github.com/google/honggfuzz/commit/44f6b194a2dc0d684a12b5b2e7a7224f3345de8c
Hope this will help you

Yup, should solve this corner case perfectly.
Thank you very much for the faster than light patch.


[Bug] order by time field by value is null will casue be process exit.

Search before asking

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

Version
2.0.1
What's Wrong?
order by time field by value is null will casue be process exit.
What You Expected?
order by time field by value is null will casue be process not exit.
How to Reproduce?
No response
Anything Else?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

Can you provide the specific BE error information?
It would be better if the corresponding query statements and table creation statements could be provided.

CREATE TABLE tbl1(  idbigint(20) NOT NULL,  birthdate NULL ,  money bigint(20) SUM NULL DEFAULT "0", ) ENGINE=OLAP AGGREGATE KEY(id, birth) COMMENT 'OLAP' DISTRIBUTED BY HASH(id`) BUCKETS 3
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"is_being_synced" = "false",
"storage_format" = "V2",
"light_schema_change" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false"
insert into tbl1 values (1,null,1),(2,'2020-06-09',2),(3,null,3),(4,'2021-04-28',4)
select * from tbl1 order by birth;
`
Version 2.0.1 can run normally, you can send your case.


Transform with loop doesn't respect boolean condition

Two implementation pretty similar.

Without cycle. It simply check value found via XPath have something in common (valid for one found item)
exec(http("Request without cycle")    .get("url")    .check(status.is(200))    .check(xpath("ValidXpathHere")      .transformWithSession((data: String, session: Session) =>        data.indexOf(session("someId").as[String])).gt(-1)))

It throws error with value mismatch

With cycle. Similar to the first point but checks whole list of finding to contain some string
exec(http("Request with cycle")    .get("url")    .check(status.is(200))    .check(xpath("ValidXpathHere").findAll      .transformWithSession((data: Seq[String], session: Session) =>        data.foreach(it => it.indexOf(session("someId").as[String]).gt(-1)))))

It won't throw any error in case of value mismatch

The second one has completely broken because:

it abuses the implicit conversion from Int to Duration. This implicit conversion is for example used when calling pause(1)  instead of the actual pause(1.second). Here, gt is a method on Duration, not the Gatling check DSL method.
it doesn't have any check comparison step, so the default exists applies.

formatted:
(data: Seq[String], session: Session) =>
        data.foreach(it =>
          it.indexOf(session("someId").as[String]).gt(-1)
        )

with explicit conversions:
(data: Seq[String], session: Session) =>
        data.foreach(it =>
         // this results either true or false, but you don't do anything from that
          it.indexOf(session("someId").as[String]).seconds
           .gt(-1.seconds)
        )

This would work:
. transformWithSession((data: Seq[String], session: Session) =>
        data.foreach(it.contains(session("someId").as[String]))
        )
).is(true)

Next time, please use the community mailing list for such questions.

@slandelle I'm using version 3.5.1 and firstly you solution won't work for two reasons:

foreach doesn't know requested 'it' - simply shows 'can't resolve it'. So you should use something like

data.foreach(it => it.contains...)

When you correct first issue you will face with 'is check'. It's hard to tell where you placed that due to brackets count mismatch.

I guess you meant to place it on 'transform' level, right? That's kinda strange because I want to check every sequence item to contain some text or it should do a final check afterwards and in case of any false value will fail the check?
.transformWithSession((data: Seq[String], session: Session) =>
      data.foreach(it => it.contains(session("someId").as[String]))
    ).is(true)

If you do so you'll get type mismatch in my example (from the original description for the issue) - found Boolean but expected session.Expression[Unit]
exec(http("Request with cycle")
  .get("url")
  .check(status.is(200))
  .check(xpath("ValidXpathHere").findAll
    .transformWithSession((data: Seq[String], session: Session) =>
          data.foreach(it => it.contains(session("someId").as[String]))
        ).is(true)))

forall, not foreach.
  exec(http("Request with cycle")
    .get("url")
    .check(status.is(200))
    .check(xpath("ValidXpathHere")
      .findAll
      . transformWithSession((data: Seq[String], session: Session) =>
        data.forall(it => it.contains(session("someId").as[String]))
      )
    .is(true))
  )


Docker image crashing on start

I tried running silverbullet using the docker install, and got a crash on start:
deno run -A --unstable-kv --unstable-worker-options /silverbullet.js

#
# Fatal error in , line 0
# Check failed: Start().
#
#
#
#FailureMessage Object: 0x7ffe93949e60Aborted (core dumped)

The image ID is f70caebd6d8b if that helps. I am a little lost as to why, or even how to give more useful informations for debug

Can you tell me a bit about your environment? Could lack of memory be an issue? 1GB of RAM would be good to have.


Framework7-Vue Tabs + Navigation Bug

Framework7 version: ^3.0.0
Vue.js version: ^2.5.16
Platform and Target: Every browser
Live Link:

https://framework7-template-vue-webpack-dev-xonicljsec.now.sh
https://framework7-template-vue-webpack-build-bsiiaectsz.now.sh

Source code: https://github.com/qkdreyer/framework7-template-vue-webpack/commit/3ecad82271d70f891ed7f4ba662f8268447ea465

Describe the bug
Navigation in tabs can be blocked by a specific reproductible edge case.
To Reproduce
Steps to reproduce the behavior:

Click on f7-tab "Tab1" (bottom left)
Click on f7-link "Increment tab" twice (until you see Tab1 #3)
Use the top left f7-navbar back-link
Click on f7-link "Increment tab" once
You cannot use the top left f7-navbar back-link anymore

Expected behavior
Using the top left f7-navbar back-link should trigger a back navigation
Actual Behavior
Using the top left f7-navbar back-link is void
Screenshots

dev on localhost : http://g.recordit.co/cfTs7YmUWZ.gif
dev on now.sh : http://g.recordit.co/kCGLjcyc4R.gif
build on now.sh : http://g.recordit.co/RuDACDo3OZ.gif

Did you have time to look at it @nolimits4web ?

Bump :(

Is there a real usecase of such thing?

Ok, but why do you use routable Tabs here, looks like it can be used as usual pages.

Also noticed, you have page under tab. It is not supported. Page in Page is not supported

Because I have multiple tabs : http://g.recordit.co/PAFvbL5vXI.gif

It's working very well, it's pretty sad that going forward twice, back once, forward once, back twice is not working :/

I'd like to patch it, but I didn't find what's causing this bug yet. Maybe you could give me a starting point ?

Sadly this doesn't have any effect

Did you think about another workaround @nolimits4web ?

I’m still waiting for any advice/solution if that’s possible.

Did you think about another workaround @nolimits4web ? The one you gave me earlier never worked :/


[BUG] AzConfig Revisions Range Returns 416 Status Code

When calling ConfigurationAsyncClient.listSettingRevions with a Range value set in the SettingSelector throws an uncaught error:
com.azure.core.exception.HttpResponseException: Status code 416, (empty body)

when trying with a range(0,0). Other Range values result in the same error or no return.
Code Used:
SettingSelector settingSelector = new SettingSelector().keys(watchedKeyNames).labels(store.getLabels())
                .range(new Range(0, 0));
PagedFlux<ConfigurationSetting> settings = client.listSettingRevisions(settingSelector);
pagedResponses = page.collectList().block();

@alzimmermsft Can you please take a look?

I was taking another look at it, and it might not be range that is causing the issue, but the label value being used didn't exist in the store being searched. I added the label and now the search worked. I verified by searching for another label that didn't exist and I received similar results.

I was taking another look at it, and it might not be range that is causing the issue, but the label value being used didn't exist in the store being searched. I added the label and now the search worked. I verified by searching for another label that didn't exist and I received similar results.

This would align with getting a 416 response which is returned when the listing couldn't satisfy the range requested.

@alzimmermsft Can we improve the error message here to provide more useful guidance?

@JonathanGiles The HttpResponseException: Status code 416, (empty body), doesn't really point to the issue. What I would be expecting is something closer to an invalid input exception. Or at least the message saying "Expected n results, found none." That way it points to the expected range being the issue.

We are in agreement here. @alzimmermsft will look into improving the messaging.

@mssfang This is enhancing the message returned when this exception occurs.

I spoke to @JonathanGiles about this and concluded this to be a non-blocking issue for the GA release. We can look into fixing this post-GA.

As we discussed offline. This issue will no longer an issue. The Range object will need to be removed and using Paging to retrieve the latest revision. Each page will have 100 items at most.


soul.sql英文翻译

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

modify on the Original sql ，not add en.sql


simplify_alloc doesn't support nested clases

(m = /^(\w+(?:\[\])?)\[([0-9,]+)\]$/.match(value)) || raise(value)

Doesn't match for example Foo$Bar.
Should it just be:
(m = /^([\w\$]+(?:\[\])?)\[([0-9,]+)\]$/.match(value)) || raise(value)

Also raising with a better error message would be better.
@eregon

Fixed by #73.


Weird /r when scraping list

Version of the custom_component
6.6.1
Configuration
- name: in-počasi Praha
  resource: "https://www.in-pocasi.cz/predpoved-pocasi/cz/praha/praha-324/"
  scan_interval: 300
  log_response: false
  sensor:
    - unique_id: inpo_praha_forecast_test
      select: ".alfa"
      value_template: "{{(value|trim)[:-2]|float}}"
      attributes:
        - name: "rain"
          select_list: ".h-100 .text-nowrap:nth-child(3)"
          value_template: "{{value.replace('\r','').replace('\n','').replace(' ','').replace('mm','')}}"
Add your logs here.

Describe the bug
For some reason scraping the list into the attribute seems to generate a whole bunch of whitespace and /r/n, which I can partially remove with the .replace, but some sort of /r,/r separator always remains.
When I look at this in the template editor
{{state_attr('sensor.inpo_praha_forecast_test','rain')}}

it looks ok, but when I try to paste it here into the github issue box -- I get the carriage returns around each number. I can't find a way of cleanly removing these \r to generate a clean list. When I try by doing
{{state_attr('sensor.inpo_praha_forecast_test','rain').split('\r,\r')|map('float')|list}}

it prints ok in the template editor, but when actually pasted into a sensor, it always contains the \r.
No errors seem to be generated though.

#Expected behaviour:
The scrape should not include the \r\n codes.

I've played around a bit more with this -- not sure this is to do with multiscrape or the template parser in HA, but putting in
.replace('\r','')

in multiscrape's value_template doesn't seem to do anything. The \r's survive. I have to process them in a separate sensor.

This works for me: {{state_attr('sensor.inpo_praha_forecast_test','rain').replace('\r', '').replace('\n', '') }}

This works for me but only in the template sensor that I am defining from the sensor created by multiscrape. In the multiscrape sensor definition itself, if I put the .replace('\r','') in the value_template key, it doesn't seem to do anything.

Have you tried to trim instead of replacing?
{{ value | trim }}

I don't think it makes sense to keep this issue open.


Very Slow build Next 5

Thanks you making NextJS, We are using it at our company
Problem is it takes around 7-8 seconds to route to different page which is very slow
Example - I am in / route, if i go to /admin  it takes  DONE  Compiled successfully in 6946ms

Please provide a reproducible case, with code, it’s impossible to act on an issue saying: it doesn’t work for me
Also try upgrading to next@canary.


Fails with FileNotFoundError

Hi Ilia,
miteclock looks very promising!
When first calling it on the command line, it asks for the api.key as documented. But given the valid key, it then fails with an FileNotFoundError:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/[...]/.config/miteclock/apikey'

It seems the config files are not correctly set up!? I am running python 3.9.

Hi Sebastian!
Thanks for reporting this, I was able to reproduce and fix it. Configuration loading is something where we can definitely use some more exposure to flush out the bugs.
Feel free to give it another whirl after upgrading:
pip install -U miteclock

Let me know how it goes!

Works now. Thanks!


Can't search to the right of search term with Less as a pager

If search something with Ag and have my pager set to Less, I see my colorized output from my search. However if I try and use less's search to look through my results I can only search for terms to the left original search term. I will give an example.
lets suppose I am searching for the word foo, I would use the command
ag --pager="less" foo

now I see the Less output in my screen that looks like
...
foo don ton
bar foo bag
ged get foo
...

and so forth. However if I hit / or ? to search through the output of less it can't find terms that are to the right of foo, i.e. I can successfully search for bar, ged, or get but it can't find don, ton, or bag.
I am using ag version 0.32.0

I fixed this by moving to less version 418. I was previously on 381


HTML semantics

Description 📜
I will give a brief description about this topic through documentation

Domain of Contribution 📊

[x ] Frontend Dev (HTML, CSS, JS)

/assign

@code-reaper08  can you assign this issue to me, I will make a documentation in this topic html semantics.

/assign

/assign

/assign


incorrect size of DWORD dwExtraInfo in keyboard hook

Size of DWORD dwExtraInfo is 4 bytes, and on x64 arch pointer size is 8 bytes. We're storing a pointer in dwExtraInfo member, which will crash if the system allocator would want to supply us with pages from a higher virtual memory space half.

@yuyoyuppe
please reopen the issue until release


Self-serve custom domain setup

Create an easy workflow for users to add custom domains to their Grist documents.

Since this would be useful for custom branding, it would be good to include a feature to set a custom logo for the top-left corner, and adjust some aspects of the color scheme.

Any update on this yet?

Are we working on this? It has been close to 10 months.

Hi @anupamtandon, this is in our roadmap, but we're not yet working on it yet for our SaaS product. We have made progress on self-hosting, and self-hosted users can configure custom domains. I realize that doesn't help you, and I'm sorry if you've been waiting on this feature. In the last 10 months we have prioritized more and better integrations, reference lists, UI polish such as freezing columns and color-coded choices, incremental imports, international currencies, improvements to filtering and sorting, new chart options, document tours, many more templates, custom widgets revamp, and two-factor authentication. We do see custom domains as a useful feature. Internally, Grist has support for them (search for e.g. isCustomHost https://github.com/gristlabs/grist-core/search?q=isCustomHost&type=code), the main blocker to finishing this off is management of certificates for https connections for the custom host.

Okay Thank you. Look forward to this feature soon.

Hi @anupamtandon, this is in our roadmap, but we're not yet working on it yet for our SaaS product. We have made progress on self-hosting, and self-hosted users can configure custom domains. I realize that doesn't help you, and I'm sorry if you've been waiting on this feature. In the last 10 months we have prioritized more and better integrations, reference lists, UI polish such as freezing columns and color-coded choices, incremental imports, international currencies, improvements to filtering and sorting, new chart options, document tours, many more templates, custom widgets revamp, and two-factor authentication. We do see custom domains as a useful feature. Internally, Grist has support for them (search for e.g. isCustomHost https://github.com/gristlabs/grist-core/search?q=isCustomHost&type=code), the main blocker to finishing this off is management of certificates for https connections for the custom host.

Has custom domain been removed from  Grist SAAS roadmap?  I see that it has been moved out from "researching" . Do the Grist SAAS users have no hope for custom domain going forward or still we can hope to have it? I see a lot of discussion in other online forums about grist on how if custom domain was there, how many people would have not purchased other database tools and used Grist. Reluctantly, I too minimized use of Grist after a year of regular use. I see that custom domain for Grist would increase its value by 10 folds.  Please implement custom domain in Grist SAAS.

Create an easy workflow for users to add custom domains to their Grist documents.

Please incorporate this feature in Grist SAAS

Thanks @anupamtandon ! We hear you, and in fact, not all is lost. It's true that it's been pushed off our roadmap by other priorities, but we are about to release a new "Business" pricing tier (within a week!), and custom domains is one of the features we are looking into adding on that tier. So it may finally become a priority.


Improve error handling

This intends to give better error handling for velocitas init and velocitas sync.
Background is that you sometimes got misleading errors, like:

If the repo specified in velocitas.json did not exist it as reported as "format error"
For some git errors "raw" simple-git expections were shown, now I try to give more context specific velocitas errors. If you want the simple-git ones you need to use verbose mode
I try to do some more tests after clone. Hopefully to not just silently ignore that we failed to clone due to rate limit.

Below is an example of how it could look like after this PR when trying to use a non-existing repo

I did some updates to testing to make things running, but in general the mocking is quite messy, especially if you want to trigger specific error situations.

FYI @mikehaller - this one may give better errors if clone fails due to rate limiting.


typo in collect_node_diag.sh - JMX_OPTS

JMX_OPTS not getting set as intended

created https://github.com/DataStax-Toolkit/diagnostic-collection/pull/51


ButtonCell style

I need to style the ButtonCell.
How can i change the button background and border?

ReoGrid draws the button use standard .NET library, it cannot be styled.

You can draw your own button by using CellBody class. See Custom cell

Use ImageButton, just create your button as image. See Built-in cell types


Report battery status to Gadgetbridge more often

Make gbridge widget report battery status at regular intervals and shortly after connecting, instead of just when the widget is loaded.

This looks great, thanks! However any idea why there's the extra Bluetooth.println(""); in there?

That's explained in the commit message for that change - as far as I can tell, Gadgetbridge completely ignores the first line of text sent to it after connecting (at least on my phone). Prepending an empty line to each message to each line was the simplest workaround I could think of.

Another weird issue - after being connected to my watch for a few hours Gadgetbridge seems to stop displaying the battery status updates changes until I disconnect and reconnect. Reloading the widget doesn't help, so I don't think the problem is in my code.

Thanks - sorry, missed that.
Strange about the lack of updates. If you were able to run adb logcat on your PC with the phone connected you'd get a bunch of log messages and I guess you might see if Gadgetbridge was actually getting the sent data or was mentioning it had dropped it somehow


fix(cheatcodes): make parseJson revert if key does not exist

Motivation
Closes #5369.
Right now, it's possible to use parseJson to look up inexistent keys. Ideally, this should revert, as this will "fail" silently leading to unexpected situations.
Solution
Make parseJson revert if key does not exist.
Should we consider this breaking @mds1 ?

Before merging we should discuss whether we want this behavior of reverting on a non-existent key vs. leaving existing behavior and adding a jsonKeyExists helper method. See the discussion here where @prestwich and co. preferred the existing behavior https://github.com/foundry-rs/forge-std/pull/226 because it enables support for optional keys which is common practice

Ahhh right, i had not seen this convo—honestly after reading prestwich's comments i lean to having the helper method instead. wdyt @mds1?

Yea I also agree and think we should add a native helper method to check for a key's existence + ensure this behavior (not reverting on non-existent key) is documented

awesome, closing this pr to instead open a new one with the native cheatcode

superseded by https://github.com/foundry-rs/foundry/pull/5431


Reruns (all?) workflows when only performance flags change

Just trying to confirm that this is the expected behavior, and if so maybe request a feature for different behavior. When I run fmriprep in Windows 10 by calling docker directly
docker run --rm -ti -v C:\Users\psadil\data\vtf:/data:ro  -v C:\Users\psadil\data\vtf\derivatives:/out -v C:\Users\psadil\data\vtf\derivatives\work:/scratch poldracklab/fmriprep:1.0.0-rc2 /data /out participant --output-space T1w template fsnative fsaverage --write-graph -w /scratch --n_cpus=4 --mem_mb=10240
and then rerun without flags to handle performance
docker run --rm -ti -v C:\Users\psadil\data\vtf:/data:ro  -v C:\Users\psadil\data\vtf\derivatives:/out -v C:\Users\psadil\data\vtf\derivatives\work:/scratch poldracklab/fmriprep:1.0.0-rc2 /data /out participant --output-space T1w template fsnative fsaverage --write-graph -w /scratch
frmiprep begins rerunning ANTs. Is that expected? Does calling fmriprep with different flags always invalidate its cache? I'm only able to run on a local machine and so would like to be able to avoid as much duplicated processing as possible.
Thanks,

That should not invalidate the cache, no. I wonder if there's a Windows/Docker issue here. Are you able to replicate this on a Linux machine?

@effigies: we should also check the hash metadata of all inputs of that node, DYT?

@effigies - I could not replicate this on a Linux machine. I ran that first command (with performance flags) in Ubuntu 17.04, waited until seeing
[Job finished] jobname: t1_skull_strip: 47
crtl+c'd, then ran the second command (without flags). fmriprep didn't pause during execution of the t1_skull_strip node, so I'm assuming it was able to grab what had already been run.

@oesteban I'm not entirely sure what you mean, there.
@psadil Okay, I'm going to guess this is an issue with mounting Windows filesystems (@chrisfilo, have you seen this before?). You may be able to resolve it by creating/updating a nipype.cfg file the following lines:
[execution]
hash_method = timestamp

This can be hooked into Docker using fmriprep-docker --config <config_file>, or adding -v /path/to/nipype.cfg:/root/.nipype/nipype.cfg:ro to a Docker command line.

I don't recall seeing this and I depend on cache quite a bit.
On Aug 16, 2017 8:06 AM, "Chris Markiewicz"<EMAIL_ADDRESS>wrote:

@oesteban https://github.com/oesteban I'm not entirely sure what you
mean, there.
@psadil https://github.com/psadil Okay, I'm going to guess this is an
issue with mounting Windows filesystems (@chrisfilo
https://github.com/chrisfilo, have you seen this before?). You may be
able to resolve it by creating/updating a nipype.cfg
https://nipype.readthedocs.io/en/latest/users/config_file.html file the
following lines:
[execution]
hash_method = timestamp
This can be hooked into Docker using fmriprep-docker --config
<config_file>, or adding -v /path/to/nipype.cfg:/root/.
nipype/nipype.cfg:ro to a Docker command line.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/poldracklab/fmriprep/issues/668#issuecomment-322622158,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAOkp6CnkGVcwCGWQobkykzovRv0-esGks5sYjJqgaJpZM4O4CdE
.

@chrisfilo - Here's to hoping that I haven't just set things up in a weird way...Sorry to be a bother if that's the case. For what it's worth I get the same behavior when I change the number of cores allocated to docker through their internal settings.
@effigies - Would the fmriprep docker image have come with a nipype.cfg file? I haven't created one for it. I'm just looking to confirm that I can safely just mount a new one and not overwrite anything?

Oh.... the issue may be that the "number of threads" input to the ANTs programs is being changed, causing nipype to think the node needs re-running.
I'll look to see if we can exclude these inputs from the cache invalidation check. It may require a nipype patch.

Hmm - nohash=True should've prevented this from happening.
On Wed, Aug 16, 2017 at 9:30 PM, Chris Markiewicz<EMAIL_ADDRESS>wrote:

Oh.... the issue may be that the "number of threads" input to the ANTs
programs is being changed, causing nipype to think the node needs
re-running.
I'll look to see if we can exclude these inputs from the cache
invalidation check. It may require a nipype patch.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/poldracklab/fmriprep/issues/668#issuecomment-322771181,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAOkp2V9rZfy1uoX0ieQroQAuR02DJzWks5sYu7fgaJpZM4O4CdE
.

@effigies - okay. It's going to be a day or two before I can test that, but I'll report back when I've tried.

Alright. Thanks for your help and patience. Sorry that this isn't working as expected.

@effigies I meant the nohash metadata. But for some reason I said hash.

@psadil Has this issue been resolved?

@effigies just ran the test today (sorry for the delay, I'm away from work for a bit). I ran fmriprep via docker, as above, trying both hash_method = timestamp and hash_method = content. In both cases, I called docker and set --n_cpus=4, waited until t1_skull_strip jobid: 47 was reported as [finished], and then reran without the --n_cpus flag. I didn't notice fmriprep working on any of the other nodes that had been marked as finished, but in both cases it had to redo the t1_skull_strip jobid: 47 node.
Just to check, I reran fmriprep a second time without the --n_cpus flag (i.e., a third time with hash_method = content, after stopping the process once 47 was finished on the first run without --n_cpus). fmriprep didn't pause on 47, so at least there it was able to use the cache when the --n_cpus flag didn't change.

Please reopen if this has not been resolved.


A callout with a class of primary uses the $secondary-color variable for it's border

How can we reproduce this bug?
Display a callout component with a class of primary
Write out the HTML (or Inky code) that causes the issue.
<callout class="primary"></callout>
What did you expect to happen?
Call out to use the $primary-color variable
What happened instead?
The $secondary-color variable is used
What email clients does this happen in?
Not tested but I would assume all.

https://github.com/foundation/foundation-emails/blob/develop/scss/components/_callout.scss#L58

Hi, @DanielRuf, there is a problem with your latest PR #978, $callout-border-primary variable is not defined.

Hi @evanre,
thanks for the hint. I guess it should be $callout-border?
https://github.com/foundation/foundation-emails/blob/e0308e1d1ec3f5d5f97bdff6a85fd1abd007e363/scss/components/_callout.scss#L27
Do you want to provide a PR? That would be very helpful.

But I guess we can remove the line there then, see https://github.com/foundation/foundation-emails/blob/develop/scss/components/_callout.scss#L52

@DanielRuf I've created a PR #979 (Used your latest PR as an example). I think the best way to solve this is to just define the variable and keep the consistency to other variables and modifier classes.


[Virtualize] Custom (slower) springConfig is jumpy

My use case is closest to Demo 8, so I also tried successfully to reproduce there. Simply just using some springConfig that is slower than the original settings - result is that during the animation it suddenly jump to the end state. These parameters are very slow..  but same issue is with anything slightly slower than original.
I have been changing the slides using keyboard (arrow keys).
So here is snippet from customized DemoVirtualized.
          <VirtualizeSwipeableViews
            springConfig={{
              stiffness: 100,
              dumping: 30
            }}
            index={this.state.index}
            onChangeIndex={this.handleChangeIndex}
            slideRenderer={slideRenderer}
          />

Any idea whats going wrong? Let me know if you can't reproduce.
Thank you.

That's most likely linked to https://github.com/oliviertassinari/react-swipeable-views/issues/171.
I have an hard coded timeout to 500ms.

I have just fixed a related issue on the browser and native.animated: 34b5c1838a624609ff3a335559440b9a288b5245.
Before:

After:

@oliviertassinari Just tried the new release, but still has that jumpiness that I described in initial description. Just to point out I am using keys in this case to go to the next slide - it slides nicely but shortly before the end it just jump to the final position.
Can you reproduce on example from initial description?

@jardakotesovec Could you post a full example into a different issue? That would help. Thanks!

@oliviertassinari I can, but I would copy&paste exactly the same description, because its still exactly the same issue I reported here, so reopening I think would be less confusing.
With regards to full example - I am using DemoVirtualize.js from react-swipeable-views/docs/src/Demo. And just adding springConfig with slower settings than its the default. And than using arrow keys to move between slides.

Solved in https://github.com/oliviertassinari/react-swipeable-views/commit/5eeb421be1072a92068d65ef1eecfacb28fbfe01.

@oliviertassinari Thanks!

@jardakotesovec That was a different issue, I have opened https://github.com/oliviertassinari/react-swipeable-views/issues/184 for investigating a better solution.


Enable IPEXModel with deepspeed

This PR enables IPEXModel with deepspeed and needs to use the intel_extension_for_pytorch environment to run.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

Hi @echarlaix . This PR is ready for review. The main change for IPEXModel is that the new API of _from_models. Do you accept it? If so, I will add some tests for this API by your instruction. If not, could you share your idea of how to enable deepspeed by IPEXModel? Thx!

Hi @echarlaix . Can you take a look at my new changes? I integrated the ipex_jit_trace in the __init__ method so users can use the init method to get an exported model.

HI @IlyasMoutawwakil . Can you help take a look at this PR? Thx!

Hi @echarlaix . Thanks for your review, I have fixed all your comments.


Provide automatic consent for Globus

Provide automatic consent for Globus. Resolves #298 (alternative approach to #300).

@tylern4 @lukaszlacinski Could you review this pull request, please?
I tested with the following two lines:
# This will prompt the user to enter consent information
zstash create --hpss=globus://nersc/~/n298_pm_dev_with_flag --globus-consent-prompt zstash_demo

# This will not. (It will fail unless consents have already been granted).
zstash create --hpss=globus://nersc/~/n298_pm_dev_no_flag zstash_demo

My one remaining problem is I can't be entirely sure everything is working properly until I can disable currently granted consents. Nothing I do seems to actually accomplish this.
# Disable consents to test consent activation
# Go to NERSC HPSS on web interface
# https://app.globus.org/file-manager/collections/9cd89cfd-6d04-11e5-ba46-22000b92c6ec/overview
# > Manage Consent
# No consents found
# Go to settings page on web interface
# https://app.globus.org/settings/identities
# > Consents
# > Manage Your Consents
# All consents are from years ago

@golaz Would it be better to have the user include a --globus-consent-prompt flag (implementation in this pull request) or a --bypass-globus-consent flag? The former is better from a backwards-compatibility standpoint (i.e., users won't suddenly find they need to provide input before zstash can continue. The latter is better from a usability standpoint (i.e., users won't run into the 'ConsentRequired' error unless they explicitly disable the consent prompt).
@xylar @chengzhuzhang This is the pull request I would like to include in the immediate zstash / E3SM Unified patch release

@forsyth2,  @tylern4, @lukaszlacinski:
I'm not sure I fully understand the complication here. But I'm concerned that we are going to confuse users for no good reason if we have to add a command line argument to either opt-in or opt-out.
If we go with opt-in, users probably won't bother to figure out what they need to do and they'll complain that zstash is not working or will bother @forsyth2 unnecessarily.
If we go with opt-out, users need to constantly add an additional command line argument which just complicates the zstash syntax for not good reason.
There must be a way we can determine if consent is required, and walk users through the steps only when that is needed, no?

Okay I looked through your code a bit more and I recommend against the flags, and removing my globus_flow code since it looks like you're using a module (fair_research_login) which handles the Globus OAuth flow for you. My code was just a quick hack to get things working 😂
What you can do is wrap your transfers in a try/execpt block to catch if there are problems and only then ask for the consent if needed. This is around 223 in your globus.py and should works to activate the source endpoint.
        try:
            task = transfer_client.submit_transfer(transfer_data)
        except TransferAPIError as err:
            if err.info.consent_required:
                native_client = NativeClient(
                    client_id="6c1629cf-446c-49e7-af95-323c6412397f", app_name="Zstash")
                native_client.login(
                    requested_scopes=f"urn:globus:auth:scope:transfer.api.globus.org:all[ *https://auth.globus.org/scopes/{remote_endpoint}/data_access ]")

The problems to solve though is multifold, since it may not always be the remorte_endpoint and if you request for an older v4 endpoint it will fail on the request. I also have some code that finds if an endpoint is v4 or v5 which could help decide which endpoints you need to get the data_access consent for
def check_endpoint_version_5(transfer_client, ep_id):
    logging.debug(f"Checking {ep_id}")
    output = json.loads(transfer_client.get_endpoint(ep_id))
    logging.debug(f"Version is {output['gcs_version']}")
    if int(output['gcs_version'].split('.')[0]) >= 5:
        return True
    else:
        return False

You can also get more than one data_access consent at the same time and it shouldn't hurt to get it again. To get multiple requests in one login you can put a list of endpoints in the request.
f"urn:globus:auth:scope:transfer.api.globus.org:all[ *https://auth.globus.org/scopes/{remote_endpoint}/data_access *https://auth.globus.org/scopes/{local_endpoint}/data_access ]"

@tylern4 Thanks for the updates! I've included them in the latest commit. How do the changes look now?
Re: https://github.com/E3SM-Project/zstash/issues/298#issuecomment-1751390908 -- thank you, I was able to rescind consents, and I did get prompted for a new consent. However, I notice that I'm sometimes able to successfully transfer files even after rescinding a consent. Is rescinding a consent not instantaneous? Is there some sort of lag time?
For reference, I've tested using the following scripts.
Chrysalis:
DIR_NAME=test_298_pre_consent_chrysalis

rm -rf zstash_demo

mkdir zstash_demo
mkdir zstash_demo/empty_dir
mkdir zstash_demo/dir
echo 'file0 stuff' > zstash_demo/file0.txt
echo '' > zstash_demo/file_empty.txt
echo 'file1 stuff' > zstash_demo/dir/file1.txt

conda activate zstash_dev_n298
zstash create --hpss=globus://nersc/~/${DIR_NAME} zstash_demo # Successful even without any consents

Perlmutter:
DIR_NAME=test_298_pre_consent_pm

hsi rm -R /home/f/forsyth/${DIR_NAME}
rm -rf zstash_demo

mkdir zstash_demo
mkdir zstash_demo/empty_dir
mkdir zstash_demo/dir
echo 'file0 stuff' > zstash_demo/file0.txt
echo '' > zstash_demo/file_empty.txt
echo 'file1 stuff' > zstash_demo/dir/file1.txt

conda activate zstash_dev_n298
zstash create --hpss=globus://nersc/~/${DIR_NAME} zstash_demo # Successful even without any consents
hsi ls /home/f/forsyth/${DIR_NAME}

I'm not sure how long the consents take to propagate but my experience with other Globus actions is that it may take a few seconds-minutes.
I added some changes in https://github.com/E3SM-Project/zstash/pull/306 to check both endpoints versions and get the consents. It's needed if both endpoints are v5 like the original NERSC HPSS to NERSC Perlmutter transfer.
The one note is that it will quit after an initial run and ask the user to submit another. I believe this is because it would need to re-new the transfer_client to get the scopes. There may be a more elegant way of doing it but restarting also works.

@tylern4 Thanks for your edits in #306. I ran zstash with them, but everything still works as if I have granted consents (even though I rescinded them yesterday). Is there some sort of hidden directory/cache on the machine? Am I missing something on the web page?
@mahf708 @golaz @chengzhuzhang @tomvothecoder I'm really trying to get this merged (by end of week), so it can be included in the upcoming patch release of E3SM Unified. I feel like the always-having-consents-granted problem may be specific to me. If any of you have time, can you please try running the following?
On Chrysalis:
cd zstash

# Set up branch
git remote add tylern4 git@github.com:tylern4/zstash.git
git fetch tylern4
git checkout -b issue-298v2-tylern4-chrysalis tylern4/issue-298v2

# Set up environment (if you don't have a zstash development environment set up)
mamba clean --all
mamba env create -f conda/dev.yml -n zstash_dev_issue_298

# Use latest code
pip install .

# Manual test
mkdir zstash_test
echo 'file0 stuff' > zstash_test/file0.txt
zstash create --hpss=globus://nersc/~/test_298_chrysalis zstash_test

# You should receive a prompt to enter a code to grant consent.
# Enter the code and then the command should complete successfully.

# I do not get this prompt, implying I already have the necessary consent,
# even though I have no relevant consents listed on the web page.

# If you want to be extra sure it worked, switch to Perlmutter and run:
hsi
ls test_298_chrysalis
# You should see a tar file and an index file.

On Perlmutter:
cd zstash

# Set up branch
git remote add tylern4 git@github.com:tylern4/zstash.git
git fetch tylern4
git checkout -b issue-298v2-tylern4-perlmutter tylern4/issue-298v2

# Set up environment (if you don't have a zstash development environment set up)
mamba clean --all
mamba env create -f conda/dev.yml -n zstash_dev_issue_298

# Use latest code
pip install .

# Run test
python -m unittest tests/test_globus.py

# Ideally, you should receive a prompt to enter a code to grant consent.

# It's most likely you won't get a prompt, but rather the test will just hang after `create`.
# That's because the test uses `communicate`
# (https://github.com/E3SM-Project/zstash/blob/main/tests/base.py#L55)
# which apparently doesn't pass on the prompt to the user.
# If the test just hangs, control + c to exit it. Then run `rm -rf zstash_test` to clean up.

# My test passes, with no prompt for consent and no hang, implying I already have the necessary consent,
# even though I have no relevant consents listed on the web page.

It's not ideal that the test just hangs, but when GitHub Actions run the unit tests, it skips the tests requiring HPSS (including the Globus test), so it at least won't cause the build/release to fail. To get around the hang, you'd need to run the stand-alone globus_flow script (https://github.com/E3SM-Project/zstash/issues/298#issuecomment-1728610607), but I don't need you to worry about that.

This is where my consent appears

Yes, that's where my consents appear as well. Did you delete just the most recent one ("Zstash Login Test") or all of them? It's interesting that you get 'AuthenticationFailed'. I thought you would get 'ConsentRequired' as in https://github.com/E3SM-Project/zstash/issues/298#issue-1892942751. I think that does mean there's an error somewhere. We want the following:
IF consents not granted:
    prompt for consent
    Get consent
proceed with command

Are you logged into LCRC and NERSC on Globus? Perhaps you're missing some credentials.

@forsyth2 @mahf708  Your Globus tokens are stored in ~/.globus-native-apps.cfg if you remove all the consents you've made the token stored in the file invalid (It's a security feature because if that token was compromised you should be able to log in and remove access making it invalid).
So for testing I've been removing all the consents, rm -rf ~/.globus-native-apps.cfg and going through the full Globus login process again.
I put a small fix in this morning to the and the two tests I've been running have been working from Perlmutter. The pytests don't seem to return the second prompt for auth which is why they hang.
# Test from Perlmutter (v5) to Globus test endpoint (v4)
perlmutter $ zstash create --cache=zstash --hpss=globus://ddb59aef-6d04-11e5-ba46-22000b92c6ec/~/zstash_test/ zstash_test

# Test from Perlmutter (v5) to NERSC HPSS (v5)
perlmutter $ zstash create --cache=zstash --hpss=globus://nersc/~/zstash_test/ zstash_test

I ran the following. Everything now appears to work correctly for me! Thank you @tylern4 and @mahf708!! I think I can actually proceed with merging this now.
A manual test:
# On Chrysalis:
cd zstash
git checkout issue-298v2-tylern4-chrysalis
git fetch tylern4
git rebase tylern4/issue-298v2 # Get second commit
conda activate zstash_dev_n298
pip install .
cd ../zstash_testing
mkdir zstash_test
echo 'file0 stuff' > zstash_test/file0.txt
# Confirmed no recent consents on https://auth.globus.org/v2/web/consents
rm -rf ~/.globus-native-apps.cfg
zstash create --hpss=globus://nersc/~/test_298_chrysalis_pre_consent zstash_test
# Asked for consent
# Completes successfully
mkdir zstash_test2
echo 'file0 stuff' > zstash_test2/file0.txt
zstash create --hpss=globus://nersc/~/test_298_chrysalis_post_consent zstash_test
# Completes successfully, without any prompt.

# On Perlmutter:
hsi ls /home/f/forsyth/test_298_chrysalis_pre_consent
hsi ls /home/f/forsyth/test_298_chrysalis_post_consent
# I see a tar file and an index file, for both.

# Confirmed no recent Perlmutter consents on https://auth.globus.org/v2/web/consents
rm -rf ~/.globus-native-apps.cfg
python -m unittest tests/test_globus.py
# Asked for consent
# Test passes!
python -m unittest tests/test_globus.py
# Test passes! (No prompt this time)
python -m unittest tests/test_*.py
# All tests pass, no prompt for consent.

@tylern4 I'm wondering if we actually need this pull request. I noticed you had sys.exit(0) in your code, but zstash wasn't exiting after prompting for consents, so it seemed like that code block wasn't even being reached.
I then tried running with the latest official release of Unified, and it remarkably prompted for consent. I'm assuming either 1) the conda build picked up a very new version of a dependency that handles the consents, 2) removing ~/.globus-native-apps.cfg was all we ever had to do in the first place.
I feel like it has to be the latter case, since I haven't rebuilt the development environments today but I couldn't get the code working this morning. Then again, we were running into ERROR: ('POST', 'https://transfer.api.globus.org/v0.10/transfer', 'Bearer', 403, 'ConsentRequired', 'Missing required data_access consent'... when using E3SM Unified, so that seems to imply something must have changed with the dependencies. Perhaps a combination of both things then?
Is there a case we do need the changes in this pull request then?
Unit test:
# On Perlmutter:
cd zstash
git checkout -b main upstream/main
source /global/common/software/e3sm/anaconda_envs/load_latest_e3sm_unified_pm-cpu.sh # Use last official release
# Rescind relevant consents on https://auth.globus.org/v2/web/consents
rm -rf ~/.globus-native-apps.cfg
python -m unittest tests/test_globus.py
# Includes a "Please Paste your Auth Code Below:" prompt.
# If I enter the code, the test continues on and passes.

Manual test:
# On Chrysalis:
cd zstash
git checkout -b main upstream/main
source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh # Use last official release
# Rescind relevant consents on https://auth.globus.org/v2/web/consents
rm -rf ~/.globus-native-apps.cfg
cd ../zstash_testing
mkdir zstash_test
echo 'file0 stuff' > zstash_test/file0.txt
zstash create --hpss=globus://nersc/~/test_298_chrysalis_unified zstash_test
# Includes a "Please Paste your Auth Code Below:" prompt.
# If I enter the code, the command continues on and completes successfully.
mkdir zstash_test2
echo 'file0 stuff' > zstash_test2/file0.txt
zstash create --hpss=globus://nersc/~/test_298_chrysalis_unified_post_consent zstash_test2
# Completes successfully, with no prompt.

On Perlmutter:
hsi ls /home/f/forsyth/test_298_chrysalis_unified
hsi ls /home/f/forsyth/test_298_chrysalis_unified_post_consent
# I see a tar file and an index file, for both

@forsyth2  I'm not sure why you can't remove the consents, maybe you're the owner of the client_id so the consents are different?  When I do and try it does go to the sys.exit.
If I instead replace the sys.exit with re-trying the transfer.
diff --git a/zstash/globus.py b/zstash/globus.py
index 5d51f36..c3a057f 100644
--- a/zstash/globus.py
+++ b/zstash/globus.py
@@ -65,10 +65,7 @@ def submit_transfer_with_checks(transfer_data):
             native_client.login(
                 requested_scopes=scopes
             )
-            # Quit here and tell user to re-try
-            print("Consents added, please re-run the previous command to start transfer")
-            sys.exit(0)
-            # I think what's happening is that it needs to reload the token with the new consents
+            task = transfer_client.submit_transfer(transfer_data)
         else:
             raise err
     return task

I get (starting from the first submit_transfer that gets caught).
INFO: request done (success)
INFO: TransferClient.get_endpoint(ddb59aef-6d04-11e5-ba46-22000b92c6ec)
INFO: request done (success)
INFO: TransferClient.get_endpoint(6bdc7956-fc0f-4ad2-989c-7aa5ee643a79)
INFO: request done (success)
INFO: Creating client of type <class 'globus_sdk.services.auth.client.native_client.NativeAppAuthClient'> for service "auth"
INFO: Finished initializing client, client_id=6c1629cf-446c-49e7-af95-323c6412397f
INFO: ScopesMismatch: Requested scopes not found: {'urn:globus:auth:scope:transfer.api.globus.org:all[', '*https://auth.globus.org/scopes/6bdc7956-fc0f-4ad2-989c-7aa5ee643a79/data_access', ']'}. A login is required.
INFO: Starting Native App Grant Flow
INFO: Autogenerating verifier secret. On low-entropy systems this may be insecure
INFO: Got authorization URL: https://auth.globus.org/v2/oauth2/authorize?client_id=6c1629cf-446c-49e7-af95-323c6412397f.....
Please paste the following URL in a browser:
https://auth.globus.org/v2/oauth2/authorize?client_id=6c1629cf-446c-49e7-af95-323c6412397f.....
Please Paste your Auth Code Below:
zzzzzzzzzzzzzzzzzzzzzz
INFO: Final Step of 3-legged OAuth2 Flows: Exchanging authorization code for token(s)
INFO: Fetching new token from Globus Auth
INFO: request done (success)
INFO: Revoking token
INFO: request done (success)
INFO: Revoking token
INFO: request done (success)
INFO: TransferClient.submit_transfer(...)
INFO: request retry_sleep(0.7231529762715745) [max=10]
INFO: request retry_sleep(0.891779722599951) [max=10]
INFO: request retry_sleep(1.5567880858415035) [max=10]
INFO: request done (success)
ERROR: ('POST', 'https://transfer.api.globus.org/v0.10/transfer', 'Bearer', 401, 'AuthenticationFailed', 'Token is not active', '8NGvP8pra')```

The authorization fails because the `transfer_client` is still using the old tokens and needs to get the new ones with the right consents. When I just re-run the last `zstash` command again it gets a new `tranfser_client` with the right consents and succeeds. That's why I just put the print message and exited to tell users to try again.

I then tried running with the latest official release of Unified, and it remarkably prompted for consent.

Stepping through with pip install . && python -m unittest pdb tests/test_globus.py, I see that on the unit test (on Perlmutter, main branch), the prompt is triggered by native_client.login(no_local_server=True, refresh_tokens=True) (https://github.com/E3SM-Project/zstash/blob/main/tests/test_globus.py#L62).
On the manual test (on Chrysalis):
mkdir zstash_test
echo 'file0 stuff' > zstash_test/file0.txt
source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh
zstash create --hpss=globus://nersc/~/test_298_manual zstash_test
# Get this error, even though it just worked in my above comment...
# globus_sdk.services.auth.errors.AuthAPIError: ('POST', 'https://auth.globus.org/v2/oauth2/token', None, 400, 'Error', 'Bad Request')

I'm not sure why you can't remove the consents

I thought I was successfully removing the consents. After all, everything worked fine in https://github.com/E3SM-Project/zstash/pull/304#issuecomment-1758278104 and strangely, using the latest E3S Unified, in https://github.com/E3SM-Project/zstash/pull/304#issuecomment-1758482932.

When I do and try it does go to the sys.exit.

Hmm yeah I don't seem to ever get there. I just don't understand why it's behaving differently.
Also re: the sys.exit should it be sys.exit(1) instead so it doesn't exit with the successful 0-code?

@lukaszlacinski Can you please review these comments starting at the 4th above this one (https://github.com/E3SM-Project/zstash/pull/304#issuecomment-1758278104). I think this is probably ready to merge, but it bothers me that I can't seem to get consistent behavior nor behavior matching what @tylern4 gets.

@lukaszlacinski Can you please review these comments starting at the 4th above this one (#304 (comment)). I think this is probably ready to merge, but it bothers me that I can't seem to get consistent behavior nor behavior matching what @tylern4 gets.

Consents are per client and per scope. Tokens and consents (if have been rescinded or never given) for different scopes  are requested in two different places in globus.py:

in globus_activate() when calling native_client.login() for two scopes: openid and urn:globus:auth:scope:transfer.api.globus.org:all
in submit_transfer_with_checks() for three scopes: urn:globus:auth:scope:transfer.api.globus.org:all[, *https://auth.globus.org/scopes/{ep_id}/data_access`, and ]

Please check the log record

INFO: ScopesMismatch: Requested scopes not found: {'urn:globus:auth:scope:transfer.api.globus.org:all[', '*https://auth.globus.org/scopes/6bdc7956-fc0f-4ad2-989c-7aa5ee643a79/data_access', ']'}. A login is required.
in the last @tylern4 comment.

Scopes are specified in one string with a space as a separator. If data access scopes for GCSv5 mapped endpoints are added to scopes the NativeClient() in globus_activate() is created for, then transfer_client.submit_transfer() should not throw TransferAPIError exception about a missing consent.

@lukaszlacinski Sorry, I'm still confused about what these scopes mean for the difference in behavior between myself and @tylern4. Am I supposed to be rescinding more consents/authentications than I am between tests?

Latest tests:
Chrysalis
I notice that the Chrysalis endpoint (https://app.globus.org/file-manager/collections/61f9954c-a4fa-11ea-8f07-0a21f750d19b/overview) has a warning: "This endpoint must be migrated to Globus Connect Server version 5 by December 18, 2023 for continued support. ". So, it looks like it hasn't been updated to need consents yet. I wonder if that's why I was getting different behavior there.
Current Unified:
$ mkdir zstash_test
$ echo 'file0 stuff' > zstash_test/file0.txt
$ source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh
$ zstash create --hpss=globus://nersc/~/test_20231024_chrysalis_1 zstash_test
globus_sdk.services.auth.errors.AuthAPIError: ('POST', 'https://auth.globus.org/v2/oauth2/token', None, 400, 'Error', 'Bad Request')

Using this pull request:
$ cd zstash
$ git fetch upstream issue-298v2
$ git checkout -b n298-20231024 upstream/issue-298v2
$ mamba clean --all
$ mamba env create -f conda/dev.yml -n zstash_dev_n298_20231024
$ conda activate zstash_dev_n298_20231024
$ pip install .
$ cd <testing directory>
$ mkdir zstash_test
$ echo 'file0 stuff' > zstash_test/file0.txt
$ zstash create --hpss=globus://nersc/~/test_20231024_chrysalis_2 zstash_test
# Prompted for auth code
ERROR: ('POST', 'https://transfer.api.globus.org/v0.10/transfer', 'Bearer', 403, 'PermissionDenied' ...

# Activated my credentials for NERSC HPSS
$ rm -rf zstash_test
$ mkdir zstash_test
$ echo 'file0 stuff' > zstash_test/file0.txt
$ zstash create --hpss=globus://nersc/~/test_20231024_chrysalis_3 zstash_test
# Same error

# Specifically went to NERSC HPSS in the file manager, where it said I need to log in. I logged in.
$ rm -rf zstash_test
$ mkdir zstash_test
$ echo 'file0 stuff' > zstash_test/file0.txt
$ zstash create --hpss=globus://nersc/~/test_20231024_chrysalis_4 zstash_test
# Success!
# Confirmed `test_20231024_chrysalis_4/ ` exists on NERSC `hsi`.

Perlmutter
Current Unified:
$ mkdir zstash_test
$ echo 'file0 stuff' > zstash_test/file0.txt
$ source /global/common/software/e3sm/anaconda_envs/load_latest_e3sm_unified_pm-cpu.sh
$ zstash create --hpss=globus://nersc/~/test_20231024_pm_1 zstash_test
globus_sdk.services.auth.errors.AuthAPIError: ('POST', 'https://auth.globus.org/v2/oauth2/token', None, 400, 'Error', 'Bad Request')

Using this pull request:
$ cd zstash
$ git fetch upstream issue-298v2
$ git checkout -b n298-20231024 upstream/issue-298v2
$ mamba clean --all
$ mamba env create -f conda/dev.yml -n zstash_dev_n298_20231024
$ conda activate zstash_dev_n298_20231024
$ pip install .
$ cd <testing directory>
$ mkdir zstash_test
$ echo 'file0 stuff' > zstash_test/file0.txt
$ zstash create --hpss=globus://nersc/~/test_20231024_pm_2 zstash_test
# Success!
# Confirmed `test_20231024_pm_2/ ` exists on NERSC `hsi`.

Conclusions
The full logic of authentication, scopes, and consents is significantly more complicated than I would like. Luckily, it appears I now have my side working such that the current Unified fails but these changes succeed, thus matching results of others.
I will go ahead and merge these changes, and start a release candidate for a zstash patch.
Thank you for your help @tylern4 @lukaszlacinski.


Upgrade Protobuf.js 6 code to work with 6.8

There were (unfortunately) breaking changes that affected us in Protobuf.js 6.8, but it's simple enough to account for them without breaking compatibility with 6.7 (what we were using before). This fixes #11484.

The Windows failure is #11535. The interop issue is #11357.


Google Search Plugin returns 500

It seems like the google plugin is not functional anymore. After entering the google api keys in the demo frontend, it only returns 500

same here

Same here :
Failed to load resource: the server responded with a status of 504 ()

i rolled back and it worked

Running it locally I get this error :
TypeError: Cannot read properties of undefined (reading 'length')
components/Chat/Chat.tsx (397:44) @ length
When I refresh the page I have the answer in the chat, but the prompt switched to ChatGPT.

#536 fixed the issue for me.

I still have the issue here.

The 500 error happens for me when I am only using the environmental variables. Adding them via the interface resolves it. For my use case, I'd like to define the variables and hide the interface entirely, same as the OpenAI key.

Hmm... Seems like everything works in local, but not once deployed on Vercel. I checked my environment variables, everything is good.
I get a 504 on Vercel while I get the correct answer from Google on Local.
I tried adding the 2 Google variables via the interface too but it didn't change anything for me @masonjames

#536 fixed it for me too (both local and deployed)


Select best cnd location in tools.ps1

When I run restore.cmd,the processor will install .NET Core SDK from server: https://dotnetcli.azureedge.net
but it's not a best location for china,it seems use https://download.visualstudio.microsoft.com/download/pr/4e73514f-0646-4600-bdc2-38c90fc207b6/22ad70cbe1a254177e6d7b7f7e7425f8/dotnet-sdk-3.0.100-preview6-012264-win-x64.zip is better? Maybe other cdn in china.
I think it should auto select cdn server by user location or computer culture

dotnetcli.azureedge.net does generally select the appropriate CDN server by location. It's possible that doesn't include china though. Is it just that the download is slow or does it not complete?
We can't reliably download from the download center link because we sometimes use unreleased SDKs which aren't available from download.visualstudio.microsoft.com.

The download is very slow and dose not complete most time.
The download speed only 5KB/s when download SDK in browser by url dotnetcli.azureedge.net


Support editing of instance and table properties via the Admin Client using other editors

Editing properties is currently hardcoded to use nano
Support other editors e.g. vim
Check if $EDITOR is set and use that instead?

This was implemented in #1436, the admin client now respects the $EDITOR environment variable (looks like another issue was raised for this and we closed that one)


ReferenceError: window is not defined

Good morning,
I'm new to both node js and showdown. I'm experiencing the "window is not defined" error, while if I try other showdown extensions like twitter and youtube I don't have this problem. Can you please give me a suggestion?
Thank you
Here is my code:
/* server.js */

function render_md(path) {
    //var fs = require('fs');
    var showdown  = require('showdown'),
        katex  = require('showdown-katex'),
        twitter  = require('showdown-twitter'),
        youtube  = require('showdown-youtube'),
        converter = new showdown.Converter({
            extensions: ['twitter','youtube','katex'],
            ghCompatibleHeaderId: true,
            headerLevelStart: 3,
            simplifiedAutoLink: false,
            excludeTrailingPunctuationFromURLs: false,
            literalMidWordUnderscores: false,
            strikethrough: false,
            tables: true,
            ghCodeBlocks: true,
            ghMentions: false,
            smoothLivePreview: false,
            smartIndentationFix: false,
            disableForced4SpacesIndentedSublists: false,
            simpleLineBreaks: true,
            requireSpaceBeforeHeadingText: false,
            encodeEmails: true

        }/*{
            extensions: [showdownKatex({
            displayMode: true,
            throwOnError: false,
            errorColor: '#ff0000',
            delimiters: [
                { left: "$$", right: "$$", display: false }, // katex default
                { left: '~', right: '~', display: false, asciimath: true },
                ],
            })]
        }*/),
        //text    = '# hello, markdown!',
        text      = require('fs').readFileSync(path, 'utf-8'),
        html      = converter.makeHtml(text);
    return html;
};

I've never tested showdown-katex on node. But after reading the source, I can confirm this is an issue. Will look at it later.

fixed issue in the development branch. Will release soon.


Better CSS scaling for deviceRixelRatio != 1.

There are some devices with devicePixelRatio that is equal to 3, 1.5 or sometimes 1.25 (e.g. Windows medium font). Trying harder to better fit native canvas pixels into CSS layout, e.g. for devicePixelRatio==1.25, it will try to create canvas which physical width divisible by 5 and CSS width divisible by 4, hoping that during composition the pixels lay perfectly on screens physical pixels.

/botio-linux preview

See also https://bugzilla.mozilla.org/show_bug.cgi?id=1216906

I see a positive response to this patch on the Bugzilla issue. Perhaps @brendandahl can review this patch?

The patch is trivial (simple math) -- open for feedback from community, especially Window users with various scallings set.

This is how it looks for me on Windows 10 x64. Left is the current master, right is this patch. The right side is definitely sharper and the left side is more blurry.

Thank you!


Speed up VM::from via parallelism

While looking into ledger memory use, I noticed that it took plenty of time to load (~127s on my PC, with low CPU utilization), and that there was potential for a quick perf win via parallelism.
This PR reduces the current time needed to load the ledger by ~80% (down to ~25s on my PC) by parallelizing the loading of the deployments.
There may be other wins to apply to the loading process, but this simple drive-by is good enough on its own for now.

The CI failure is unrelated.

Can this be rebased, and can the implementation be cleaned up for improved readability?

I've rebased the PR and collected new figures for VM::from for the current (testnet) ledger:
before: 19.18s
after: 3.95s (-80%)
I'm leaving it as a draft, as the question of how to tackle serial is still open - cfg_iter can't be used here (not unless we were to make some Ledger internals pub), which leaves us with either a small helper macro or #[cfg(feature = ...))] blocks/functions.
I'm pretty sure the performance improvement is worth it; let me know how you'd prefer to handle it and I'll finalize the PR.

Currently there are only 3 deployments in the network, but we can revisit this PR once there are more, in order to be able to measure how much memory is used when collecting the average deployment so we can consider some chunking strategy.

Even now, with a small number of deployments, this PR (in the current, chunked form) speeds up the deployment loading process by ~59%, which I only expect to improve with the increase in deployment count.


question : would you help me to understand why _isInteger(path[1])  being used here ?

Hi Developers ,
I was going through assocPath code snippet , & i didn't understand why you guys are using _isInteger(path[1]) why not _isInteger(idx)  .
https://github.com/ramda/ramda/blob/ed191e6a476330e37db259a5c2d04bfba0b2d63d/source/assocPath.js#L39

Hi @mohan-mu, thanks for the question!
Let's take a look:
// If the path length is more than 1 then it means we haven't reached the base case
if (path.length > 1) {
     // We are getting the next level object to recurse into
    var nextObj = (
        !isNil(obj) &&
        _has(idx, obj)
// If there is already an object there, use it.
    ) ? obj[idx] :
           // Otherwise, is the next index in the path an integer?
          // If so, then we create an array
           // If not we create an object
         _isInteger(path[1]) ? [] : {};
    // Finally, get the value from calling assocPath recursively
    val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);
  }

So we can see that this code is stepping down into an object level by level until it reaches the bottom of the path.
If it gets to a point where the next level it's looking for doesn't exist, it needs to create that level. So then it takes a peek at the next item in the path so that it knows what type of object to create. If that item is an integer then it creates an Array, otherwise it creates an Object.

Hi @Bradcomp ,Thank you

Here I was expecting result to be
"11" :{
    "4" :23
}

@mohan-mu:
You can get that result with
assocPath(['11', '4'], "23", {}) //=> {"11": {"4": "23"}}

As @Bradcomp's walk-through demonstrates, Ramda uses integers vs string-wrapped integers to distinguish between array properties and similarly-name object properties.
It's this difference:
// assocPath(['11', '4'], '23', {})
const foo = {}
foo['11'] = {}
foo['11']['4'] = '23'
foo //=> {'11': {'4': '23'}}

// assocPath([11, 4], '23', {})
const bar = {}
bar[11] = []
bar[11][4] = '23'
bar //=> {'11': [ , , , , '23']}

@CrossEye Thank you


add first draft for SectionResponse with Stages

as roughly discussed here (desktop viewport):

model has no configs, only articles

Visualize commit add config for linkable label above a stage/group

thanks for the feedback. lets focus on #4


easier assignment of UGent affiliation to authors

Describe the improvement
Currently, users consider assigning the UGent affiliation to authors as time consuming as a new window needs to be opened for each new author.
Two complementary options:

change in design (e.g. by adding affiliation in main view instead of in the add/edit modal)
automation of assignment of affiliation (e.g. by checking if authors are UGent members, by checking whether the affiliation can be retrieved from CrossRef/DataCite, by checking whether the ORCID can be useful)

@sdebodt Is this also important for secretariats, or mostly for reviewers?

Suggestions
Repositioning information: move authors and editors underneath publication details

for researchers, this view will become simpler (as for the librarians, see https://github.com/ugent-library/biblio-backend/issues/426

for curators and reviewers, it will be repositioned

Adding affiliations:

Add affiliation to authors table

Add affiliation information to affiliation in authors table (can be implemented later)

Automated suggestions (can be refined later)

Updated the story with the different stories that came out of this one. Will label it as duplicate.


Number of "tracked by" bugged on Most Tracked

sometimes you'd see 0 under "tracked by" which is incorrect because they're up there since they're the most tracked to begin with.

I've noticed this as well, and was going to attempt to look into it. If you find a fix for it and want to fix it, leave a comment so I don't also attempt to make a fix. If I find a fix, I'll also comment back and take this issue.

I've been trying to find issue. I'm going to be assuming I missed a spot when retrieving cache somewhere. Can't seem to find it.

fixed on latest update


HTTP Error 429: Too Many Requests

Checklist

[ ] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2020.07.28
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--verbose', u'https://www.youtube.com/watch?v=JCyuXhou9_0']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2020.07.28
[debug] Python version 2.7.16 (CPython) - Linux-4.19.0-9-amd64-x86_64-with-debian-10.4
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] JCyuXhou9_0: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "./youtube-dl/youtube_dl/extractor/common.py", line 627, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 2238, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 467, in error
    result = self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 654, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/usr/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

Description

Debian 10 64bit  system. More than 1 weaks get this. I tried to wait some days but the results same.

PS D:\gitkraken\youtube-dl> python3 -m youtube_dlc https://www.youtube.com/watch?v=JCyuXhou9_0 -F -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['https://www.youtube.com/watch?v=JCyuXhou9_0', '-F', '-v']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dlc version 2<IP_ADDRESS>
[debug] Python version 3.6.5 (CPython) - Windows-10-10.0.19041-SP0
[debug] exe versions: ffmpeg 4.2.1, ffprobe 4.2.1
[debug] Proxy map: {}
[youtube] JCyuXhou9_0: Downloading webpage
[youtube] {136} signature length 107, html5 player bcf2977e
[youtube] JCyuXhou9_0: Downloading player https://www.youtube.com/s/player/bcf2977e/player_ias.vflset/en_US/base.js
[youtube] {135} signature length 107, html5 player bcf2977e
[youtube] {134} signature length 103, html5 player bcf2977e
[youtube] JCyuXhou9_0: Downloading player https://www.youtube.com/s/player/bcf2977e/player_ias.vflset/en_US/base.js
[youtube] {133} signature length 103, html5 player bcf2977e
[youtube] {160} signature length 107, html5 player bcf2977e
[youtube] {140} signature length 107, html5 player bcf2977e
[youtube] JCyuXhou9_0: Downloading MPD manifest
[info] Available formats for JCyuXhou9_0:
format code  extension  resolution note
139          m4a        audio only DASH audio   64k , m4a_dash container, mp4a.40.5@ 48k (24000Hz)
140          m4a        audio only DASH audio  144k , m4a_dash container, mp4a.40.2@128k (48000Hz)
160          mp4        256x144    DASH video  121k , mp4_dash container, avc1.4d400c, 30fps, video only
133          mp4        426x240    DASH video  255k , mp4_dash container, avc1.4d4015, 30fps, video only
134          mp4        640x360    DASH video  625k , mp4_dash container, avc1.4d401e, 30fps, video only
135          mp4        854x480    DASH video  803k , mp4_dash container, avc1.4d401f, 30fps, video only
136          mp4        1280x720   DASH video 1275k , mp4_dash container, avc1.4d401f, 30fps, video only (best)

No problems here. Is that a server or your home computer?

https://github.com/ytdl-org/youtube-dl/issues/23638

It is server, it is VPS.

https://github.com/ytdl-org/youtube-dl#network-options


[BUG] Update vscode-redhat-telemetry to 0.8.0

Describe the bug
We need to update the vscode-redhat-telemetry package to 0.8.0, so the extension only reports 1  daily startup event
I would have created the PR but I can't because of #713

Thank you @fbricon,
The update will be included in the next release

https://github.com/fabric8-analytics/fabric8-analytics-vscode-extension/blob/master/package.json#L277 is still not updated to 0.8.0


Update KS test script

We can now choose to plot the PDF, CDF, or nothing.
Minor fixes

Great, thanks @javierron !


Add transgender pride flag emoji

The latest version of WhatsApp includes the transgender pride flag as emoji ZWJ sequence. It consists of U+1F3F3 (WAVING WHITE FLAG), U+FE0F (VARIATION SELECTOR-16), U+200D (ZERO WIDTH JOINER), U+26A7 (MALE WITH STROKE AND MALE AND FEMALE SIGN).
On WhatsApp it looks like this:

Several people on Twitter already started using it since 2017, so it would be great if Twemoji could add official support as well. Transgender activists are already requesting for this emoji for a long time, it was one of the most-requested emoji of 2018 and of 2017.
Several news articles have already been published about this new emoji in WhatsApp:

Transgender Pride Flag Emoji Hidden in Latest WhatsApp at Emojipedia
Hey Sis, the Trans Pride Flag Emoji Is Here at Out Magazine
A transgender Pride flag emoji exists—here’s how to get it at PinkNews
There’s a secret WhatsApp trick which ‘lets you use a hidden transgender pride flag emoji in messages’ at Metro

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

Excellent idea!

The correct codepoint should be U+1F3F3 U+FE0F U+200D U+26A7 U+FE0F. Without the last FE0F is just a partial matching that's still accepted by WhatsApp, but is not the actual codepoint used by them (and isn't semantically correct, either).

As a trans person myself, I would absolutely love for the trans pride flag and many others to be added. Unfortunately, Twitter has stated before in many issues and PRs that they only add icons for emojis that are officially approved by @unicode-org. So sadly, they won't accept this until then.
See https://www.unicode.org/emoji/proposals.html for more info.

Twitter has broken that before, though - they've added things like the pirate flag emoji.
I don't think there's many (any?) other examples where another company has broken file to push an emoji out - but that being said, it would make things harder for their apps.

This would be great to have.

This is important and i really want this to be added.

This should be added!

What can be done to move this forward?

@PandorasFox the Pirate flag is official.
@garbados it's out of our hand since if you refer to my previous comment, Twitter only adds emojis officially added by Unicode and the UTC. You can track its progress here.
https://www.unicode.org/emoji/emoji-requests.html
https://www.unicode.org/L2/L-curdoc.htm
https://www.unicode.org/L2/L2019/19080-transgender-flag.pdf
https://www.unicode.org/L2/L2019/19084-trans-flag.pdf

@PandorasFox the Pirate flag is official.
@garbados it's out of our hand since if you refer to my previous comment, Twitter only adds emojis officially added by Unicode and the UTC. You can track its progress here.

@nektro when twitter added the pirate flag emoji in 2016, it was not an officially described or recognized unicode emoji, per this article on the adition here
From this article

The pirate flag emoji has not been documented by Unicode, though the sequence used of 🏴 and ☠ does seem straightforward.
There is no requirement for Emoji ZWJ Sequences to be approved by Unicode.
In the wake of Apple's 👁🗨 Eye in Speech Bubble confusion last year, Unicode President Mark Davis told Emojipedia last year:
Vendors are free to make combinations of emoji using the ZWJ. The only constraint is that they are meaningful as a sequence.
Whether more vendors start implementing Emoji ZWJ Sequences of their own in future remains to be seen, though Twitter could be testing the waters here.

see also the emojipedia page on the pirate flag emoji, which states

Pirate Flag was added to Emoji 11.0 in 2018.

As a note on this particular ZWJ sequence - the Unicode consortium won't really do much on ZWJs until their 2019Q3 meeting, but there was some mention of it anyways - notably this listing for the proposed zwj sequence, containing the trailing U+FE0F 👀

Itʼs absolutely okay to introduce and maintain custom ZWJ sequences, like Microsoftʼs arbitrary combinations for Ninja Cat and systematic extensions by Whatsapp for a Texas Flag or by Twitter for the female variant of 🕴. Some, like Twitterʼs Pirate Flag, will subsequently be “recommended for general interchange” (RGI) by Unicode. This may happen to Facebookʼs Trans Flag soon; a difference being that ⚧ is not an emoji yet while 🏴 and ☠ were already. Nevertheless, Twemoji is free to start supporting the sequence (or another one) at any time. Itʼs also okay, though not quite recommended, to support emoji glyphs for additional existing characters (ideally followed by VS-16), like Samsung still does, but itʼs discouraged to expose them in input widgets to users of open communication systems (like the web, but unlike some instant messaging services).
It can even be a good idea for an input widget to silently add a ZWJ (U+200D) between certain emojis that a user selected in sequence. This can be a solution for Easter eggs (like literally either 🥚🌈 or 🥚🎨) and complex constructs (especially when elaborations of existing RGI sequences) like groups of people (e. g. families) with different skin tones or genders. This can also be applied to sequences that are already commonly found in discourse, e. g. 👉👌. Non-emoji fonts implement contextual ligatures all the time without requiring an explicit joiner.

It looks like there's now a trans flag in twemoji - you can use [🏳⚧] on Twitter Web now and it renders as a trans flag.

@PandorasFox
https://abs.twimg.com/emoji/v2/svg/1f3f3-fe0f-200d-26a7-fe0f.svg [200]
https://twemoji.maxcdn.com/2/svg/1f3f3-fe0f-200d-26a7-fe0f.svg [400]

We did ship the trans flag and trans symbol on twitter.com this week. Those will be coming to this repo as version 12.1 after we finish up some in-progress housekeeping work: https://github.com/twitter/twemoji/pull/362 and https://github.com/twitter/twemoji/pull/361.
Thank you all for the input and for pushing to make this happen!


Added - Trusted application API discovery request with OAuth token. V…

Trusted application API endpoints need Oauth token

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Skype/Trusted-Application-API/docs/AADS2S.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingJoin.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingSchedule.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AuthenticationAndAuthorization.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DevelopingApplicationsforSFBOnline.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DiscoveryForServiceApplications.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/KeyTerms.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/NewConcepts.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Skype/Trusted-Application-API/docs/AADS2S.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingJoin.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingSchedule.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AuthenticationAndAuthorization.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DevelopingApplicationsforSFBOnline.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DiscoveryForServiceApplications.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/KeyTerms.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/NewConcepts.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/images/CallFlowAnonMeetingJoin.jpg
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/images/CallFlowsUcapMeetingSchedule.jpg
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Skype/Trusted-Application-API/docs/AADS2S.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingJoin.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingSchedule.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AuthenticationAndAuthorization.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DevelopingApplicationsforSFBOnline.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DiscoveryForServiceApplications.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/ImplementingAnonymousClientWithSkypeAppSDK.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/ImplementingAnonymousClientWithSkypeAppSDK_iOS.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/KeyTerms.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/NewConcepts.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/images/CallFlowAnonMeetingJoin.jpg
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/images/CallFlowsUcapMeetingSchedule.jpg
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Skype/Trusted-Application-API/docs/AADS2S.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingJoin.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AnonymousMeetingSchedule.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/AuthenticationAndAuthorization.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DevelopingApplicationsforSFBOnline.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/DiscoveryForServiceApplications.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/ImplementingAnonymousClientWithSkypeAppSDK.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/ImplementingAnonymousClientWithSkypeAppSDK_iOS.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/KeyTerms.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/NewConcepts.md
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/images/CallFlowAnonMeetingJoin.jpg
:white_check_mark:Succeeded

Skype/Trusted-Application-API/docs/images/CallFlowsUcapMeetingSchedule.jpg
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[Fix] Sending emails to user with invalid email #278

Changes
Added mail.send function in try except block to track the error
Checklist

[x] I have read the contributing guidelines.
[x] I have manually tested the proposed changes.
[x] have written new test cases to avoid regressions. (if necessary)
[ ] I have updated the documentation. (e.g. README.rst)
[ ] I have added [change!] to commit title to indicate a backward incompatible change. (if required)
[ ] I have checked the links added / modified in the documentation.

Fixes #278

Coverage increased (+0.009%) to 98.627% when pulling 89c9ccbfd50f2620df4b0a93356e41a54b670189 on issue-278/send-email-exception into deb4af2e95530886f3bac721f3323f54017faf92 on master.