Undefined properties on vnodes

In tests, I often have deep equality assertions between actual and expected outputs of h(). Failed assertions often mean that I manually look for the differences between the trees. With this in mind, I would suggest a policy where there SHOULD be no undefined properties.
As we can see here, all of the possible properties are declared, even if undefined (last 2 lines of the function):
export function vnode(sel: string,
               data: any | undefined,
               children: Array<VNode | string> | undefined,
               text: string | undefined,
               elm: Element | Text | undefined): VNode {
  let key = data === undefined ? undefined : data.key;
  return {sel: sel, data: data, children: children,
          text: text, elm: elm, key: key};
}

Is it the way it currently is for performance reasons?
Would it be ok to change it to not declare undefined properties?
Would other parts of the code accept the non-existence of those properties?

Declaring the properties means objects remain a consistent shape, allowing monomorphism. Removing them would make any function that accepts the object as an argument polymorphic.

@developit so we'd be better off improving our inspection tooling, like this right here?
I really don't know what this means in practical terms. I can imagine that a bit more conditional code would be required here are there, but I don't know what the performance impact of it will be. Perhaps ecosystem impact or this is all internal?
When it comes to humans vs. robots, I tend to be on the human's side.

Most assertion libraries use something close to this deep equality algorithm, originally from Node's assert module.  As you can see here, it considers two objects with differing keys to be inequal.  This is brittle, and I've never found it to be of any utility on its own, but that is how most of these libraries work.
Personally I prefer this implementation, though I've only ever used it for shallow equality:
function deepEqual(a, b) {
  // *snip* types other than Object
  for (let i in a) if (b[i]===undefined) return false;
  for (let i in b) if (!deepEqual(a[i], b[i])) return false;
  return true;
}

@developit isn't your implementation more like isSupersetOf than isDeepEqual?
Anyway, why did you bring this up?

No, it fails if there are extra properties on either object that are not undefined. It's just a standard deep equality check that treats undefined the same as a missing key.  Deep equality was the subject of this issue, the AVA PR you linked to, and the cause of the assertion error you described running into in your tests, so I figured it would be relevant to illustrate why the issue occurs and a way around it.
Regarding the implementation question, I'm fairly certain snabbdom declares all possible properties of VNode for the same reason every other performance-minded library does, which is to produce objects of a uniform shape so that functions operating on those objects can be monomorphic.  I thought that seemed like a fairly definitive answer to the question you asked.

I don't have experience with performance-minded libraries and your explanation sounds credible. Thank you. I'm going to have to invest in good diffing-for-humans tools in the assertions. It looks like AVA will have this covered soon.


Older pending transaction getting confirmed is replacing the confirm page on swapper

Overview
If you send a first transaction, then hit the back button, then go again on the confirm page, if the first transaction is confirmed it will redirect you to the success page
It might be naturally fixed when fixing https://github.com/shapeshift/web/issues/7161
References and additional details
Initially found while testing this PR: https://github.com/shapeshift/web/pull/7326#issuecomment-2214485343
Here is a jam on how to reproduce: https://jam.dev/c/5d4f55dc-af6f-46d5-a770-d21b55356742
Acceptance Criteria
When you launch a first transaction, if you go again to the confirm page, it shouldn't be replaced by the old transaction when it gets successful
Need By Date
No response
Screenshots/Mockups
No response
Estimated effort
No response

Confirmed I couldn't reproduce, https://github.com/shapeshift/web/issues/7161 probably fixed it


[BEAM-12946] Fix SmallestPerKey, add unit testing

Fix bug in SmallestPerKey where it was calling into a global combine instead of a per-key combine, add simple unit testing for Smallest and Largest utilities and their per-key variants.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Go PostCommit

R: @lostluck @youngoli

One addition: Could you update CHANGES.md to include this in the bugfix section? Refer to the JIRA, and call out that the go SDK top.SmallestPerKey implementation has been fixed.

Done


Allow KVM VM live migration with ROOT volume on file storage type

This PR proposes a new DataMotionStrategy KvmNonManagedStorageDataMotionStrategy that extends the StorageSystemDataMotionStrategy. This strategy allows migrating KVM VMs with the ROOT volume in  a primary local file system storage (volumes on path /var/lib/libvirt/images/).
This design also aims to ease the development of any non-managed KVM volume migration, such as the implementation of @nvazquez in PR #2983 (NFS to NFS).

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✖debian. JID-2415

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✖debian. JID-2416

Thanks for running blueorangutan, @nvazquez! Is there any issue with the Debian packaging?

Yes but not related to the PR, let me kick tests for centos7 and KVM
@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian.  I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2440

@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3182)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 20024 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2997-t3182-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_multipleips_per_nic.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 68 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_nic_secondaryip_add_remove
Error
22.01
test_multipleips_per_nic.py

test_04_rvpc_network_garbage_collector_nics
Failure
443.98
test_vpc_redundant.py

@mike-tutkowski, @rhtyd, @DaanHoogland, @nvazquez, and others
Are you ok with this PR?
@mike-tutkowski can you please check if I did not break any piece of Managed Storage implementation?

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2465

@blueorangutan package

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3226)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 34186 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2997-t3226-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_multipleips_per_nic.py
Intermittent failure detected: /marvin/tests/smoke/test_ssvm.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_vpn.py
Intermittent failure detected: /marvin/tests/smoke/test_host_maintenance.py
Smoke tests completed. 67 look OK, 3 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_nic_secondaryip_add_remove
Error
46.16
test_multipleips_per_nic.py

test_04_rvpc_network_garbage_collector_nics
Failure
517.58
test_vpc_redundant.py

test_02_cancel_host_maintenace_with_migration_jobs
Error
2.35
test_host_maintenance.py

@blueorangutan test matrix

Trillian test result (tid-3228)
Environment: xenserver-71 (x2), Advanced Networking with Mgmt server 7
Total time taken: 26269 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2997-t3228-xenserver-71.zip
Intermittent failure detected: /marvin/tests/smoke/test_multipleips_per_nic.py
Intermittent failure detected: /marvin/tests/smoke/test_scale_vm.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 67 look OK, 3 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_nic_secondaryip_add_remove
Error
62.47
test_multipleips_per_nic.py

test_01_scale_vm
Error
14.41
test_scale_vm.py

test_04_rvpc_network_garbage_collector_nics
Failure
515.24
test_vpc_redundant.py

@rhtyd thanks for running the integration tests! I have addressed your comments.

Great, let me review and test this tomorrow and then merge it.

Sorry for the delay, let me get back by tomorrow on this.

@rohit reviews were done, tests passed and all checks are green. I will wait for your review until tomorrow, afterwards I will merge it if I get no objections.

Hi @GabrielBrascher I'm on holidays so couldn't review sooner. I'll back at work tomorrow, will try to review otherwise go ahead. I'll kick a test round as I see a new commit since last test run.
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Thanks for the update @rhtyd!

@GabrielBrascher can you look at Travis failures
@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3253)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 26613 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2997-t3253-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_multipleips_per_nic.py
Intermittent failure detected: /marvin/tests/smoke/test_ssvm.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_host_maintenance.py
Smoke tests completed. 68 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_nic_secondaryip_add_remove
Error
42.04
test_multipleips_per_nic.py

test_04_rvpc_network_garbage_collector_nics
Failure
502.65
test_vpc_redundant.py

Test run lgtm.

Packaging result: ✖centos6 ✖centos7 ✖debian. JID-2488

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3254)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 24251 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2997-t3254-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_deploy_virtio_scsi_vm.py
Intermittent failure detected: /marvin/tests/smoke/test_multipleips_per_nic.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 68 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_nic_secondaryip_add_remove
Error
33.40
test_multipleips_per_nic.py

test_04_rvpc_network_garbage_collector_nics
Failure
497.76
test_vpc_redundant.py

Thanks for the feedback, @rhtyd, @DaanHoogland, @nvazquez, @wido, @rafaelweingartner, @mike-tutkowski! Trillian test is good, and we have 4 LGTMs. This one looks ready to merge.
The Travis failures are not related to this PR. I have been digging on what is causing Travis to fail on recent PRs.

Integration tests passed, reviews were made and adjusts executed. Travis problems are not related to this PR. Therefore, I am going to merge it.

Few of my comments were not addressed or replied to, but I'll live with the changes. @GabrielBrascher @rafaelweingartner

@rhtyd which ones?

@rafaelweingartner go to the files changed tab, there are a few minor comments but nothing I cannot live with.

Well, I indeed checked everything, and everything seems to be already answered/addressed. There was only one comment that you did regarding the flag building that @GabrielBrascher used a more human readable method instead of playing/shifting bits around. That seemed to be covered by the feedback of the community, which was very positive.


[websocket] v1 to v2 merge error

I noticed that my contribution to v1, which added header support for websockets, has been merged into v2. However, it appears to have been merged incorrectly, as it's missing those lines https://github.com/tauri-apps/plugins-workspace/blob/8d6045421a553330e9da8b9e1e4405d419c5ea88/plugins/websocket/src/lib.rs#L104-L115

I'm only on my phone right now so take it with a grain of salt but I'm pretty sure I did not yet merge v1 into v2 after that PR 🤔

I'm only on my phone right now so take it with a grain of salt but I'm pretty sure I did not yet merge v1 into v2 after that PR 🤔

I assumed they had been merged due to the presence of the field header in the config

It indeed wasn't merged yet: https://github.com/tauri-apps/plugins-workspace/pull/702/files#diff-dee408ed956e8dd38398059404d9d9ea771834fb2792fc93ac816043cef088a1


feat(entproto): support for named proto messages

