Live package updates don't work for node.js 18

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

App Id
NEW_APP
AWS Region
us-west-2
Amplify Hosting feature
Build settings
Frontend framework
Next.js
Next.js version
12
Next.js router
App Router
Describe the bug
Using node.js 18 via Live package updates,  it doesn't work well. Because v18 is conflict for AL2 libraries.
I need to use a custom image.
Expected behavior
Using node.js 18 via Live package updates, dependency libraries are also updated.
Or transparently change the image to build (as in SageMaker SDK)
Reproduction steps

Set node18 in the live package updates settings.

Build Settings
No response
Log output

2023-06-24T11:39:10.377Z [INFO]: # Executing command: npx<EMAIL_ADDRESS>prune --scope=studio
2023-06-24T11:39:10.378Z [WARNING]: node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
                                    node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
2023-06-24T11:39:10.379Z [ERROR]: !!! Build failed

Additional information
No response

Hi @mats16 👋 , thanks for raising this!
Currently, you can leverage the Node 18 support for your frontend builds using either of the following methods:

Use nvm use 18 in the buildSpec i.e. amplify.yml file
Use node version 18.13.0 in live package updates

Unfortunately, you will not be able to use any other minor/patch version of Node 18 with live package updates because of a limitation with Amazon Linux 2 where Node 18 needs to be built from source. If you need any other minor/patch version of Node 18, please install it from source in the buildSpec:
nvm install -s 18.x.x

Please note though that this will increase your build time.


runId and pipelineId parameters are not clear

runId parameter - it is not clear from the page where this parameter comes from and how to get its value.
For example I got an error: RunId is not valid - this page does not help to solve it.
The example is completely meaningless.. It is just random number.
For example

here at least there is some idea where definition somes from.
But for the pipelineId - not clear where it comes from. Maybe some example where to take current pipeline id would be good to have. Or any other way to obtain pipelineId.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 6d5753b5-d4e7-6696-0230-3595f632ba0e
Version Independent ID: 6d5753b5-d4e7-6696-0230-3595f632ba0e
Content: DownloadPipelineArtifact@2 - Download Pipeline Artifacts v2 task
Content Source: task-reference/download-pipeline-artifact-v2.md
Service: azure-devops-pipelines
Sub-service: azure-devops-pipelines-tasks
GitHub Login: @steved0x
Microsoft Alias: sdanie

@curious-odd-man -- thank you for your feedback.  Please consider these resources:

Azure DevOps Services
Azure DevOps on Stack Overflow

@steved0x -- please look into this issue.

 runId parameter - it is not clear from the page where this parameter comes from and how to get its value. For example I got an error: RunId is not valid - this page does not help to solve it.
The example is completely meaningless.. It is just random number. For example  here at least there is some idea where definition somes from. But for the pipelineId - not clear where it comes from. Maybe some example where to take current pipeline id would be good to have. Or any other way to obtain pipelineId.

The Build task input (with YAML name of either pipelineID, runID, or buildID) is used when you have specified that you want to get the artifact from a specific run of a pipeline.
When that pipeline was running, its buildID is available to the steps within that pipeline as the system.definitionId variable.
After the pipeline has completed, you can see that number in the URL if you were to browse to that pipeline in the Azure DevOps portal.

If your workflow requires you to get the artifact from a specific pipeline run/build, you would capture this number and provide it to the buildID parameter in the task.
I'll add some updates to the article to clarify this.


Model Stops Generating Prematurely with llamafactory-cli chat

I recently fine-tuned a LLaMA model and successfully exported it as a new model. However, when I attempt to chat with the model using the llamafactory-cli chat inference.yaml command, the generated responses consistently stop prematurely, even though I am certain there should be more information in the output.
I suspect this behavior is caused by a small max_length setting. I tried adding a max_length parameter to the YAML configuration file, but it didn’t resolve the issue. After searching through the documentation, I couldn’t find where or how to properly set this parameter.
Here is my YAML configuration file:
### examples/inference/llama3_lora_sft.yaml
model_name_or_path: /data/llama-mesh
adapter_name_or_path: /data/llama-Factory/test
template: default
finetuning_type: lora
infer_backend: huggingface #choices： [huggingface, vllm]
max_length: 8000

