Migrate AWS cluster management to MAPI

Towards https://github.com/giantswarm/roadmap/issues/310
Description

All existing functionality in Happa has to be moved to Management API
Adapt all CLI guides for the Management API to work on AWS

TODO

[x] Cluster list on the homepage

[x] Display the list of active clusters
[x] Display additional information about nodes and whatnot
[x] Display the real cluster description

[x] Cluster details Overview tab

[x] Rename cluster
[x] Show stats about worker nodes
[x] Show stats about apps
[x] Show stats about client certificates
[x] Show release information (k8s version, if there's an upgrade available)
[x] Add/Edit/Delete labels
[x] Show control plane nodes info
[x] Show the K8s API URL
[x] Display AWS account ID
[x] Display creation date
[x] Delete cluster
[x] Switch to HA CP nodes

[x] Cluster creation

[x] Configure cluster and control plane nodes

[x] Cluster upgrade

[x] Display supported upgrade versions in the release details modal
[x] Display updated components
[x] Display if a cluster is upgrading
[x] Execute an upgrade

[x] Client certificate management

[x] List all client certificates in read-only mode

[x] Node pool management

[x] List
[x] Create
[x] Rename
[x] Update scaling
[x] Delete
[x] Display real descriptions
[x] Configure and display the usage of similar instance types
[x] Configure and display the usage of spot instances

[x] App management

[x] Display real cluster descriptions in the app installation cluster picker

[x] Update CLI guides

[x] Modify node pool
[x] Delete node pool
[x] Create client certificates (the guide itself doesn't need updating, we just need to only display the guide if the cluster is on release v16.0.1 or newer, and if it is in the organization namespace)
[x] Delete cluster

Some differences on AWS compared to the MAPI based Azure UI:
In general, let's assume that all CLI guides require adaptation for AWS.
On a high level, these are the functions that are different:

AZ placement: no "not specified" option
HA control planes
Similar instance types
Spot node pools have different config

Broken down to UIs, here is how these functions surface:

Cluster creation form

Single node vs. HA control plane
AZ placement does not offer "not specified" option

Cluster detail page: Overview

Display: control plane can be either HA or single node
Dialog for switching from single node to HA

Cluster detail page: Worker nodes

Node pools can use several instance types ("Similar instance types enabled"), while only one on Azure
On-demand base capacity is displayed in a tooltip
Number of spot instances should be displayed (On Azure we only show a check mark if Spot is enabled, but not the count)

Node pool creation form

Checkbox for enabling the use of similar instance types
Availability zone selection does not contain "not specified" option
Different spot instances options

Aaaand... done ✅


References to TAN Hotline in footer

Where to find the issue
Footer of all pages on https://www.coronawarn.app "Hotline TAN"
Describe the issue
References to the TAN Hotline in the footer do not say that the hotline will be discontinued.
Suggestion
Add an extra line to the footer in the column under Hotline TAN:

until Jan 31, 2023 (EN)
bis 31. Jan 2023 (DE)

References
https://www.coronawarn.app/en/blog/2023-01-18-cwa-3-0/ says "... the operation of the verification hotline will be discontinued as of 31.01.2023."

I rather suggest to simply remove this part of the footer on 01. Feb 2023. It saves work and I don't see the need to add a disclaimer now.
This issue is also applicable to https://github.com/corona-warn-app/cwa-event-landingpage

@Ein-Tim

I rather suggest to simply remove this part of the footer on 01. Feb 2023. It saves work and I don't see the need to add a disclaimer now.

That is an alternative which would also mean adapting the Cypress test https://github.com/corona-warn-app/cwa-website/blob/master/cypress/e2e/hotline.cy.js to remove the Hotline TAN check.

This issue is also applicable to https://github.com/corona-warn-app/cwa-event-landingpage

You might like to open an issue there.

I rather suggest to simply remove this part of the footer on 01. Feb 2023. It saves work and I don't see the need to add a disclaimer now.

That is an alternative which would also mean adapting the Cypress test master/cypress/e2e/hotline.cy.js to remove the Hotline TAN check.

Yeah, but I don't see a way around that. Leaving the number of the TAN hotline in the footer after 31. Jan 2023 is not necessary. It should be removed on that date.

This issue is also applicable to corona-warn-app/cwa-event-landingpage

You might like to open an issue there.

I'll do that!

This can be implemented simply in src/data/global.json with the addition of:
{
  "title": "until Jan 31, 2023",
  "url": "/en/blog/2023-01-18-cwa-3-0/"
}

and
{
  "title": "bis 31. Jan 2023",
  "url": "/de/blog/2023-01-18-cwa-3-0/"
}

underneath the phone number links, which provides both the information about the date and a link to the CWA 3.0 blog.

The implementation of this suggestion is in branch https://github.com/MikeMcC399/cwa-website/tree/hotline-tan. If you want a PR for this, then please tell me.

@MikeMcC399
We would appreciate if you could provide a PR containing your suggested changes. Thanks for offering!

@larswmh

I have submitted PR https://github.com/corona-warn-app/cwa-website/pull/3332 to add the extra line to the footer


Non-compliant function names

The two Bash completion functions are not named according to the function and variable naming scheme used for all other globally accessible variables and functions (_PATHS_ prefix). This should be corrected prior to the next release.

Addressed in v3.0.0.pre.


Help newbie

I don't see a place to enter my HTML code. I hit "New Bin" but nothing. The following image is what I am seeing. This is my first time here and I am newly registered. I have not received any welcome emails of any sort from you so I hope all is well with my account.  Thank you for your help in getting started.

JS Bin isn't loading. What browser is that? Also, can you capture and report any errors found in your browser's native console?

Internet Explorer 11
(Please see attached screenshot of what I am seeing).
This is my first time trying to use JSBIN so maybe I am not clicking on something I should be.
I clicked on “New Bin” thinking I would see a place to enter my HTML code but nothing happens when I click on “New Bin” as if it is inactive.
I really appreciate you getting back to me so quickly. I’d be happy to work with you to resolve this issue. If we need to cancel my JSBIN account and start over I would be willing to do that too. Thank you again. / Ed
From: Remy Sharp<EMAIL_ADDRESS>Sent: Thursday, August 06, 2015 6:54 AM
To: jsbin/jsbin
Cc: breslin2
Subject: Re: [jsbin] Help newbie (#2512)
JS Bin isn't loading. What browser is that? Also, can you capture and report any errors found in your browser's native console?
—
Reply to this email directly or view it on GitHub https://github.com/jsbin/jsbin/issues/2512#issuecomment-128326140 .  https://github.com/notifications/beacon/ANBKQkzToyaUJ6qAGKph2vQa9SVj7ptrks5okzRjgaJpZM4FmfJS.gif

It's not your account, it's the browser. The screenshot didn't turn up. Can you upload it to github?

The browser is Internet Explorer 11.
Screenshot attached.

I am using IE 11.
I uploaded the attached screenshot to github.
From: Remy Sharp<EMAIL_ADDRESS>Sent: Friday, August 07, 2015 9:08 AM
To: jsbin/jsbin
Cc: breslin2
Subject: Re: [jsbin] Help newbie (#2512)
It's not your account, it's the browser. The screenshot didn't turn up. Can you upload it to github?
—
Reply to this email directly or view it on GitHub https://github.com/jsbin/jsbin/issues/2512#issuecomment-128695204 .  https://github.com/notifications/beacon/ANBKQtu8trbi6AgTt-Yn3Tu1hdVKJ9Gyks5olKU1gaJpZM4FmfJS.gif

Also, can you capture and report any errors found in your browser's native console?


Ideas: customize redolog and controlfile dest

Hello,
When using DBCA there is no way to customize the number of redolog groups and file destination, same with controlfiles.

3 redolog groups are created in datafile_dest
Only 2 controlfiles are created, one in datafile_dest, the other in recovery_dest

Doing it in a SQL script after db creation is tricky: redo group must be unused to change file location and if controfiles are stored in ASM you must use RMAN to add one.
So if anyone has ideas. I was thinking maybe to give the possibility to execute a custom SQL script given as a new group/host var after db creation.

I propose to make TEMPLATENAME = "General_Purpose.dbc" customizable in oradb-create role DBCA templates. You only need to add one variable :)

Agreed. I've been meaning to do that for a long time.
https://github.com/oravirt/ansible-oracle/commit/0de1d65a4614f24c952bc2cb6d8b4d26d4d6849d

Thanks a lot.


Fix skipped tests in handlers

Decided to do it from scratch here - https://github.com/NethermindEth/juno/pull/1829


Major bottleneck during cache refresh in Mybatis v3.2.2

USAGE
On an average we have 1000 concurrent clients that make calls that translate to exactly same set of DB queries. Our database does not change every second so we cache the DB queries for 5 minutes using MyBatis,

PROBLEM
Server handles the load comfortably except when cache refresh happens. At every cache refresh we see large number of errors.
FINDINGS SO FAR
Let's say 1000 clients call for query_1 which takes 5 seconds to execute. Until query_1 is completed, MyBatis makes DB calls for query_1 repeatedly and does not realize that query_1 is already in progress. So Mybatis makes hundreds of concurrent calls to DB for same query_1, effectively not using caching.
This overloads our DB and leads to request failures.
This is an urgent production issue, any fixes or workarounds will be greatly appreciated!

Hazelcast fails when attempting to put "null". A new solution is needed.


Improve PhantomData held by curve adaptors

Objective
The previous PhantomData instances were written somewhat lazily, so they were just things like PhantomData<T> for curves with an output type of T. This looks innocuous, but it unnecessarily constrains Send/Sync inference based on the struct fields.
Solution
Switch to PhantomData of the form PhantomData<fn() -> T> for most of these adaptors. Since they only have a functional relationship to T (i.e. it shows up in the return type of trait methods), this is more accurate.
Testing
Tested by compiling Bevy.

I'm actually still a little bit unsure about MapCurve specifically. My reasoning was that it should behave like it owns a fn() -> S since it actually owns a curve with that output type; the fn(S) -> T phantom type looks reasonable but is also just going to be redundant in all real cases, because F: Fn(S) -> T (so, for instance, it could literally be a function pointer fn(S) -> T).

I'm actually still a little bit unsure about MapCurve specifically. My reasoning was that it should behave like it owns a fn() -> S since it actually owns a curve with that output type; the fn(S) -> T phantom type looks reasonable but is also just going to be redundant in all real cases, because F: Fn(S) -> T whenever the struct is a curve (so, for instance, it could literally be a function pointer fn(S) -> T).

When would MapCurve not be a curve? Is there a reason F isn't defined with the Fn(S) -> T bound?


new:usr:#69:Accept DSSet ID to support multi-tenant implementations.

DS Set is a group of data sources and their cubes and views. Typically in a
single tenant system there is only set and DSSets are not exposed to users
and admins. For multi-tenant systems allow connections to be created for a
particular DSSet. This argument is valid for DB Catalogs only and is optional.

@adeshr assuming the tests pass, this PR is ready for review and merge


Bringing author back to README

Description
Bring back my credit, was removed on 680ecd8aeb47401c4398e2a749a87b610b3db0f8
I'm happy to discuss this, e.g. if there was any rationale I missed
Thanks!
Issues Resolved
N/A
Check List

[V] All tests pass. See TESTING.md for details.
[V] New functionality includes testing.
[V] New functionality has been documented in the README if applicable.

@shortdudey123 could I get your take on this please? :D

ty @Xorima!


core-backend: Add ECDb.getSchemaProps()

imodel-native: https://github.com/iTwin/imodel-native/pull/474

@ColinKerr @christophermlawson @rschili ECSchemaProps, ECSchemaItemProps, and ECSchemaRefereProps are public but entirely undocumented. Even I have questions such as: what is the difference between $schema and schema? What is the format of the version string? What are the possible values for schemaItemType?
Can we plan to document these types?

These are sadly duplicates to the interfaces defined in ecschema-metadata (which also need documentation) added to avoid adding ecschema-metadata as a dependency of core-backend.  We will document both: https://github.com/iTwin/itwinjs-core/issues/6038


Add marketplace badges

Question

I like your action. Is it possible that you add marketplaces badges to it? That the publisher is verified.

A Verified Publisher Badge is applied by GitHub when the following criteria is met:

Verified ownership of their domain and has a verified badge on their profile
Confirmed their email address so GitHub Support can reach the organization
Required two-factor authentication for their organization.

@relekang, over to you as this is not something I can accomplish.


Cursor

When we hover on any movie card the course change to pointer. but according to me it should change to pointer when we hover on trailer or play button.

please assign me this issue


ghq: 1.6.3 -> 1.7.1

Things done
Changes https://github.com/x-motemen/ghq/compare/v1.6.3...v1.7.1

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 356243

x86_64-linux

:white_check_mark: 2 packages built:

ghq
gst

x86_64-darwin

:white_check_mark: 2 packages built:

ghq
gst

aarch64-darwin

:white_check_mark: 2 packages built:

ghq
gst

Thank you for merging!


Update the request record after the terraform apply

AC:
After TF runs and updates KC, execute a Lambda function to update the status of the original project request.
The "status" will be updated to "complete"
Capture the event time in the database

@jlangy What review does this require?

Junmin says this is done


Update Overviews queries to get the count of the aggregated features

cc @jgoizueta

This change will break the tiler as it's including a new column. The changes in the tiler will be performed from this issue: https://github.com/CartoDB/Windshaft-cartodb/issues/413

We have changed the strategy and we no longer need the tiler to add the extra column because we will actually add it to the base table.


Crash in checkpointed Regent Circuit on 16 nodes

I'm seeing this failure on Piz Daint at 16 nodes and above:
circuit.checkpoint: /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:763: bool Legion::Internal::DistributedCollectable::can_delete(Legion::Internal::AutoLock&): Assertion `false' failed.

Backtrace:
[10] #9  0x000015554fbb8ad2 in __assert_fail () from /lib64/libc.so.6
[10] #10 0x0000155552e15bb0 in Legion::Internal::DistributedCollectable::can_delete (this=0x154ca047cae0, gc=...) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:763
[10] #11 0x0000155552e15c2b in Legion::Internal::DistributedCollectable::remove_gc_reference (this=0x154ca047cae0, cnt=cnt@entry=1) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:153
[10] #12 0x0000155552f9510a in Legion::Internal::DistributedCollectable::remove_base_gc_ref (source=Legion::Internal::APPLICATION_REF, cnt=1, this=<optimized out>) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.h:612
[10] #13 Legion::FutureMap::operator= (this=this@entry=0x154c9c1dcbf8, rhs=...) at /users/eslaught/resilience/legion/runtime/legion/legion.cc:2588
[10] #14 0x00001555530e8188 in Legion::Internal::MultiTask::deactivate (this=0x154c9c1dc4f0, freeop=<optimized out>) at /users/eslaught/resilience/legion/runtime/legion/legion_tasks.cc:5124
[10] #15 0x00001555530e88c5 in Legion::Internal::SliceTask::deactivate (this=0x154c9c1dc4f0, freeop=<optimized out>) at /users/eslaught/resilience/legion/runtime/legion/legion_tasks.cc:10847
[10] #16 0x0000155552fd7cb4 in Legion::Internal::Operation::commit_operation (this=0x154c9c1dc6a0, do_deactivate=<optimized out>, wait_on=...) at /users/eslaught/resilience/legion/runtime/legion/legion_ops.cc:2226
[10] #17 0x00001555530ed0ec in Legion::Internal::SliceTask::record_point_committed (this=0x154c9c1dc4f0, commit_precondition=...) at /users/eslaught/resilience/legion/runtime/legion/legion_tasks.cc:11762
[10] #18 0x0000155552fd7cf4 in Legion::Internal::Operation::commit_operation (this=0x154ca0482360, do_deactivate=<optimized out>, wait_on=...) at /users/eslaught/resilience/legion/runtime/legion/legion_ops.cc:2205
[10] #19 0x0000155552f6d049 in Legion::Internal::InnerContext::process_post_end_tasks (this=<optimized out>) at /users/eslaught/resilience/legion/runtime/legion/legion_context.cc:8633
[10] #20 0x0000155552f6d2dd in Legion::Internal::InnerContext::handle_post_end_task (args=args@entry=0x154cac0bec60) at /users/eslaught/resilience/legion/runtime/legion/legion_context.cc:11827
[10] #21 0x00001555532c4679 in Legion::Internal::Runtime::legion_runtime_task (args=0x154cac0bec60, arglen=12, userdata=<optimized out>, userlen=<optimized out>, p=...) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:31683
[10] #22 0x0000155551ed00f1 in Realm::Task::execute_on_processor (this=0x154cac0beae0, p=...) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:302
[10] #23 0x0000155551ed0186 in Realm::UserThreadTaskScheduler::execute_task (this=<optimized out>, task=<optimized out>) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:1632
[10] #24 0x0000155551ed2d4c in Realm::ThreadedTaskScheduler::scheduler_loop (this=0x132f390) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:1105
[10] #25 0x0000155551ed7907 in Realm::UserThread::uthread_entry () at /users/eslaught/resilience/legion/runtime/realm/threads.cc:1355

This is based on control_replication 77fbc24ef747f8fdac3e5067521b0e8e8146339c.
If it would be helpful to attempt a reproducer on Sapling, let me know.

Print out current_state in frame 10.
Run with -DDEBUG_LEGION_GC and see if you hit a crash somewhere else
Try to make a reproducer on sapling.

I'll post stuff as it's coming in.
Here's the error from DEBUG_LEGION_GC:
circuit.checkpoint: /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:847: virtual bool Legion::Internal::DistributedCollectable::perform_downgrade(Legion::Internal::AutoLock&): Assertion `((current_state == GLOBAL_REF_STATE) && (downgrade_owner == local_space)) || ((current_state == PENDING_LOCAL_REF_STATE) && (downgrade_owner != local_space))' failed.

I am simultaneously trying to get an interactive job on Piz Daint to debug this properly, and to see if there is a configuration where I can reproduce on Sapling.

Print out current_state, downgrade_owner, local_space

Also get a backtrace.

Also p/x this->did

I've got an interactive job but am unable to log into the compute node. What else can I do?
Here's the relevant backtrace:
[11] Thread 8 (Thread 0x155555392840 (LWP 28981) "circuit.checkpo"):
[11] #0  0x000015554d398157 in waitpid () from /lib64/libc.so.6
[11] #1  0x000015554d3156af in do_system () from /lib64/libc.so.6
[11] #2  0x000015554fddbdc1 in gasneti_bt_gdb () from /users/eslaught/resilience/circuit.run8_debug_gc/librealm.so.1
[11] #3  0x000015554fddf619 in gasneti_print_backtrace () from /users/eslaught/resilience/circuit.run8_debug_gc/librealm.so.1
[11] #4  0x000015554f3768be in gasneti_defaultSignalHandler () from /users/eslaught/resilience/circuit.run8_debug_gc/librealm.so.1
[11] #5  <signal handler called>
[11] #6  0x000015554d308360 in raise () from /lib64/libc.so.6
[11] #7  0x000015554d309941 in abort () from /lib64/libc.so.6
[11] #8  0x000015554d300a5a in __assert_fail_base () from /lib64/libc.so.6
[11] #9  0x000015554d300ad2 in __assert_fail () from /lib64/libc.so.6
[11] #10 0x0000155551f634ce in Legion::Internal::DistributedCollectable::perform_downgrade (this=0x154ca050f020, gc=...) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:847
[11] #11 0x0000155551f64181 in Legion::Internal::DistributedCollectable::process_downgrade_request (this=0x154ca050f020, owner=2, to_check=Legion::Internal::DistributedCollectable::PENDING_LOCAL_REF_STATE) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:1074
[11] #12 0x0000155551f640c6 in Legion::Internal::DistributedCollectable::handle_downgrade_request (runtime=0xf72520, derez=..., source=3) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:1057
[11] #13 0x00001555526a2793 in Legion::Internal::Runtime::handle_did_downgrade_request (this=0xf72520, derez=..., source=3) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:24184
[11] #14 0x0000155552673eb4 in Legion::Internal::VirtualChannel::handle_messages (this=0x154ca00f3fb0, num_messages=1, runtime=0xf72520, remote_address_space=3, args=0x154cac01e1d0 "", arglen=32) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:12089
[11] #15 0x000015555267308a in Legion::Internal::VirtualChannel::process_message (this=0x154ca00f3fb0, args=0x154cac01e1b4, arglen=52, runtime=0xf72520, remote_address_space=3) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:11573
[11] #16 0x00001555526755c1 in Legion::Internal::MessageManager::receive_message (this=0x154ca007ccf0, args=0x154cac01e1b0, arglen=60) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:13240
[11] #17 0x00001555526a69b8 in Legion::Internal::Runtime::process_message_task (this=0xf72520, args=0x154cac01e1ac, arglen=64) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:25965
[11] #18 0x00001555526bbc21 in Legion::Internal::Runtime::legion_runtime_task (args=0x154cac01e1a0, arglen=68, userdata=0x147b250, userlen=8, p=...) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:31678
[11] #19 0x000015554f7543c6 in Realm::LocalTaskProcessor::execute_task (this=0x14bc490, func_id=4, task_args=...) at /users/eslaught/resilience/legion/runtime/realm/proc_impl.cc:1135
[11] #20 0x000015554f7c1354 in Realm::Task::execute_on_processor (this=0x154ca4033370, p=...) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:302
[11] #21 0x000015554f7c5e98 in Realm::UserThreadTaskScheduler::execute_task (this=0xe18d00, task=0x154ca4033370) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:1632
[11] #22 0x000015554f7c3f45 in Realm::ThreadedTaskScheduler::scheduler_loop (this=0xe18d00) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:1105
[11] #23 0x000015554f7cb8c0 in Realm::Thread::thread_entry_wrapper<Realm::ThreadedTaskScheduler, &Realm::ThreadedTaskScheduler::scheduler_loop> (obj=0xe18d00) at /users/eslaught/resilience/legion/runtime/realm/threads.inl:97
[11] #24 0x000015554f7d92ef in Realm::UserThread::uthread_entry () at /users/eslaught/resilience/legion/runtime/realm/threads.cc:1355
[11] #25 0x000015554d31dbe0 in ?? () from /lib64/libc.so.6
[11] #26 0x0000000000000000 in ?? ()

Ok, here we go:
(gdb) bt
#0  0x000015554d308360 in raise () from /lib64/libc.so.6
#1  0x000015554d309941 in abort () from /lib64/libc.so.6
#2  0x000015554d300a5a in __assert_fail_base () from /lib64/libc.so.6
#3  0x000015554d300ad2 in __assert_fail () from /lib64/libc.so.6
#4  0x0000155551f634ce in Legion::Internal::DistributedCollectable::perform_downgrade (this=0x154c9835df80, gc=...) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:847
#5  0x0000155551f64181 in Legion::Internal::DistributedCollectable::process_downgrade_request (this=0x154c9835df80, owner=2, to_check=Legion::Internal::DistributedCollectable::PENDING_LOCAL_REF_STATE)
    at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:1074
#6  0x0000155551f640c6 in Legion::Internal::DistributedCollectable::handle_downgrade_request (runtime=0xf71500, derez=..., source=3)
    at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:1057
#7  0x00001555526a2793 in Legion::Internal::Runtime::handle_did_downgrade_request (this=0xf71500, derez=..., source=3) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:24184
#8  0x0000155552673eb4 in Legion::Internal::VirtualChannel::handle_messages (this=0x154ca04f9330, num_messages=1, runtime=0xf71500, remote_address_space=3, args=0x154cb40354c0 "", arglen=32)
    at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:12089
#9  0x000015555267308a in Legion::Internal::VirtualChannel::process_message (this=0x154ca04f9330, args=0x154cb40354a4, arglen=52, runtime=0xf71500, remote_address_space=3)
    at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:11573
#10 0x00001555526755c1 in Legion::Internal::MessageManager::receive_message (this=0x154ca0202470, args=0x154cb40354a0, arglen=60) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:13240
#11 0x00001555526a69b8 in Legion::Internal::Runtime::process_message_task (this=0xf71500, args=0x154cb403549c, arglen=64) at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:25965
#12 0x00001555526bbc21 in Legion::Internal::Runtime::legion_runtime_task (args=0x154cb4035490, arglen=68, userdata=0x17dbaa0, userlen=8, p=...)
    at /users/eslaught/resilience/legion/runtime/legion/runtime.cc:31678
#13 0x000015554f7543c6 in Realm::LocalTaskProcessor::execute_task (this=0x14bb530, func_id=4, task_args=...) at /users/eslaught/resilience/legion/runtime/realm/proc_impl.cc:1135
#14 0x000015554f7c1354 in Realm::Task::execute_on_processor (this=0x154cb4035b30, p=...) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:302
#15 0x000015554f7c5e98 in Realm::UserThreadTaskScheduler::execute_task (this=0x14bb820, task=0x154cb4035b30) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:1632
#16 0x000015554f7c3f45 in Realm::ThreadedTaskScheduler::scheduler_loop (this=0x14bb820) at /users/eslaught/resilience/legion/runtime/realm/tasks.cc:1105
#17 0x000015554f7cb8c0 in Realm::Thread::thread_entry_wrapper<Realm::ThreadedTaskScheduler, &Realm::ThreadedTaskScheduler::scheduler_loop> (obj=0x14bb820)
    at /users/eslaught/resilience/legion/runtime/realm/threads.inl:97
#18 0x000015554f7d92ef in Realm::UserThread::uthread_entry () at /users/eslaught/resilience/legion/runtime/realm/threads.cc:1355
#19 0x000015554d31dbe0 in ?? () from /lib64/libc.so.6
#20 0x0000000000000000 in ?? ()
(gdb) frame 4
#4  0x0000155551f634ce in Legion::Internal::DistributedCollectable::perform_downgrade (this=0x154c9835df80, gc=...) at /users/eslaught/resilience/legion/runtime/legion/garbage_collection.cc:847
847	      assert(((current_state == GLOBAL_REF_STATE) &&
(gdb) p current_state
$1 = Legion::Internal::DistributedCollectable::GLOBAL_REF_STATE
(gdb) p downgrade_owner
$2 = 1
(gdb) p local_space
$3 = 0
(gdb) p/x this->did
$4 = 0xe00000000000270

I've got this interactive job for another 7 minutes if there is anything else.

I lost the interactive job, but I know how to attach a gdb session to rank 0 (and only rank 0) now. If there's something else it would be useful to test, let me know.

I was able to reproduce this on Sapling.
Processes:
Process 4027327 on node g0003.stanford.edu is frozen!
Process 4027332 on node g0003.stanford.edu is frozen!

If you want to run it yourself:
srun -n 1 -N 1 -c 40 -p gpu --exclusive --pty bash --login
cd /scratch2/eslaught/resilience2/circuit.run2_debug_gc
mpirun -n 16 -oversubscribe -bind-to none -x REALM_SYNTHETIC_CORE_MAP= -x LD_LIBRARY_PATH=$PWD -x REALM_FREEZE_ON_ERROR=1 ../set_cuda_visible_devices.sh ./circuit.checkpoint -npp 500 -wpp 2000 -l 300 -p $(( 16 * 10 )) -pps 10 -prune 30 -hl:sched 1024 -ll:gpu 1 -ll:io 1 -ll:util 1 -ll:bgwork 1 -ll:csize 1500 -ll:fsize 1500 -ll:zsize 204 -ll:rsize 512 -ll:gsize 0 -lg:eager_alloc_percentage 10 -lg:no_tracing -checkpoint:auto_steps 300

If you want to rebuild:
srun -n 1 -N 1 -c 40 -p gpu --exclusive --pty bash --login
cd /scratch2/eslaught/resilience2
./experiment/setup.sh
./experiment/build_circuit.sh circuit.run3_debug_gc

Pull and try again. This was another bug introduced by the optimizations we had to add.

Confirmed on Sapling, will try Piz Daint next.

Confirmed on up to 128 nodes on Piz Daint, in debug mode.
I'll do the release mode runs next, but I'm assuming they'll go fine, so closing.
Thanks!


Dockerize E-commerce Flask App with Gunicorn

Added a Dockerfile to containerize the Flask e-commerce application.
Utilized the lightweight python:3.8-slim base image.
Configured Gunicorn as the WSGI server for production deployment.
Updated the README with instructions for building and running the Docker container.

Added Dockerfile to containerize the Flask e-commerce application.
Configured Gunicorn as the WSGI server for production use.
Updated the README with detailed instructions for building and running the Docker container.


Repository name

Why is the repository named ConditionalSwiftUi and not ConditionalSwiftUI? Although it may seem like a small thing, it's still better to keep the naming convention consistent, especially if the original name is SwiftUI.

Lol, it was a typo and I didn't even notice it, thank you for your feedback!


Add lazy checkpoint loading for FSDP full-state checkpoints

What does this PR do?
Addresses (2) in https://github.com/Lightning-AI/lightning/issues/18008#issuecomment-1627177014
Closes #18138

Before submitting

Was this discussed/agreed via a GitHub issue? (not for typos and docs)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure your PR does only one thing, instead of bundling different changes together?
Did you make sure to update the documentation with your changes? (if necessary)
Did you write any new necessary tests? (not for typos and docs)
[ ] Did you verify new and existing tests pass locally with your changes?
Did you list all the breaking changes introduced by this pull request?
Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

Reviewer checklist

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified

cc @borda @justusschock @awaelchli @carmocca

Have you thought about other places in the codebase where we could lazy load?

It looks like it is difficult to integrate it into the rest of the code base. Several things are standing in the way that require us to brainstorm on design decisions. Here are some raw notes from my notebook:

Lazy tensors can't be loaded by an optimizer, because the optimizer creates a deepcopy, causing pickling issues.
Lazy load bypasses all the torch.load logic, which means for example it doesn't support map_location.
Loading from filsystems via fsspec is not supported
It is hard to integrate lazy load with the existing IO plugin structure, since it needs to be injected at the lowest level where the file gets read.
Tensors remain lazy after loading (e.g. on_load_checkpoint hook), the user can't access the weights unless he materializes them manually.

Happy to open an issue about this for further discussion!

We can now import our utility from lit-gpt

There might be slight differences between the version here and in lit-gpt. I need to double check, there was something about quantization.


Darwin Core data transformation

Transform data to be Darwin Core compliant. In order to publish the unpublished data a short communication with the contributors is necessary.
https://dwc.tdwg.org/terms/

This is the id of NHMC in gbif
the data in supplementary now have the DwC terms as column names.


List of working wireguard servers

Is there a list of working PIA servers for wireguard. There are 100s of servers and I don't want to go through one by one to find out which one works.
Is there a way of knowing? I had switzerland working for couple of hours and now thats not working either.
TIA

The list gets updated in real time. If a server is part of the list, it works.
If the server you are connected to crashes for whatever reason, get the list again and connect to a new server. The apps get the list every 10 minutes and cache it. You can implement something similar if you want to be sure you always have servers.

What I meant was not every conf generated works first time. I may have to try 2/3 times cycling servers to get a working config file. If this is expected behaviour part of crash, fair enough.


Added the javascript solution to the problem

You also have two commits, it's fine for development but in order to merge this pull request you should have just one commit. You need to squash them when the code is ready.


Proxy Protocol Port not used to determine Access Scheme

From @felixbuenemann on March 2, 2017 18:11
If deis router is running with PROXY protocol enabled the value of $proxy_protocol_port is not regarded when determining the $access_scheme which ends up in the X-Forwarded-Proto header sent to backends.
This matters if SSL is terminated on a load balancer in front of the deis router, which would then send on requests to the router's http port, but indicate in the PROXY protocol header, that the destination port was 443.
The deis router could find this value from the nginx var $proxy_protocol_port that is supported since nginx 1.11.0.
Copied from original issue: deis/router#324

From @felixbuenemann on March 2, 2017 18:12
For those not familiar with PROXY protocol, the header includes the clients IP address, the clients source port and the clients destination port, which would be the port on the load balancer terminating SSL.

From @felixbuenemann on March 2, 2017 18:26
I think the following would work (untested):
{{ if $routerConfig.UseProxyProtocol -}}
map $proxy_protocol_port $proxy_protocol_scheme {
  default $scheme;
  "80" "http";
  "443" "https";
}
{{- end }}

map $http_x_forwarded_proto $tmp_access_scheme {
  {{ if $routerConfig.UseProxyProtocol -}}
  default $proxy_protocol_scheme;# if X-Forwarded-Proto header is empty, $tmp_access_scheme will be the proxy protocol used
  {{- else -}}
  default $scheme;               # if X-Forwarded-Proto header is empty, $tmp_access_scheme will be the actual protocol used
  {{- end }}
  "~^(.*, ?)?http$" "http";      # account for the possibility of a comma-delimited X-Forwarded-Proto header value
  "~^(.*, ?)?https$" "https";    # account for the possibility of a comma-delimited X-Forwarded-Proto header value
  "~^(.*, ?)?ws$" "ws";      # account for the possibility of a comma-delimited X-Forwarded-Proto header value
  "~^(.*, ?)?wss$" "wss";    # account for the possibility of a comma-delimited X-Forwarded-Proto header value
}

From @krancour on March 3, 2017 0:46
Before I go too deep into this issue... if you're terminating SSL at the load balancer, your load balancer already speaks HTTP/S. An option, therefore, would be to configure it to set the X-Forwarded-For HTTP header instead... if on AWS or GKE, this is actually automatic. Just disable PROXY proto on the router end and you're back in business with real client IPs.

From @felixbuenemann on March 3, 2017 10:50
Btw. I know that terminating SSL at the ELB has drawbacks like loosing support for HTTP/2 (because the ELB does not negotiate HTTP/2 over ALPN), but many people like to use it to be able to use Amazon Certificate Manager.

From @felixbuenemann on March 3, 2017 10:47
No, if you're terminating SSL at the load balancer it still speaks TCP. If you are terminating HTTPS it speaks HTTP, but than for example on ELB WebSockets won't work.

From @boivie-at-sony on August 11, 2017 10:12
I stumbled upon this issue when googling a solution to the very same problem you're having.
After having implemented it, I realized that $proxy_protocol_port is actually the client's port, and not the destination port. The destination port is not available as a variables.
https://trac.nginx.org/nginx/ticket/1206 is a feature request to expose the destination port.

It seems in newer versions of nginx-ingress (using newer versions of nginx/openresty) they started to use that destination port feature
https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/template/nginx.tmpl#L1100


Display content_override in slot admin list view.

Fix typo and use content_override field (instead of content) for a
Slot's list_display.

Thanks @martey! @paltman Can this be merged?


Change Indicator Bar to Red When Proposal is Failing Quorum

Feature
Proposal Card and Proposal Details
App

[x] Admin
[ ] Summon
[ ] Hub
[ ] Toolbox

Expected Behavior
When a proposal is failing the bar should be red
Actual Behavior
When a proposal is failing due to quorum requirements the bar is green
Steps to Reproduce

Create proposal
Vote on proposal
View failing proposal that has not met quorum

Browser
Brave
Screenshots and Context

The red in the bar is meant to represent no votes.
If we change the color to red, then we muddle the original meaning of red.
Perhaps the writing needs to change to represent a proposal failing because it's not meeting quorum vs. because of being voted down. Needs more design thinking before we touch the code, imo.

Gotcha. Closing out as working as intended


LightCurve.fold: rename transit_midpoint into t0

This PR proposes to change transit_midpoint into t0 as the recommended way to specify the reference time in the LightCurve.fold() method, i.e.
lc.fold(period=2.34, transit_midpoint=3456.7)

becomes
lc.fold(period=2.34, t0=3456.7)

The reason is that transit_midpoint is too specific to exoplanets (cf. #384).  However this PR retains transit_midpoint as a valid synonym for t0, i.e. we won't break people's code (for now).

t0 is not very descriptive, what's wrong with time_midpoint?

Isn't time_midpoint exoplanet-specific?  I'm thinking an RR Lyra star does not have a mid-point but a transit does.

Codecov Report

Merging #419 into master will increase coverage by <.01%.
The diff coverage is 90%.

@@            Coverage Diff             @@
##           master     #419      +/-   ##
==========================================
+ Coverage   88.53%   88.54%   +<.01%
==========================================
  Files          28       28
  Lines        4816     4820       +4
==========================================
+ Hits         4264     4268       +4
  Misses        552      552

Impacted Files
Coverage Δ

lightkurve/tests/test_lightcurve.py
98.66% <100%> (ø)
:arrow_up:

lightkurve/lightcurve.py
93.44% <85.71%> (+0.02%)
:arrow_up:

Continue to review full report at Codecov.

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

I'm clearly a little biased towards planets and binaries (I said it) so I'm happy to go with your decision on this one.


Improve type annotation of Site.addEventListener

For specific event types certain event properties are always present. Previously all event types were represented by a single interface that simply contained all possible event properties as optional.  This commit improves the type safety of Site.addEventListener via a generic (which also results in better autocompletion).

Nice! Thank you!


Workspace improvements

I'm running awesomewm currently and been playing around with Hyprland to probably switch to. Here are some workspace suggestions, which I think might be useful to others too.
1. Show empty workspaces (waybar)
It would be nice to have empty workspaces shown in waybar too.
2. Styling for active workspace even when the monitor has not the focus (waybar)
As per the waybar documentation, #workspaces button.active (hyprland) sets the styling for the active workspace. However, this styling is only applied on the focused monitor, but not on other monitors. Do open/active workspaces of non-focused monitors have a class assigned to it?
3. Workspaces per output, aka tags, aka groups
This one leads to a lot of confusion, since not everyone can explain what the actual demand is. But I'll try me best. In short, it's basically how awesomewm handles it.
Let's say I have 4 monitors (DP-1... DP-4) and n workspaces  (A, B, C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q).
Now, I'd expect each output to show all 3 workspaces (A, B, C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q). When I configure bind=SUPER,7,workspace,7 it should switch to G, but only on the currently focused monitor.
iirc, there's some mentioning about workspace groups in the wayland specs, but I'm not sure whether it covers this usecase or not.
3.1 Partial workaround
For anyone interested, I was able to find a workaround for this specific usecase.

hyprland.conf
This will bind workspace numbers 11-13 to DP-1, 21-23, to DP-2, ... etc. The numbers are apart by 10, so one can use the numbers 1-0 to switch to the workspaces
wsbind=11,DP-1
wsbind=12,DP-1
wsbind=13,DP-1

wsbind=21,DP-2
wsbind=22,DP-2
wsbind=23,DP-2

wsbind=31,HDMI-A-1
wsbind=32,HDMI-A-1
wsbind=33,HDMI-A-1

wsbind=41,DP-3
wsbind=42,DP-3
wsbind=43,DP-3

workspace=DP-1,11
workspace=DP-2,21
workspace=HDMI-A-1,31
workspace=DP-3,41

bind=SUPER,2,exec,~/.local/bin/setworkspace.sh 2

setworkspace.sh
#!/bin/bash
from=$(hyprctl -j monitors | jq -r '.[] | select(."focused"==true).activeWorkspace.id') # ex: 21
mod=$(( $from%10)) # ex: 1
to=$(($from - $mod + $1)) # ex 21-1+2
hyprctl dispatch workspace $to

.config/waybar/config
This will assign a custom icon/text to the specific workspace numbers
"wlr/workspaces": {
        "format": "{icon}",
        "format-icons": {
            "1": "A ",
        "11": "A ",
        "21": "A ",
        "31": "A ",
        "41": "A ",
        "2": "B ",
        "12": "B ",
        "22": "B ",
        "32": "B ",
        "42": "B ",
        "3": "C ",
        "13": "C ",
        "23": "C ",
        "33": "C ",
        "43": "C ",
            "focused": "",
            "default": ""
        },
        "active-only": false
    },

4. m+1 seems not to work
bind=SUPER_SHIFT,l,workspace,m+1 I'd expect it to switch to the next workspace on the current monitor, but it does not. Am I misunderstanding something?

that's up to waybar. It's missing the functionality atm on wlr/workspaces, and there is an open issue.

not possible as per how the protocol works.

Not planned as it's possible with a simple script, as you have managed to do.

There are also programs written in go and rust iirc to do the same if I'm not mistaken called "hyprsome".

weird, I'll check.

works for me. Remember it only switches to open workspaces.

aah ok... thx!


compress barcode.txt

this is going to be sizeable. so should compress. should look at other umi demux outputs to see what can be done to them (delete, compress, etc).

note that ExtractIlluminaBarcodes has COMPRESS_OUTPUTS (switch to true) option so that's an easy modification

done


When last message in a chat is a group name change, the last message getter fails and the chat goes to the bottom

@tneotia Did you fix this? I know you were messing with the group event stuff


EVerifier

EVerifier contract and CLI tools.

@peekpi can you move the common contracts to lib? for example: RLPReader, RLPEncode, etc.


[Edit Profile] Wrong alignment "EDIT PROFILE" title

Environment: Asus ROG Phone 2
Reproducible: always
Build found: 1.0.99
Preconditions
Run Car application
Steps to reproduce

Go to 'My Profile'
Click on 'Settings'
Click on the big button with name\surname
Pay attention to scrolling menu

Actual result
"Edit Profile" label has a wrong alignment
Expected result
All elements have a right alignment
User story and test case links
https://github.com/ita-social-projects/Car-Back-End/issues/32
Labels to be added
"Bug" ("bug"), Priority ("pri: ")

Not a bug


Element's margin and padding

Do you plan to support them?

You of course.
We are in reflexion about Layout : layout building API is not simple (this is normal because there are a lot of things that we can do). To propose a good user interface we need to take our time, we plane to start with your ProportionalLayout and also FlowLayout.
We take a look at margin and padding, and we found that these properties don't works without Layout. Do you confirm ?

Please check https://github.com/pharo-graphics/Bloc/issues/272 maybe it answers!

https://github.com/OpenSmock/Pyramid/pull/55


⚠ Bofrost.at has degraded performance

In d5b33dc, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1124 ms

Resolved: Bofrost.at performance has improved in 1342b52 after 7 minutes.


iOS requires special NativeModule for creation of NativeEventEmitter

Description
iOS requires a special NativeModule inheriting from RCTEventEmitter (or implementing similar methods) when creating a NativeEventEmitter for use in JS. Android does not. The particular problem we have is that this subclass is required to override -(NSArray *)supportedEvents, meaning all events that the module can handle must be specified by the Native code.
This hampers JS development speed, and as far as I can tell, this function is used for no other purpose than to throw errors. supportedEvents is never called or checked other than as part of conditional to throw an error.
Please see the following functions:
RCTEventEmitter.m - sendEventWithName:body:
RCTEventEmitter.m - addListener:
RCTEventEmitter.m - removeListeners:
RCTEventEmitter.m - initialize
Solution
I believe this supportedEvents override requirement can be entirely removed.
Additional Information
I'll be overriding RCTEventEmitter completely to remove the requirement for these checks.

React Native version: 0.32+
Platform: iOS
Operating System: MacOS

We're cutting down on the number of outstanding issues, in order to allow us to focus. I'm closing this issue because it has been open for over 60 days with no activity. If you think it should still be opened let us know why. PRs are always welcome.


Performance Improvement on Standard Transformer

What this PR does / why we need it:

This PR tries to reduce the goroutine leaks when there are issues on Feast retrieval by adding context cancellation so it could terminate faster and the goroutine can be exited and garbage collected.
This PR also adds automaxprocs
Does this PR introduce a user-facing change?:

NONE

Checklist

[x] Added unit test, integration, and/or e2e tests
[ ] Tested locally
[ ] Updated documentation
[ ] Update Swagger spec if the PR introduce API changes
[ ] Regenerated Golang and Python client if the PR introduce API changes

Thanks @ariefrahmansyah . Can you test in dev to confirm that the goroutine leaks is not happening anymore? Additionally, is it true that automaxprocs help?


Does cardIO extract name on the card and Account number/card number?

Is there any possibility to extract particular details from the card like name on the card and account number which is at the bottom of the card?

Hi @braebot has card.io's position on this changed? We'd be very interested in being able to capture a customer's account number and sort [routing] code to pre-populate a direct debit mandate in the UK (I think this is like an ACH payment in the US). Most UK debit cards have this information printed on the front below the 16 digit card number. Thank you,


[e2e]: go tag main config-ldflags-assets-prerelease-tag slsa3

Repo: https://github.com/slsa-framework/example-package/tree/v34.0.103
Run: https://github.com/slsa-framework/example-package/actions/runs/5329490854
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.tag.main.config-ldflags-assets-prerelease-tag.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.tag.main.config-ldflags-assets-prerelease-tag.slsa3.yml
Trigger: push
Branch: v34.0.103
Date: Wed Jun 21 03:26:35 UTC 2023

Repo: https://github.com/slsa-framework/example-package/tree/v34.0.104
Run: https://github.com/slsa-framework/example-package/actions/runs/5341028534
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.tag.main.config-ldflags-assets-prerelease-tag.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.tag.main.config-ldflags-assets-prerelease-tag.slsa3.yml
Trigger: push
Branch: v34.0.104
Date: Thu Jun 22 02:52:22 UTC 2023
Tests are passing now. Closing this issue.


Sections

Copied with permission from https://package.elm-lang.org/packages/lue-bird/elm-review-links-point-to-existing-package-members/latest/
I took the code from there and refactored more to my style, while adding some performance optimizations.
I believe it still misses a lot of issues, like links to sections defined in the Markdown documentation, and could be a bit smarter around what is being exposed and what isn't. I think for instance that exposed elements should not link to hidden elements, but that hidden elements can link to anything.
Also, some tests were too smart and hid the fact that the error message was not great. I added TODOs there for now.

Closing this. I decided to write the rule from scratch instead.