🔌 Plugin: AAP (Ansible)

Goal
Programmatically populate the Backstage catalog with job templates from your AAP instance.
What problem does this solve?
Although there is a GPT to run a Job Template, there is no way to discover what Job Templates can be run, or what they do from within Backstage.
Use cases
Details to follow
Acceptance criteria
Details to follow
Issues in Epic

https://github.com/janus-idp/backstage-plugins/issues/528
https://github.com/janus-idp/backstage-plugins/issues/522
https://github.com/janus-idp/backstage-plugins/issues/545
https://github.com/janus-idp/backstage-plugins/issues/546

Could we make it possible to invoke a one-off run of the playbook from its entity page? I have a customer who seeks the ability to invoke a playbook from the Backstage UI.
This is related to https://github.com/janus-idp/backstage-plugins/issues/332 - if we could invoke a playbook from its entity page perhaps a Scaffolder action wouldn't be needed.

Could we make it possible to invoke a one-off run of the playbook from its entity page? I have a customer who seeks the ability to invoke a playbook from the Backstage UI.
This is related to #332 - if we could invoke a playbook from its entity page perhaps a Scaffolder action wouldn't be needed.
Also note that the template for running an Ansible job here doesn't directly invoke the job; rather it creates a Kubernetes CRD describing the job run and writes it to a "GitOps" repo. My ask is for a way to directly invoke the job without Kubernetes or GitOps, just Ansible.

This epic was scoped to list job templates in the software catalog and subsequently, we need to plan more features for the plugin for AAP.
@sonyccd / @Kasturi1820 / @cooktheryan FYI

there would need to be a host or container that would actually launch the playbook. With that host we would need to have credentials to connect to the object. This could be generally created but the ansible-playbook would have to run from a job pod which I'm not sure if that is completely supported from RH.
It may be worth talking with Christian Adams, Roger Lopez, or even someone like Sean Cavanaugh who would have insights with interacting with different components

Closing it as all linked tasks are in close state


Features

**Context **
tra-trn-generation-api deployment
**Changes proposed in this pull request **
Configured ARM template to deploy storage account and keyVault via ARM template:

KeyVault
Storage Account


Dev

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@c7227b7).

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c7227b7...1abd125. Read the comment docs.

Coverage increased (+1.2%) to 89.921% when pulling 1abd125553403df2cb13046efbccc8c7e7970b1f on dev into c7227b74f7f740987ddc5d9a333aa0ab05ae2c72 on master.


config refactoring

Codecov Report

Merging #167 into code-refactoring will decrease coverage by <.01%.
The diff coverage is 100%.

@@                 Coverage Diff                  @@
##           code-refactoring     #167      +/-   ##
====================================================
- Coverage             97.62%   97.62%   -0.01%
====================================================
  Files                    58       58
  Lines                  2150     2145       -5
====================================================
- Hits                   2099     2094       -5
  Misses                   51       51

Impacted Files
Coverage Δ

cli-commands/compiler/etherlime-config/index.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2ba8f2d...ee15e0a. Read the comment docs.


Opacity control exception

...
enableOpacity: true
...
Unable to load asset: "packages/flex_color_picker/assets/opacity.png".
Exception: Asset not found

I was unable to replicate this with the web demo in the repo, building it on Android, iOS, macOS and Web targets. The implied asset loading issue, used by the opacity slider, worked fine on all tested targets.
Can you please provide a reproduction sample? With some info about what version of Flutter and what devices and build modes you see this in?

Added tag waiting for reply. Will close in 2 weeks if additional reproduction info has not bee provided.

Closed due to no response. We can open this again if there is more info, like a reproduction sample.


Ensure custom data is included even with errors

Supposedly the extra custom data is ignored in calls with errors, including this one from the docs:
Rollbar::log(Level::error(), $e, array("my" => "extra", "data" => 42));

Figure out if this is true and fix this. If it is not true, ensure that there is a test for it, but also try to figure out if this was true in within the past version and where it was fixed.

I tracked this down all the way v1.0.0 and also investigated the closest functionality there is to this in v0.18.2. It all works as expected - $extra is included in the payload. PR contains a detailed test to ensure this as well.
@rokob do you know where the suspicion of this not working correctly came from?

A user report, but it was limited in detail so this is probably sufficient.

This issue seems to have popped up again. Custom data is not included when logging.
Rollbar::log(Level::ERROR, $e, array("my" => "extra", "data" => 42));

Error is logged, but in no where in the request does it log any of these other parameters.

Interesting. Can you configure your Rollbar class with verbosity at \Psr\Log\LogLevel::DEBUG and post your /tmp/rollbar.debug.log (please, scrub your access token)?

TLDR: Everything magically seems to work now...
So I enabled verbosity, and debugged with this,
Rollbar::log(Level::EMERGENCY, 'This is Level::EMERGENCY', array("my" => "extra0", "data" => 40));
Rollbar::log(Level::ALERT, 'This is Level::ALERT', array("my" => "extra1", "data" => 41));
Rollbar::log(Level::CRITICAL, 'This is Level::CRITICAL', array("my" => "extra2", "data" => 42));
Rollbar::log(Level::ERROR, 'This is Level::ERROR', array("my" => "extra3", "data" => 43));
Rollbar::log(Level::WARNING, 'This is Level::WARNING', array("my" => "extra4", "data" => 44));
Rollbar::log(Level::NOTICE, 'This is Level::NOTICE', array("my" => "extra5", "data" => 45));
Rollbar::log(Level::INFO, 'This is Level::INFO', array("my" => "extra6", "data" => 46));
Rollbar::log(Level::DEBUG, 'This is Level::DEBUG', array("my" => "extra7", "data" => 47));

Everything came through (although I never got my log output anywhere). I signed into our system so our session data was also logged, everything came through as expected.
It did log the my data stuff as message.my, custom.my, message.data and custom.data. So it was duplicated in there.
I tried with a try/catch
try
{
    throw new Exception('This is via an exception');
}
catch (Exception $err)
{
    Rollbar::log(Level::ERROR, $err, array("my" => "extra3", "data" => 43));
}

Everything worked... Although this time. my data was only in custom.my and custom.data, there is no message.my or message.data.
Still on version 1.3.6. I have no words, but am happy its working at least.


Map dispatch to props

Removes @connect(null, null, null, { pure: false })

@kaw2k Does this seem sane? I can't help but feel like something is a bit off.

Action files now export an interface:
import { AnyAction, actionCreator } from '../interfaces/action';

export interface ICounterActions {
    incrementBy: (a: number) => AnyAction;
}

export const incrementBy = actionCreator<number>('INCREMENT_BY');

The container component defines actions that it uses by extending action interfaces:
// in: src/ts/containers/container.tsx
//
interface IContainerActions extends ICounterActions {
    // Always will be empty
}

Then, the container will add an "actions" prop referencing that interface:
interface IContainerProps {
    count: number;
    actions: IContainerActions;
}

Then:
const dispatchMapper = (dispatch, ownProps) => {
    return {
        actions: bindActionCreators({
            incrementBy
        }, dispatch)
    };
};

Now we can use @connect with dispatchMapper vs. relying on dispatch in the views.

Closing this. We don't want to create interfaces & action creators that mirror each other.

👌


Update Readme

Updated the readme's lazy install instructions to reflect the recent changes to the configs.

Okay hopefully that fix is good

Okay pretty sure thats fixed and its good you pointed it out as i realised i had missed something in my init file, forgot to put vim.opt.softtabstop = 2 in. I am in the process of rewriting my init

Okay pretty sure thats fixed and its good you pointed it out as i realised i had missed something in my init file, forgot to put vim.opt.softtabstop = 2 in. I am in the process of rewriting my init

No worries. There still seems to be an indentation issue though 😄 The initial value in the table in indented by 2, and the remaining ones are indented by 4.

If it wouldnt be too much trouble could you please give me an example of how you would prefer it as i dont see any issues the the indentation.

 Thanks a lot. Looks good to me 👍🏽

yea funnily enough I just sorted conform out so maybe that helped a little, im used to working in web dev so maybe my tabs are bit bigger normally.


Android - Workspace - Workspaces list opened in background when navigating to WS share link

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

Version Number: 9.0.66-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/5256782&group_by=cases:section_id&group_order=asc&group_id=229067
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Open the Expensify app.
Tap on "Settings" on the bottom of the screen.
Tap on "Workspaces" and open any workspace from the list.
Tap on "Profile" and select "Share"
Tap on "Copy URL"
Return to "Inbox" and open any chat.
Paste the workspaces URL on compose box and send it.
Tap on the sent URL.
Verify that you are redirected to the workspace details page
Tap on the arrow on the top left corner.
Verify you are navigated to chat again and not to workspaces list page.

Expected Result:
When navigating to a workspace URL, and navigating back, the user should return to chat instead of landing on workspaces list page.
Actual Result:
When navigating to a workspace URL, workspaces list tab is opened on the background, and the user lands on it, instead of returning to chat when tapping on the back button.
Workaround:
Unknown
Platforms:

[x] Android: Standalone
[x] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/e72aed00-bb8c-421c-a76f-fec0bc958f96

View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Workspaces list opened in background when navigating to WS share link
What is the root cause of that problem?
We did not set backTo for WorkspaceInitialPage when opening a workspace share link.
Therefore, clicking the back arrow will call Navigation.dismissModal() to show the workspace list on mobile or the settings page on the web.
https://github.com/Expensify/App/blob/367cdfb828666656352e34bae3a6ef53b16f5571/src/pages/workspace/WorkspaceInitialPage.tsx#L398-L405
https://github.com/user-attachments/assets/f801e8d1-cce0-4338-865a-750441888f72
What changes do you think we should make in order to solve the problem?
To resolve this issue, we must set backTo when opening a workspace share link. For example:

We need to update the openLink function. We should check if internalNewExpensifyPath is a workspace share link, then pass the backTo parameter to minimize impact, as openLink is used in many places.