Hello, I would like to get your feedback on my proposal to add support for more granular control over proto message generated by the entproto package.  When accepted I can add tests and missing things like support for edges, etc...
The motivation here is to have full control over proto messages that are being generated based on ent schema. The contrib package is great but GRPC service generated out of it doesn't yet provide enough extensibility.
When accepted. I would like to explore as well the extensibility of the GRPC service. How to make customizable. Or reusable in user's implementation.
The proposal contains several features:

Ability to specify a different names for fields to decouple from the DB layer. For example for a sake of compatibility with existing systems.
Named messages, a concept that allows creating multiple custom proto messages based on fields, edges, or fields groups,
Support for extra fields that will not have a counterpart in the database. To allow model more complex scenarios. JSONB etc.
Support for "field groups" that allow you to work with fields more efficiently in named messages.
Allow to not render the ID field

The go schema definition
type Car struct {
	ent.Schema
}

func (c Car) Annotations() []schema.Annotation {
	return []schema.Annotation{
		entproto.Message(
			entproto.NamedMessages(
				entproto.NamedMessage("CarUpdate").
					WithGroups(
						c.Groups().ByName("common", "dates"),
					).
					WithExtraFields(
						entproto.ExtraField("extra_1", 4).WithType(entproto.TypeBool),
						entproto.ExtraField("extra_2", 5).WithType(entproto.TypeString),
					).
					WithSkipID(true),
				entproto.NamedMessage("CarUpdateDates").WithGroups(
					c.Groups().ByName("dates"),
				).WithSkipID(true),
			),
		),
	}
}

func (Car) Groups() *entproto.FieldGroups {
	return entproto.Groups().
		Group("common", func(fg *entproto.FieldGroup) {
			fg.Fields = []ent.Field{
				field.String("model").Annotations(entproto.Field(2)),
			}
		}).
		Group("dates", func(fg *entproto.FieldGroup) {
			fg.Fields = []ent.Field{
				field.Time("registered_at").Annotations(entproto.Field(3, entproto.FieldName("RegisteredAt"))),
			}
		})
}

// Fields of the Car.
func (c Car) Fields() []ent.Field {
	return c.Groups().Fields() // ByName("common", "dates").Fields()
}

Generated proto
// Code generated by entproto. DO NOT EDIT.
syntax = "proto3";

package entpb;

import "google/protobuf/timestamp.proto";

option go_package = "outreach.io/enttest/ent/proto/entpb";

message Car {
  int32 id = 1;

  string model = 2;

  google.protobuf.Timestamp RegisteredAt = 3;
}

message CarUpdate {
  string model = 2;

  google.protobuf.Timestamp RegisteredAt = 3;

  bool extra_1 = 4;

  string extra_2 = 5;
}

message CarUpdateDates {
  google.protobuf.Timestamp RegisteredAt = 3;
}

Hey @pavelsmejkal !
Thanks so much for taking the time to think deeply about how to improve the gRPC extension. Indeed it is still early days for the plugin and there is much to be desired.
In general, our approach with Ent is to make small incremental improvements with each PR so code is both easy to review and results in better more modular design in general.  So I think it would be good to consider each improvement in separate and work on different small features.

Ability to specify a different names for fields to decouple from the DB layer. For example for a sake of compatibility with existing systems.
I believe this can already be done with StorageKey?

Named messages, a concept that allows creating multiple custom proto messages based on fields, edges, or fields groups,
Support for "field groups" that allow you to work with fields more efficiently in named messages.

I think I understand the use-case for this one, but I have an issue with creating another mini DSL for defining proto in Ent. The appeal of extensions such as entproto is that it uses the existing schema modeling capabilities of Ent. So two directions for design would be, how do we import existing proto definitions to be used in tandem with an Ent schema, or how we take Ent's existing facilities (JSON/Other fields) and use them for this use case. Perhaps we can review the discussion at https://github.com/ent/ent/discussions/1690 for this?

Allow to not render the ID field
Not sure I understand this one, can you elaborate on the use case and how this would modify the generated code?

Thanks!

Thank you for a feedback and the direction, that was very much what I was looking for. Will explore more the capabilities and will bring the proposal to ent/ent#1690. I have removed my original post since I would like to think about it more.

Sure thing. You're more than welcome to join our discord server:
https://discord.gg/qZmPgTE6RX

This feature is awesome to me

Also this need to be supported in ent-proto too for protocol to ent generation


Add backup and restore option

Completed with following-

Layout and Navigation
UI Component design
Bound with mock data

This change is

 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.vikash seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Here is task breakdown

[x] Layout and navigation
[x] UI component design, binding with mock data
[x] Create backup API integration
[ ] Backup list/delete/restore API integration
[ ] Error handling / Control validation
[ ] Unit testing
[ ] E2E testing
[ ] UI issues across other pages

Currently, we have the prototype with mock data.

No, I have not removed all the dummy once but will do so in the same PR. Currently, backup creation is working well end to end. Will clean the code base.

Showing the backup list would be a more relevant feature but currently, it is not supported by the backend.

We also have to address the following workflow issues -

We have two basic operation - Create Backup / Restore Backup. If anyone of the operations takes longer time and the user refreshes the page and launch it again as we are not persisting the state of the current operation, it will create a new request even though the previous one is not yet finished. Or Using any rest client (postman) you can hit the endpoint multiple times.

How do we handle Backup and Restore while one is going on? We should block the request of other operation when any one of the operations is going on, as they are mutually exclusive.

My suggestions:

We should maintain the state of the operation that is being performed. User can refresh the page to see what is going on. e.g. If a user performs a backup operation, it will have a status like InProgress, Success, Failed that will be coming from backend API.

Instead of Backup list, we can show Timeline history

Started At
End At
Event type
Status
Size
Path
Remarks

05/14/2019 11:00 AM
05/14/2019 11:20 AM
Backup
InProgress

/usr/a

05/04/2019 4:00 PM
05/04/2019 5:20 AM
Restore
Done
200 mb
/usr/a

05/03/2019 4:00 PM
05/03/2019 5:20 AM
Backup
Failed

/x/b

Whenever there is user action, we would be capturing them and updating them asynchronously.
Mockup gif

@paulftw
I am done with the changes. We have Backup creation end to end working and the backup list is being stored in local storage.
Testing Status:
I have tested with Local directory backup, but couldn't test for Amazon S3, Minio or NFS as I don't have the setup locally.
FYI: @manishrjain @mangalaman93

hey @Vikash13 just checking, are you getting email notifications when someone leaves a comment on reviewable?

Yes @paulftw. I'm getting the notification.


Swift.match() instead of a computed properties?

Hi, is there any reason why String.match is a method rather than a computed property (like in Array and List)?

At this point, not really.  Wanna write us a pull request ;)

Ok sure, should I do it on swift-develop or master?

Submit it to master please.

Resolved. See #293


Fix non clickable install button

This is a dirty fix and probably better to use chakra elements and integrate them with framer motion - https://chakra-ui.com/getting-started/with-framer


Improve link mgmt backwards compatibility. Fixes #1900

We're sending peer change messages to older routers that don't understand them.
We should probably use the older controller link management code for routers without the link management stability fixes
Includes a few minor cleanups

lgtm other than nits :)

I think we can drop support for pre-1.0 versions in 6-12 months, so I think it's the right level of abstracted. I don't want to add any extra logs for noting version differences, especially for recurring events, since they could be quite high volume.


Add welcome post for 2020-2021 school year

Post to add
Hello Raiders! I like to extend my sincere thank you for electing me as the 2020-2021 Student Government President. I am extremely gracious by your confidence that you have bestowed in me as being the official representation of all students to the Administration, Faculty and Staff here at MSOE. And as your newly elected president, I promise to address the important issues with MSOE’s Administration, Faculty and Staff to ensure the voice of the students is not only hear, but the student’s needs addressed. I would also like to extend a congratulations to my fellow elected Senators. I look forward to working together to get work done.
For the upcoming academic year, the agenda that both the Vice President and I believe in is to lead the Student Government Association (SGA) to a direction that has its core principle on the health and safety students as well as ensuring the voice of the students is heard, and their needs addressed. Additionally, we will continue to have SGA build a stronger relationship among the administration, the faculty and the students here at MSOE. Our ambition for this academic year is to begin a tradition among the faculty senate and the student senate by holding at least one joint senate session a trimester. We also plan on connecting with and have reoccurring meetings with student organizations that have deep roots within the student community. Alongside our ambitions for the year we also intend to advocate for food, housing and student concerns as well as advocating for facility improvements. Throughout the year it is our intention to propose a relocation of the spirit rock to a more desirable location that better showcases student life on campus, a fixture of the steps leading into the Tod Wehr conference center by Highland Ave and Broadway to the national standard of step height and width, and to propose an increase the hours of operation of the library for the week prior to finals week. Within SGA itself, we plan on reforming it to best help the students and student organizations while we continue to clash with the COVID-19 pandemic. Lastly, our aim is to shuffle the Student Government Budget and increase the Student Government outreach to students and student organizations throughout the academic year.
This agenda is a good place to start, but it doesn’t end with this. Throughout the upcoming academic year, I want to hear your ideas, get your feedback and find out more ways that I and Student Government can best serve you. Thus, I hope you are able to attend our virtual meetings on Microsoft Teams every Monday from 1:05 to 1:50 PM. Additionally, you can always email the SGA email<EMAIL_ADDRESS>or personally contact any member on Student Government through email.
Thank you again for your support.
Joshua Zieman – President of Student Government.

This has been released.