Could you please help me identify the correct way to configure the max_length parameter or any other settings that might be causing this issue?
Thank you!

I think the reason of short response is caused by the overfitting. Try cleaning your dataset and tuning the hyper-parameters.

Thank you for your quick response! However, I don’t think the issue is caused by overfitting. When I use the following script to run the model, it consistently generates a complete answer:
from transformers import pipeline
messages = [
    {"role": "user", "content": "Create a 3D OBJ file and MANO parameters for the hand interacting with this object using the following description: A hand is holding a blue cup."},
]
from transformers import pipeline
pipe = pipeline("text-generation", model="/data/llama-mesh_ft", device_map="auto")
print(pipe(messages,max_length=8000))

As shown in the first figure, the generated message includes both the “v” (vertices) and “f” (faces) parts, which are expected in an OBJ file.

However, when I use llamafactory-cli chat to generate the OBJ file, the output only contains a few “v” parts, with no “f” parts, as seen in the second figure:

Could it be that the llamafactory-cli chat does not have a max_length parameter setting? I’m still new to LlamaFactory, so I might have missed something.

Check the template settings and read
https://github.com/hiyouga/LLaMA-Factory/issues/4614


Add tracking attributes to button component

Part of https://trello.com/c/3VwTvDrj/256-use-button-component-in-frontend-formats
Updates the button component to accept extra_attrs, primarily to support data attributes for tracking eg. https://github.com/alphagov/frontend/blob/master/app/views/transaction/show.html.erb#L22
This should allow us to use the component for Frontend app buttons.
I've refactored this to use Rails link_to and button_tag helpers as it seemed less noisy.

Nice refactor, one minor comment about how the data attrs are passed in.

@fofr updated to use the same pattern you've referenced, also added tests for links and buttons. Will update https://github.com/alphagov/frontend/pull/1402


BUG: Register form allignment

Register form allignment:

Please assign to me under gssoc-ext and hacktoberfest-accepted with the level-2.

can i take this issue?


⚠ PrivateHD has degraded performance

In 3b48b9f, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1903 ms

Resolved: PrivateHD performance has improved in 0f9399a.


Auto-correct doesn't work

Using the --auto-correct flag frequently doesn't work with the daemon. Not only does it not auto-correct, it doesn't even detect offenses. The behavior calling rubocop directly is correct.
I've also noticed that it doesn't actually run anything on first exec if the server isn't running ... it just prints that the server isn't running, but silently starts the server in the background. The next run works.
Using this extremely simple file, test.rb
print({b: :c})

Here are my results:
$ rubocop-daemon exec test.rb
rubocop-daemon: server is not running.

$ rubocop-daemon exec test.rb
Inspecting 1 file
C

Offenses:

test.rb:1:7: C: Layout/SpaceInsideHashLiteralBraces: Space inside { missing. (https://rubystyle.guide#spaces-braces)
print({b: :c})

$ rubocop-daemon exec test.rb -- --auto-correct
Inspecting 1 file
.

1 file inspected, no offenses detected

$ rubocop test.rb --auto-correct
Inspecting 1 file
C

Offenses:

test.rb:1:7: C: [Corrected] Layout/SpaceInsideHashLiteralBraces: Space inside { missing. (https://rubystyle.guide#spaces-braces)
print({b: :c})
      ^
test.rb:1:13: C: [Corrected] Layout/SpaceInsideHashLiteralBraces: Space inside } missing. (https://rubystyle.guide#spaces-braces)
print({b: :c})
            ^

1 file inspected, 2 offenses detected, 2 offenses corrected

rubocop-daemon: 0.3.2
rubocop: 0.9.0

It's related to rubocop change on --auto-correct flag since 0.9.0 which acts as --safe-auto-correct by default.
If you want to get previous behavior, you should use --auto-correct-all flag instead.

@bobmaerten thanks for the reply, but I don't understand why that would explain the difference in behavior between running with --auto-correct via rubocop-daemon and via rubocop directly


Change 'Funds Waiting' to 'Funds in Escrow'

A bit more clear as to what is happening with purchases and sales.

PR for this is #620

Closed in #620


Different PM sizes DataType

Hello MBjoern!
As you know I'm working with the SPS30 now, and I was wondering why there is no DataType for different PM sizes. What I do now is I use the T_RH_VOC_PM to test it with MyAmbience app.
As the SPS30 can detect different PM sizes, I think it would be a good thing to create a  PM1, PM2.5, PM4 and PM10 DataType (even the 2 last are calculated from PM2.5 values)

Hi Nkae
Thank you for reaching out to me, and I'm glad that you've found a workaround in the mean time.
Hmmm, good point, I'll open up a ticket to tackle this enhancement at some point. No promises, but i like the idea.
Best regards
Björn

The feature will be added with the 0.14.0 release within the next few days.


TST: modernize test_new.py and test_mkdir.py and add special character test cases to them

This modernizes the tests for onyo mkdir and onyo new.
Since test_mkdir.py was fairly old, I now introduce fixtures, doc-strings and other modernizations to it.
I use in test_new.py now @pytest.mark.repo_dirs(*directories), instead of listing all directories to be used in the test case separately.
The PR #278 did introduce a BF that stops onyo from breaking when special characters are used in asset or directory names, so that onyo mkdir and onyo new now both have additional tests for special characters.

Codecov Report
Base: 90.66% // Head: 90.53% // Decreases project coverage by -0.13% :warning:

Coverage data is based on head (896cf43) compared to base (815698b).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #280      +/-   ##
==========================================
- Coverage   90.66%   90.53%   -0.13%
==========================================
  Files          21       21
  Lines        1457     1448       -9
  Branches      312      309       -3
==========================================
- Hits         1321     1311      -10
+ Misses        105      104       -1
- Partials       31       33       +2

Impacted Files
Coverage Δ

onyo/commands/edit.py
94.02% <0.00%> (-1.56%)
:arrow_down:

onyo/lib/onyo.py
91.90% <0.00%> (-0.11%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

LGTM!


add default windows user_data w/ base64

Fix for chef/chef-provisioning-aws#384

@tyler-ball I cleaned up the commit and re-based on master, we should be good here.

For reference this reverts https://github.com/chef/chef-provisioning-aws/commit/ba0ee0e53780bc78c5cef0c08564946eb339e405

Thanks @hh!


Some questions about reported metrics

Hello, thank you for your work!
I have some clarification questions about your reported metrics:

In case of out-of-distribution evaluations, you trained several models with different subsets and reported "their weighted average performance." But which weights did you use or how can I calculate them?
In case of Wilder Testsets evaluation, did you use your general classifier which were trained on Arbitrary-domains & Arbitrary-models data(Testbed 4)?

Thanks!

Hi,

"weighted average performance" means weighting the performance by the size of the testset.
Yes, the classifier was trained on "Arbitrary-domains & Arbitrary-models data", with the decision boundary adjusted.

Thank you for your interest in our work. Please feel free to reach out with any additional questions.

Thanks for the answer!
One more clarification question about weighting. Am I calculating the weights correctly?
sizes = np.array([[7420, 5386, 9320, 1838, 13284, 2884, 16024]])
weights = sizes / np.sum(sizes)

Yes, your calculation of the weights is correct.


Implement Read/Write CHUID

Ready to merge

Still plan to take this, but took some extra time off for the long weekend. Will look again when I'm back :)

any way to get this reviewed/merged to close it ?

Any way to get this reviewed/merged ? Thanks


the

Bug Information
Version Number of Plugin: 2.3.0
Device Tested On: XAMARIN PREVIEWER
reproduce:

Start Xamarin PREVIEWER
Add this code to any page
View in PREVIEWER - CRASH..
protected override void OnAppearing()
{
base.OnAppearing();
if (CrossConnectivity.Current.IsConnected)
ConnectionBad_img.IsVisible = false;

mono.android.DesignerException: System.NullReferenceException: Object reference not set to an instance of an object
Caused by: android.runtime.JavaProxyThrowable: System.NullReferenceException: Object reference not set to an instance of an object  at Plugin.Connectivity.ConnectivityChangeBroadcastReceiver.get_ConnectivityManager () [0x0001f] in

I assume you mean the form previewer? Who knows though?
If so that is fixed in 3.0

Yes forms previewer. Same issue here.
Fixed in version 3 of what, Forms or the plugin?

Plugin


docs: Update docs format to docusaurus

Update docs format to docusaurus
Part of the migration of the website to docusaurus
How to use
There will be an instruction how to preview latest doc in the website repository
Testing done
Preview docs on the new website

I created a new-docs branch and merged it there. The idea is to consolidate all docs changes in a branch before merging them to main.


move group: fixing up sidebar and rewording

live

@davetcoleman changes made and pushed to tutorials.picknik.ai


Main thread deadlock

NSUserDefaults-synchronize is deprecated and should not be used anymore. In SPBucket-setLastChangeSignature: it's called and has created deadlock on the main thread before. Please update your library so this doesn't happen.

Hello there @michaelmff,
NSUserDefaults will be deprecated in iOS 12, but it's still valid.
Plus: the deprecation compiler warnings only show up if the Deployment Target iOS Version aims at a version in which the method is actually deprecated. Anything below is good. Meaning: it should be safe to leave as is, for now, and until the compiler actually brings that up.
Regarding your deadlock, would it be possible to attach extra details?

Stack Trace of all of the active threads
Repro Steps
And a sample project would be terrific.

Thanks in advance!

Closing for now. Feel free to reopen with extra details / repro steps (or!) sample code.
Thanks!


gitignore for JENKINS_HOME Jenkins settings

This allows an admin to use git to keep a backup of Jenkins settings without tracking binary artifacts.  Useful for preserving settings during plugin upgrades.
Note: secret.key is purposefully not tracked by git.  This should be backed up separately because configs may contain secrets which were encrypted using the secret.key.
See also:

http://jenkins-ci.org/
https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins

This has been working well for me. I've been using it to version control configs for different slaves

Awesome :)

Is there any interest in merging this?

@shiftkey mind taking a look at this again?

@samrocketman What about the config-history folder? Should that be ignored by default?
I think anything that is either a binary or contains credentials should be ignore too (next build numbers are optional, which I like)
Is there anything else like config-history that could be useful?

@Stargator
config-history folder is added by a Jenkins plugin so should not be included by default.  I don’t typically see it installed though I know people use it.  Should be straight forward to add an entry after getting this one.
binaries are already ignored.
Credentials are strongly encrypted so as long as you back up secret* separately from the JENKINS_HOME config.  I’m confident storing credentials.xml will be fine.  Jenkins stores credentials in many places beyond credentials.xml so it is not possible to separate credentials from configuration.  I’m very familiar with this aspect because I independently discovered Jenkins storing credentials with a weak encryption algorithm in older releases of Jenkins (which has been updated Jenkins 2.0 and beyond).
Note: the default gitignore does not track the secret files which are used in conjunction with config.xml to decrypt Jenkins credentials in XML configuration.

@Stargator I just realized this config does not omit secret* even though my personal config does.  I haven’t looked at this in a very long time so will update it.

@Stargator correction I was confused.  It already does not track secret*.

@samrocketman @Stargator @stephengroat thanks for working through the details!

Thanks for your time @shiftkey !


Paremetrize HOST_PRIMARY_RESOLV_CONF_ENTRY

Allow passing HOST_PRIMARY_RESOLV_CONF_ENTRY value for standalone
target. This is useful for cases where the dns ip is not the same as the gateway.

recheck

recheck

/override rdoproject.org/github-check


[FEATURE] Enhancing User Experience and Visual Appeal of Resume Builder Website

Description
We propose the implementation of two key features to elevate the user experience and aesthetics of our resume builder website: the addition of a footer and a comprehensive layout redesign. These enhancements aim to improve navigation, provide essential information, and create a visually engaging experience for our users.
Screenshots
No response
Additional information
Footer:
By incorporating a footer into our website, we will address the need for easy access to important information and enhance user engagement. The footer will be strategically placed at the bottom of each page, providing a range of valuable features, such as: Contact Information, Navigation Links, About and so on.
Layout Redesign:
To enhance the visual appeal and usability of our website, we propose a comprehensive layout redesign. Key aspects of this redesign will include:Clear Navigation, Visual Hierarchy, Simplified Forms, Responsive Design, Consistent Branding.

Please assign this issue to me under GSSoC'23.


ADD_TO_CART_BUTTON_BY_SRICHANDANA.html

Completed Add to Cart button as per the issue https://github.com/KwickerHub/WebCraftifyAI/issues/186  requirement.

@NtemKenyor, Please review this PR and merge it.  The button is as below.

Completed try it free button as per the issue https://github.com/KwickerHub/WebCraftifyAI/issues/205 requirement.
The button is as below,

Completed Add to cart button as per the design in https://github.com/KwickerHub/WebCraftifyAI/issues/207
The button is as per below,

Completed Home page button as per the design in issue https://github.com/KwickerHub/WebCraftifyAI/issues/204
The button designed is as below,

Heartfelt Thanks for Your Contribution to Our Open Source Project!
            Dear @SriChandana98,

            I trust this message finds you in good health and high spirits. I am reaching out with a heart full of gratitude for your recent contribution to our open source project. Your dedication has not only elevated the functionality of our project but has also exemplified the collaborative spirit that lies at the core of thriving open source communities.

            A heartfelt congratulations are in order for your exceptional work! Your commitment and expertise have played a pivotal role in the success of our project, and we consider ourselves truly fortunate to count you among our community members.

            I must extend my sincere apologies for the delay in responding to your pull request. Your patience and understanding during this time are immensely appreciated. As our project continues to grow, we acknowledge the imperative need to enhance the quality and response time for contributions. To address this, we've kickstarted a call for maintainers and reviewers who can help us uphold the high standards of our project and ensure swift responses to pull requests.

            Your involvement and insights would be invaluable in this initiative. If you, or someone you know, is interested in taking on a more active role in the project, please don't hesitate to reach out. We firmly believe that with a robust team of maintainers and reviewers, we can elevate both the quality of the project and the speed of our responses.

            On an exciting note, I am thrilled to share that we have activated the sponsorship button for our project. This development allows supporters like yourself to contribute to the sustainability and growth of the project. Your ongoing support, whether through code contributions or sponsorship, is genuinely appreciated.

            Once again, congratulations on your outstanding contribution, and thank you for being an indispensable part of our open source community. We eagerly anticipate your continued collaboration and shared success.

            Best regards,

            Ntem Kenyor K.
            Lead
            Kwickerhub


intl and Google crawler

Este doesn't use subdomains. As I remember somewhere in Google bot docs is mentioned that such technique is ok and supported. Este correctly renders HTML lang attribute, but it's not probably enough since what Google bot can do with that? Please discuss.

The solutin for this is the hreflang attribute. It's in the  of the page as a  element. It shows google and other bots that there is an alternate version of the page it's crawling in another language and, AFAIK, the recommended way to do this.
Example
Assuming english is the default language (e.g. nothing is prepended) and we're on the login page, which URL is https://www.este-example.com/login:
<html lang="en">
<head>
  <link rel="alternate" hreflang="pl" href="https://www.este-example.com/pl/login" />
  <link rel="alternate" hreflang="de" href="https://www.este-example.com/de/login" />
</head>
<body>
  <!-- Este application -->
</body>
</html>

Now, on the german version of the site:
<html lang="en">
<head>
  <link rel="alternate" hreflang="pl" href="https://www.este-example.com/pl/login" />
  <link rel="alternate" hreflang="en" href="https://www.este-example.com/login" />
</head>
<body>
  <!-- Este application -->
</body>
</html>

.. you can guess the other versions, for the PL version there is EN and DE, etc.
This way, google and other bots know how many translations there are and which version they currently crawl. Of course, this has to be done on every route with the correct alternative URL. If there's no translated version of a page, there is no  element.
More information: https://support.google.com/webmasters/answer/189077?hl=en

Thank you. Hopefuly someone will send perfect clean PR ;)

@nightgrey Can you send pull request to Este please?

@steida Sure. I'm busy at the moment but I'd be happy to contribute. I'll try to find some time for this and come back to you.

ping @nightgrey

@nightgrey ETA?

@nightgrey So what?

@nightgrey Is possible to use one URL scheme for all languages?

@steida Sorry for taking so long to answer. I'm trying to do this on one of the next weekends. Can you provide an example/what do you mean with "one URL scheme for all languages"?

https://foo.com both for english and french

@steida Good question. You can surely do that and set the language in the local storage or by other means, but.. I mean, I'm not a search engine optimization pro, but I'd say it's better for Google to use distinct URL pre/suffixes, like /en, /fr. The reason I think that is because: imagine Google crawling your webpage and seeing these tags. Now Google tries to crawl another language but can't, because your website only switches the language if you press a button. It effectively can't reach another language with the tags you're giving it.
On the other hand, Google's intelligence always surprises me. I'll investigate a bit.

OK, google bot uses "Language-dependent crawling". We don't need to project language into URL.
https://support.google.com/webmasters/answer/6144055?hl=en


PC-Engine Audio / Extra functions ambiguity

Hi, excellent article, thank you! Knowing just a bit about sound synthesis, one detail caught my eye:
"Moreover, the second channel can act as a Low-frequency oscillator to modulate the first channel, much like FM synthesis."
Using an LFO to modulate the frequency of another oscillator is commonly referred to as vibrato. What usually (always :-) is meant by FM synthesis happens when the modulating signal has a frequency higher than LFO, high enough for the human ear to hear it as a pitch. Commonly referred to as audio rate frequency.
You probably know this, but because of the wording in the article, I don't know if it can actually do FM synthesis or just vibrato? And it would be super cool if it actually could to FM! (Only 2-op, but still very nice :-)
Cheers!

To be honest, back when I read the manual and I saw 'channel A can modulate frequency of channel B' my automatic assumption was 'oh, another FM synth'. I now realise there's a practical distinction between actual FM synth for devising new timbres; and vibrato. So, those paragraphs from the article are worth correcting.
I'll also double check the old pc engine manual I used, they definitely used the term vibrato somewhere.
Thanks!


adds libnlopt-cxx-dev

Starting with eoan, libnlopt-dev has been split into libnlopt-dev (containing the C library) and libnlopt-cxx-dev (containing the C++ library) of the nlopt package.
The split effects Ubuntu and Debian.
This PR now adds the C++ library (for focal+ / buster+).
Ubuntu: https://packages.ubuntu.com/search?keywords=libnlopt-cxx-dev&searchon=names
Debian: https://packages.debian.org/search?searchon=names&keywords=libnlopt-cxx-dev
For convenience, I added the (unaffected) packages for Fedora and Gentoo, which are the same as for the libnlopt-dev package.
I excluded bionic, xenial and stretch, as libnlopt-cxx-dev does not exist there. Onwards, I assume it will be released.
This package split is actually a breaking change for current users of the libnlopt-dev package,  as the nlopt.hpp header which is usually used is not distributed with that package anymore, but with libnlopt-cxx-dev.
For reference, here are the Ubuntu file lists:

Focal / libnlopt-cxx-dev
Focal / libnlopt-dev
Bionic / libnlopt-dev

Thus, one could also change the libnlop-dev rosdep entry to switch use libnlopt-cxx-dev starting from focal / buster. This is under the assumption that as a ROS user you'll usually want the C++ library, and not the C one...
What do you prefer?

This package split is actually a breaking change for current users of the libnlopt-dev package, as the nlopt.hpp header which is usually used is not distributed with that package anymore, but with libnlopt-cxx-dev.

That'a good point.

Thus, one could also change the libnlop-dev rosdep entry to switch use libnlopt-cxx-dev starting from focal / buster.

That's not a bad idea.
However, even if we merge pull in both libraries with the libnlop-dev key, packages authors will still have to adapt their CMakeLists.txt, won't they? If that's true, then the added benefit is small, while making it impossible to pull the core C library only.

However, even if we pull in both libraries with the libnlop-dev key ... while making it impossible to pull the core C library only

libnlopt-cxx-dev depends on libnlopt-dev, so both libraries would be installed. But true, we couldn't pull in only the core C library via rosdep.

packages authors will still have to adapt their CMakeLists.txt, won't they?

I'm not sure. I haven't used the plain C library with CMake, and prior to focal (well, I only tested Ubuntu LTS Releases), nlopt wasn't shipping any proper cmake files anyways, so you'd have to go the PkgConfig way. Now that there are proper cmake files, I think a change to the CMakeLists.txt would make sense whatever way we go.

If that's true, then the added benefit is small

That's totally true. This is why I added it as a separate key. However, I wanted to get your opinions and follow whatever you deem more appropriate. I have no favorite :-)
As a last note, according to https://index.ros.org/d/libnlopt-dev/, this is only used by one package anyways. So I think the effects are small...


Introduce Type-checking for enhanced verifiability.

Problem Description
Right now, no type-checking is used for the code. This makes it harder to validate outcomes of our code, and therefore the reliability of the code.
Desired Outcome
All the code type-checked.
Solution Outline
Go through the code, refactor all the inputs and outputs.

Due to compatibility with Sklearn we'll keep it as is.


url_launcher plugin complains of missing web plugin implementation

This gist prints an error message relating to a missing plugin implementation:
https://dartpad.dev/?id=5d148dd65b73f85d09bfceac78cf4683&null_safety=true
It's possible, given DartPad's unusual mechanism for compiling apps, that the code from the underlying url_launcher_web isn't being properly included with the user's compiled Dart code.

FWIW, our iframe sandboxing will probably keep this from working even when the above issue is fixed, but that's also something we can address.

Yegor showed me that flutter packages get will generate this lib/generated_plugin_registrant.dart file here.
I think all we need to do is change flutter pub get to flutter packages get, in grind.dart.


Update recipe for our standards.

{package} {version} {:snowflake:}
Destination channel: {Snowflake | defaults}
Links

{ticket_number}
Upstream repository
Upstream changelog/diff
Relevant dependency PRs:

...

Explanation of changes:

...

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_44zd2v3ym6/clone` failed. (See above for error)
The following problems have been found:
===== ERRORS =====

clone/recipe/meta.yaml:34: missing_imports_or_run_test_py: Python packages require imports or a python test file in tests.
===== Final Report: =====
1 Error and 0 Warnings were found


[SPARK-49449][SQL][DOCS] Remove string-from-metadata and binary-from-metadata

What changes were proposed in this pull request?
The string-from-metadata and binary-from-metadata types were included in the initial spec, but never implemented for Spark 4.0 due to complexity and lack of a compelling use case. This PR removes them from the spec to align with the implementation. Nothing prevents us from adding these in the future, but Spark 4.0 would presumably not be able to read such a value, so having it in the spec at this point is confusing.
Why are the changes needed?
Clarifies Spark behavior.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
It is a README-only change.
Was this patch authored or co-authored using generative AI tooling?
No.

Merged to master.