https://github.com/Expensify/App/blob/ccd097261b73830514a44a657238b5ffb1d5ff36/src/libs/actions/Link.ts#L183
// add new
+     function isWorkspaceShareLink(path) {
+       const pattern = /^settings\/workspaces\/[^/]+\/join$/;
+       return pattern.test(path);
+     }

//src/libs/actions/Link.ts#L182
+        const pathWithoutQuery = internalNewExpensifyPath.split('?').at(0);

+        if (isWorkspaceShareLink(pathWithoutQuery ?? '')) {
+            Navigation.navigate(`${internalNewExpensifyPath}&backTo=${Navigation.getActiveRoute()}` as Route);
+            return;
+        }

We need to update WorkspaceJoinUserPage to add backTo when navigating to WORKSPACE_INITIAL

https://github.com/Expensify/App/blob/c3c7c7ac2c7d844463536c403064b58051add579/src/pages/workspace/WorkspaceJoinUserPage.tsx#L49
//src/pages/workspace/WorkspaceJoinUserPage.tsx#L33
+       const backTo = route?.params?.backTo;

//src/pages/workspace/WorkspaceJoinUserPage.tsx#L49
        if (!isEmptyObject(policy) && !policy?.isJoinRequestPending && !PolicyUtils.isPendingDeletePolicy(policy)) {
            Navigation.isNavigationReady().then(() => {
                Navigation.goBack(undefined, false, true);
-                Navigation.navigate(ROUTES.WORKSPACE_INITIAL.getRoute(policyID ?? '-1'));
+                Navigation.navigate(ROUTES.WORKSPACE_INITIAL.getRoute(policyID ?? '-1', backTo));
            });
            return;
        }

We will see the workspace list when we backTo from WORKSPACE_INITIAL. This is another issue I have found and will fix if needed, and I will address it in the pull request.
Note: If we have the same case, we can reuse that solution.
Test branch

POC
https://github.com/user-attachments/assets/9d1ec2de-963d-4afd-94b8-f915d04ebdde

What alternative solutions did you explore? (Optional)

This is intentional. We are intentionally putting the workspace list page under the stack because we want the user to be navigated to the workspace list page on pressing back for small screens.

Agreed.


Add Vendor model

#39
Change Person into an abstract class
Tried to modify/add some tests

LGTM

lgtm


outdated documentation about psm2 addresses

I'm on f7f6955f140426b2a7c9e26dc35f8c8e1654d86a
Even if it isn't mentioned in the docs, to look-up psm2 endpoints we can use the native psm2 address in the form of ofi+psm2://fi_addr_psmx2://40302:101
If the psm2 name server is active we can also use the following format:

ofi+psm2://<ip>
ofi+psm2://<hostname>

The problem is that if we add also a port as stated by the current documentation, the address resolution won't work. For instance using ofi+psm2://<hostname>:<port> it won't work.
The documentation says almost nothing about this situation, and it took me a while to understand all those things.

Yes that was added recently and the documentation has not been updated, I think ideally we'd also want it to succeed in that case. We need to take a pass at making the OFI plugin initialization less restrictive.

Documentation will need to be updated after #246 is merged to reflect NA OFI addressing changes

This issue has been closed but no information have been provided about how has been fixed. Any commit reference?

The table on http://mercury-hpc.github.io/documentation/#available-plugins has been updated to reflect the current behavior.


Remove some old query executor codes

For https://github.com/StarRocks/starrocks/issues/172

 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.


Add retired status

Display address from active wallets
Generate address from active wallets
deposit/withdraw from retired wallets
Add status for address

Could you add tests for this PR?

Could you add tests for this PR?

I have added the test cases


VSM shadows don't seem to support disabling castShadows on renderables

Describe the bug
Objects still cast shadows even when calling setCastShadows(false) on them.
I suppose this is a bug unless there's a technical reason for it?
To Reproduce
This can easily be reproduced with material_sandbox : in the setup function, enable VSM shadows on the view, then uncheck the "cast shadow" option for the loaded object
Screenshots

**Desktop

OS: Windows
GPU: NVIDIA GTX 1080
Backend: OpenGL

For VSMs to work, receivers must be in the shadow map and therefore act as casters as well.

Thank you ! I thought I read something like it but couldn't find it back.


Added ProductCode to Peppy.Osu!

Added ProductCode because ARP is similar to its stable version

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

I didn't expect that 😀


[MM-40825] Account setting to always land users at the newest messages in a channel

Summary

Added an advanced_setting option unreadScrollPosition.
If an option is set to start_from_newest, recent posts are loaded together when unread posts are loaded.
If an option is set to start_from_newest, scroll is set to newest message.
If an option is set to start_from_newest and scroll is at bottom, unreadWithBottomStart toast is shown.
unreadWithBottomStart toast action moves scroll to the oldest unread message.

Ticket Link

Fixes https://github.com/mattermost/mattermost-server/issues/19278
Related Pull Requests

Has server changes (please link here)
Has mobile changes (please link here)

Screenshots

https://user-images.githubusercontent.com/59413880/170651884-dff3bf33-0d98-480c-aef9-bad7ed942d81.mov
Release Note

Added an advanced_setting option `unreadScrollPosition`

Hello @kyeongsoosoo,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

Thanks @kyeongsoosoo for your contribution! :tada:

Awesome, great work @kyeongsoosoo! Will defer to dev for code review

I'm noticing a couple things with the behaviour of this feature that could be a bit odd, but I'm not sure if they're actually issues.

The "scroll to unreads" toast isn't displayed if you mark a channel as unread a few pages back, switch away from that channel, and then switch back. That's happening because the New Messages line is in the loaded chunk, even if it's a few hundred posts back. I liked the idea of controlling the toast based on whether or not the New Messages line was present because of how simple that is, but we might have to check where it is which would be trickier.
Scrolling manually up to the New Messages line doesn't dismiss that toast either. It only disappears if you click on it or change channels.

@esethna Any thoughts on these? I'm not sure if those would be considered bugs here or if they're acceptable behaviour

@hmhealey sorry I'm not sure I'm understanding #1
Re # 2, good point. I think we should dismiss the toast once the user scrolls up to the new message line when this setting is enabled. Similar to how the toast is dismissed when the user reaches the bottom of the channel today (ie with this new setting disabled)
cc// @kyeongsoosoo

issue # 1 sounds like a bug and I agree that it would be better to fix issue # 2.
I will look into it and fix these isssues!
Thanks for the comment @esethna , @hmhealey .

@hmhealey
I added isNewMessageLineReached state to post_list_virtualized.
With this state, we can check whether the new message line is displayed in the view.
unreadWithBottomStartToast is now shown based on isNewMessageLineReached instead of shouldHideNewMessageIndicator prop.
I checked that this change fixed the issue and works well with marking a channel as unread.
unreadWithBottomStartToast is dismissed when the new message line is displayed in the view.
https://user-images.githubusercontent.com/59413880/173783970-4ca6c160-9ee1-45bd-9ce8-fe28ab9fc761.mov

@hmhealey please take another look here!
cc// @jgilliam17 to start QA testing

Also, sorry for dumping those conflicts on you. I didn't even think how the migration of that component to TypeScript (in https://github.com/mattermost/mattermost-webapp/pull/10426) would affect this PR. Let me know if you need any help resolving those since there's a chance that those are complicated depending on which lines are conflicting

/e2e-tests

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/208983

@hmhealey
I  resolved the conflicts and added some e2e tests!

Also, sorry for dumping those conflicts on you. I didn't even think how the migration of that component to TypeScript (in #10426) would affect this PR. Let me know if you need any help resolving those since there's a chance that those are complicated depending on which lines are conflicting

I checked that this feature works fine after resolving the conflicts.
Please let me know if I missed something that should be checked.

Thanks @kyeongsoosoo!
@hmhealey @koox00 please re-review when you have a chance!

/e2e-tests
I guess I also should've waited for those conflicts to be resolved before running these. Whoops

/e2e-test

I'm not sure why my comment posted twice, sorry about the spam

Thanks for the QA, @jgilliam17.
I resolved the issue # 1 and # 4.
Testing # 2 and # 3, I found a weird point.
I used the Cypress and send 260 messages to the test channel using postMessageAs command.
Regardless of which Scroll position when viewing an unread channel option is selected, unread toast displayed wrong number when test channel is selected.
I also tested with current master branch and result was same.

I'm not sure this is a bug or I did something wrong.
Would you check this, please?
+)
When I delayed the postMessageAs command, there was no problem.
for (let index = 0; index < 260; index++) {
    cy.postMessageAs({sender: otherUser, message: `This is an old message [${index}]`, channelId: testChannelId});
    cy.wait(TIMEOUTS.ONE_HUNDRED_MILLIS);
}

@jgilliam17 can you help check on the above, thanks! ^

Thanks @kyeongsoosoo I'll take a look at this issue today

@kyeongsoosoo I am not able to reproduce the discrepancy in the number on the new messages on the unread toast on the master, it seems to be only present on the PR test server.
I've asked @furqanmlk to also take a look, appreciate your patience  while we investigate. Thanks again 🙂

Thanks! 😊 @jgilliam17

I accidentally closed the PR, so I reopened it. Sorry for the mistake.

@jgilliam17 I've fixed the suggested issues!
The issue I mentioned is not reproduced after I updated the branch and fixed the unread message counting logic.
Maybe further investigation would not be needed.
+)
I added an up-arrow icon.

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/213917

@jgilliam17
Fixed e2e failure cases!

/e2e-test

@koox00 Can you please check and approve the workflow and merge? Thanks 🙂

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: db9c10bb1fcc4b9be8357160ee79d127e6d5e83d


How to properly handle rpc exceptions on Python?

I want to be able to handle these kind of errors: http://prntscr.com/iwwmqk
Tried everything but can't seem to be able to catch them. Anyone?
PS: I'm trying with try: except:

There is no problem in the libraty but but in the service response, because 'Insufficient funds'

How can I handle it so I can show it on the GUI?


Extension issue

Issue Type: Bug
Extension Name: microsoft-authentication
Extension Version: 0.0.1
OS Version: Linux x64 5.4.0-122-generic
VS Code version: 1.69.1
VS Code is starting very slow. This extension is causing the delay.