[safari] fix 404 on Manning videos

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[X] Searched the bugtracker for similar pull requests
[X] Read adding new extractor tutorial
[X] Read youtube-dl coding conventions and adjusted the code to meet them
[ ] Covered the code with tests (note that PRs without tests will be REJECTED)
[X] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[X] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[X] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
URL schema of videos /library/view/ would default 302 redirect to /videos/, but fails to redirect on some Manning videos, and got 404
for example
downloading playlist below
https://learning.oreilly.com/videos/unit-testing-principles/9781617296277VE/
the first video url is
https://learning.oreilly.com/library/view/unit-testing-principles/9781617296277VE/UTPPP_part1.html
but then it report 404 error:
ERROR: Unable to download webpage: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please repor
t this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update
on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

this commit change the video url into
https://learning.oreilly.com/videos/unit-testing-principles/9781617296277VE/9781617296277VE-UTPPP_part1/
and it went through without problem

this solves #29472

I have tested this, it works

It's worked! Thank you so much.

How to Fix it on windows? Could you help me please?

I have tested this, it works

Can You share the method I can't download any course unfortunately.


msms wrapper

I have written an msms wrapper (https://github.com/rinikerlab/msms_wrapper), which might be a faster way of calculating solvent-excluded surfaces. msms does not support solvent-accessible surfaces, but it can be approximated using a small probe radius. This could help us get rid of the gisttools dependency. However, msms is not open-source, so it might be good to keep a second option.

This is done. msms is currently used as a default with gisttools as a fallback. It would be good to have more options in the future (e.g., choose backend, change the msms point density), but in principle it works.


How to disable overlapping schedules

@brenthcodemagnus You can disable it by configuring slotEventOverlap to false.
http://fullcalendar.io/docs/agenda/slotEventOverlap/

Thanks


Added beforeAdd & beforeDelete functions

Issue:
You have a plugin like Select2 on your drop downs, which are repeatable elements.
Select2 won't work on new elements created by jQuery.Repeatable, so it requires the user to use the destroy method before the DOM changes and then call the function again after the DOM has changed.
And of course it works for any other situations when we need something to happen before the DOM change. Like an alert();
I'll add an example to the readme if you like.
:)

Your commit have been added to 0.2.


Correct display of possible tokens / productions in parser

In many UnexpectedToken errors the string after found {} expected ... is not an exhaustive description of all possible tokens

We should look into two things here:

Multiple possibilities are checked with a chain of if-else Blocks. Only one of the possibilities is listed in the error message. We could just enumerate all possibilities.
We want some mechanism that allows us to mark errors with a superstructure. E.g.
change error messages depending on super structure

error: expected an identifier, found int
   |
 3 |         return new int();
   |                    ^^^

Compilation aborted due to an error

Could be a
error: invalid new object expression. You cannot use `new` on a primitive type
   |
 3 |         return new int();
   |                    ^^^ unexpected primitive type `int`
   |                ^^^^^^^^^ in this new object expression

or
error: invalid new object expression. You cannot use `new` on a primitive type
   |
 3 |         return new int();
   |                    ^^^ expected an identifier, found int