:warning: We have written the needed data into your clipboard. Please paste! :warning:
{
	"messages": [],
	"activationTimes": {
		"codeLoadingTime": 1060,
		"activateCallTime": 2,
		"activateResolvedTime": 2029,
		"activationReason": {
			"startup": false,
			"extensionId": {
				"value": "vscode.microsoft-authentication",
				"_lower": "vscode.microsoft-authentication"
			},
			"activationEvent": "onAuthenticationRequest:microsoft"
		}
	},
	"runtimeErrors": [],
	"runningLocation": {
		"affinity": 0,
		"kind": 1
	}
}

Can you please follow the instructions for filing a performance issue: https://github.com/microsoft/vscode/wiki/Performance-Issues
That'll help us a ton so we can get to the bottom of this.

Closing this now since I linked the doc.


cirrus-cli: 0.91.0 -> 0.91.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/cirruslabs/cirrus-cli/releases.
meta.description for cirrus-cli is: "CLI for executing Cirrus tasks locally and in any CI"
meta.homepage for cirrus-cli is: "https://github.com/cirruslabs/cirrus-cli"
meta.changelog for cirrus-cli is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.91.1 with grep in /nix/store/9ga5k0ils6wwkqj8bwfvj14k14021r7f-cirrus-cli-0.91.1
found 0.91.1 in filename of file in /nix/store/9ga5k0ils6wwkqj8bwfvj14k14021r7f-cirrus-cli-0.91.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
cirrus-cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9ga5k0ils6wwkqj8bwfvj14k14021r7f-cirrus-cli-0.91.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cirrus-cli https://github.com/r-ryantm/nixpkgs/archive/9a462700073026414f25c1da2ab7040785f8da5b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9ga5k0ils6wwkqj8bwfvj14k14021r7f-cirrus-cli-0.91.1
ls -la /nix/store/9ga5k0ils6wwkqj8bwfvj14k14021r7f-cirrus-cli-0.91.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cirrus-cli

Maintainer pings
cc @techknowlogick for testing.

@ofborg build cirrus-cli cirrus-cli.passthru.tests

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/cirruslabs/cirrus-cli/releases.
meta.description for cirrus-cli is: "CLI for executing Cirrus tasks locally and in any CI"
meta.homepage for cirrus-cli is: "https://github.com/cirruslabs/cirrus-cli"
meta.changelog for cirrus-cli is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.91.2 with grep in /nix/store/bxdfkyks2w2dcs83vclrbfwmfggh51nh-cirrus-cli-0.91.2
found 0.91.2 in filename of file in /nix/store/bxdfkyks2w2dcs83vclrbfwmfggh51nh-cirrus-cli-0.91.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
cirrus-cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/bxdfkyks2w2dcs83vclrbfwmfggh51nh-cirrus-cli-0.91.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cirrus-cli https://github.com/r-ryantm/nixpkgs/archive/bd9a84333aabc3aafd0a43784ed54e355ce176e8.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bxdfkyks2w2dcs83vclrbfwmfggh51nh-cirrus-cli-0.91.2
ls -la /nix/store/bxdfkyks2w2dcs83vclrbfwmfggh51nh-cirrus-cli-0.91.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cirrus-cli

Maintainer pings
cc @techknowlogick for testing.


[discussion] Modernizing rot.js

Hey! I wanted to open a conversation about modernizing the rot.js codebase to make it a bit more maintainable, and potentially more welcoming to contributors too.
From reading the code over I think it's really well-engineered and very readable (albeit a bit sparsely commented in some places) but I think the way it's organized is a bit idiosyncratic for JS nowadays. I guess that's just an inevitable consequence of it being an old enough library to predate a lot of modern conventions, but to me it looks like a lot of the forks over the past year have had to do with making rot.js easier to use with modern build toolchains, more modular or compatible, etc.
I've gotten most of the way towards a modernized version of the library at my fork over here. I've opted to use TypeScript: I know it sort of goes against rot.js's "vanilla js" approach, but making use of ES modules right now inevitably means some kind of build step or preprocessing will need to be introduced (and besides, the current approach of building the web and Node versions through file concatenation, make and/or cake, etc. is tantamount to a build system anyway -- just a very ad-hoc one.) TypeScript also maps very naturally to most of the conventions used in rot.js -- abstract classes and interfaces are a pretty perfect fit throughout. Besides the internal benefits for maintainability and correctness, it also makes the library much easier to use for end users, since they'll get the benefit of high-quality autocomplete, errors, etc.
Since the library is so solidly engineered, a lot of the conversion thus far has been pretty mechanical -- most of the care has gone into eg. switching to block binding and moving declarations to inner scopes or closer to their usage site, figuring out object shapes and class fields and making them explicit, reifying implicit patterns, etc. The conversion isn't quite done yet, but it's going pretty smoothly so I thought it might be worth mentioning as a point of discussion.
Some other points of discussion:

The JS community has pretty much consolidated around npm and Node for tooling and package management at this point. I don't know if it makes too much sense to continue publishing a Bower package. (Over at Bower's website they even recommend themselves using Webpack and the npm ecosystem.)
By a similar token, I don't think it's necessary to keep a separate subtree of Node overrides/shims -- I think any version of rot.js published to npm should be able to figure out whether it's running under Node or in a browser and offer the appropriate modules without any extra configuration. (It's of course totally possible and desirable to keep offering a browser-ready, packaged rot.js and rot.min.js that don't require using the Node ecosystem, too.)
I haven't read over the tests extensively yet so I don't totally understand the overlap between the tests in node/test/ and the tests in test/. Intuitively the former would check the functionality of the Node-specific stuff, but it looks like they both seem to test common functionality, so it might be worthwhile to consolidate them to a common set of tests. I've experimentally passed the contents of node/test/ through the excellent decaffeinate tool in my fork as a first step towards consolidation.
On testing, it would obviously make things a bit more accessible to not depend on Java/Rhino or files being in the user's home directory but I haven't gotten to reading all of that over yet so I'm not sure if that's just some legacy code.
Hopefully this isn't controversial, but I think the prototype extensions to array, number, string, etc. should be strictly opt-in. I know there's been some discussion of this stuff in the issues before, but with ES modules it's not a huge issue to make them optional and puts rot.js much more in line with common best practices.

Sorry if this is a long post! Again, I think the library is great as it is and only needs a bit of work to make it much more accessible.

Hey! I wanted to open a conversation about modernizing the rot.js codebase to make it a bit more maintainable, and potentially more welcoming to contributors too.

I agree with the general attitude here. Rot.js was written in pre-ES6 era and updating the code makes sense. (But takes time I am somewhat lacking now.)
If I was to update rot.js, I would definitely:

stick with vanilla JS,
convert the code to ES6 modules,
bundle them using Rollup, driven via Makefile

Further improvements (introducing let/const, destructuring, default args, async/await, ...) can be done incrementally.

I've gotten most of the way towards a modernized version of the library at my fork over here. I've opted to use TypeScript: I know it sort of goes against rot.js's "vanilla js" approach, but making use of ES modules right now inevitably means some kind of build step or preprocessing will need to be introduced

I am, unfortunately, not really familiar with TypeScript (I know what it is and what it does, but zero experience there). I would prefer sticking with Vanilla to ease code readability for newcomers (modernizing the codebase is done for them, right?).
 Converting to ES6 modules of any kind does not modify the workflow.

I don't know if it makes too much sense to continue publishing a Bower package.

No, definitely not.

By a similar token, I don't think it's necessary to keep a separate subtree of Node overrides/shims -- I think any version of rot.js published to npm should be able to figure out whether it's running under Node or in a browser and offer the appropriate modules without any extra configuration.

(It's of course totally possible and desirable to keep offering a browser-ready, packaged rot.js and rot.min.js that don't require using the Node ecosystem, too.)

Browser-ready is mandatory. So this still means some code-splitting/alternative build paths. But perhaps the current node-related subtree can be reduced/simplified.

I haven't read over the tests extensively yet so I don't totally understand the overlap between the tests in node/test/ and the tests in test/.

I can speak only for test/ -- these are the original Jasmine-based tests that are meant to be run inside a browser. These cli-less tests are not very popular these days, but unfortunately they cover a reasonably large chunk of rot.js's functionality.
The Rhino-related stuff was an attempt to run said tests using a CLI.

Hopefully this isn't controversial, but I think the prototype extensions to array, number, string, etc. should be strictly opt-in.

I am personally still very OK with these modifications, because there was no single case of a naming collision that presented a real issue. All older reported issues turned out either bogus or as a problem of the conflicting party. But I seem to be in minority here :)
Having these opt-in is, unfortunately, backwards incompatible change. But if the user base does not want them, well, what can I do.

It might be cool to have the library itself be in vanilla ES6, but to include TypeScript definition files for folks who want to write their game in TypeScript, or simply for the Intellisense support it offers.

Thanks for the detailed responses @ondras @blinkdog !
@seanohue I'm not a huge fan of maintaining typedefs out-of-band (that is, manually written as a separate definitions file) for a few reasons:

Typechecking isn't enforced within the library code proper, so you lose all the actual benefits to correctness and maintainability of having types. (You also lose the clarity and readability of having annotations co-located with your code, which is a useful form of documentation; in this way it seems worse than JSDoc type annotations too.)
Consequently, it's very easy for the typedefs to go out-of-sync with the code. It add a lot overhead and need for discipline to maintain them -- and again, there's nothing really enforcing consistency with the library proper. As an end user trying to benefit from typedefs there's no worse feeling than having your compiler shout at you, only to dig into the problem and discover that it lies within some hand-rolled definition files.

For what it's worth, my perspective on TS is that it's pretty similar to vanilla JS with Closure/JSDoc annotations, except with vastly better tooling that gives you immediate in-editor feedback and makes it nicer to write and consume code. The TS devs are pretty conservative about adding new language features; they'll basically only consider stuff that's at minimum a Stage 3 TC39 proposal (so as to not deviate too far from JS proper). It's a pretty big philosophical difference from most compile-to-JS languages (or even CoffeeScript, for all it claimed to be "just JavaScript.")
The upshot is that you can run a compiler pass that does full Babel-like transpilation to ES5/ES3 if you want, or you can just run a simple pass that strips type annotations and gives you code that's in modern JS but is otherwise more-or-less identical to what you wrote.
Anyway, comments welcome on my WIP fork! I've been trying to modernize everything but hew pretty closely to the original code, with a few exceptions.