(This is not about formatting, but we may want to expand the span or change the error message depending on the structure around an expression.
What we want is exactly is the behaviour of error chaining possible through ? so what we could do is revert to the variant of spanned! with a closure, the code inside the spanned!-closure will parse the infra structure, and the code before and after the spanned!-macro defines the superstructure. The code could then check for a specific error instance, e.g. unexpected keyword during parsing of new-object-expression and then alter the error message. As going deeper than one level might be to much (error chaining over more than one level and therefore two or more stacked spans), we could probably get away with something like adding a Variant UnexpectedTokenInSuperstructure
#[derive(Debug, Clone, Fail)]
pub enum SyntaxError {
    #[fail(display = "expected {}, found {}", expected, actual)]
    UnexpectedToken {
        actual: String,
        expected: String,
    },
    #[fail(display = "unexpected end of file")]
    UnexpectedEOF,
     #[fail(display = "{}", context)]
     UnexpectedTokenInSuperstructure {
        actual: String,
        expected: String,
        context: String
    },
}

Another example: Current rendering is
rror: expected identifier String, found int
   |
 3 |     public static void main(int[] args) {
   |                             ^^^

Compilation aborted due to an error

better would be
error: invalid main method. It must be declared as `public static void main(String[] args)`
   |
 3 |     public static void main(int[] args) {
   |                             ^^^ expected `String` instead of `int`

Compilation aborted due to an error

Closed by #95


Error: File could not be loaded: index.html is thrown when trying to run the development server

Describe the bug
I followed the instructions of the document and created the project and installed the dependencies. I wanted to open the development server, but the command line gave me an error. like this :
> error: File could not be loaded: index.html

error when starting dev server:
Error: Build failed with 1 error:
error: File could not be loaded: index.html
    at failureErrorWithLog (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:1170:15)
    at buildResponseToResult (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:906:32)
    at /Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:1001:20
    at /Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:553:9
    at handleIncomingPacket (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:642:9)
    at Socket.readFromStdout (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:520:7)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:295:12)
    at readableAddChunk (_stream_readable.js:271:9)
    at Socket.Readable.push (_stream_readable.js:212:10)

Reproduction

run yarn create @vitejs/app and use vue/reat/react-ts template (I only tried these three)
install dependencies
try to run yarn dev or npm run dev

System Info

vite version: 2.0.0
Operating System: macos10.15.7
Node version: v12.18.3
Package manager (npm/yarn/pnpm) and version: yarn 1.22.4 npm 6.14.8

Logs (Optional if provided reproduction)
> vite "--debug"

  vite:config bundled config file loaded in 137ms +0ms
  vite:config using resolved config: {
  vite:config   plugins: [
  vite:config     'vite:pre-alias',
  vite:config     'alias',
  vite:config     'vite:dynamic-import-polyfill',
  vite:config     'vite:resolve',
  vite:config     'vite:html',
  vite:config     'vite:css',
  vite:config     'vite:esbuild',
  vite:config     'vite:json',
  vite:config     'vite:wasm',
  vite:config     'vite:worker',
  vite:config     'vite:asset',
  vite:config     'vite:vue',
  vite:config     'vite:define',
  vite:config     'vite:css-post',
  vite:config     'vite:client-inject',
  vite:config     'vite:import-analysis'
  vite:config   ],
  vite:config   server: {},
  vite:config   define: { __VUE_OPTIONS_API__: true, __VUE_PROD_DEVTOOLS__: false },
  vite:config   ssr: { external: [ 'vue', '@vue/server-renderer' ] },
  vite:config   configFile: '/Users/lee/Desktop/Development/#learns/vite/my-vue-app/vite.config.js',
  vite:config   inlineConfig: {
  vite:config     root: undefined,
  vite:config     base: undefined,
  vite:config     mode: undefined,
  vite:config     configFile: undefined,
  vite:config     logLevel: undefined,
  vite:config     clearScreen: undefined,
  vite:config     server: {}
  vite:config   },
  vite:config   root: '/Users/lee/Desktop/Development/#learns/vite/my-vue-app',
  vite:config   base: '/',
  vite:config   resolve: { dedupe: undefined, alias: [ [Object] ] },
  vite:config   publicDir: '/Users/lee/Desktop/Development/#learns/vite/my-vue-app/public',
  vite:config   command: 'serve',
  vite:config   mode: 'development',
  vite:config   isProduction: false,
  vite:config   optimizeCacheDir: '/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/.vite',
  vite:config   build: {
  vite:config     target: [ 'es2019', 'edge16', 'firefox60', 'chrome61', 'safari11' ],
  vite:config     polyfillDynamicImport: true,
  vite:config     outDir: 'dist',
  vite:config     assetsDir: 'assets',
  vite:config     assetsInlineLimit: 4096,
  vite:config     cssCodeSplit: true,
  vite:config     sourcemap: false,
  vite:config     rollupOptions: {},
  vite:config     commonjsOptions: { include: [Array], extensions: [Array] },
  vite:config     minify: 'terser',
  vite:config     terserOptions: {},
  vite:config     cleanCssOptions: {},
  vite:config     write: true,
  vite:config     emptyOutDir: null,
  vite:config     manifest: false,
  vite:config     lib: false,
  vite:config     ssr: false,
  vite:config     ssrManifest: false,
  vite:config     brotliSize: true,
  vite:config     chunkSizeWarningLimit: 500
  vite:config   },
  vite:config   env: { BASE_URL: '/', MODE: 'development', DEV: true, PROD: false },
  vite:config   assetsInclude: [Function: assetsInclude],
  vite:config   logger: {
  vite:config     hasWarned: false,
  vite:config     info: [Function: info],
  vite:config     warn: [Function: warn],
  vite:config     error: [Function: error],
  vite:config     clearScreen: [Function: clearScreen]
  vite:config   },
  vite:config   createResolver: [Function: createResolver]
  vite:config } +5ms
  vite:deps Crawling dependencies using entries:
  vite:deps   /Users/lee/Desktop/Development/#learns/vite/my-vue-app/index.html +0ms
  vite:resolve 2ms   /Users/lee/Desktop/Development/#learns/vite/my-vue-app/index.html -> null +0ms
 > error: File could not be loaded: index.html

error when starting dev server:
Error: Build failed with 1 error:
error: File could not be loaded: index.html
    at failureErrorWithLog (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:1170:15)
    at buildResponseToResult (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:906:32)
    at /Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:1001:20
    at /Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:553:9
    at handleIncomingPacket (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:642:9)
    at Socket.readFromStdout (/Users/lee/Desktop/Development/#learns/vite/my-vue-app/node_modules/esbuild/lib/main.js:520:7)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:295:12)
    at readableAddChunk (_stream_readable.js:271:9)
    at Socket.Readable.push (_stream_readable.js:212:10)

The problem seems to be the # in the path. @evanw

The problem seems to be the # in the path. @evanw

Indeed, I changed a path without #, and now I can run normally

Related issue https://github.com/vitejs/vite/issues/2346 and PR https://github.com/vitejs/vite/pull/2432

Seems to still be an issue in Vite 2.8.6:
><EMAIL_ADDRESS>dev /Users/bjorn/Work/repros/#test/vite-hash
> vite

✘ [ERROR] Cannot read file "../..": is a directory

    html:/Users/bjorn/Work/repros/#test/vite-hash/index.html:1:7:
      1 │ import "/main.js"
        ╵        ~~~~~~~~~~

error when starting dev server:
Error: Build failed with 1 error:
html:/Users/bjorn/Work/repros/#test/vite-hash/index.html:1:7: ERROR: Cannot read file "../..": is a directory
    at failureErrorWithLog (/Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:1605:15)
    at /Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:1251:28
    at runOnEndCallbacks (/Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:1036:63)
    at buildResponseToResult (/Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:1249:7)
    at /Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:1358:14
    at /Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:668:9
    at handleIncomingPacket (/Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:765:9)
    at Socket.readFromStdout (/Users/bjorn/Work/repros/#test/vite-hash/node_modules/.pnpm/esbuild@0.14.25/node_modules/esbuild/lib/main.js:635:7)
    at Socket.emit (node:events:390:28)
    at addChunk (node:internal/streams/readable:315:12)
 ELIFECYCLE  Command failed with exit code 1.


setZoom doesn't work

Hi everyone,
I tried to set the zoom value of my scene but it doesn't work, here is my code, please let me know if I'm doing wrong
export default function Hero() {
  const [isLoaded, setIsLoaded] = useState(true)

  const aboutRef = useRef()
  const workRef = useRef()
  const connectRef = useRef()
  const resumeRef = useRef()

  const handleOnLoad = (spline) => {
    const about = spline.findObjectByName("about")
    const work = spline.findObjectByName("work")
    const connect = spline.findObjectByName("connect")
    const resume = spline.findObjectByName("resume")

    aboutRef.current = about
    workRef.current = work
    connectRef.current = connect
    resumeRef.current = resume

    spline.setZoom(0.5)
  }

  return (
    <section  id="home" className={`relative h-screen heroBG`} >
      {isLoaded && (
        <motion.div
          initial={{ opacity: 0, y: -150 }}
          animate={{ opacity: 1, y: "12vh" }}
          transition={{ delay: 5 }}
          className="text-6xl font-extrabold md:text-[12rem] text-[#f84874] text-center "
        >
          <motion.h2 style={{ x: left }}>Text</motion.h2>
          <motion.h2 style={{ x: right }} >Text</motion.h2>
        </motion.div>
      )}

        <Spline scene={url} onLoad={onLoad} />

  )
}

I just tested this and it seems you wrote onLoad instead of handleOnLoad
Otherwise it seems to work, CodeSandbox here

I have a similar problem - its not updating the Zoom:
`
this.spline.addEventListener('wheel', (event) => {
// console.log(event);
const zoomSpeed = 0.05;
this.zoomLevel += event.deltaY * -zoomSpeed;
			// Set zoom limits
			let zoomLevel = Math.max(0.1, Math.min(2.0, this.zoomLevel));
			console.log(zoomLevel);

			this.spline.setZoom(zoomLevel);
		});`

Same problem happen to me.
export default function App() {
  function onLoad(spline: any) {
    console.log("onLoad called");
    // Set camera zoom doens't work
    spline.setZoom(100);
  }
  return (

      <Spline scene="/logo_v2.spline" onLoad={onLoad} />

  );
}

This has been fixed in @splinetool/runtime v1.7.3.


Upgrade to latest tech docs

What
This upgrades the tech docs to the latest version, which uses the govuk_tech_docs gem to pull in CSS, JS, fonts, images and layouts. This means that a lot of files can be removed and only customised code and configuration remains. You can read more about it in https://github.com/alphagov/tech-docs-template/pull/144.
I'm updating projects that haven't upgraded yet as part of the GOV.UK firebreak, in the hope that if we are all on the same version it's more likely that sites will keep up to date and contribute back to the main project.
This PR is almost the same as https://github.com/alphagov/reliability-engineering/pull/10, https://github.com/alphagov/gds-way/pull/132 and https://github.com/alphagov/registers-tech-docs/pull/34.
How to review
There should be no changes in the layout or behaviour after this upgrade. I've checked this by comparing https://docs.cloud.service.gov.uk to the new site. I didn't spot any differences.
Who can review
Anyone but me.

Part of the Q4 GOV.UK 🔥 firebreak: https://trello.com/c/QbspvRc2

Thanks for the PR @tijmenb


[Event Request] Page 344 Function OnBeforeUpdateFormAfterFindRecords

Please extend the publisher signature for Function OnBeforeUpdateFormAfterFindRecords in PAge 344:
OnBeforeUpdateFormAfterFindRecords(var PostingDateFilter: Text)
since the GlobalVarAcces is goint to be an Error in the future.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Can you update the support for custom date format?

In our country, yyyy-MM-dd HH:mm:ss is usually used to represent data time.
Ex: 2019-01-26 21:48:45
At present, ISO8601, I have to format every time on the client side.
Thank you.

Adding additional configurations to Jil is troublesome, and will likely remain so for the foreseeable future.
If you need more customization, I'd suggest using a different JSON library.


Is the test method of the Veri dataset the same as the test method of the Vehicleid dataset?

Have you modified some of the parameters

You can refer to the README
The only difference is that We test 10 times and get the final average score to avoid randomness.
The command like that:
python test.py --config_file configs/VehicleID/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')" TEST.WEIGHT '../logs/vehicleID_vit_transreid_stride/transformer_120.pth'

Thanks a lot

You are welcome~~~


Another pass on the local stack

Some minor restructuring changes on the examples.

updated deps for native apps
removed web example with absurdSQL
made sure that apps work with local stack instructions

Will review other patches and assign reviewers in the morning

bypassing review. Checked things myself: runs on my machine


Chat does not display

Hello! i just tried to enable the open of browser but i can not see the chat as side of live

Adjust the windows size: await page.setViewport({ width: 1366, height: 768});


Official English Version Open Beta 22.12.23 16:39

The Official lang file as created by the 2023 December Open Beta version of Wolfpack

Will be implemented as soon as possible


Consider merging ros-melodic branch for use in docker

I'm currently trying to build docker images from the docker branch for use with Nvidia graphics card. Unfortunately, because images are based on kinetic, I'm running into problems, namely:

However, for older ROS releases before melodic targeting older distros, an alternate way to gain libglvnd support is to base off "FROM" these Docker images

http://wiki.ros.org/docker/Tutorials/Hardware Acceleration#nvidia-docker2
Upgrading to currently supported ROS would help the longevity of the project.

thanks for the feedback. we are currently building docker files to ease
usability. initial docker files are for kinetic but later we are building
docker for newer ros versions.
please check the docker branch. just be aware that this is a work in
progress.
Em qui., 27 de out. de 2022 17:51, Norbert Szulc @.***>
escreveu:

I'm currently trying to build docker images from the docker branch for use
with Nvidia graphics card. Unfortunately, because images are based on
kinetic, I'm running into problems, namely:
However, for older ROS releases before melodic targeting older distros, an
alternate way to gain libglvnd support is to base off "FROM" these Docker
images
http://wiki.ros.org/docker/Tutorials/Hardware Acceleration#nvidia-docker2
Upgrading to currently supported ROS would help the longevity of the
project.
—
Reply to this email directly, view it on GitHub
https://github.com/disaster-robotics-proalertas/usv_sim_lsa/issues/71,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB77UJMAFQ7SI2WHJ4MCZADWFKQJ3ANCNFSM6AAAAAARQGURNY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Refactor Registry Integration to allow Distribution

Currently, the Registry Integration does not allow for distributed systems.
The plan is to have a separate component where you can add AAS/Submodels... and choose in which registry to register the Descriptors.
The Component would add the AAS/Submodels to the Repositories and link the Descriptors to the registry.
This way the Registry Integration would be more disconnected from the individual components.

Will be handled by the new "AAS Gateway" component that is currently in development. See #447


Add mabl integration permissions

Description
Grant user mabl permission to deploy the mabl integration plugin.
@jbaldassari, @gcooney, @Mikeb7, and myself are maintainers.
Hosting Link: https://issues.jenkins-ci.org/browse/HOSTING-543

Submitter checklist for changing permissions

Always

[x] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[x] Add link to resolved HOSTING issue in description above

For a new permissions file only

[x] Make sure the file is created in permissions/ directory
[x] artifactId (pom.xml) is used for name (permissions YAML file).
[x] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[x] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] All newly added users have logged in to Artifactory at least once

Thanks for the feedback, @daniel-beck. Issues have been addressed.

Hosting link added.


lxd/instance: Adds per-struct contextual logger.

Fixes #7903.

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

Can you rebase your branch to drop the merge commit and to add the DCO line (Signed-off-by: Firstname Lastname <email>) in the commit message?

@kevtheappdev because the lxc and qemu driver types embed the common type there is no need to reference the common logger variable directly, instead just use d.logger please.

@kevtheappdev this is looking much better thanks!

Thanks!


fix: path comparison now considers trailing slash

:tada: This PR is included in version 3.5.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


GSE164829 - Integrated Single Cell Atlas of Endothelial Cells of the Human Lung

Project short name: LungEndothelialCells
Primary Wrangler:
Ami
Secondary Wrangler:
@Wkt8
Associated files
Google Drive:
https://docs.google.com/spreadsheets/d/1w6peXCe6elE1eiWjhkqMkKEystrHALxk/edit#gid=805828623
https://contribute.data.humancellatlas.org/submissions/detail?uuid=c9033c6f-08f7-4a33-bb55-aab37f80c3e5
Published study links

Paper: https://www.ahajournals.org/doi/10.1161/CIRCULATIONAHA.120.052318

Accessioned data: GSE164829

HCA Project ID: dcp7359019377184957

Key Events

[x] Convert published metadata to HCA spreadsheet
[x] Manually curate dataset to meet HCA metadata standard
[x] Collect any matrix and cell-type annotation files
[x] Upload sheet to validate metadata
[x] Check linking using ingest graph validator
[x] Transfer raw files to ingest to validate data files
[x] Ask the Secondary Wrangler for an end-to-end review of the project. Ask the Expertise Wrangler to review specific tabs if needed
[ ] Submit dataset to Production
[ ] Complete the Export SOP
[ ] Convert project data to SCEA format following the SCEA conversion SOP if appropriate

The project description seems a bit too short (and it's equal to the project title?) but if it was agreed that that's ok, it's fine to me
Another issue is that the fields were not filled for the project catalogue and the flag was not used. Please remember to fill out these and click on the flag for future datasets
Other than that, looks fine in the browser


fix(dashboard): top dropdown indicator in tab moved closer to the bottom edge

SUMMARY
Really small fix in drag and drop indicator in tabs area: it is moved a few pixels down to be below the tab name area.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Before:

After:

TEST PLAN

Go to dashboards
Choose a dashboard (can be Tabbed Dashboard)
Go to edit mode
Add chart (or markdown) to the tabs area

I tested with native filters enabled and disabled.
ADDITIONAL INFORMATION
Connected to: #12486

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

@ktmud @junlincc tell me if it looks fine for you :)

@ktmud @junlincc tell me if it looks fine for you :)

Codecov Report

Merging #12658 (5985d4a) into master (a422c76) will decrease coverage by 5.86%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##           master   #12658      +/-   ##
==========================================
- Coverage   66.79%   60.93%   -5.87%
==========================================
  Files        1015      532     -483
  Lines       49676    19773   -29903
  Branches     4847     4869      +22
==========================================
- Hits        33183    12049   -21134
+ Misses      16371     7526    -8845
- Partials      122      198      +76

Flag
Coverage Δ

cypress
?

javascript
60.93% <75.00%> (+0.18%)
:arrow_up:

python
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

superset-frontend/src/common/components/index.tsx
100.00% <ø> (ø)

...ard/components/nativeFilters/FilterConfigModal.tsx
69.14% <ø> (+6.11%)
:arrow_up:

...nd/src/dashboard/components/nativeFilters/types.ts
100.00% <ø> (ø)

superset-frontend/src/dashboard/reducers/types.ts
0.00% <0.00%> (ø)

...nd/src/dashboard/components/nativeFilters/utils.ts
62.96% <71.42%> (+5.06%)
:arrow_up:

...dashboard/components/nativeFilters/FilterScope.tsx
76.92% <76.92%> (ø)

...dashboard/components/nativeFilters/ScopingTree.tsx
81.81% <85.71%> (+4.04%)
:arrow_up:

...oard/components/nativeFilters/FilterConfigForm.tsx
90.47% <100.00%> (+8.33%)
:arrow_up:

...nd/src/dashboard/components/nativeFilters/state.ts
66.03% <100.00%> (+5.16%)
:arrow_up:

superset-frontend/src/SqlLab/App.jsx
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 686 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #12658 (5985d4a) into master (a422c76) will decrease coverage by 5.86%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##           master   #12658      +/-   ##
==========================================
- Coverage   66.79%   60.93%   -5.87%
==========================================
  Files        1015      532     -483
  Lines       49676    19773   -29903
  Branches     4847     4869      +22
==========================================
- Hits        33183    12049   -21134
+ Misses      16371     7526    -8845
- Partials      122      198      +76

Flag
Coverage Δ

cypress
?

javascript
60.93% <75.00%> (+0.18%)
:arrow_up:

python
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

superset-frontend/src/common/components/index.tsx
100.00% <ø> (ø)

...ard/components/nativeFilters/FilterConfigModal.tsx
69.14% <ø> (+6.11%)
:arrow_up:

...nd/src/dashboard/components/nativeFilters/types.ts
100.00% <ø> (ø)

superset-frontend/src/dashboard/reducers/types.ts
0.00% <0.00%> (ø)

...nd/src/dashboard/components/nativeFilters/utils.ts
62.96% <71.42%> (+5.06%)
:arrow_up:

...dashboard/components/nativeFilters/FilterScope.tsx
76.92% <76.92%> (ø)

...dashboard/components/nativeFilters/ScopingTree.tsx
81.81% <85.71%> (+4.04%)
:arrow_up:

...oard/components/nativeFilters/FilterConfigForm.tsx
90.47% <100.00%> (+8.33%)
:arrow_up:

...nd/src/dashboard/components/nativeFilters/state.ts
66.03% <100.00%> (+5.16%)
:arrow_up:

superset-frontend/src/SqlLab/App.jsx
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 686 more

Continue to review full report at Codecov.

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

Looks good

Looks good

Was your screenshot based on some other branch? Because when I tested locally the indicator width is still a little off:

Was your screenshot based on some other branch? Because when I tested locally the indicator width is still a little off:

Was your screenshot based on some other branch? Because when I tested locally the indicator width is still a little off:

Thank you  @ktmud for checking! I was pretty sure that I'm working on current master (without previous PR it my changes wouldn't help). Now, it's rebased and everything double checked.
@adam-stasiak would you like to test?

Was your screenshot based on some other branch? Because when I tested locally the indicator width is still a little off:

Thank you  @ktmud for checking! I was pretty sure that I'm working on current master (without previous PR it my changes wouldn't help). Now, it's rebased and everything double checked.
@adam-stasiak would you like to test?