Also, as @ondras noted, simply removing the prototype extensions is indeed a backwards-incompatible change. With my fork I haven't been taking any particular care to maintain API compatibility -- while I didn't want to make any drastic changes, I thought it might be a "clean break" to change some of the API surface in a few places. It could potentially be published as a new semver-major version and kept in a different branch of the repo.
If maintaining compatibility and sticking to vanilla ES5/6 is important to folks, I'm happy to maintain my fork as its own separate thing if that makes the most sense, and maybe in that case I'd make some more opinionated changes (and maybe contribute some of it back to this repo as vanilla JS where it makes sense?) Or anything in between -- it's probably clear that I'm a pretty big fan of TS, but I'm really open to any options.

As far as backwards compatibility goes, I am totally okay with new major version that changes the API surface a bit (mostly those prototype enhancements). There is not much going on in rot.js these days, so people are not really forced to break compatibility in order to get shiny new things. This discussion is related mostly to geeky inner reworking which does not really improve stuff for a regular consumer.
TypeScript: I like the idea of typed source code. I also like the idea of not having to use a transpiler when doing stuff (modulo Rollup to bundle things), so perhaps there might be some way to make the code vanilla-es6 itself, but with type annotations (jsdoc/similar comment-style)? I recall Flow being a tool for this kind of stuff several years ago...

Any news on this?

Any news on this?

No, unfortunately. My time is a very limited resource these days (leaving for a three-week vacation in four days, btw) and re-working rot.js into ES6 and/or TS is a truly major task.
On the other hand: I am somewhat taking care about quite a large number of projects, all of them require some maintenance, and rot.js is probably the number 1 when it comes to priority. So this refactor is going to happen some day, that is for sure.