tested, LGTM! ✅ Thanks for the fix!

tested, LGTM! ✅ Thanks for the fix!


cleanup mirror config command

motivation: the mirrors config command no takes both URLs and registry identities
changes:

nupdate flags to use "original" and "mirror" so it is not URL specific
update API to not use URL suffix
update call sites and tests

@swift-ci smoke test

@swift-ci smoke test windows


Add more arrows such as \mapsto, \leadsto

The following arrows are added:
\Leftarrow, \longleftarrow, \leftrightarrow, \longleftrightarrow,
\Rightarrow, \longrightarrow, \leadsto, \mapsto, \longmapsto

These should all be in master now; planning to do a release soon.


Quick fix for 'unions can't be used in index signatures, use a mapped object type instead'

The following code:
type K = "foo" | "bar";

interface SomeType {
    [prop: K]: any;
}

Gives this error message:
An index signature parameter type cannot be a union type. Consider using a mapped object type instead.

Nobody knows what mapped object types are, so let's give them a quick fix that

Switches the index signature to a mapped type
Moves other members to a separate object type that gets combined with an intersection type
Changes the containing object type to a type alias if the containing object type is an interface
Intersects with all the extends clauses if the containing object type is an interface and has any extends clauses

Nobody knows what mapped object types are, so let's give them a quick fix that

+1, just came here because I was expecting 2.9 to support unions as index signatures per your example code. I think this has been a long desired feature: #5683, #16760, etc..

You can do this:
type Foo = 'a' | 'b';
type Bar = {[key in Foo]: any};