Hi there,
(/cc @lostfictions @blinkdog @scambier)
I have some good news! The work on TypeScript-based refactor of rot.js has just begun.
My TS skills are still not that high, so I will be learning a lot during the process. You can see the ongoing work in the ts branch (https://github.com/ondras/rot.js/tree/ts).
I moved everything into the _old subdirectory and started with a clean slate. What is done so far:

most of the build infrastructure (TS, rollup),
RNG is ported to TS
that's all :-)

There is quite a lot to be done and some things are not decided yet:

how to handle autogenerated docs (https://github.com/TypeStrong/typedoc ?)
how to handle unit tests
how to handle node
how to handle d.ts files

I am open to discussion. And yes, there won't be no prototype enhancements of built-in objects :tada:

For .d.ts files I'm not too sure what the question is -- for projects written in TypeScript, there's no need to mess with DefinitelyTyped or anything, you just publish the generated .d.ts files alongside the NPM package and consumers will automatically pick them up. You just need a types field in your package.json alongside the main field -- see here: https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html

For docs, my experience with TypeDoc has been that it unfortunately doesn't have great support for richer documentation that includes interactive elements, usage samples in context, etc.

I am completely open to any docgen out there. It should probably support both TS annotations and jsdoc-comment annotations, as the codebase will probably use these two.

For testing, I've started using Jest and have only had great experiences with it; it seems like the JS community has been gravitating towards it for a while and that it now has a critical mass of support. (Plus in general it's significantly simplified/standardized my test setups, since it's a runner but also includes assertions, mocks/spies, etc. -- no need for mocha+chai+sinon+whatever.) Most importantly, ts-jest lets you write tests in TypeScript and consume TS files without a transpilation step, so it's not at all cumbersome to set up.

I would like to stick with Jasmine, because all current rot.js tests are written in Jasmine. But I plan to switch from HTML runner to console runner, so that those tests that are not browser-specific can be run easily.
Some tests are browser-specific, though. That is why I would like to apply them to the transpiled JS code, as opposed to source TS.

For Node, you could perhaps just run tsc with a Node-specific outDir parameter, and a default entry point different from the one you use for Rollup that exports the Node-specific API? tsc will happily transpile TS files to commonjs (and down to ES5, or alternately ES2016+ if you only want to support the latest LTS version of Node or above).

I am okay with ES2015 modules for Node. The issue here are some polyfills/shims that make  browser-based APIs (canvas/ROT.Display) available in console apps as well.

Hope that helps! Happy to field TypeScript-specific questions or review code, and I could potentially also make a pass at setting up any of those things I just described above if that would be helpful.

Cool, thanks! I will let you know once I get some more things done.

For .d.ts files I'm not too sure what the question is -- for projects written in TypeScript, there's no need to mess with DefinitelyTyped or anything, you just publish the generated .d.ts files alongside the NPM package and consumers will automatically pick them up. You just need a types field in your package.json alongside the main field -- see here: https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html

My main issue here is how to structure these files, because the end product is not a single library file, but rather a directory structure of ES2015 modules. Shall I have one .d.ts per one .js, or can these declarations be somehow packed together ... ?

I would like to stick with Jasmine, because all current rot.js tests are written in Jasmine. But I plan to switch from HTML runner to console runner, so that those tests that are not browser-specific can be run easily.
Some tests are browser-specific, though. That is why I would like to apply them to the transpiled JS code, as opposed to source TS.

I'd highly recommend taking a look at the Jest docs and some examples: it supports Jasmine's API for both grouping tests and assertions, so (picking an file from the specs directory at random here) something like spec/display.js might work out-of-the-box -- describe("a test group", function() { ... }), it("test description", function() { ... }) and expect(whatever).toBe(something) will all work. (Assuming ROT is in scope or you explicitly add an import of Display at the top of the file, of course.)
It also actually supports a DOM environment out of the box via jsdom -- see this example with JQuery -- or if you actually need to run tests in a full browser I think you could automate that with something like jest-puppeteer too.

I am okay with ES2015 modules for Node. The issue here are some polyfills/shims that make browser-based APIs (canvas/ROT.Display) available in console apps as well.

You might be okay with ES modules for Node, but I'm not sure Node is okay with ES modules :)
Node's support for ESM is experimental and currently has to be enabled with a flag, and it's probably not reasonable to expect any consumer of the library to turn that on, so transpiling is the simplest way to fix that. (And you need to transpile out the Typescript syntax at minimum anyway, so it's not really costing an extra step -- you just declare "module": "commonjs" in your tsconfig.json.)
But yes, the approach I'd recommend is as I said -- a Node-specific entry point file (different from the one you point Rollup towards) that imports whatever shims you need, and then exports the API.

My main issue here is how to structure these files, because the end product is not a single library file, but rather a directory structure of ES2015 modules. Shall I have one .d.ts per one .js, or can these declarations be somehow packed together ... ?

The output is always a single .d.ts file, and Typescript handles this for you. The first step is just to set "declaration": "true" in your tsconfig.json, and then point the "types" files in package.json to wherever the .d.ts file gets generated to. This will get picked up by consumers importing the package via Node, Webpack, Rollup, etc.
(For consumers just loading the module via a script tag in the browser, the declaration file is probably moot, though if they're for some reason using that method and also typescript they can still make a /// <reference ... declaration with the path to the declaration file if needed.)

I'd highly recommend taking a look at the Jest docs and some examples: it supports Jasmine's API for test groups, assertions, etc., so (picking an file from the specs directory at random here) something like spec/display.js might work out-of-the-box -- describe("a test group", function() { ... }), it("test description", function() { ... }) and expect(whatever).toBe(something) will all work. (Assuming ROT is in scope or you explicitly add an import of Display at the top of the file, of course.)

Sounds nice! I will definitely have a look. Note that the tests shall be runnable from a HTML page as well.

The output is always a single .d.ts file, and Typescript handles this for you. The first step is just to set "declaration": "true" in your tsconfig.json, and then point the "types" files in package.json to wherever the .d.ts file gets generated to. This will get picked up by consumers importing the package via Node, Webpack, Rollup, etc.

Will try!

(And you need to transpile out the Typescript syntax at minimum anyway, so it's not really costing an extra step -- you just declare "module": "commonjs" in your tsconfig.json.)

My initial idea was to point nodejs users to (transpiled) ES2015 modules so they can handle them as they need (either using experimental native modules or by transpiling them to commonjs etc). As far as the complicated build chain is considered, the entry point in most cases should be the lib/ directory (TS used only as an authoring format).
I will create a Graphviz image showcasing the various formats and bundles produced by the build process :)

@lostfictions I just ported ROT.Display and boy, that TS is a lot of work! You certainly did quite a lot of work in your TS fork. Kudos to you!
(I am unfortunately not directly re-using your code, as I want to learn TS myself and this is a great opportunity. I am, however, taking a lot of inspiration from your work.)
There is one thing that still puzzles me: with strictNullChecks, this seems to be a problem:
[].concat("a")

I can solve it with
([] as any).concat("a")

but it is not very clean. Moreover, you do not seem to have this issue in your code. Can you please give some insight into this?

Right -- both these approaches work. In general this isn't an issue because typically one concats something into a non-empty array -- that's the whole point of concatting, right? -- but this is a case that confuses the typechecker. When you declare an empty array without a type hint, it has no context to infer what kind of thing(s) are going to go in there, so it defaults to never[] (nothing can go in there!) and any concat operation will fail, even if it immediately follows. So generally you want to either initialize the array with data, or if you declare an empty array annotate what's going to go in there.
Incidentally, TS can usually infer this, too -- I think @atiaxi's second snippet can also simply be written without the annotation for chars:
let chars;
if(typeof ch === 'string') {
  chars = [ch];
} else {
  chars = ch;
}

or even more concisely:
const chars = typeof ch === 'string' ? [ch] : ch

(Assuming Typescript knows that ch is either string or string[] with no other options.)
Often for clarity and documenting your assumptions it's nice to have an explicit annotation, though.

Incidentally, for what it's worth, you should never have to use any in your own code, even though it may seem tempting when you're getting started.
It may sometimes be useful at the boundaries of your codebase where you're interacting with someone else's code, but even then you can typically do better than any (unknown is usually a better option if nothing more specific applies). In shared TS codebases I like to turn on a no-explicit-any lint rule so that folks only use it if they're really, really sure they need it and can explain why :)

Often for clarity and documenting your assumptions it's nice to have an explicit annotation, though.

Another reason I tend to do exactly that even when the compiler has it in hand is that I find it makes the Autocomplete work better :)

Thanks for all the comments. I decided to stick with ([] as string[]).concat, although in my opinion it makes the code much less readable. I consider [].concat(x) as an idiomatic way of converting a value to array in JS...

The output is always a single .d.ts file, and Typescript handles this for you. The first step is just to set "declaration": "true" in your tsconfig.json, and then point the "types" files in package.json to wherever the .d.ts file gets generated to. This will get picked up by consumers importing the package via Node, Webpack, Rollup, etc.

@lostfictions this does not seem to work for me. TS generates one .d.ts per each .js generated. I suppose this is okay, as long as the end user opts to use ES2015 modules. But those two prefer the bundled file will have to live without .d.ts.

Slowly moving forwards.

Build process (Makefile-based) almost complete and documented:

More modules ported (utils, color, stringgenerator)
Autogenerated docs
Manual semi-ported

I am almost done with the refactor. Some remarks before the work is completely finished:
* there is no separate _node_ version of rot.js; the library simply contains Node support out of the box. The most problematic part (ROT.Display) has been refactored in a way that no longer requires shims and/or polyfills.

That's pretty cool. Way back when I first wrote the shims, my goal was to make the library usable in Node with minimal disruption to mainline development. Today, Node lives in the mainline.

* CoffeeScript tests are probably not going to make it. My knowledge of CS is limited and I do not have the energy to refactor them as well. Some might _just work_, but I will leave this up to someone else.

* I decided to stick with Jasmine for unit tests. I added a puppeteer-based runner that allows running of tests without a regular browser. Just `make test` and see.

I can scope this work out after November. I do think there is value in maintaining a coverage suite, but I'd probably aim to refactor the CoffeeScript tests as ES6 tests running under Jasmine. I think istanbul can use Jasmine as a test runner, so we can still get sweet coverage reports.

One problematic part to port is the ROT.DEFAULT_WIDTH / ROT.DEFAULT_HEIGHT value. ES6 modules allow only read-only exports, but there is existing code (including the interactive manual) that modifies these values. One way to solve this would be to just export ROT.DEFAULT_SIZE -- as a constant, but with mutable members. Not very pretty though.

ES modules just export immutable bindings to live values, so something like this is definitely possible:
export let DEFAULT_WIDTH = 40;
export function setDefaultWidth(newWidth: number) {
    DEFAULT_WIDTH = newWidth;
}

So DEFAULT_WIDTH won't be writable for consumers of the module, but setDefaultWidth will work just fine. (This article is a nice summary of that if it helps.)
If it's just a question of it being confusing for defaults to be writable at all after program initialization (since they're only changed for internal use, sounds like?) I'm sure rollup has something equivalent to webpack's DefinePlugin -- maybe you could leverage that to set defaults things like the interactive manual?

@ondras exciting for TypeScript! Will you be publishing the types with the package? Currently the source is using TypeScript but we can't import types from it without still using @types/rot-js (which has some problems).

Apologies, looks like you've already set up the types, but not in a way that the TypeScript compiler can automatically find them. I created a simple PR https://github.com/ondras/rot.js/pull/142 so that our projects can pick it up.


Make the core testbase off-line ready

There is several tests that call httbin or bing, and they can't pass if there is no network. Need to find a way todo an actual HTTP request, with the less possible mock so we're confident it's working as expected.
I think I remember httpbin can be install locally, maybe that?
To investigate.

Maybe https://github.com/kevin1024/pytest-httpbin (which AFAICT is not the actual httpbin)?

Tests that need to be made offline:
test_streaming.py

[ ] test_decompress_plain_no_header
[ ] test_decompress_compressed_no_header
[ ] test_compress_plain_header
[ ] test_compress_compressed_header

test_streaming_async.py

[ ] test_decompress_plain_no_header
[ ] test_compress_plain_no_header
[ ] test_decompress_compressed_no_header
[ ] test_compress_compressed_no_header
[ ] test_decompress_plain_header
[ ] test_compress_plain_header
[ ] test_decompress_compressed_header
[ ] test_compress_compressed_header

@kristapratico I would love to take these up one by one(or all together depending on the requirement). I have already started and raised this PR : https://github.com/Azure/azure-sdk-for-python/pull/33800 . I just need the reviewers feedback to make sure I am on the right track. If there is any feedback, I would be happy  to incorporate it in my next revisions.

Hey @lmazuel  @kristapratico @iscai-msft  @xiangyan99 .hope it is going well.  I have updated https://github.com/Azure/azure-sdk-for-python/pull/33800 to add all the test cases needed to be made offline. Currently all my changes are in a single PR. If you want me to break into multiple PR's for each test I can do that as well. If the code is not par or some case is missing. I would be happy to fix it. I would really really appreciate any response/feedback  from your side. I really want to contribute to the azure sdk. and your feedback would really help me.

Hey everyone any feedback on the PR #33800 ??

@HimanshuBarak thanks for your patience. Review feedback was left on the PR.

Completed in https://github.com/Azure/azure-sdk-for-python/pull/33800 and https://github.com/Azure/azure-sdk-for-python/pull/34247


shot-scraper multi shots.yml -o output.png to selectively run shots from a YAML file

In adding new screenshots to this multi file: https://github.com/simonw/datasette-screenshots/blob/main/shots.yml
I found myself wanting a way to run just a subset of the shots defined in the file.
Here's a design for that:
shot-scraper multi shots.yml -o binary-data.png
Screenshot of 'table' on 'https://latest.datasette.io/fixtures/binary_data' written to 'binary-data.png'

Here's a prototype that works pretty well already:
diff --git a/shot_scraper/cli.py b/shot_scraper/cli.py
index fc69fe6..aded7ef 100644
--- a/shot_scraper/cli.py
+++ b/shot_scraper/cli.py
@@ -315,6 +315,13 @@ def _browser_context(
     is_flag=True,
     help="Skip images that already exist",
 )
<EMAIL_ADDRESS>+    "outputs",
+    "-o",
+    "--output",
+    help="Just take shots matching this output file",
+    multiple=True,
+)
 @browser_option
 @user_agent_option
 @reduced_motion_option
@@ -325,6 +332,7 @@ def multi(
     timeout,
     fail_on_error,
     noclobber,
+    outputs,
     browser,
     user_agent,
     reduced_motion,
@@ -366,6 +374,8 @@ def multi(
                 and pathlib.Path(shot["output"]).exists()
             ):
                 continue
+            if outputs and shot.get("output") not in outputs:
+                continue
             try:
                 take_shot(context, shot)
             except TimeoutError as e:

New help output:
Options:
  -a, --auth FILENAME             Path to JSON authentication context file
  --retina                        Use device scale factor of 2
  --timeout INTEGER               Wait this many milliseconds before failing
  --fail-on-error                 Fail noisily on error
  -n, --no-clobber                Skip images that already exist
  -o, --output TEXT               Just take shots matching this output file


Add a link and info about the Lucene.NET Slack channel

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the documentation issue
We set up a Slack channel (provided by Apache) some time ago, but it hasn't found its way yet onto our Contributing section.
OpenNLP (another Apache project) has their Slack channel as an official way to contact them. Here is what their page looks like: https://opennlp.apache.org/get-involved.html
Additional context
The Apache docs for Slack are here: https://infra.apache.org/slack.html.
The channel is located at: #lucenenet-dev

Can I work on this?

@jaivardhan-bhola - Sure. I have assigned it to you. Let us know if you need any assistance.

Lemme know if other changes are needed.

These changes are now live: https://lucenenet.apache.org/contributing/index.html#slack-channel


Old meetings' is_meeting field default to true [#OSF-5645]

Purpose
Make it so that old meetings' is_meeting field defaults to true so that when editing an older meeting you don't accidently submit the form without setting is_meeting to true

Changes
Changed serializer to set is_meeting to true is it is none

Side effects
None

Ticket

https://openscience.atlassian.net/browse/OSF-5645

Pass done. One potential change. Write a test for the scenario and change it if it needs to be (unless that situation can't come up, in which case it's fine). 🐧

Looks great. 🎉 🐧 🎉 I'll merge after tests pass.

The only failing test was the js test on the second branch and this is a simple enough change. I'm gonna live on the edge and merge it.


Dev Test: Hooke's Law 1.1.0-dev.18

Dev Test
Mentions: @Nancy-Salpepi @KatieWoe @kathy-phet @pixelzoom
Simulation links

github repository for issues
phet top-level directory
sim: all_phet.html

Test Matrix
Please include all (non-screen reader) feature testing in these records if applicable.

[x] Latest macOS, Safari (Time = 2 hrs)
[ ] Latest iOS, Safari (Time = )
[x] Windows 10/11, Firefox (Time = 3 hrs)
[x] Windows 11, Chrome (Time = 2)
[x] Latest Chrome OS, Chrome (Time = 2hrs)

Light testing, or optionally skip if time crunch:

[x] Latest macOS, Chrome (Time = 1hr)
[ ] Windows 10, Chrome (Time = )

Features included

~PhET-iO~
[x] Dynamic Locale
~Alternative Input~
~UI Sound~
~Sonification~
~Description~
~Voicing~

Focus and Special Instructions
We are re-publishing this sim off of main with only PhET brand. The goal for the publication is to make the sim easier to maintain. In addition to a typical dev test, can you please make sure there are no regressions or unexpected changes from the last version?
New features include pan and zoom and dynamic locale, since these now are enabled by default in main.

For QA...

General features

What to Test

Click every single button.
If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Try to include browser version numbers
If there is a console available, check for errors and include them in the Problem Description.
Run through the string tests on at least one platform, especially if it is about to go to rc.
Check the Game Up harness on one platform.

PhET-iO features

What to Test

Make sure that public files do not have password protection. Use a private browser for this.
Make sure that private files do have password protection. Use a private browser for this.
Make sure standalone sim is working properly.
Make sure the wrapper index is working properly.
Make sure each wrapper is working properly.
Launch the simulation in Studio with ?stringTest=xss and make sure the sim doesn't navigate to youtube
For newer PhET-iO wrapper indices, save the "basic example of a functional wrapper" as a .html file and open it. Make
sure the simulation loads without crashing or throwing errors.

Accessibility features

What to Test

Specific instructions can be found above.

Make sure the accessibility (a11y) feature that is being tested doesn't negatively affect the sim in any way. Here is
a list of features that may be supported in this test:

Alternative Input
Interactive Description
Sound and Sonification
Pan and Zoom
Mobile Description
Voicing

Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.
Test all keyboard navigation inputs (if applicable).
Test all forms of input with a screen reader (if applicable).

Screen Readers
This sim may support screen readers. If you are unfamiliar with screen readers, please ask Katie to introduce you to
screen readers. If you simply need a refresher on screen readers, please consult the
QA Book, which should have all of the information
you need as well as a link to a screen reader tutorial made by Jesse. Otherwise, look over the a11y view before opening
the simulation. Once you've done that, open the simulation and make sure alerts and descriptions work as intended.

Platforms and Screen Readers to Be Tested

Windows 10 + Latest Chrome + Latest JAWS
Windows 10 + Latest Firefox + Latest NVDA
macOS + Safari + VoiceOver
iOS + Safari + VoiceOver (only if specified in testing issue)

Critical Screen Reader Information
We are tracking known screen reader bugs in
here. If you find a screen reader bug,
please check it against this list.

Keyboard Navigation
This sim supports keyboard navigation. Please make sure it works as intended on all platforms by itself and with a
screen reader.
Magnification
This sim supports magnification with pinch and drag gestures on touch screens, keyboard shortcuts, and mouse/wheel
controls. Please test magnfication and make sure it is working as intended and well with the use cases of the
simulation. Due to the way screen readers handle user input, magnification is NOT expected to work while using a screen
reader so there is no need to test this case.

FAQs for QA Members

There are multiple tests in this issue... Which test should I do first?
Test in order! Test the first thing first, the second thing second, and so on.

How should I format my issue?

We typically assign the developer who opened the issue in the QA repository.

My question isn't in here... What should I do?
You should:

Consult the QA Book.
Google it.
Ask Katie.
Ask a developer.
Google it again.
Cry.

Just noting a couple of things I noticed comparing to the published version. The layout has changed and now this text has scaled down:

We gained a decimal point on this number control:

A couple of other differences I see when comparing to the published version:

On the Energy screen, the Energy Checkbox is now centered on the panel
On the Energy screen, when at max values the Applied Force arrow now touches the panel.

Dev Version vs. Published:

Shorter strings can move the images next to them, which didn't happen in published. Both dynamic and non-dynamic locale seems impacted.

@KatieWoe Why is this not in the project board?

@KatieWoe Why is this not in the project board?

Didn't even realize it wasn't there. I moved it over (even though I'm not Katie 🙃)

Sorry bout that. Slipped my mind.

To add to @KatieWoe comment it was a little easier to see using ?stringTest=dynamic
Arrows moving quite a bit.
https://github.com/phetsims/qa/assets/48224214/8271d087-394e-41b5-af0e-fd5247acca56

Memory test looked ok. If there is a leak it is small.

@jessegreenberg @KatieWoe @Nancy-Salpepi - If you haven't already, can you please move your dynamic layout comments to this issue that is already open, so they are all compiled in there: https://github.com/phetsims/hookes-law/issues/81
Thanks!

Yes, I moved comments above into https://github.com/phetsims/hookes-law/issues/81#issuecomment-2198782920.

QA is done

QA credits: Jaron Droder, Matthew Moore, Nancy Salpepi, Kathryn Woessner

All of the issues reported in comments herein were moved to their own issues, and have been addressed.
Memory testing indicates no leaks, see https://github.com/phetsims/hookes-law/issues/67.
We're ready to move to RC testing. Closing.


Create quick access / shortcuts / favorites to folders

Just like in stock windows explorer, add the ability to create shortcuts to folders (or known as "quick access") on the left side, next to drives. Perhaps even call it "Favorites". Thanks much in advance

Better yet, if the "Bundles" section can be placed in the sidebar, followed by the shortcut folders.
Just like they appear for the "Drives".

You can already right click on a folder and select "pin to sidebar" which does exactly that.

you're right!
didn't realize.
but now they appear underneath all other folders.
how about keeping them separate, under "bundles" or "favorite" title.
On Fri, Mar 5, 2021 at 12:39 PM Marco Gavelli<EMAIL_ADDRESS>wrote:

You can already right click on a folder and select "pin to sidebar" which
does exactly that.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/3845#issuecomment-791573924,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP5FZMYC6ZR4N77AGYUOSY3TCEJMLANCNFSM4YVTEVAQ
.

--
Moshe Friedman
JCN Marketing & Design
718-687-8781
<EMAIL_ADDRESS>www.jcndesign.com
339 Walsh Court, Brooklyn, NY 11230

Thanks for confirming. A separate sidevar section for pinned folder has been added in version 1.3.5 (beta) and will ship for everyone in the next public release 👍


Commit payload problem in webhooks

Gitea version (or commit ref): 1.8.1
Git version: 2.20
Operating system: Arch Linux ARM (in Docker)
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Description
I am using Drone CI and I noticed that when I commit directly in Gitea, the comitter attribute contains an incorrect email address and an empty username.
This doesn't prevent Drone from working, but there is no information about the user in the Drone builds.

OK, I understood why it didn't work: I had hidden my email address (the system returns the NoReplyAddress in that case) and when Gitea converts a commit to payload, it recovers the username with this email address (GetUserByEmail). Shouldn't we do something else?

This will protect user's privacy .


Fix for Linux Baseline os-02

for SUSE and Ubuntu environments: group should be "shadow" and file mode "0640"
(for SUSE also corrected in Baseline, see https://github.com/dev-sec/linux-baseline/pull/70)

Thank you @mcgege for the PR. Merged as accepted in the linux baseline.


error 403 code 50001

Script working properly in DMs with people, but not working in a server where I am a mod and have all privileges, including "Manage Messages"
I am only trying to delete my own messages as well, so I'm not sure what could be giving this error.

NSFw channel?

it is nsfw channel, yes

Try:
https://pastebin.com/raw/KidL13yv

Seems like the author gets ID of the channel from the href/url bar instead of the guild object so he cant check if it is NSFW.
May be then it worth to add a extra checkbox for the user to tick so it will add NSFW argument to the query

tested by removing NSFW and this is correct.  script working after NSFW is removed

Issue solved in #38
You can now select a option to include messages in NSFW channels


HOTT 3026 overriding tree nodes depth

Jira link
HOTT-3026
What?
I have added/removed/altered:

[x] Added a TreeNodeOverrides model + table
[x] Changed the goods_nomenclatures_tree_nodes to favour the newest of the indent from the overrides table and the one from the indents view

Why?
I am doing this because:

This provides an 'escape hatch' to allow us to correct errors in the indents provided by CDS data without actually changing the indents data
Which in turn means we can continue to present the CDS indents value to the user (even if its incorrect) whilst also ensuring the elements are at the correct location in the tree

Deployment risks (optional)

Drops and recreates the tree nodes view which may cause a few errors temporarily - the retry handling should cover these anyway but the tree nodes view is used by many endpoints just yet

Challenge is even if the indents data is wrong - if thats what we're getting from upstream its what we should be publishing
but
we still need an alternative source if we're to correct the impact of broken indents data on the tree hierarchy
This means in the scenario where the indent jumps from 3 to 5 say between levels, we can fix our representation of the tree but still show the indents as being 3 and 5 respectively to the api consumer


A fastcore test_stdout test works in the notebook and works with nbdev_test_nbs, but fails using nbprocess_test

I have a printed output test (copied from fastai) that works in the notebook and works with nbdev_test_nbs, but errors out using nbprocess_test.
It can be found in this notebook, cell 50:
learn = synth_learner(n_trn=5, metrics=TestAvg())
pat = r"\[\d, \d+.\d+, \d+.\d+, \d+.\d+, '\d\d:\d\d'\]"
test_stdout(lambda: learn.fit(1), pat, regex=True)

The original test is from fastai's 13a_learner.ipynb and I assume that it also fails (however, I have not verified it fails).
learn = synth_learner(n_train=5, metrics=tst_metric)
pat = r"\[\d, \d+.\d+, \d+.\d+, \d+.\d+, '\d\d:\d\d'\]"
test_stdout(lambda: learn.fit(1), pat, regex=True)

The error log doesn't look helpful, but am posting it for completeness.
WARNING:root:AssertionError in /fastxtendnp/nbs/metrics.ipynb:
===========================================================================

While Executing Cell #50:
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-1-ab2039eed6f1> in <module>
      3 # pat = r"[tensor\(\d.\d*\), tensor\(\d.\d*\), tensor\(\d.\d*\), 'dd:dd']"
      4 pat = r"\[\d, \d+.\d+, \d+.\d+, \d+.\d+, '\d\d:\d\d'\]"
----> 5 test_stdout(lambda: learn.fit(1), pat, regex=True)

~/miniconda3/lib/python3.9/site-packages/fastcore/test.py in test_stdout(f, exp, regex)
     78     s = io.StringIO()
     79     with redirect_stdout(s): f()
---> 80     if regex: assert re.search(exp, s.getvalue()) is not None
     81     else: test_eq(s.getvalue(), f'{exp}\n' if len(exp) > 0 else '')
     82

AssertionError:

nbprocess Tests Failed On The Following Notebooks:
==================================================
        metrics.ipynb

@warner-benjamin, via @jph00 on discord:

i've just added a default_cbs:bool=True param to Learner. If you set it to False in that failing test, and manually just add the minimal needed callbacks, hopefully that'll fix the failing test you were having trouble with

If that works, I think it's okay to close this? cc @hamelsmu

No I need to fix the test first


nixos/litestream: init

Motivation for this change
Adds litestream service
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Hi @aanderse! Many thanks for the review. I left comments on package and service user issues.

Agreed, to properly detect breakage this would require a small test, basically also showing how you intended this to be set up.

Added tests and checked the manual.

@GrahamcOfBorg test litestream

Currently no time to look at this, so go ahead at your own discretion.

Thanks @jwygoda! Awesome stuff 🚀


migrate nvidia-device-plugin to imagetest

draft for now since I'm not sure what the appropriate behavior of these tests should be given we don't have GPU support in CI

As part of a Chainguard effort to reduce code duplication and provide higher quality images, we have stopped accepting pull requests for changes to images in this repository. Due to this, we are closing all pull requests today in order to start fresh.
If you think this pull request was closed in error, please feel free to re-open this pull request or open an issue and we will try to help you out. Thank you!


Refactor Lock to be more explicit about optimistic vs pessimistic

What have you changed?
This is the final part of https://github.com/tikv/tikv/pull/6203. It makes it explicit whether a transaction is optimistic or pessimistic.
PTAL @MyonKeminta @youjiali1995
What is the type of the changes?

Engineering (engineering change which doesn't change any feature or fix any issue)

Closing because it is so out of date


Scribing Tools and Scroll not on table

Not sure if this has been reported but I checked a few pages and couldn't 'find' it. The models don't show up on the table at all.
Also this could be time to suggest returning to the 1x2 table via placing 2 research tables next to each other and having them combine. Just as a aesthetic addition, but bugs and new content are priority for sure.

Are you using Beta 15 while seeing this?

It seems to be an issue ever since 1.12.2 was released. Source: Watching TC6 guide videos the scribing tools always seem to be missing.
but yes in B15 they are missing for sure.

Huh. I never noticed they were gone before you mentioned it. Perhaps this is intentional or hasn't been added back in yet because it's just aesthetic.

Its defiantly worth the time and is removed either because of a bug or temporary for some reason. This mod is all about the game play and aesthetic. Its not as important as getting all the features in and polished, but it is certainly worth it. Anything that helps bring the player and add immersion is important and I think Azanor strides for.

Fair enough, people get immersion from all sorts of different things after all.


This confuserex best then confuserex mod by bed?

This confuserex best then confuserex mod by bed? Is it worth going over to this confuserex?

ConfuserEx by @BedTheGod contains some additional protections. This one contains more bugfixes for issues reported. You should choose the one that works for you and provides the required features you need.


DBZ-8395 Return always positive value for OldestScnAgeInMilliseconds

https://issues.redhat.com/browse/DBZ-8395

Thanks @vjuranek, applied to main (=3.0) and branch 2.7.


Need Contact

Let's put the contact option underneath the most recent game film. The button will link to it.

This should be easy to do now that it's on yellowcake and it's built in.


Clang immintrin bug

HI I have been trying to deduce this bug from the depthai-core library and found out that it is a simple fix but do not know how to make a pull request...
In the file:
XLink/src/pc/protocols/usb_host.cpp
The std headers just need to be moved to the top of the file for this  bug to be fixed... I assumed it was a clang bug but it turns out its an order of header bug.
This would make the xlink library clang compatible if this single issue is fixed

@onthegrid007 you may post the diff here and I can apply the fix
Otherwise WRT making a PR, you can:

Fork the XLink repository
commit the change that fixes it to your fork
click New Pull Request under Luxonis XLink repo and select your fork/master and our master branch

I will follow this this weekend, middle of school atm


Boolean being passed as generic starts to extend both true and false

Bug Report

🔎 Search Terms

boolean, generic, true, false, opposite
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about 4.9.4 & 5.0.0-dev.20221208

⏯ Playground Link

Playground link with relevant code
💻 Code

type VWhenTrue<T, V> = T extends true ? V : never;
type VWhenFalse<T, V> = T extends false ? V : never;

// results in 'never', which is as expected.
type test1 = boolean extends true ? string : never;
type test2 = boolean extends false ? string : never;

// results in 'string', which is opposite as before, even though it's the same check.
type test3 = VWhenTrue<boolean, string>;
type test4 = VWhenFalse<boolean, string>;

🙁 Actual behavior

boolean being passed as a generic starts to extend both true & false, whereas when inline, it extends neither.
🙂 Expected behavior

boolean should not extend either true or false, because true & false both extend boolean already.
inline this works as expected, but when passing through as a generic, it breaks.

boolean is an alias for true | false, so in a distributive conditional type it is distributed.

boolean is an alias for true | false, so in a distributive conditional type it is distributed.

So is there a way that you check that T is true, but not boolean?

So is there a way that you check that T is true, but not boolean?

[T] extends [true] ? V : never

I really don't think this makes sense. It showcases contradicting behaviour.

it seems the issue is with union types in general:
type Simple = 'a' | 'b' extends 'a' ? true : false; // false
type Generic<A, B> = A extends B ? true : false;

type Test = Generic<'a' | 'b', 'a'>;     //boolean (true | false)
type Other = Generic<string, 'a'>;    //false

I don't understand the idea behind this behavior


Revert "Enhanced Logstash Data Connector with Managed Identity Support"

Reverts Azure/Azure-Sentinel#10032
The capability is included in a forked repo which is managed externally by its authors.

Hello @haim-na, Thanks for raising this PR. This PR will be investigated and we will update you about the same before 12 Jun, 2024.


Error: ImagineApi failed with status 401

Some examples of http status 401

https://github.com/erictik/midjourney-api/commit/dad12fc88eb18b9eb559bc813664e9b37aea4ab9


[Bug]: Building the same tower on existing tower reduce gold

What happened?
It shouldn't :=
Relevant log output
No response
Checklist

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

solved


Update tr.go

Add alphaunicode tag translation
Fixes Or Enhances
Make sure that you've checked the boxes below before you submit PR:

[x] Tests exist or have been written that cover this particular change.

@go-playground/validator-maintainers

coverage: 73.849%. remained the same when pulling 2a2209fe3d7e6bc014bdc172398e129d2a1f4aa0 on ResulCelik0:patch-1 into 8d50f2fd8c2f02fbdf1d44d66171b955c2f4eb50 on go-playground:master.


Possible to create multiple overview pages?

Without hacking kss or sc5, that is? We would like to have at least one separate markdown page for a changelog. Possible?

I am closing this as a duplicate of #497


HV-1066 Don't use IDN.toASCII on the local part of the email

https://hibernate.atlassian.net/browse/HV-1066

Using IDN.toASCII on the local part of the email was a bad idea to begin
with, forcing us to introduce a splitting logic on top of IDN.toASCII.
Executing IDN.toASCII on each chunk of a split string is not equivalent
to executing it on the whole string, potentially opening the way for
other bugs.
Thus, we ended up doing the following:

allow the \u0080-\uFFFF character range in the local part of the email
thus allowing local parts containing UTF-8 characters;
only use IDN.toASCII on the domain name as it should be.

This simplifies the logic a lot and should limit the number of bugs in
this area.
In passing:

improve the feedback in email validation tests;
be more cautious about how we generate the domain names in tests: each
label of a domain name must be at most 63 characters long.

@marko-bekhta thoughts?

Added some comments/questions.
Would also be great to hear back from @marko-bekhta whether this solution works for you. Thanks!

Force pushed an update.

Rebased and pushed to 5.3 as well as master (6.0).
@marko-bekhta it'd be great if you could check out out, build (just run mvn clean install or refer to the readme.md) and give it a test run. Thx!

@gunnarmorling done that, all works great 👍 also looked through the code and - now I think the problem is solved correctly, thanks @gsmet

Cool, thanks for reporting back! We'll do a 5.3.0.CR1 release with this fix
within the next days.


VM stalls on deferred load of package URI when it has no way to resolve packages.

 Without the timeout, the program just exits because the future will never be completed.
If you run it with a package root or config, even one with no "foo" package in it, the loadLibrary call just fails with an error.
The stalling behavior is surprising and can easily make your program exit when you await the result.

Moving to @a-siva for assignment

I think this is a duplicate of bug #23797.
I don't observe a difference in behavior if a package-root is given on the command line or not. In both cases, the timeout fires and is printed by the catchError() handler. If no timeout is given, the VM terminates and the loadLibrary() future is never completed.
With timeout:
import "package:foo/foo.dart" deferred as foo;
main() async {
  await foo.loadLibrary().timeout(new Duration(seconds: 2)).catchError(print);
  print("after await");
}

$ $DEBUG_DIR/dart ~/tmp/p.dart
TimeoutException after 0:00:02.000000: Future not completed
after await

$ $DEBUG_DIR/dart --package-root=$DEBUG_DIR/packages/ ~/tmp/p.dart
TimeoutException after 0:00:02.000000: Future not completed
after await

Without the timeout:
import "package:foo/foo.dart" deferred as foo;

main() async {
  await foo.loadLibrary().catchError(print);
  print("after await");
}

$DEBUG_DIR/dart ~/tmp/p.dart
$

$ $DEBUG_DIR/dart --package-root=$DEBUG_DIR/packages/ ~/tmp/p.dart
$

Why is the loadLibrary never completed?

Florian is asking the correct question.
If the VM has a way to resolve packages, but the requested file does not exist, the future completes with an error.
If the VM has no way to resolve packages, the future does not complete.
It should complete in both cases, with an error. Not completing isn't useful, and you have to be defensive and add a timeout to get the expected behavior.
So, this is not a duplicate of #23797 - the problem isn't the behavior when the future doesn't complete, but that it doesn't complete.

I agree. This is a recent regression, as it turns out. We are looking at it now.

@johnmccutchan fixed this in 3b2e14ab56d2e5e9dbf660270153402e6689bd1e. Thank you!


ValidationError for Schema use in dataclass

Bug
(At least I think it is a bug, maybe it's a feature.)

OS: Linux 4.15.0-48-generic x86_64
Python version: Python 3.7.0
Pydantic version: 0.24

I'm trying to define a pydantic dataclass model that renders nicely to a JSON schema with title, description, etc.
import pydantic
from pydantic.dataclasses import dataclass

@dataclass
class Foo:
    number: pydantic.confloat(ge=0.0, le=10.0) = pydantic.Schema(default=5.0, title="Magic Number")

I would have expected the above to work but it raises a validation error:
>>> Foo()
ValidationError: 1 validation error
number
  value is not a valid float (type=type_error.float)

Assigning a float works just fine:
>>> Foo(number=6.0)
Foo(number=6.0)

Some observations:

Using BaseModel instead of a dataclass works just fine.
Using just the value as default instead of Schema also works.@dataclass
class Foo:
    number: pydantic.confloat(ge=0.0, le=10.0) = 5.0

What I tried at first seems to me the most concise to me but I can replicate that behavior using a config class and that works.

class Config:
    fields = {"number": {"title": "Magic Number"}}

@dataclass(config=Config)
class Foo:
    number: pydantic.confloat(ge=0.0, le=10.0) = 5.0

So the last option works for me but I was wondering if what I had originally written is intended to work also.

Looking some more into it, this is covered by #470. Can you give some pointers on how to tackle this issue to make this behavior possible?

Yes bug, thanks for reporting. I haven't looking into it, but shouldn't be too hard to fix.
PR welcome our I'll look at it when I get a chance.

duplicate of #470


Correct HTML in Create.cshtml

#49
<div>, <label> and <span> should always be written with end tags

nit: let VS have its way with _references.js file

Hi @dougbu, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

/cc @rowanmiller

:shipit:

d5f8910


hotreload not working

not working hotreload, when using it inside docker container.

Hi @ptflp sorry I've not tested using hot reload in a container so hoepfully someone else might comment.
However just out of interest I would have expected you to treat the container as immutable and so only performed this task during container creation at which point I don;t think you need to use the hot reload do you?

@ptflp Are you editing the file outside of docker container?

@adnanh, hooks.json updates from host machine when webhook is triggered

@ptflp - how do you mount your file into the guest container? make sure to mount folder and not a specific file,
my tests with the latest version of webhook work as expected,
that's from docker logs:
[webhook] 2018/03/01 13:32:01 hooks file hooks.yaml overwritten
[webhook] 2018/03/01 13:32:01 attempting to reload hooks from hooks.yaml
[webhook] 2018/03/01 13:32:01 found 2 hook(s) in file
[webhook] 2018/03/01 13:32:01 	loaded: import
[webhook] 2018/03/01 13:32:01 	loaded: export

@sh33pz0r, Thank you! folder bind mount, instead file, solved it!


Make y.finance and yearn.finance utilize the same CloudFront distribution

y.finance should be an exact mirror of yearn.finance.
In order to accomplish this:

Need to obtain an SSL cert that works for both yearn.finance and y.finance (need to coordinate with Future Fund)
Apply cert to CloudFront distribution
Add y.finance to CloudFront distribution CNAME

y.finance now redirects to yearn.finance


Fixes issue 1664. SwitchNetwork exposes API keys when adding a new network

Description
Check https://github.com/wagmi-dev/wagmi/issues/1664
Additional Information

[x] I read the contributing docs (if this is your first contribution)

Your ENS/address:
nfts2me.eth

Removing the override in the alchemy, infura & jsonRpc providers will:

break some connectors that rely on .default (e.g. WalletConnectConnector), and
make this a breaking change.

Instead, how about we append a public key when we override the default RPC URL, that the addEthereumChain method relys on? Example:
packages/core/src/providers/alchemy.ts
chain: {
  ...chain,
  rpcUrls: {
    ...chain.rpcUrls,
+   public: chains.rpcUrls.default,
    default: { http: [`${chain.rpcUrls.alchemy?.http[0]}/${apiKey}`] },
  },
},

references/packages/connectors/src/injected.ts
await provider.request({
  method: 'wallet_addEthereumChain',
  params: [
    {
      chainId: id,
      chainName: chain.name,
      nativeCurrency: chain.nativeCurrency,
      rpcUrls: [
        chain.rpcUrls.public?.http[0] ??
-         chain.rpcUrls.default.http[0] ??
          '',
      ],
      blockExplorerUrls: this.getBlockExplorerUrls(chain),
    },
  ],
})

Done.
Also updated for packages/connectors/src/coinbaseWallet.ts that exposed it as well.

Hey @nfts2me, thanks so much for the PR!
After thinking about this again, and chatting with @tmm. I think it might be better to include the public attribute on the RPC URLs of the chains in wagmi-dev/references, to deterministically identify a chain's "public" RPC URL.
Do you think you could make these changes? Otherwise, I can cover this for you.
Quick overview:

Close this PR here (as there will be no direct changes in the wagmi repo),
Keep your changes in the references/ submodule, but also add a rpcUrls.public attribute to the chains with the public RPC URL,
Raise a PR in the wagmi-dev/references repository.

Makes sense.
I've added the PR.
Also changed the types.ts to add the new public as part of rpcUrls


No export to gif or html function

Any solutions?

I think what you are looking for is this. This is an easy tool to save the plots into GIFs. Hope this helps.

I am more interesting in saving the plot into a html, so other people can view the plots on their browser.

nvm.


Make escape_str() function accept non-string values

This pull request resolves issue #65.
It includes the addition of tests described in issue #65 and patches that ensure the tests pass successfully.

Thanks! Please update the changelog

@long2ice I just updated the change log


manually update hack folder

Changes
Fixes the issue with the knobots auto updates

See #121 for unit test failure
/override "test / Unit Tests"


feat: use poolName for Idle LP assets

Description

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes #
Risk

Testing

Engineering

Operations

Screenshots (if applicable)

Current dependencies on/for this PR:

develop

PR #4804   👈

This comment was auto-generated by Graphite.


Fixing a bug in the collaborative filtering.

I closed the pull request, changes are unnecessary and will screw up some things. We will discuss in person.


Add unit tests for SelectionResult object

This PR introduces unit tests for the SelectionResult class. Additionally, it also fixes the following issues:

defining the same set of objects in objects is now prohibited, as suggested in #351
previously, converting a SelectionResult with an additional nested top-level field did not work correctly. Now fixed
converting an empty SelectionResult generated an error, fixed now by simply returning an empty ak.Array

There are two tests for writing and reading SelectionResults to/from parquet files with awkward and dask awkward. This might be superseded by a future unit test that checks this in a more general approach.
Closes #351

@riga , any updates on this PR?

This is an extremely minor PR, which has been open for a very long time now. Is there anything that needs to be changed? Otherwise, I would vote for merging it soon @riga


Issue #1230 distribut drn elevation equals surface level

Fixes #1230
Description

Fix bug where distributed conductances were dropped when their elevation equalled surface level
In topsystem test cases, make sure "layer" coordinate is dropped consistently amongst cases.

Checklist

[x] Links to correct issue
[x] Update changelog, if changes affect users
[x] PR title starts with Issue #nr, e.g. Issue #737
[x] Unit tests were added
[ ] If feature added: Added/extended example

The unittest seem to fail on something different, it appears that the FileLocks don't fully work?


logging custom loss

I want to log custom loss and visualize it on Tensorboard. I'm adding the loss by the model.add_loss(...) function. I can't add it as custom metrics since the model is not a classical "y_true, y_pred" type. It is more similar to Cycle GAN.
Any idea?

@Ori226 you can plot the loss — using custom callback function and using TensorBoard
I hope this link will be helpful

thanks @psschand  but what I'm looking for is the custom loss. I don't have trouble with plotting the regular loss.

Hi!
This issue isn't related to a bug/enhancement/feature request or other accepted types of issue.
To ask questions, please see the following resources :
StackOverflow
Keras Slack channel
Keras.io support
Gitter
Thanks!
If you think we made a mistake, please open another issue explaining your request in detail.


Make VAVr compilable under both Java 8 & 9

related to:

https://github.com/vavr-io/vavr/pull/1563
https://github.com/vavr-io/vavr/pull/1994
https://github.com/vavr-io/vavr/pull/2104

Codecov Report

Merging #2105 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff            @@
##             master   #2105   +/-   ##
========================================
  Coverage      97.5%   97.5%
  Complexity     5202    5202
========================================
  Files            92      92
  Lines         11944   11944
  Branches       1576    1576
========================================
  Hits          11646   11646
  Misses          148     148
  Partials        150     150

Impacted Files
Coverage Δ
Complexity Δ

vavr/src/main/java/io/vavr/Lazy.java
100% <100%> (ø)
34 <1> (ø)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c8cb9ca...3aa7ad0. Read the comment docs.

The JDK 9 additional build is a very good idea, let me do that quickly :)

Just realized that the build is broken for jdk9 (you told me already). It does not matter - I will fix that tomorrow. Thx!


Update potential vulnerable dependencies

@jimmyhenne this shouldn't affect the functionality of the app, please give it a try.

@jimmyhenne as discussed, please report back after you did some tests, thanks!

Quick Testing on firefox, chrome and mobile android device was successful.


MatFormField with appearance="outline" draws line through the label if the form field starts out as "display: none."

Bug, feature request, or proposal:
MatFormField with appearance="outline" draws line through the label if the form field starts out as "display: none."  Is see Bug #12555, but I don't think it covers this scenario.  I have provided a very simple stackblitz to duplicate.
What is the expected behavior?
There should not be a line going though the label.
What is the current behavior?
There is a line going though the label.
What are the steps to reproduce?
https://stackblitz.com/edit/angular-material2-issue-ovrlab
What is the use-case or motivation for changing an existing behavior?
It's ugly.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
"@angular/material": "7.0.2"

Is there anything else we should know?
No.

@crisbeto did your PR for this land yet?

Doesn't look like it has https://github.com/angular/material2/pull/13477.

closing as a dup of https://github.com/angular/material2/issues/13328, should be fixed by #13477