Though Bar has no index signature (i.e., you can't then do (obj as Bar)[value as Foo]).

i'd like to work on this :laughing:

Moves other members to a separate object type that gets combined with an intersection type

what should we do if containing object type is an class?

@mhegazy I'm using 3.0.0-rc and still getting the same error as originally posted. Is this expected?

no code actions available with 2.9.1 and vscode

Obviously. I'm sorry for not checking the timeline first, just assumed it would be new enough. New to ts. Will check with version 3.

@maicWorkGithub here you go:
const user = createRequestTypes('USER')
console.log(user.REQUEST)

function createRequestTypes(base:string):requestTypes {
  const result : requestTypes    = {}
  const arr    : requestStatus[] = ['REQUEST', 'SUCCESS', 'FAILURE']

  return arr.reduce((acc:requestTypes, type:requestStatus) => {
    acc[type] = `${base}_${type}`
    return acc
  }, result)
}

type requestStatus = 'REQUEST' | 'SUCCESS' | 'FAILURE'
type requestTypes = { [key in requestStatus]?: string }

@ihorskyi Thanks!!

type ElList = 'h1' | 'h2' | 'div';
type El = {[key in ElList: string};
type Elements = { [name: El]: (...children: string[]) => Vnode };

This still doesn't work in TypeScript 3.1.6 for me.
I get the warning: [ts] An index signature parameter type must be 'string' or 'number'.
Is this just me doing something wrong, because the above fix seems to have landed.
(Although, even this isn't ideal. I have the elements list in a JSON array and I have to repeat the whole list as above, and even then it doesn't work.)

Just curious why type works, but interface doesn't. Can someone explain, please? What's the reason for such a limitation (or a feature?) of interface.
type Foo = 'a' | 'b';
type Bar = {[key in Foo]: any}; // ok
interface Baz {[key in Foo]: any} // =>

// A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.ts(1169)
// A computed property name must be of type 'string', 'number', 'symbol', or 'any'.ts(2464)
// 'Foo' only refers to a type, but is being used as a value here.ts(2693)

This was an amazing auto-fix to discover. Thank you for implementing it! :)

👍 from me as well, @DanielRosenwasser. Quick fixes to the rescue again, and it's fantastic

Same for classes.

export type MigrationStageKey = 'prepare' | 'createMigrationTables' | 'renames' | 'cleanup';
export interface MigrationStages2 {
[key: MigrationStageKey]: unknown;
}
On Typescript 3.4.5 throws error: error TS1337: An index signature parameter type cannot be a union type. Consider using a mapped object type instead.
tsconfig.zip
How do I fix that? What is "mapped object type"?

@mvasin's solution is currently the only one that works for my use case, I simply used /* tslint:disable-next-line interface-over-type-literal */ above my type declaration to avoid linting auto-fix issues.

You can do this:
type Foo = 'a' | 'b';
type Bar = {[key in Foo]: any};

Though Bar has no index signature (i.e., you can't then do (obj as Bar)[value as Foo]).
Edit: Though if you could make the caveat a non-issue, I'd be eternally grateful!

Use Record instead!
type Foo = 'a' | 'b'
type Bar = Record<Foo, any>

To add one more example of this using a class...
class Foo {
   a: string;
   b: string;
}

type Bar = {[key in keyof Foo]: any};

No words, just meme:
https://media1.tenor.com/images/23d9d746fc87b3a93298af43dae21f6a/tenor.gif
:)

its even better when using Partial
type A = 'x' | 'y' | 'z';
type M = Partial<{
    [key in A]: boolean
}>;

Nobody knows what mapped object types are, so let's give them a quick fix that
@DanielRosenwasser
Why can't the error message suggest the answer e.g. show a quick example using mapped type - that would only be couple of lines of code which will be consistent with the average length of Typescript error messages :trollface:

does anyone know if is possible to say that the interface which uses the type or enum as key can accept only one property?
For example a signature like this: { <field>: { <and|or|xor>: <int> } } took from mongo bitwise operator.
export enum BitwiseOperator {
    and = "and",
    or = "or",
    xor = "xor",
}

export type BitwiseCondition = {
    [key in BitwiseOperator]?: number;
}

An then when using it, I would like to validate that the variable which is defined by the interface, has only one property.
const query: BitwiseCondition = {
  and: 5,
  or: 6  // raise a ts error
};

@b4dnewz  You can't do it in Typescript. Workaround: https://github.com/Microsoft/TypeScript/issues/10575

@b4dnewz, if you only want 1 property, why not do it like this?
export enum BitwiseOperator {
  and = "and",
  or = "or",
  xor = "xor",
}

export type BitwiseCondition = {
  operator: BitwiseOperator;
  value: number;
}

@benwinding unfortunately the returned shape is different from what mongodb expects
@apieceofbart thanks for the suggestion, I've looked into it, a bit redundant in terms of interfaces but can work, I'm not sure if I'll implement it now, since it's not a big deal if the final user tries a bitwise condition with two operators, mongo will throw an error anyway
I'm trying to keep the mongo-operators definitions as simple as possible to avoid me headaches 😁  maybe in future a proper support is added

@b4dnewz fair enough,
Perhaps a simpler option you might be able to use is:
export type BitwiseCondition =
  | { or: number }
  | { xor: number }
  | { and: number }

That's about the closest you'll get without too much duplication

@b4dnewz fair enough,
Perhaps a simpler option you might be able to use is:
export type BitwiseCondition =
  | { or: number }
  | { xor: number }
  | { and: number }

That's about the closest you'll get without too much duplication

This will not yield error in this example:
const query: BitwiseCondition = {
  and: 5,
  or: 6  // raise a ts error
};

I thought that's the whole point

@apieceofbart,

This will not yield error in this example:

export type BitwiseCondition =
  | { or: number }
  | { xor: number }
  | { and: number }

const query: BitwiseCondition = {
  and: 5,
  or: 6  // doesn't raise a ts error!
};

Woah! that's weird :open_mouth: I did not know that!
It's seems that Typescript doesn't support mutually exclusive types for objects. It's also was proposal for the language here: https://github.com/microsoft/TypeScript/issues/14094
It is still technically possible though...
From this stackoverflow answer this is possible to achieve this using conditional types (the hardest types), but it aint pretty....
/*
 XOR boiler plate
*/
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
type XOR<T, U> = T | U extends object
  ? (Without<T, U> & U) | (Without<U, T> & T)
  : T | U;
type XOR3<S, T, U> = XOR<S, XOR<T, U>>;

// Code start
export type BitwiseCondition = XOR3<
  { or: number },
  { xor: number },
  { and: number }
>;

const query1: BitwiseCondition = {
  and: 5
};

const query: BitwiseCondition = {
  and: 5,
  or: 6 // raise a ts error
};

If anyone could make this prettier or better, please do

@mvasin FWIW, this appears to achieve the same result, but I agree entirely that it should be a feature of interfaces just as it is on types.
type Foo = 'a' | 'b';

type Bar = {
  [key in Foo]: any
}

interface A extends Bar { }

class Wol implements A{
  a: any;
  b: any;
}

Why exactly can't an index signature use an enum type? The mapped type almost does what I want, but then TypeScript expects every string from the enum to exist as a defined key. I don't actually want to assert that every key exists, more that if any keys do exist, they must live in the enum.
For example for the type:
type MyType = {
  [Key: 'foo' | 'bar' | 'zip']: number;
};

This should satisfy:
const x: MyType = {
  foo: 1,
  zip: 2
};

While I could just set the other keys undefined for a mapped type, I prefer to make the keys optional, but if they're present, the value cannot be undefined. If I make the mapped type values optional the code works but the types are less strong.

its even better when using Partial
type A = 'x' | 'y' | 'z';
type M = Partial<{
    [key in A]: boolean
}>;

Thanks!
Useful when you need to define a type that partially matches a dictionary

https://www.typescriptlang.org/docs/handbook/advanced-types.html#mapped-types

"Partial" can be used  on Records too:
type Foo = 'a' | 'b';
let foo1: Record<Foo, number> = { a: 1, b: 2 };
let foo2: Partial<Record<Foo, number>> = { a: 1 };

I found myself unwittingly visiting this GitHub page every months or so.
My latest one is a real simple one:
interface ObjectLiteral {
    [key: string | number]: any
}
export const mapToObjectLiteral = (map: Map<string|number, any>) =>
    Array.from(map).reduce((objLit, [key, value]) => {
        objLit[key] = value
        return objLit
    }, {} as ObjectLiteral)

I can scroll up and figure out a workaround, but just wanted to provide feedback that this issue happens frequently in day to day work.

I find myself unwittingly visiting this GitHub page every month or so.
My latest one is a real simple one:
interface ObjectLiteral {
    [key: string | number]: any
}
export const mapToObjectLiteral = (map: Map<string|number, any>) =>
    Array.from(map).reduce((objLit, [key, value]) => {
        objLit[key] = value
        return objLit
    }, {} as ObjectLiteral)

I can scroll up and figure out a workaround, but just wanted to provide feedback that this issue happens frequently in day to day work in slightly different scenarios.

here is an example:
type MapKey = string | number;
type ObjectLiteral<T extends MapKey> = {
  [P in keyof T]: T[P];
};

export const mapToObjectLiteral = <T extends MapKey>(map: Map<T, any>) =>
  Array.from(map).reduce((objLit, [key, value]) => {
    objLit[key as keyof ObjectLiteral<T>] = value;
    return objLit;
  }, {} as ObjectLiteral<T>);

const m = new Map();
m.set(1, "a");
m.set("foo", "b");

const o = mapToObjectLiteral(new Map(m));

console.log(o[1], o.foo); // a b

hope it help for you

here is an example:
type MapKey = string | number;
type ObjectLiteral<T extends MapKey, V = any> = {
  [P in T extends number ? string : T]: V;
};

export const mapToObjectLiteral = <T extends MapKey, V>(map: Map<T, V>) =>
  Array.from(map).reduce((objLit, [key, value]) => {
    objLit[key as keyof ObjectLiteral<T>] = value;
    return objLit;
  }, {} as ObjectLiteral<T, V>);

// how to make a better type of map ?
const m = new Map<1 | "foo", "a" | "b">();
m.set(1, "a");
m.set("foo", "b");

const o = mapToObjectLiteral(new Map(m));

console.log(o[1], o.foo); // just got an union type of every member of 'o'

To add one more example of this using a class...
class Foo {
   a: string;
   b: string;
}

type Bar = {[key in keyof Foo]: any};

Very useful. Thanks! 🚀

This worked for me
type Key = 'A' | 'B' | 'C';

type Foo = {
  [key in Key]: any;
};

interface Bar extends Foo {
  Test: any;
}


The sample code used within the comments in textContaining is wrong

textContain is used instead of textContaining in the sample code used within the comments of textContaining.
Expected results:
  /// (Omitted)
  ///
  /// ```dart
  /// expect(find.textContaining('Back'), findsOneWidget);
  /// expect(find.textContaining(RegExp(r'(\w+)')), findsOneWidget);
  /// ```
  ///
  /// (Omitted)
  ///
  /// ```dart
  /// expect(find.textContaining('Close', findRichText: true), findsOneWidget);
  /// expect(find.textContaining(RegExp(r'(\w+)'), findRichText: true), findsOneWidget);
  /// ```
  /// (Omitted)
  ///
  Finder textContaining(
    Pattern pattern, {
    bool findRichText = false,
    bool skipOffstage = true,
  }) {

Actual results
  /// (Omitted)
  ///
  /// ```dart
  /// expect(find.textContain('Back'), findsOneWidget);
  /// expect(find.textContain(RegExp(r'(\w+)')), findsOneWidget);
  /// ```
  ///
  /// (Omitted)
  ///
  /// ```dart
  /// expect(find.textContain('Close', findRichText: true), findsOneWidget);
  /// expect(find.textContain(RegExp(r'(\w+)'), findRichText: true), findsOneWidget);
  /// ```
  /// (Omitted)
  ///
  Finder textContaining(
    Pattern pattern, {
    bool findRichText = false,
    bool skipOffstage = true,
  }) {

flutter doctor -v
```
[✓] Flutter (Channel stable, 2.8.1, on macOS 12.3 21E230 darwin-arm, locale ja)
    • Flutter version 2.8.1 at /opt/homebrew/Caskroom/flutter/2.5.2/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 77d935af4d (3 months ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
• Android SDK at /Users/yamashita/Library/Android/sdk
• Platform android-31, build-tools 31.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
[✓] VS Code (version 1.65.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.36.0
[✓] Connected device (2 available)
• Pixel 3a (mobile) • 93GAY0BAJD • android-arm64  • Android 12 (API 32)
• Chrome (web)      • chrome     • web-javascript • Google Chrome 99.0.4844.84
• No issues found!
</details>

Thanks for the report and see find. It should be textContaining:

 stable, master flutter doctor -v

[[✓] Flutter (Channel stable, 2.10.4, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 2.10.4 at /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c860cba910 (3 days ago), 2022-03-25 00:23:12 -0500
    • Engine revision 57d3bac3dd
    • Dart version 2.16.2
    • DevTools version 2.9.2

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.13.0-0.0.pre.277, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 2.13.0-0.0.pre.277 at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 13d2381109 (4 hours ago), 2022-03-27 21:00:08 -0400
    • Engine revision 559e259c54
    • Dart version 2.17.0 (build 2.17.0-246.0.dev)
    • DevTools version 2.11.4

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.


Zero-and-One-Adjusted Beta

Very cool to see the addition of the zero-adjusted/inflated distributions. Would it be practically possible to have a zero-and-one-adjusted/inflated Beta, i.e. ZOIB, a Beta that allows the response to be [0, 1]? This goes towards the idea of using it with binary classification responses and getting, instead of the usual, natural p parameter of a Bernoulli, the distribution of p itself as a Beta distribution. This would be interesting to ask probabilistic questions about the predicted probability, I think. I could probably hack it by modifying the data with a small epsilon, but it ZABeta opens the door to doing that in a principled way. I think the idea would mean:

A gate/probability, given by a Bernoulii, of a 0 or 1
A gate/probability, given by a Bernoulii, of a 0 (or 1, if you like) given that it's 0 or 1
The beta that models the outcome between 0 and 1 if it’s not zero or not one

Thanks for your detailed outline.
Extending the current Beta distribution from (0,1) to

ZABeta [0,1)
OABeta (0,1]
ZOABeta [0,1]

is on the ToDo already.


docker exec as user not working with sysbox-runc on Ubuntu 23.04 (Lunar)

I've hit an issue where I'm unable to run docker exec --user for sysbox-runc containers on Ubuntu 23.04. For any user which doesn't exist in the image (but does in the container) I get the following error:
unable to find user [...]: no matching entries in passwd file

The same issue doesn't happen when using the default (runc) container runtime.
My best (semi-informed) guess is that it's somehow looking at the wrong filesystem layer and only seeing the /etc/passwd from the image.
I've written a script to reproduce the error but the manual steps are:
docker run --runtime=sysbox-runc --detach --rm --name "jammy" -t "ubuntu:jammy"
docker exec -ti "jammy" useradd execuser
docker exec -ti "jammy" cat /etc/passwd
docker exec --user "execuser" -ti "jammy" id
docker stop jammy

Environment
lsb_release:
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 23.04
Release:	23.04
Codename:	lunar

uname:
Linux lunar-amd64 6.2.0-20-generic #20-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr  6 07:48:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

docker:
Docker version 23.0.6, build ef23cbc

sysbox:
sysbox-mgr
	edition: 	Community Edition (CE)
	version: 	0.6.1
	commit: 	ba99c0e7088f1e1ab51f95551f50de9524176655
	built at: 	Sat Apr  8 06:08:57 UTC 2023
	built by: 	Rodny Molina

Can confirm this can still be reproduced with v0.6.5

Hi @saldrich-adx, thanks for reporting and very sorry that we dropped the ball on answering (you filed the original issue back in May 2023 and we never responded!).
I was easily able to reproduce with the steps you provided above, using Sysbox v0.6.5. There's definitely a bug somewhere, I'll investigate and get back.
I also confirmed that Docker with the default runc does NOT reproduce the problem.

I investigated and the error unable to find user [...]: no matching entries in passwd file is actually coming from Docker engine.
During the docker exec --user "execuser" ..., Docker engine is looking for user execuser in the container's /etc/passwd file. However it does not find it. Yet the container can see it. Why?
The reason has to do with the way Sysbox set up the container's rootfs when using idmapped mounts (supported in kernel 5.19+). When the container starts up, Docker engine typically sets up the container's rootfs using overlayfs. Sysbox performs ID-mapping of that rootfs by dispatching an agent that enters the container mount namespace, unmounts overlayfs, idmaps the lower layers, and remounts overlayfs. This re-mount  of the rootfs is only seen within the container's mount-namespace, not by the host.
This explains why the container can add a new entry (e.g., execuser) to the /etc/passwd file and see it, yet Docker engine (which runs in the host's mount namespace) can't. Which explains why docker exec --user "execuser"... fails.
I am not sure how to solve it, other than changing Docker engine to first enter the container's mount-namespace when looking up files inside the container.

Hm... yes, that's an interesting one; the flag was added when  docker exec (docker container exec) did not yet exist, so the lookup would happen during docker create (docker container create). In that situation the /etc/passwd would either exist in the image or in some cases I know users mounted a /etc/passwd into it, but there would not have been a situation where a user was created at runtime. I went looking for what we documented, but it looks like we document "must be present in the container", but this may have been written from that assumption (no ambiguity between "image" or "container" as the container would not be mutated before the lookup happened) https://docs.docker.com/engine/containers/run/#user
Thinking of this though, I recall some things that may be related to this;
I recall that we have some code-path where docker uses either /etc/passwd, or falls back to getent for looking up a user; the latter was for situations where alternative authentication methods are used;
https://github.com/moby/moby/blob/b1fc766e48a2f6dd053256efe481b583645b7da3/pkg/idtools/idtools_unix.go#L93-L101
However, I'd have to dig deep to check if that codepath is hit in all situations; when using the containerd-snapshotter, this lookup is delegated to containerd;
https://github.com/moby/moby/blob/b1fc766e48a2f6dd053256efe481b583645b7da3/daemon/exec_linux.go#L45-L59
The second thing I recall related to this, was a discussion in runc about whether lookup of the user is a responsibility of runc or the runtime using runc. Originally lookup happened in runc (docker would pass on username:groupname or uid:gid, and runc would lookup the user if names were used instead of IDs), however the OCI runtime spec omitted this part, and only described UID/GID, later on adding that it's the runtime's responsibility to resolve (https://github.com/opencontainers/runtime-spec/issues/38, https://github.com/opencontainers/runtime-spec/issues/38); only accepting UID/GID would break compatibility with existing implementations, so lookup was (for the time being) kept in runc, but other implementations did not implement this, so it's possible (but I'd really have to check) we pre-resolve the UID/GID for this reason.

https://github.com/opencontainers/runc/issues/3998

Thanks! Yes, this may require some digging (through multiple codebases); it's one of the prime examples where things were relatively easy at the time the functionality was introduced 10 Years ago ("just look in /etc/passwd and start the container" - what could ever get more complicated than that ???), but things got much more involved over  time.

I've been working around it by execing su to switch to the added user and running the command

Depending on your case, it may also be worth looking into gosu. su (and sudo) and namespaces / containers aren't  always friends, and may have some odd behaviours (sometimes very subtle, which can make it hard to discover); gosu is written using the same Go libraries as are used by Docker and runc to  perform these tasks, and the README on the repository describes some of the "fun facts" related to su; https://github.com/tianon/gosu


Parent Beacon Root in StateTest fixtures

          I think we need to discuss this a bit further because this is a block property, so it requires the state test consumers to perform a block action before executing the transactions, while we could simply put this result in the pre-state.

Originally posted by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/378#discussion_r1459654263

Response at https://github.com/ethereum/execution-spec-tests/issues/413#issuecomment-1917077013 is a reasonable one to close this issue too.


Hot to add Website visitors audiences as remarketing audience

How can i add Website visitors audiences as remarketing audience to my campaign? I searched for an example but i didn't find one.
I aslo asked time ago a similar question to creare a list of users: https://github.com/googleads/google-ads-java/issues/105
May i know also how to create audiences from a list of emails? Also for this problem i didnt find an example.
Thank you

Hey, please reach out on the forum for issues which aren't specific to the Java client library.
The general flow for adding user lists to campaigns is similar to the guide for the AdWords API. Apologies, we don't yet have a remarketing guide/examples available for the beta API.
A quick summary is:

First create a user list using UserListService.
(Optional) Attach it at campaign level with CampaignCriterionService.
(Optional) Attach it at ad group level with AdGroupCriterionService.


Update ObjectGraph sample app

Addresses #1950
:saxophone: Takes sample to 2.0

@guardrex,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


Distinguish click from dblclick

I'm working on a map annotation editor based on Leaflet. I'm wondering if I could distinguish between double click events (as used for zooming into the map) and click events (just one click).
In my scenario a click should drop a new map annotation, as opposed to a double click, which should just do the zooming. However, a double click triggers two click events. Maybe this should change?
Let me know what you guys think.
Thanks,
Michael (MapBox)

+1

+1


googlemail.com, outlook.com are not disposable

https://github.com/disposable/disposable-email-domains/commit/7033ee23464677dcc82c89c5cbd1b08c30dc2e7e
added
mail.ru
gmx.com
gmx.es
googlemail.com
outlook.com
yandex.com
ymail.com (yahoo)
zoho.com
which I'd consider freemail, but not disposable.

Yes, I agree too.
mail.ru - popular Russian free mail.
outlook.com - it's mail from Microsoft.
I have mail on both.

Please add issues on https://github.com/disposable/disposable as this repository just host the generated files and is not monitored.
Just removed source for that domains in https://github.com/disposable/disposable/commit/9889d365a0faa0defc9288afa064254422601ef4
Should be fixed in next update.

resolved in https://github.com/disposable/disposable-email-domains/commit/842c830d134f05fac34711e3031998a79bda902a


custom boundary integrals

This PR gives users a way to prescribe more complicated traction functions (e.g. Robin-type boundary conditions) in the solid mechanics module.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (ee1045f) 88.85% compared to head (884ae86) 88.95%.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #1040      +/-   ##
===========================================
+ Coverage    88.85%   88.95%   +0.10%
===========================================
  Files          152      153       +1
  Lines        12268    12325      +57
===========================================
+ Hits         10901    10964      +63
+ Misses        1367     1361       -6

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add support for "Automatically delete head branches"

Prerequisites:

Is the functionality available in the GitHub UI? If so, please provide a link to information about the feature.
Yes: https://docs.github.com/en/github/administering-a-repository/managing-the-automatic-deletion-of-branches

Is the functionality available through the GitHub API? If the functionality is available, please provide links to the
API documentation (https://developer.github.com/v3/) as well as the Octokit documentation (https://octokit.github.io/).
I couldn't find an API for this.

If the functionality is not yet available in the API, it would be helpful if you
contacted support (https://support.github.com/) or posted in the Community Forum (https://github.community/). Please
include a link to the forum post if you create one or a copy of the response from support.
https://github.community/t/missing-api-for-automatically-delete-head-branches/176587

New Feature
Please describe the desired new functionality:
Add a new entry to the settings.yml to enable control over the "Automatically delete head branches" option.
Thanks!

@yotamshapira does the following from the documentation solve your issue?
repository:
  # Either `true` to enable automatic deletion of branches on merge, or `false` to disable
  delete_branch_on_merge: true

@yotamshapira does the following from the documentation solves your issue?
repository:
  # Either `true` to enable automatic deletion of branches on merge, or `false` to disable
  delete_branch_on_merge: true

It does, thanks!


Bugfix for command aad app add resolves #2188

Fixes for issue #2188

@waldekmastykarz This is ready, I have reverted the npm shrink file to lock version 2 and have added a test to verify the bug, cheers!

Merged manually. Thank you! 👏


APP-1341 Fix error handling on 2-way dialogs

Error scenarios for:

Integration Bridge has no access to that Jira instance (App link not configured)
The Jira instance doesn't exist

Codecov Report

Merging #113 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #113   +/-   ##
=======================================
  Coverage   89.18%   89.18%
=======================================
  Files          42       42
  Lines        1156     1156
  Branches      136      136
=======================================
  Hits         1031     1031
  Misses         85       85
  Partials       40       40

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 e679faf...aced3c7. Read the comment docs.


Make consistent with naming in glob?

Here
    % x_pos: position perpendicular to shore
    % y_pos: positon parallel to shore

https://github.com/MindTheGap-ERC/CarboCAT_utils/blob/d59f046e2669bdd49fa63620f8c9635dc147d40e/get_strat_column.m#L1-L20
but in glob is the other way round:
>> glob.xSize

ans =

    10

>> glob.ySize

ans =

   150

Might be confusing for users, maybe swap indices?

I realized now that it's CarboCAT that is not consistent, because all arrays have x perpendicular to the shore. So xSize and ySize are misnomers. Sorry. Might be an issue for CarboCAT.


[FEATURE REQUEST]  Change Filebeat config to not use root account

Is your feature request related to a problem? Please describe.
Filebeat config uses root account
Describe the solution you'd like
Change Filebeat config to not use root account
Describe alternatives you've considered
None
Additional context
None

DoD checklist

Changelog

[ ] updated
[ ] not needed

COMPONENTS.md

[ ] updated
[ ] not needed

Schema

[ ] updated
[ ] not needed

Backport tasks

[ ] created
[ ] not needed

Documentation

[ ] added
[ ] updated
[ ] not needed

[ ] Feature has automated tests
[ ] Automated tests passed (QA pipelines)

[ ] apply
[ ] upgrade
[ ] backup/restore

[ ] Idempotency tested
[ ] All conversations in PR resolved
[ ] Solution meets requirements and is done according to design doc
[ ] Usage compliant with license

@rafzei and @to-bar can you please check if this is still relevant?

@rafzei and @to-bar can you please check if this is still relevant?

There is no description so hard to say.
If this task is about ownership of Filebeat configuration file, then there is nothing to do and can be closed.
I've checked (on RHEL) that the config file's attributes after deployment are the same as defined in rpm package:
# ls -la /etc/filebeat/filebeat*
-rw-r--r--. 1 root root 79382 Oct 16 08:21 /etc/filebeat/filebeat.reference.yml
-rw-------. 1 root root  8912 Oct 16 08:21 /etc/filebeat/filebeat.yml # original file after installing rpm manually
-rw-------. 1 root root 10864 Oct 27 10:07 /etc/filebeat/filebeat.yml.rpmsave # backup of file managed by Epiphany

Furthermore, installing the rpm package does not create dedicated user:
# grep -c filebeat /etc/shadow
0

If this task is about running filebeat process as a non-root user, then:

New user should be added (with privileges to read all log files)
Service file (/usr/lib/systemd/system/filebeat.service) should be changed to use the regular user from 1)

@toszo can you please decide what is this task about? Is it about running filebeat process as a non-root user?

Yes, it is about running Filebeat service as non-root user. Let's discuss risk vs effort here.

The official documentation states that Filebeat process can work as root or user. Of course, running by a user is a more secure approach than do this on root.
May be useful:
https://www.elastic.co/guide/en/beats/libbeat/7.x/config-file-permissions.html

Not going todo anymore feature requests for Epiphany.


Warn on missing page parameters

Summary 💡
Toolpad allows you to set-up page parameters which you provide as query parameters in the url and which are available as page state. There are some UX problems with the current implementation:

There is no feedback when a user is using an unknown url parameter https://github.com/mui/mui-public/pull/136
There is no way of requiring a parameter (e.g. the bundle size app doesn't work without providing some params)

Toolpad should:

Allow making some parameters required. If a required parameter is not provided we should give clear feedback on the page that it is missing. e.g. we could just not show the page at all and show an interstitial instead explaining what's missing
Show a warning when an unused parameter is used. This shouldn't be an interstitial, we can show a dismissable banner or something instead.

Benchmark

https://docs.retool.com/apps/web/guides/customize-app-urls

Motivation 🔦
No response
Search keywords:

Could you offer more detail if I pick this issues up.?
Are there any materials about such as which parameter was required or not?

We want to add an option in this dialog:

that exists on each parameter. a checkbox that marks it as required.
In the file we will save that as:
  parameters:
    - name: foo
      required: true

if the checkbox is unchecked this will be stored as
  parameters:
    - name: foo

Now when a parameter is required, and you open the page without the parameter in the url, we will show a message that the parameter must be supplied before the page can render.
Secondly:
when a user specifies a parameter in the url (e.g. ?bar=hello) that does not exist ion the page parameters we should show a warning that an unknown parameter was supplied. I'm fine using a snackbar for this for now.
This should be implemented in two different PRs, we won't accept a PR that implements both of those together

@Janpot I did this module before.
I think I can pick this up

Before you do, it needs to be determined what the exact UI/UX will be like. I suggest you think about it before implementing it.

Toolpad should:

Allow making some parameters required. If a required parameter is not provided we should give clear feedback on the page that it is missing. e.g. we could just not show the page at all and show an interstitial instead explaining what's missing
Show a warning when an unused parameter is used. This shouldn't be an interstitial, we can show a dismissable banner or something instead.

On 1. if we have required parameters, then I would expect to write the logic in my app with a value always define in dev mode. So we would need a way to set a test value. Having that test value would be enough to solve my problem in https://github.com/mui/mui-public/pull/136#issuecomment-1869067489.
On 2. I don't see this one. I would expect to be able to add utm tag without them triggering warnings.

On 1. if we have required parameters, then I would expect to write the logic in my app with a value always define in dev mode. So developers would need a way to set a test value.

Perhaps we can forward the parameters on the url of the editor to the page?

On 2. I don't see this one. I would expect to be able to add utm tag without them triggering warnings.

The idea is to catch misspelling or removed/renamed parameters. We have options though:

ask the users to define those utm parameters as non required page parameters.
add a checkbox "allow undeclared parameters".
not implement this warning altogether. I'm not overly attached to the idea anyway.


Image path declaration

Container#eachDecl is deprecated. Use Container#walkDecls instead.
Your current PostCSS version is 5.0.10, but postcss-image-set uses 4.1.16. Perhaps this is the source of the error below.
 TypeError in plugin 'gulp-postcss'
Message:
    Cannot read property '0' of null

Allow to use image path declaration without url keyword:
background-image: image-set("/img.jpg" 1x,
<EMAIL_ADDRESS>2x,
<EMAIL_ADDRESS>3x);

https://github.com/alex499/postcss-image-set/blob/master/index.js#L4
Like in the specification: https://drafts.csswg.org/css-images-3/#typedef-image-set-option

Also fixed in #5 !


OS specific Alert Dialogs shrinking.

I have noticed that the Responsive Framework is shrinking the Cupertino Alert Dialog more than usual, making the UI feel off from iOS standards. Is there any workaround?

Ok, so to give a clear example of what I'm talking about, here are two screenshots. The first is using te responsive_framework package. The second is how it SHOULD look.
This might be a minimal issue but it is a real dealbreaker for me because it breaks the "iOS standard style" to give it a name.
Is there any way I can stop this from happening?

Hmmm, this is on the v0.2.0 release roadmap.
Any ideas how to fix the issue?