Typed Headers?

Work has been progressing on a typed headers system to replace what hyper had prior to v0.12. Some questions arise as to where this stuff should "live".

@ashleygwilliams is owner of the headers crate name, and has agreed to transfering the name if we wish to use it for this.
@carllerche is the owner of the http-headers crate name, and has suggested we could publish there, as the name headers might be too vague.
We could include them directly in http.

It's certainly tempting to be able to use them directly, like let conlen = http::header::ContentLength(450);, and perhaps it should be the eventual goal.
However, I believe the typed headers are less stable than the core HTTP types. The goal of http was to have a stable crate that the ecosystem can use to be "generic" over HTTP implementations. Therefore, breaking changes must be exceptional. I have taken much effort to reduce the exposed surface area in the new crate API, specifically to reduce the need for breaking changes. Still, I would have to have missed something and be stuck with it.
It's been suggested that the current http API could be moved to http-core and re-exported, and have the stability be stronger on http-core than http.

See also #136.

The header implementations are generally useful. I think it would be valuable to provide them as part of http. My preferred plan is to:

Move stable types to http-core.
Release typed headers as http-headers (headers is a bit generic).
Convert http to a facade.

most libraries will only depend on the core types. This strategy is being adopted to allow breaking change iterations while maintaining stability of core types.

+1 to @carllerche's plan. The other thing that I'd like—and this is mostly optional/depends on stability of functionality in the headers crate—is the ability to define custom headers without waiting for additional features in const fn. Building on the discussion in https://github.com/hyperium/headers/issues/29, a compromise that I'd be happy with is a highly unstable, off-by-default feature flag that defines fn name() -> HeaderName for the Header trait until the required functionality lands in rustc. Alternatively, I'd be happy with a similarly unstable feature flag that exposes functionality similar to standard_headers!. Thoughts, @seanmonstar?

See also #174, which included an example (and slightly weird syntax requirement) with lazy_static.

@sfackler the trait was adjusted to have const NAME: &'static HeaderName instead of fn name(), which means types made with lazy_static don't actually fit as a constant, I believe.

Well, it might be useful for me to explain why I care about this feature. Namely—I'd like to have typed versions of the Headers the AWS Lambda Runtime API returns without all sorts of stringly-typed interfaces. Like I said previously, I'd be happy to opt into some sort of unstable interface/feature flag so that our customers can interact with typed values.

I agree, it would be nice to have a way to define custom static headers.
I think we can do this with a macro, but it will require bytes to provide a macro to define a static bytes struct as well.

I think we can do this with a macro, but it will require bytes to provide a macro to define a static bytes struct as well.

I think I have the capacity to tackle this. Would the macro wrap the Bytes::from_static method?

My understanding is that string inspection + panicking if invalid is blocked on https://github.com/rust-lang/rust/issues/49146 and https://github.com/rust-lang/rust/issues/51999, which don't have too much traction at the moment. That seems to be the correct solution to me, but I don't know when to expect it.

So, I tried to create a macro that'd create a header, but I don't think it's possible to do so. Here's the code I wrote:
macro_rules! const_header {
    ($header_name:tt) => {
        &HeaderName::from_static($header_name)
    }
}

struct AWSRequestId(String);

impl Header for AWSRequestId {
    const NAME: &'static HeaderName = const_header!("LAMBDA_RUNTIME_AWS_REQUEST_ID");

    fn decode<'i, I>(values: &mut I) -> Result<Self, HeaderError> where
        Self: Sized,
        I: Iterator<Item=&'i HeaderValue> {
        unimplemented!()
    }

    fn encode<E: Extend<HeaderValue>>(&self, values: &mut E) {
        unimplemented!()
    }
}

...and here's the error message:
error[E0015]: calls in constants are limited to tuple structs and tuple variants
  --> lambda-runtime-server/src/main.rs:12:10
   |
12 |         &HeaderName::from_static($header_name)
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
19 |     const NAME: &'static HeaderName = const_header!("LAMBDA_RUNTIME_AWS_REQUEST_ID");
   |                                       ---------------------------------------------- in this macro invocation
   |
note: a limited form of compile-time function evaluation is available on a nightly compiler via `const fn`
  --> lambda-runtime-server/src/main.rs:12:10
   |
12 |         &HeaderName::from_static($header_name)
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
19 |     const NAME: &'static HeaderName = const_header!("LAMBDA_RUNTIME_AWS_REQUEST_ID");
   |                                       ---------------------------------------------- in this macro invocation

Looking more at the standard_headers macro, it seems to be extremely error-prone and not fit for public consumption. I'll post a PR at the headers repo that changes the const NAME in Header to a fn name(). I know Sean isn't the biggest fan, but I'm not sure how to support customer headers otherwise.

Sorry to revive this thread in a strange way, but I would like to point out a clippy lint when using HeaderName::from_static in order to create a const (instead of a static variable).
The following code:
pub const NAME: HeaderName = HeaderName::from_static("test");

Produces the following warning:

warning: a const item should never be interior mutable

Playground
I could just ignore the issue and use static instead of const, but I think that the lint exposes an interesting fact I would like to discuss.
First of all, the reason behind the lint: there is an AtomicPtr deep down. The dependency chain is:
HeaderName -> Repr<Custom> -> Custom -> ByteStr -> Bytes -> AtomicPtr

Now, the issue itself... It is a non-problem, except for one detail: the fact that potentially we have internal mutability in a header string that obviously is meant to never change is unexpected. Don't get me wrong, I understand the reason behind this: we want to be able to reuse memory when receiving headers (thanks to Bytes) and at the same time it is extremely nice to have just one HeaderName abstraction (instead of HeaderName and ConstHeaderName, for instance). However, following the principle of least surprise, probably you would expect a const HeaderName::from_static() function to not have interior mutability.
Now, what should be done? To be honest, I am not sure. I personally don't see a practical problem with the current approach, which is pretty ergonomic. Maybe we could consider adding a note in the documentation of HeaderName::from_static, suggesting to use a static variable instead of a const to avoid being flooded by clippy warnings.
Do you have better ideas? Do you think that this should be handled in a dedicated issue?
CC @paolobarbolini

Sounds to me like the clippy lint is wrong.

I went through the discussion for the lint, because this was exactly my initial thought. However, after reading the issues related to the implicit copies related to the interior mutability when working with consts, I changed my mind and I think that the clippy lint is right instead.
Let me make a counter-example: if you change from const to static in my simple example, you will notice that you cannot directly use the HEADER_NAME variable anymore, you need to clone it or use a reference (which works because &HeaderName implements IntoHeaderName). We need to agree that the const behaviour makes things much more ergonomic to use, but totally hides copies (which hopefully are optimized away, but I did not check) from the user.

I'd recommend moving this to a different issue, so that this one can stay on "typed headers".


"1 days ago" in domain vuln table

In the vulnerability table on the domain details page, it says "1 days ago" when it should just say "1 day ago" instead.

@epicfaace Please assign this to me

PR created for this:
https://github.com/cisagov/crossfeed/pull/1062


Support Java Modules (jpms)

Which version and edition of Flyway are you using?
7.9.1
If this is not the latest version, can you reproduce the issue with the latest one as well? (Many bugs are fixed in newer releases and upgrading will often resolve the issue)
N/A
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
All
Which database are you using? (Type & version)
N/A
Which operating system are you using?
N/A
What did you do? (Please include the content causing the issue, any relevant configuration settings, the SQL statement(s) that failed (if any), and the command you ran)
I want to use Flyway in a Java module application having migrations files located in several different modules.
Flyway is lacking support for loading migrations from resources encapsulated in java modules.
In a modulalar Java application non-class-file resources in a module are encapsulated by default, and hence cannot be located from outside the module unless their effective package is open as it is discussed here.
For example, resource migration files under the db/migration directory cannot be longer loaded by the application class-loader from the Flyway module unless the application module explicitly opens the db.migration package.
Note that if the resource path name is NOT a valid Java identifier, the resources are not encapsulated and therefore will be accessible from outside of the module. See my answer to the same stack overflow question for details and a complete example. That is, if the migration are located in db-xxx/migration Flyway will be able to find them! Something that can be used as a workaround for loading issues.
Also note that db.migration package can only be present in one single module of the module path at the time. Otherwise, java will complain about a package being present in several modules.
As discussed in the SO, the best practices are to use the resource-lookup methods in Class or Module which can locate any resource in the module. A possible solution is to delegate the resource loading to application modules via the Java service loader mechanism. Flyway can define a common interface to list available migration resource locators which a Java module would implement and provide in their module-info.  Flyway can obtain all the available implementations of the interface from the module path and get access to the migration resources.
What did you expect to see?
I expected Flyway to provide a mechanism to locate migration files in a modular Java application.
What did you see instead?
Put migration files under a resource directory named with a non-valid Java identifier making the migrations are effectively not-encapsulated and there accessible for Flyway module. See this for details.

With regards to resources, only a few changes would be necessary to better support encapsulation rules. Here, for example, ClassLoader#getResource can be changed to Class#getResource. This may be a breaking change, however, if you don't add a fallback to the former method.
https://github.com/flyway/flyway/blob/8fddf7a2bd1f86278fe946c016aa6640b89cb98c/flyway-core/src/main/java/org/flywaydb/core/internal/resource/classpath/ClassPathResource.java#L82
ClassLoader#getResource requires the resource to be unconditionally opened, whereas Class#getResource more intuitively follows accessibility rules. This crucial difference is noted in the javadocs for each method, although it is not heavily emphasized:

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassLoader.html#getResource(java.lang.String)
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html#getResource(java.lang.String)

The workaround of using non-valid Java identifiers seems highly error-prone and it is definitely not something I would encourage or recommend using.
Module Descriptors
In addition to the topic of resources, Flyway could provide a full module descriptor. At the moment, only Automatic-Module-Name is present. A stable automatic name is basic JPMS support, but to realize the full gains of the module system, module-info.java files are optimal. Note, too, that full modules are required for use with the jlink tool.

Thanks for the proposals. My first thought around this is, that Flyway guarantees support for Java 8 in order to maintain broad compatibility. Would these proposals require upgrading to Java 9 or later?

Thanks for the proposals. My first thought around this is, that Flyway guarantees support for Java 8 in order to maintain broad compatibility. Would these proposals require upgrading to Java 9 or later?

No. The feature of creating a module descriptor (module-info) might require building with a later JDK, but runtime compatibility with Java 8 is maintainable, and a growing number of libraries do this (Gson, log4j, junit, HikariCp, Lombok, and more).
Changes to resource loading are a separate feature which can be done on Java 8 with ease.

In addition, Flyway uses the ServiceLoader for FlywayExtension and DatabaseType - however without the appropriate provides and uses declarations, the ServiceLoader fails to find any implementations when run in a Java 9 modules application. Described here: https://dzone.com/articles/java-9-modules-part-3-directives

Thanks for the extra information. Right now this doesn't look like it'll be a huge priority for us, but it's now on our radar. We'll consider it for later releases.

Good to know. I'm looking forward to this feature being implemented.

In addition, Flyway uses the ServiceLoader for FlywayExtension and DatabaseType - however without the appropriate provides and uses declarations, the ServiceLoader fails to find any implementations when run in a Java 9 modules application. Described here: https://dzone.com/articles/java-9-modules-part-3-directives

This isn't true. If you run Flyway on the module path, it will turn into an automatic module, which follows the service loading pattern using META-INF/services. provides/uses are for fully-fledged modules. I do run Flyway 7.9.1 on the module path and it uses the service loader just fine.

This isn't true. If you run Flyway on the module path, it will turn into an automatic module, which follows the service loading pattern using META-INF/services. provides/uses are for fully-fledged modules. I do run Flyway 7.9.1 on the module path and it uses the service loader just fine.

I'm probably missing something, but it's not working for me on Java 15 when using jlink to create a merged module. In fact, running the merged module fails with an error unless I add the uses declarations for FlywayExtension and DatabaseType to the jlink options. That doesn't mean the service loader works either - I just manage to avoid getting the following exception:
java.util.ServiceConfigurationError: org.flywaydb.core.extensibility.FlywayExtension: module com.xyz.merged.module does not declare `uses`
        at java.base/java.util.ServiceLoader.fail(Unknown Source)
        at java.base/java.util.ServiceLoader.checkCaller(Unknown Source)
        at java.base/java.util.ServiceLoader.<init>(Unknown Source)
        at java.base/java.util.ServiceLoader.load(Unknown Source)
...

The trick with adding a dash to the path with the migration folder doesn't work for me on Java 15 either. Perhaps this loophole is now closed? To solve this I had use the following to enumerate the migration files on a jrt URI when they were included in the merged module:
java.nio.file.FileSystem jrtFs = FileSystems.newFileSystem(URI.create("jrt:/"), Collections.emptyMap());
Path resourcePath = jrtFs.getPath("modules/com.xyz", path);

@craigraw – My bad, that's understandable. I've never heard of merged modules before. I don't know whether JLink is meant to package automatic modules into a full module - I believe jlink wants an application to be fully modularized, though I've also heard it's possible to create a minimal runtime image without full modularization.
If it's Jdeps that you use to create the resulting module descriptor for your merged module, I know in my experience that Jdeps does not generate any uses or provides directives in the generated descriptor.  The build tool you are using to create the merged module may have the ability to detect service usages.

Looking forward for Flyway to be modularized as many others are converted yet. I want to use HSQLdb 5.5.1 or 6.0.0 which have module system implement, can't be used with even with latest Flyway version yet.
Hope, soon it will be possible.

Just curious, is this on the roadmap for version 8.0?

@A248 Not on our V8 roadmap. However, we'd invite a pull request that can demonstrate how this might work. That could help us make a better decision around priorities.

It is time...
Per https://endoflife.date/java the earliest LTS version is JDK 11. There is no excuse to delay JPMS support.

Actually, it's worse than that, @cowwoc . Over a year ago, JPMS support broke entirely when one of the maintainers split flyway into multiple modules per database. The bug was an elementary copy-and-paste mistake which remains unresolved. See https://github.com/flyway/flyway/issues/3342
So, currently it isn't even possible to run Flyway on the module path, not even as an automatic module. This regression sticks out like a thorn in Flyway's build configuration, despite that it is relatively easy to fix.

@A248 I figured out a workaround:
<plugin>
	<groupId>org.moditect</groupId>
	<artifactId>moditect-maven-plugin</artifactId>
	<executions>
		<execution>
			<id>add-module-infos</id>
			<phase>generate-resources</phase>
			<goals>
				<goal>add-module-info</goal>
			</goals>
			<configuration>
				<outputDirectory>${project.build.directory}/lib</outputDirectory>
				<modules>
					<module>
						<artifact>
							<groupId>org.flywaydb</groupId>
							<artifactId>flyway-core</artifactId>
							<version>${flyway.version}</version>
						</artifact>
						<moduleInfoSource>
							module org.flywaydb.core
							{
							}
						</moduleInfoSource>
					</module>
				</modules>
			</configuration>
		</execution>
	</executions>
</plugin>

Sad, but it works.

Whoever ends up working on fixing this issue, you will need to take a look at https://stackoverflow.com/a/75894133/14731.
Flyway uses ClassLoader.getResources() to look up migration files but this mechanism does not work inside jlink images. You can either use Classgraph or implement the mechanism documented at https://github.com/classgraph/classgraph/wiki/Classpath-Specification-Mechanisms

There. I've done all the hard work for you :) Now can someone please put this together and submit a PR? I'm exhausted.

I've posted a PR that adds module-info.java to the core module: https://github.com/flyway/flyway/pull/3756
I don't use any of the other modules so adding JPMS support to them is left as an exercise to the reader.

@MikielAgutu You wrote that PRs are welcome. I posted a PR, and you ignored it. What is it going to take to get this merged?

@cowwoc Apologies, but I'm currently not attached to Flyway's development. Maybe @Barry-RG can help?

@Barry-RG Can you please update us on this issue?

@JasonLuo-Redgate Can you please provide an update on this issue?

Hi @cowwoc ,
Apologies, but supporting JPMS is not currently on our roadmap. We may revisit and reassess its priority at a later stage. We sincerely value your contribution and remain open to exploring future possibilities for this feature.

Okay. Let me know once you are ready to move forward.


PR feedback on StringCache

Following up on https://github.com/dotnet/aspnetcore-tooling/pull/2816#pullrequestreview-561205139.

                return thisTarget!.Equals(entryTarget, StringComparison.Ordinal);

Could this code verify the hashcodes are equal before needing to actually call the Equals method? Might be a bit cheaper in the non-matching case.

Refers to: src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Serialization/StringCache.cs:147 in 8bf3421. [](commit_id = 8bf34218423c1b62a8892361ed9106436c79bf2e, deletion_comment = False)

                return thisTarget!.Equals(entryTarget, StringComparison.Ordinal);

Could this code verify the hashcodes are equal before needing to actually call the Equals method? Might be a bit cheaper in the non-matching case.

Refers to: src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Serialization/StringCache.cs:147 in 8bf3421. [](commit_id = 8bf34218423c1b62a8892361ed9106436c79bf2e, deletion_comment = False)


[feature]: Admin can delete flagged comments - DELETE /admins/comments

Before submitting your PR for review

Run npm run lint to find errors in code syntax/format
Run npm run lint:fix to fix all auto-fixable errors in source code and auto-format with prettier
Ensure you fix any linting errors displayed after running any of the above commands

What does this PR do?
Fixes #385
Creates an endpoint that allows admin users to delete flagged comments
Description of Task to be completed?

Create adminDeleteComment controller
Attach controller to endpoint
Create and apply validation middleware rule
Fix existing bugs

How should this be manually tested?
Send a DELETE request to /admins/comments with sample body and a valid organizationToken
{
    "commentId": "5efccf449a900024c483ad3a"
}

Provided commentId must be flagged
What is the link to the issue on Github?
Issue #385

Also, I wonder if it would not be easier if the admin could use the same endpoint as other clients would when deleting a comment. The only difference would be to require a slight modification to the deleteSingleComment controller that gives write access to a certain admin role or similar.
Wouldn't that be a simpler option as we will only need to maintain one controller responsible for deleting comments.

Also, I wonder if it would not be easier if the admin could use the same endpoint as other clients would when deleting a comment. The only difference would be to require a slight modification to the deleteSingleComment controller that gives write access to a certain admin role or similar.
Wouldn't that be a simpler option as we will only need to maintain one controller responsible for deleting comments.

Reasoning behind this is that first of all the deleteSingleComment is application specific. But this controller is organization-wide and as such needs an organizationToken. Since admins are not tied to one application it made sense to separate it from the regular controller.
Secondly, what will differentiate an admin delete request from a regular request. It's almost impossible to tell cos comments routes are application specific and their JWTs are signed as such. I can't think of a graceful solution to this without some sort of spaghetti inelegeant code. Can you?
One way out of this is to have a third token type called an adminToken that is used with comments for admin roles. This is a major change that I didn't feel comfortable making without further deliberations. Besides, certain things should not be open to the application side e.g viewing flagged comments should be an administrative task. Separating this into a route will prevent a lot of if-elses. What do you think?

Given your reasoning. I'd agree with you in keeping a separate delete comments endpoint for admins.


Allow to bump more than one formula at once for synced formulas

Provide a detailed description of the proposed feature
Some formulas are synced in versions and needs to be updated all at once (see list here: https://github.com/Homebrew/homebrew-core/blob/master/synced_versions_formulae.json), but the various bump commands doesn't allow to provide more than one formula to it (brew bump-formula-prat least; I discovered brew bumpjust now, but it seems providing more than one formula to it would just produce the same as calling the command many times, each time with one of those formulas.
What is the motivation for the feature?
Make it easier and without needs for manual steps to updated synced formulas.
How will the feature be relevant to at least 90% of Homebrew users?
It would be relevant to people updating those formulas.
What alternatives to the feature have been considered?
The alternative is the current way of doing those, mainly manually (people used to it might have better ways of doing it than what I found, but I don't think there's anything currently allowing to update those as easily and quickly as unsynced formulas).
EDIT: We could even imagine than when user run the command on a single formula, brew automatically consider adding all the other synced formulas.

This is a great idea, thanks @Porkepix!

brew bump may be able to do this already?

Sorry, missed that in the original part. I think implementing this in brew bump may be the solution that we want here and save brew bump-formula-pr for the single formula case?

brew bump may be able to do this already?

No, as explained in the first message, from what I understand, brew bump foo bar baz will pretty much provide the same results as running brew bump foo ; brew bump bar ; brew bump baz, therefore breaking the audit check on synced formulas.
Don't know if it's nice to limiting it to one case or not, I just discovered brew bump yesterday by reading here. It have its advantages, but also offer less options than the other commands for now.

I agree this needs to be fixed, but here's how to use bump-formula-pr on formulae with synced versions:
git checkout -b foo-1.2.3
for f in foo bar baz qux
do
  brew bump-formula-pr --write-only --commit --no-audit --version=1.2.3 "$f"
done

You're now ready to create a PR from branch foo-1.2.3.

I agree this needs to be fixed, but here's how to use bump-formula-pr on formulae with synced versions:
git checkout -b foo-1.2.3
for f in foo bar baz qux
do
  brew bump-formula-pr --write-only --commit --no-audit --version=1.2.3 "$f"
done

You're now ready to create a PR from branch foo-1.2.3.

Yup, that sure works, I just never bothered creating a dedicated ssh key on the mac from my work and only have the token, for which it was annoying to look at how to use it manually, leading to this strange setup where I was doing edits on my PRs on my personal (Linux) computer /o\
For the purpose of this issue, at some point I was looking for a way to "pause" the bump-formula-pr command between its modifications and the timing it was opening the PR to do any needed additional modifications, but this is much more work here and maybe not wished (and it's a bit what the write-only do, but it lacks a way to resume and push what's currently done to GitHub without having to do things manually.

but it lacks a way to resume and push what's currently done to GitHub without having to do things manually.

You can script the creation of the PR with
gh pr create

Without any arguments, this starts a dialogue that will ask you to fill in the contents of the PR (title, post body, etc). But you can skip that too with the appropriate flags.

I'm currently working on a PR that checks the bumped formula against synced_versions_formulae.json, and automatically bumps and adds all the other synced formulae to the same PR. I assume that's the desired behavior?

but it lacks a way to resume and push what's currently done to GitHub without having to do things manually.

You can script the creation of the PR with
gh pr create

Without any arguments, this starts a dialogue that will ask you to fill in the contents of the PR (title, post body, etc). But you can skip that too with the appropriate flags.

Yes but then it won't be opened like regular formula bumps, right?

I'm currently working on a PR that checks the bumped formula against synced_versions_formulae.json, and automatically bumps and adds all the other synced formulae to the same PR. I assume that's the desired behavior?

At first what I had in mind was rather the ability for users to specify more than one when calling brew bump or brew bump-formula-pr, but then I thought of the behavior you described in my edit, yes.
Also, what do you have in mind regarding already edited files and/or (but I think it's a bit out of topic here) showing those synced formulas in brew info? I regularly use the bump to also check against dependencies if those can be updated and so on.

what do you have in mind regarding already edited files

For those, and all others where the bump changes fail to apply, I'm thinking an error.

showing those synced formulas in brew info

I don't think that's a good idea. "Other formulae which are synced with this one" is not an intrinsic property of a formula, so throwing that info up to end-users just leads to the sort of confusion that begins with "so do I need to install all these other formulae too?"

what do you have in mind regarding already edited files

For those, and all others where the bump changes fail to apply, I'm thinking an error.

Because current state is that if I edit the formula before running the bump, for example to change a dependency version, it comes with the bump (which I found quite useful, in the absence of "pause" mechanism during the bump.

showing those synced formulas in brew info

I don't think that's a good idea. "Other formulae which are synced with this one" is not an intrinsic property of a formula, so throwing that info up to end-users just leads to the sort of confusion that begins with "so do I need to install all these other formulae too?"

Mmmmh, you're right. My point was for people who bump to don't get the surprise of bumping 5 formulas when you thought you was only bumping one, because then they couldn't have checked the 4 others before, to check their dependencies and so on.

Because current state is that if I edit the formula before running the bump, for example to change a dependency version, it comes with the bump (which I found quite useful, in the absence of "pause" mechanism during the bump.

I'm not (planning to) change the way the bump is applied on each formula individually. The operative phrase is:

where the bump changes fail to apply

i.e. it leads to a conflict on commit. This could lead to a bump failure if a synced formula (say, git-gui) is locally "dirty", even if the formula you were bumping (git) was "clean".

My point was for people who bump to don't get the surprise of bumping 5 formulas when you thought you was only bumping one, because then they couldn't have checked the 4 others before, to check their dependencies and so on.

I don't really see a way around that, since a fair number of version-synced formulae actually depend on a "primary" in the group (e.g. git-svn depends on "git"), so:

if you bump git alone, git-svn gets tested against the new git during CI, but still remains at the old version
if your bump git-svn alone, then it gets built against old git

That said, there is at least one problem case: qt has several version-synced database formulae, but all of them (except qt-postgresql) conflict with each other, so unless I misunderstand the build process, all of them have to be separately PR'd after the main qt bump is properly committed. I don't know how (if at all) such a multi-stage CI process can be supported.

but it lacks a way to resume and push what's currently done to GitHub without having to do things manually.

You can script the creation of the PR with

gh pr create

Without any arguments, this starts a dialogue that will ask you to fill in the contents of the PR (title, post body, etc). But you can skip that too with the appropriate flags.

Yes but then it won't be opened like regular formula bumps, right?

What do you mean by "opened like regular formula bumps"? But, regardless of what this does mean, I think you should be able to pass flags to gh so that it does do this

That said, there is at least one problem case: qt has several version-synced database formulae, but all of them (except qt-postgresql) conflict with each other, so unless I misunderstand the build process, all of them have to be separately PR'd after the main qt bump is properly committed. I don't know how (if at all) such a multi-stage CI process can be supported.

But this problem already exists today, right? How is handled right now?

What do you mean by "opened like regular formula bumps"? But, regardless of what this does mean, I think you should be able to pass flags to gh (or otherwise interact with the dialogue in the absence of flags) so that it does do this.

I meant with the command filing every fields for you and no need to worry about what to put in there.
The basic idea was, as a resume to have the bump formula do the end of the bump job. For example considering the needed changes were done, whether they were manual or from a previous bump with --write-only to do everything that came  after the replacements in the formula: branch creation, commit if there are still things to commit, push, PR opening and so on.
I'm not sure I'm clear in my explanation, but see it as bump splitted in half: --write-only tackle the first half, it would be nice to be able to do the other half that way.

That said, there is at least one problem case: qt has several version-synced database formulae, but all of them (except qt-postgresql) conflict with each other, so unless I misunderstand the build process, all of them have to be separately PR'd after the main qt bump is properly committed. I don't know how (if at all) such a multi-stage CI process can be supported.

But this problem already exists today, right? How is handled right now?

What do you mean by "opened like regular formula bumps"? But, regardless of what this does mean, I think you should be able to pass flags to gh (or otherwise interact with the dialogue in the absence of flags) so that it does do this.

I meant with the command filing every fields for you and no need to worry about what to put in there. The basic idea was, as a resume to have the bump formula do the end of the bump job. For example considering the needed changes were done, whether they were manual or from a previous bump with --write-only to do everything that came after the replacements in the formula: branch creation, commit if there are still things to commit, push, PR opening and so on.
I'm not sure I'm clear in my explanation, but see it as bump splitted in half: --write-only tackle the first half, it would be nice to be able to do the other half that way.

Heh, forgot to check previous PRs. Turns out the last QT bump included all the synced formulae in a single PR, so I guess it isn't an issue.

I'm currently working on a PR that checks the bumped formula against synced_versions_formulae.json, and automatically bumps and adds all the other synced formulae to the same PR. I assume that's the desired behavior?

@gromgit This would be great if it could turn into a brew bump-formula-pr or brew bump feature! Note that each changed formula should be done in a separate commit.

Passing on this. We'll review a PR but not going to leave it open indefinitely, sorry!


ProviderError: invalid opcode: INVALID

So I'm at the part where the contract has been issued and upload and a verification link is given and it's just about to mint the NFT and I get this error with no clear error message:
An unexpected error occurred:
Error: ERROR processing /Users/rainless/Downloads/all-on-chain-generated-nft/deploy/02_Deploy_RandomSVG.js:
ProviderError: invalid opcode: INVALID
    at HttpProvider.request (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/providers/http.ts:74:19)

This is what's on that line in http.ts:
const error = new ProviderError("HttpProviderError", -1);
...but I'm not sure how that helps us.  And I have no idea how to get around this error message.

Here's the complete error message:
reusing "RandomSVG" at 0xa20C316721F71546FE12afE8292a22F5E3000f35
You have deployed an NFT contract to 0xa20C316721F71546FE12afE8292a22F5E3000f35
Verify with:
 npx hardhat verify --network rinkeby 0xa20C316721F71546FE12afE8292a22F5E3000f35 0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B 0x01be23585060835e02b77ef475b0cc51aa1e0709 0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311<PHONE_NUMBER>00000000
Duplicate definition of Transfer (Transfer(address,address,uint256,bytes), Transfer(address,address,uint256))
An unexpected error occurred:

Error: ERROR processing /Users/rainless/Downloads/all-on-chain-generated-nft/deploy/02_Deploy_RandomSVG.js:
ProviderError: invalid opcode: INVALID
    at HttpProvider.request (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/providers/http.ts:74:19)
    at LocalAccountsProvider.request (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/providers/accounts.ts:188:34)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at EthersProviderWrapper.send (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/@nomiclabs/hardhat-ethers/src/internal/ethers-provider-wrapper.ts:13:20)
    at DeploymentsManager.executeDeployScripts (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat-deploy/src/DeploymentsManager.ts:1014:19)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at DeploymentsManager.runDeploy (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat-deploy/src/DeploymentsManager.ts:849:5)
    at Environment._runTaskDefinition (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/runtime-environment.ts:219:14)
    at Environment.run (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/runtime-environment.ts:131:14)
    at SimpleTaskDefinition.action (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat-deploy/src/index.ts:446:32)
    at Environment._runTaskDefinition (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/runtime-environment.ts:219:14)
    at Environment.run (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/runtime-environment.ts:131:14)
    at SimpleTaskDefinition.action (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat-deploy/src/index.ts:521:5)
    at Environment._runTaskDefinition (/Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/runtime-environment.ts:219:14)
rainless@Davids-Air all-on-chain-generated-nft % nano /Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/providers/http.ts
rainless@Davids-Air all-on-chain-generated-nft % nano /Users/rainless/Downloads/all-on-chain-generated-nft/node_modules/hardhat/src/internal/core/providers/http.ts

I'm curious why "invalid opcode" doesn't give me a more verbose error response than: "INVALID." Like WHAT, exactly, is invalid? Where am I supposed to look to track down the problem?

Any update or idea?

Yeah javascript has a hard time giving errors often :(
Usually it means you've got some wrong solidty or JS. I can't seem to replicate your issue. I just recloned and ran hh deploy --network rinkeby myself and everything went through.
Maybe you ran out of gas?

Well maybe.  How could I fix that? I don't understand how it could deploy the contract just fine but not deploy the NFT. Could it have been related to the fact that I didn't have any LINK at the time?  I went back and gave myself some LINK (had to add the currency and run the faucet and all that...) but now it doesn't do anything at all. I can't deploy the contract (before and after recloning and starting from scratch) OR the NFT now. It works deploying on a local network with hh deploy but hh deploy --network rinkeby just hangs.

You could have run out of ETH in your wallet that is deploying. Get more rinkeby ETH from the faucet. \
More info: https://www.youtube.com/watch?v=Yh8cHUB-KoU


some thing in uv_write

uv_write(tcp,buff,10);
uv_write(tcp,buff + 10,20);
what will happen when first write uv_write(tcp,buff,10); only write 5 bytes?,uv_write can ensure all 10 bytes are send?
how can i know hou many bytes send in write_cb?

and when
uv_write(tcp,buff,10,cb);
uv_close(tcp);
the cb will be call?

@saghul

and when
uv_write(tcp,buff,10,cb);
uv_close(tcp);
the cb will be call?
if no, uv_wirte_t req =malloc(xxx);
i can't free the req

If you close it before libuv can write, the callback will be called with UV_ECANCELED.

uv_write(tcp,buff,10);
uv_write(tcp,buff + 10,20);
what will happen when first write uv_write(tcp,buff,10); only write 5 bytes?,uv_write can ensure all 10 bytes are send?

libuv ensures all bytes are written. However, I'm afraid you might be using the API wrong: you need to pass an array of uv_buf_t (ech of which contains the length) and the number of buffers, not the total number of bytes.

how can i know hou many bytes send in write_cb?

All of them. If the callback is called all the bytes have been written (unless there was an error, (status != 0), that is).
I'm going to close this, since it's not an actual issue. Please next time use the mailing list for questions :-)


Add support for arm64 (draft)

Addresses partially https://github.com/longhorn/longhorn/issues/6 by adding support for arm64 (armhf not supported).
This PR should be viewed as part of https://github.com/longhorn/longhorn-engine/pull/514.

The CSI dependencies (csi-attacher, csi-provisioner, csi-node-driver-registrar, and csi-resizer) use the gcr.io/distroless/static base image which at the time of writing didn't support ARM architecture. Thus, to make longhorn work, one has to clone those repositories and change the Dockefile in each one of them as follows:
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM gcr.io/distroless/static:latest
+FROM alpine:latest
 LABEL maintainers="Kubernetes Authors"
 LABEL description="CSI External Provisioner"```

I used an alpine image because it is small, but any Linux image that supports arm64 would do.


Update @viewport docs to say it's going away

As per https://github.com/w3c/csswg-drafts/issues/4766, the @viewport at-rule isn't supported in any major browsers at the moment, and is due to be removed from the spec. We should update our docs accordingly.
See also https://github.com/mdn/browser-compat-data/issues/6213.

To start with, I've had a play with putting the deprecated notice on top of https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/@viewport, plus a note to point to the standards track removal discussion.
I'll put this into the next sprint, where I'll finalise that work, and update the BCD accordingly.

I've been looking into this and there is now a note on the Chrome bug referenced above:

"@viewport was never shipped to authors (apart from via an experimental flag in Chrome) and is only parsed used as an implementation detail for the default viewport on mobile."

Do we need the big BCD table for all the different descriptors? Or would dropping this down to one line for viewport be reasonable at this point. What else needs doing on the MDN page when something is being removed @chrisdavidmills ?
It does still appear to exist in the Editors Draft of the spec, so presumably that update hasn't been made yet.

@rachelandrew This is a good question. The page already has a deprecated notice up top, and I'd support you replacing the BCD with a single line — the different rows are all pretty similar anyway. I think that would be sufficient, once the removals are actually done.

@chrisdavidmills BCD for this is now merged.

@rachelandrew cool, in that case it should appear soon enough on the page. I'll close this one.


Allow Keyboard Customization

It should be a thing.

old, but +1

Sorry about necroing this thread, but this really should be a thing.

Having a job makes this difficult to find the time and motivation for. If anyone wants to implement it, they're welcome to do so and make a pull request which I'll review and merge.

I made a mod to remap keyboard controls in SADX 2004, though it isn't compatible with the input mod.

Fixed in this pull request.


Console Errors when using this plugin on a wordpress site

Hello,
It seems to be a great light-weight plugin that we would like to use, but when I follow the steps on getting it to work, it's giving me a lot of errors.
Please find the error messages below and a screenshot attached.
==============ERRORS=============
Access to XMLHttpRequest at 'https://www.nameshouts.com/api/names/naureenanwar' from origin 'https://XXXXX' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
Uncaught SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse ()
at vocalizer.min.js?ver=20151215:1:681
at a.onerror (vocalizer.min.js?ver=20151215:1:467)
Failed to load resource: net::ERR_FAILED  www.nameshouts.com/api/names/naureenanwar:1
==============ERRORS=============

When I tried using this method:
Naureen Anwar
or just this simple name
John
this gives me the errors mentioned above. But when I tried this method (custom mp3 audio):
John
This works and plays the audio. This doesn't give me any errors.
How can I fix this?
Thank you!

Just to add, I am using this js file https://github.com/atifazam/vocalizer/blob/master/dist/vocalizer.js


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_e87ed750-a296-4cce-aba9-6cfb5b5430d8/pull/1 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target_e87ed750-a296-4cce-aba9-6cfb5b5430d8.git

Docs Build status updates of commit 584e942:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch Release_Archive_master_2021-03-16-09-15-45 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Add category count to the sidebar

To add the feature for issue #311:

Implement the category count script.
Style the sidebar category count UI.

Thanks ✨🫶


Update README.md

Add: Missing 'Hindi' language tag
This PR adds the missing tag for the Hindi language.
Every PR must update the corresponding documentation in the code, and also the readme in english with the following changes.
Pre-launch Checklist

[x] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making or feature I am adding, or @jonataslaw said the PR is test-exempt.
[x] All existing and new tests are passing.

Thanks for your contribution!
LGTM


deps: Upgrade @react-navigation/{bottom,material-top}-tabs to 6.x

The @react-navigation/material-top-tabs upgrade is done to get us off of react-native-reanimated, which should help us with

#5847

Then the @react-navigation/bottom-tabs upgrade was done because I was optimistic about swiftly finishing

#4936

. But I didn't manage to finish that off; it turned out to be more work than I have time for right now (in particular, upgrading @react-navigation/native and @react-navigation/stack).
Screenshots coming, to demonstrate that the appearance doesn't change except in one small way where we were forced to make an adjustment:
share-to: Move ScrollView inward, to ShareTo{Stream,Pm} tabs

Related: #5847
Fixes-partly: #4936

I took screenshots on my iPhone yesterday, and I forgot which ones were "before" and which ones were "after" shots. I'll include both sets anyway and call them "A" and "B". If we spot important differences in how the UI looks between A and B, I can find out which is "before" and "after" by building the app again. But I think I can save quite a bit of time by just posting the ones I have now.
Bottom tabs:

A
B

Reactions:

A
B

Android screenshots coming next.

Bottom tabs:

Before
After


Validate action.type

If you pass
dispatch({
    payload: Promise.resolve(true)
});

It will produce undefined_PENDING, undefined_FULFILLED and undefined_REJECTED action types
Something same would be for all non string action types

I should be understood a type is required based off the examples in the introduction. Furthermore, the Redux documentation states type is required:

Actions are plain JavaScript objects. Actions must have a type property that indicates the type of action being performed. Types should typically be defined as string constants. Once your app is large enough, you may want to move them into a separate module.

@pburtchaell

type is required

Yep, but during development many things can go wrong.
For example:
import {
     SOME_LOGN_ACTION_NAME
} from './action-types';

dispatch({
    type: SOME_LOGN_ACTION_NAME,
    payload: doSomething()
});

Here I should get undefined error from redux - because I mistyped action type variable name, but instead of it middleware executes action with new undefined_PENDING and undefined_FULFILLED actions, and give me headaches.

Yep, but during development many things can go wrong.

Yes, but it isn't the responsibility of this middleware to do type checking. Instead, I would suggest moving this into a separate middleware.

Yes, but it isn't the responsibility of this middleware to do type checking

Yes, but at least it should give a chance for redux to validate it.
P.S. Will you give me another "Yes, but" argument ? 😅 I don't want to give up.
@gaearon need your help here, what do you think about this situation?

Write tests for your dispatch calls -- they should be checking the type is what you expect.


Apparently extensions are still verified by Google.

This installation of YouTube Options appears to violate the License Agreement.   Please contact us if you feel you are getting this message in error.

What?

I'd guess the issue may be about an extension that itself checks whether the browser is Google Chrome, and then gives a warning if it's not.

In that case they'd need to contact the vendor to remove that arbitrary limitation

That does not sound very probable. Why would extensions actively check if Google allows them...
Upon further investigation this specific extension (YouTube_Options-1.8.162.zip) was last updated in 2014 and i can imagine that perhaps it's no longer compatible (although it seems to have installed just fine, but everything is greyed out before i get this message) The installation was through extraction.

Why did you even bothered to open an issue for an YT extension that haven't been updated since 2014 in the first place then? Perhaps they are doing their own UA check on their "phone home" routine and their string parser is outdated, who knows...

Why did you even bothered to open an issue for an YT extension that haven't been updated since 2014 in the first place then?

I'd guess it could be due to https://ghacks.net/2014/04/10/popular-youtube-options-extension-chrome-free-anymore. They may be trying to use the older version from before it was turned into a subscription-based service. The problem is that the extension doesn't seem to available anymore (and it wasn't FOSS, so there's no code on GitHub or anywhere else), meaning that trying to even find it now is a chore in itself, and also, YouTube has changed so much since then, does the extension even work with the current site?

I hope your question(-s) has(-ve) been answered, otherwise please let us know.
Closing this issue for now.


Only show the Ollama message once

To fix the issue of showing the warning message twice when Ollama is not running, we need to identify where the message is being displayed and ensure it's only called once. Based on the provided code, the warning message is likely being shown in the OllamaChatModelFactory class when attempting to fetch the list of models.
Let's examine the relevant part of the OllamaChatModelFactory class:
@Override
public List<LanguageModel> getModels() {
    List<LanguageModel> modelNames = new ArrayList<>();
    try {
        OllamaModelEntryDTO[] ollamaModels = OllamaService.getInstance().getModels();
        for (OllamaModelEntryDTO model : ollamaModels) {
            modelNames.add(
                LanguageModel.builder()
                    .provider(ModelProvider.Ollama)
                    .modelName(model.getName())
                    .displayName(model.getName())
                    .inputCost(0)
                    .outputCost(0)
                    .contextWindow(8_000)
                    .apiKeyUsed(false)
                    .build()
            );
        }
    } catch (IOException e) {
        NotificationUtil.sendNotification(ProjectManager.getInstance().getDefaultProject(),
            "Ollama is not running, please start it.");
        return List.of();
    }
    return modelNames;
}

The issue is likely caused by this method being called twice, possibly from different parts of the application. To fix this, we can implement a simple caching mechanism to ensure the warning is only shown once per session. Here's how we can modify the OllamaChatModelFactory class:
public class OllamaChatModelFactory implements ChatModelFactory {

    private static boolean warningShown = false;
    private List<LanguageModel> cachedModels = null;

    @Override
    public List<LanguageModel> getModels() {
        if (cachedModels != null) {
            return cachedModels;
        }

        List<LanguageModel> modelNames = new ArrayList<>();
        try {
            OllamaModelEntryDTO[] ollamaModels = OllamaService.getInstance().getModels();
            for (OllamaModelEntryDTO model : ollamaModels) {
                modelNames.add(
                    LanguageModel.builder()
                        .provider(ModelProvider.Ollama)
                        .modelName(model.getName())
                        .displayName(model.getName())
                        .inputCost(0)
                        .outputCost(0)
                        .contextWindow(8_000)
                        .apiKeyUsed(false)
                        .build()
                );
            }
            cachedModels = modelNames;
        } catch (IOException e) {
            if (!warningShown) {
                NotificationUtil.sendNotification(ProjectManager.getInstance().getDefaultProject(),
                    "Ollama is not running, please start it.");
                warningShown = true;
            }
            cachedModels = List.of();
        }
        return cachedModels;
    }

    // Other methods...
}

Key changes:

We've added a warningShown static boolean flag to track whether the warning has been shown.
We've introduced a cachedModels field to store the fetched models.
In the getModels() method, we first check if cachedModels is not null. If it's not null, we return the cached models.
Before showing the warning, we check the warningShown flag. If it's false, we show the warning and set the flag to true.
We set cachedModels in both the success and failure cases to ensure subsequent calls return the same result without making additional API calls.

This approach ensures that:

The warning is only shown once per session.
The API call to fetch models is only made once, improving performance.
Subsequent calls to getModels() will return the cached result, whether it's a list of models or an empty list.

Remember to reset the warningShown flag when appropriate, such as when the plugin is reloaded or when the user manually triggers a refresh of the model list.
To further improve this, you could also add a method to clear the cache and reset the warning flag:
public void resetCache() {
    cachedModels = null;
    warningShown = false;
}

You can call this method when you want to force a refresh of the model list, for example, after the user has started Ollama or changed some settings.


[pmp] TOR misaligned top cosim mismatch

When running the following test:
make -j1 --keep-going IBEX_CONFIG=opentitan ITERATIONS=1 TEST=riscv_epmp_mml_test WAVES=0 COV=0 SEED=30325
Ibex and Spike have different behavior. Spike throws an instruction access fault exception for the address 0x80005cc4. The TOR region ends at 0x80005cc4, which is the expected behavior.
I think Ibex somehow does not perform the check for fetched instructions properly. In this test case there is a branch instruction that straddles two PMP entries, so Ibex must do two requests.

estimate 4

The problem ended up being that Ibex checked bit 2 (or 3rd bit) to determine whether an instruction was 2 byte aligned instead of bit 1 (or 2nd bit).


New user has no rights, and cannot be changed when default

The createuser command used by this action creates postgres user without superuser abilities. This means I cannot do actions like CREATE EXTENSION and other critical actions. There may be a need for another parameter for the user access rights.  Thx!

ikalnytskyi/action-setup-postgres@v4 with superuser by default has been published. I'm closing this issue now. Please feel free to open a new ticket if this doesn't work for you.


Using realtime l4casadi with acados

Hello Tim,
I am trying to use a neural network model in a real-time mpc framework that is running with acados. What is the recommended way of doing this. A bit of context:
Even when I am using a simple MLP that is wrapped with l4casadi and compiled with acados, the computation time of each MPC step becomes prohibitively expensive to run in real time.
To circumvent this I am trying to use the RealTimeL4Casadi class. However, I am unsure on how to get it to work with acados. Do you have a simple use case or example that can help me get started ?
Best,
Ioannis

Hi Ioannis,
yes, there is an exampe in the examples / realtime folder:
https://github.com/Tim-Salzmann/l4casadi/blob/main/examples/realtime/mpc_mlp_example.py
Best
Tim

Thanks. This clarified things


Build boringssl

Summary
Add boringssl support to docker build scripts.
related: https://github.com/Kong/kong-ee/pull/3313

cc @fffonion

@mayocream let's pair on this today

I have verified @gszr 's work on ubuntu20.04 build, it's working fine and I can enable the fips=on switch. Couple of things left:

[ ] one of RHEL support
[ ] add the ~fips marker in version (kong version, package version filename etc), as the 4 digit version revert is not merged yet, hold this for now.

I have created tickets and assigned GS for the remaining tasks.


[WFLY-15964] OpenTelemetry ratio-based sampler should not accept value bigger than 1.0.

Issue: https://issues.redhat.com/browse/WFLY-15964
OpenTelemetry ratio-based sampler should not accept value bigger than 1.0.

@jasondlee Please review


feat: add couchbase 4.1.2 release

update couchbase with release 4.1.2

:tada: This PR is included in version 1.92.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Large datasets freeze and crash during DSSM preprocessing

I am trying to replicate the wikiQA DSSM tutorial on a much larger dataset (100k queries, 1m answers). The preprocessing seems to freeze and crash during the text_right stage. This issue is occurring on both 2.0 and 2.0-dev Is this a memory issue?
I am using a google cloud instance with 32Gb RAM and 2 vCPUs. Current code below:
import keras
import pandas as pd
import numpy as np
import matchzoo as mz

def read_data(path):
    def scan_file():
        with open(path) as in_file:
            for l in in_file:
                yield l.strip().split('\t')
    if include_label:
        return [(qid, did, q, d, float(label)) for qid, did, q, d, label in scan_file()]

msm_dev = read_data('../data/msm_dev.mz')
train = msm_dev[:897558]
predict =  [(qid, did, q, d) for qid, did, q, d, _ in msm_dev[897558:]]
train_pack = mz.pack(train)
predict_pack = mz.pack(predict)

preprocessor = mz.engine.load_preprocessor('../outputs/msm_dssm_prep')
train_pack_processed = preprocessor.transform(train_pack)

Output:
Processing `text_left` with chain_transform of TokenizeUnit => LowercaseUnit => PuncRemovalUnit => StopRemovalUnit => NgramLetterUnit => WordHashingUnit: 100%|██████████| 90008/90008 [00:31<00:00, 2861.30it/s]
Processing `text_right` with chain_transform of TokenizeUnit => LowercaseUnit => PuncRemovalUnit => StopRemovalUnit => NgramLetterUnit => WordHashingUnit:   5%|▍         | 41838/897558 [00:51<18:06, 787.74it/s]

Yes it is. WordHashingUnit eats up a lot of memory. On 2.0-dev these's a UnitDynamicDataGenerator that can work around this problem by skipping the word hashing step in the preprocessing, initializing UnitDynamicDataGenerator with the WordHashingUnit, feeding the UnitDynamicDataGenerator with the datapack. This does forgo the ability to use model.fit, though, since you have to use model.fit_generator.

Im unsure how to proceed with the Dynamic Generator. Am I still required to use the DSSM preprocessor to go from the training data to triletters? It seems the WordHashingUnit is written in to the DSSMPreprocessor.fit method. I attempted the following code but it did not work, so I am missing something.
word_hashing_unit = mz.processor_units.WordHashingUnit
ngram_unit = mz.processor_units.NgramLetterUnit
dynamic_train_hashing_generator = mz.data_generator.UnitDynamicDataGenerator(data_pack=train_pack, unit=word_hashing_unit)
dynamic_train_ngram_generator = mz.data_generator.UnitDynamicDataGenerator(data_pack=train_pack, unit=ngram_unit)

ranking_task = mz.tasks.Ranking()
ranking_task.metrics = [
    'mae', 'map', 'precision',
    mz.metrics.Precision(k=3),
    mz.metrics.DiscountedCumulativeGain(k=1),
    mz.metrics.DiscountedCumulativeGain(k=3),
    mz.metrics.DiscountedCumulativeGain(k=5),
    mz.metrics.NormalizedDiscountedCumulativeGain(k=1),
    mz.metrics.NormalizedDiscountedCumulativeGain(k=3),
    mz.metrics.NormalizedDiscountedCumulativeGain(k=5)
]
model = mz.models.DSSMModel()
input_shapes = preprocessor.context['input_shapes']
model.params['input_shapes'] = input_shapes
model.params['task'] = ranking_task
model.guess_and_fill_missing_params()
model.build()
model.compile()
model.fit_generator(dynamic_train_hashing_generator , epochs=10)

With output:
StopIteration: transform() missing 1 required positional argument: 'tri_letters'

Additionally, I had to amend the matchzoo/data_generator/__init__.py file to access the UnitDynamicDataGenerator class.

@MichaelStarkey You have to create unit instances instead of using them as classes. Anyways, since  MatchZoo needs this feature sooner or later, I just implemented it for your early access. Check out (pun intended) the latest 2.0-dev branch and see sandbox.ipynb for usage.


Fix readme

Hi. Looks like there is nonexisted command in your README, so I decided to fix it. If It's exist or will exist in the future, feel free to decline it.

Rogue is in process of undergoing big refactor/doc change so going to close this, but I'll make sure to have docs reflect existing API, thanks!


Moment throwing errors

When the build runs twice due to browsersync, there's an error getting thrown from moment TypeError: format.replace is not a function

TypeError: format.match is not a function

?

This is happening when I configure the pattern with a :date


chore(deps): bump marshmallow from 2.19.5 to 2.21.0

Bumps marshmallow

Release notes
Changelog
Commits

updated-dependencies:

dependency-name: marshmallow
dependency-type: direct:production
update-type: version-update:semver-major
...

Signed-off-by: Samuel [svillegas]<EMAIL_ADDRESS>

Codecov Report
Base: 84.53% // Head: 84.53% // No change to project coverage :thumbsup:

Coverage data is based on head (db2f200) compared to base (08e32ff).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #356   +/-   ##
========================================
  Coverage    84.53%   84.53%
========================================
  Files           34       34
  Lines         2574     2574
  Branches       349      349
========================================
  Hits          2176     2176
  Misses         259      259
  Partials       139      139

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.


Allow direct linking for already input URLs, currently leads to 404 error on URL re-use

Currently if you make note of apparent site results URL i.e. http://validator.w3.org/mobile-alpha/undefined?url=http%3A%2F%2Fwww.google.com&profile=default produces a 404 Error page if you attempt to go to it in the future or even in a new browser tab.
Appreciate that it likely wouldn't make sense to cache results, but I would have expected to be able to bookmark and re-use that URL to get the tool to re-run it's tests for the same URL.
In a similar way that Google's page tester can https://developers.google.com/speed/pagespeed/insights/?url=www.google.com

@Howshall we're not quite sure how to reproduce that bug — could you give more details (e.g. browser used, set of steps followed, etc).

Sure no problem. To replicate:

Go to http://validator.w3.org/mobile-alpha/
Enter any URL (like http://www.w3c.org) and click 'Check'
Page URL changes to http://validator.w3.org/mobile-alpha/undefined?url=http%3A%2F%2Fwww.w3c.org&profile=default to show results
However if you paste that URL anywhere else (like new tab or browser, want to share URL for results page, or just want to bookmark that URL to re-run the test later) I get a 404 Error page, not expected re-run of test for the original site URL which is encoded in that checker URL

In terms of tested behaviours:

Worst and reported issue is IE v11 on Windows 8.1 I get 404 Error page behaviour (See screenshot).

In Chrome v43 I don't get a 404, but also don't get hoped auto-resubmit of pre-set URL, just redirect to mobile checker homepage.
Since last testing Firefox v38 looks like checker is broken? With standard URL submit not working and large horizontal scrollbar/off-right content problem. If however trying to go to results page URL Firefox gives "Cannot GET /undefined?url=http%3A%2F%2Fwww.w3c.org&profile=default" error message on an otherwise blank screen.


gif playing ghosting when using Image.network for some gif url

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
The gif url is 'https://cos.ap-shanghai.myqcloud.com/caae-shanghai-007-sharedv4-02-1303031839/7721-1400826961/dc46-100136408/ec590906958dad92f68e4d837d1e06fa.gif?imageMogr2/&imageView2/3/w/198/h/237', which  can cause the playing problem.
[✓] Flutter (Channel stable, 3.10.5, on macOS 13.5.1 22G90 darwin-arm64, locale
    zh-Hans-CN)
    • Flutter version 3.10.5 on channel stable at /Users/bk/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 796c8ef792 (4 months ago), 2023-06-13 15:51:02 -0700
    • Engine revision 45f6e00911
    • Dart version 3.0.5
    • DevTools version 2.23.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/bk/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/bk/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

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

[✓] Android Studio (version 2022.3)
    • 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
      17.0.6+0-17.0.6b829.9-10027231)

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.5.1 22G90 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 117.0.5938.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Expected results
I hope the gif url loaded same with its original file

Actual results
play ghosting
Code sample

   @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: Image.network(
              'https://cos.ap-shanghai.myqcloud.com/caae-shanghai-007-sharedv4-02-1303031839/7721-1400826961/dc46-100136408/ec590906958dad92f68e4d837d1e06fa.gif?imageMogr2/&imageView2/3/w/198/h/237')),
    );
  }

Screenshots or Video
https://github.com/flutter/flutter/assets/97607972/befa2b6f-8655-4196-8dc6-f0397719e353

Hi @Codersdg. Thanks for filing this. I can't seem to reproduce this on the latest versions of Flutter. Are you able to check this on the latest versions of Flutter? Can you share the output of your flutter doctor -v?
untitled.webm
flutter doctor -v

[✓] Flutter (Channel stable, 3.13.5, on macOS 13.0 22A380 darwin-arm64, locale
    en-NG)
    • Flutter version 3.13.5 on channel stable at
      /Users/damilolaalimi/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 12fccda598 (6 days ago), 2023-09-19 13:56:11 -0700
    • Engine revision bd986c5ed2
    • Dart version 3.1.2
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/damilolaalimi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/damilolaalimi/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

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

[✓] Android Studio (version 2022.2)
    • 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
      17.0.6+0-17.0.6b802.4-9586694)

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

[✓] Connected device (5 available)
    • sdk gphone64 arm64 (mobile)     • emulator-5554                        •
      android-arm64  • Android 14 (API 34) (emulator)
    • iPhone 14 Pro Max (mobile)      • BB55E997-7F31-462D-B3B1-6B177D9B40C7 •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPad (10th generation) (mobile) • 5B1DA2B3-69EC-435B-95F8-550B7F3A9FBB •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)                 • macos                                •
      darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)                    • chrome                               •
      web-javascript • Google Chrome 116.0.5845.187

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Hi @Codersdg. Thanks for filing this. I can't seem to reproduce this on the latest versions of Flutter. Are you able to check this on the latest versions of Flutter? Can you share the output of your flutter doctor -v?
untitled.webm
Code Sample
flutter doctor -v
[✓] Flutter (Channel stable, 3.13.5, on macOS 13.0 22A380 darwin-arm64, locale
    en-NG)
    • Flutter version 3.13.5 on channel stable at
      /Users/damilolaalimi/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 12fccda598 (6 days ago), 2023-09-19 13:56:11 -0700
    • Engine revision bd986c5ed2
    • Dart version 3.1.2
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/damilolaalimi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/damilolaalimi/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

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

[✓] Android Studio (version 2022.2)
    • 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
      17.0.6+0-17.0.6b802.4-9586694)

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

[✓] Connected device (5 available)
    • sdk gphone64 arm64 (mobile)     • emulator-5554                        •
      android-arm64  • Android 14 (API 34) (emulator)
    • iPhone 14 Pro Max (mobile)      • BB55E997-7F31-462D-B3B1-6B177D9B40C7 •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPad (10th generation) (mobile) • 5B1DA2B3-69EC-435B-95F8-550B7F3A9FBB •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)                 • macos                                •
      darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)                    • chrome                               •
      web-javascript • Google Chrome 116.0.5845.187

[✓] Network resources
    • All expected network resources are available.

• No issues found!

My flutter version is 3.10.5, I have updated the info on reproudce step.

Hi @Codersdg. Thanks for filing this. I can't seem to reproduce this on the latest versions of Flutter. Are you able to check this on the latest versions of Flutter? Can you share the output of your flutter doctor -v?
untitled.webm
Code Sample
flutter doctor -v

The lastest flutter version works for me, thanks.


Fix bounds checking of HTTP status codes in fetchExchange

Fixes #341.

Tests pass on my machine and those failures don't look at all related to my changes.  @parkerziegler any idea?

@isker can you rebase your branch off master? I believe this is related to some of the changes around urql's Dev Tools extension and the meta property that's added to incoming requests. Ensure you have this commit in your history – you'll see I updated the snapshots there. Once we get Phil's new Dev Tools merged in this should reconcile all of the issues around these snapshots.

That fixed it.


wrong type in stubs (machine.pyi -> readline())

When playing around with UART on the pico I noticed that UART.readline() returns a 'bytes' object (or None) instead of a String.
VSCode consequently gives an error when calling .decode() on the returnvalue.
pseudocode:
device = UART(0, 9600)
rec = device.readline()
if rec is None: continue
else: rec.decode()                <- 'Cannot access member "decode" for type "str"'

@jcernato Ok, i've tested it on my machine at all sems working as expected.
import machine

u = machine.UART(0, 115200)
u.readline()

Also the file you mentioned machine.pyi contains str|None as return type for UART.readline().
Can you please check your extension, vscode and Stub version. You can get the version of your stubs by checking the file inside your workspace > .vscode > Pico-W-Stub called version.json

OK, I just figured the issue is a little more subtle as the return type of readline() depends on the class the method is bound to.
BTW this is not micropython specific but a general python thing and the following example code was executed on my ubuntu host machine but works identically on the pico:
Reading a file (TextIOWrapper):

.>>> f = open('/tmp/testfile', 'r')
.>>> type(f.readline())
<class 'str'>

Reading from (Serial):

.>>> import serial
.>>> s = serial.Serial('/dev/ttyACM0', 115200)
.>>> type(s.readline())
<class 'bytes'>

The io.pyi (~/.vscode/extensions/ms-python.vscode-pylance-2022.10.10/dist/typeshed-fallback/stdlib/io.pyi on my machine) handles this correctly but I am not acquainted enough with vscode stubs to understand how it does it.
machine.pyi should also be able to handle different return types.


UPSTREAM: distribution/distribution 4c1561e Fix runaway allocation on…

… /v2/_catalog
Introduced a Catalog entry in the configuration struct. With it, it's possible to control the maximum amount of entries returned by /v2/catalog (GetCatalog in registry/handlers/catalog.go).
It's set to a default value of 1000.
GetCatalog returns 100 entries by default if no n is provided. When provided it will be validated to be between 0 and MaxEntries defined in Configuration. When n is outside the aforementioned boundary, an error response is returned.
GetCatalog now handles n=0 gracefully with an empty response as well.

/lgtm


ros: 1.12.3-0 in 'jade/distribution.yaml' [bloom]

Increasing version of package(s) in repository ros to 1.12.3-0:

upstream repository: https://github.com/ros/ros.git
release repository: https://github.com/ros-gbp/ros-release.git
distro file: jade/distribution.yaml
bloom version: 0.5.20
previous version for package: 1.12.2-0

mk

No changes

rosbash
* fix roslaunch completion if path contains white spaces (ros/ros_comm#658 <https://github.com/ros/ros_comm/issues/658>)
* add rosconsole tab completion for bash (#86 <https://github.com/ros/ros/pull/86>)
* use --first-only option when calling catkin_find (#83 <https://github.com/ros/ros/issues/83>)

rosboost_cfg

No changes

rosbuild
* fix rosbuild with newer ld versions (#87 <https://github.com/ros/ros/pull/87>)

rosclean

No changes

roscreate

No changes

roslang

No changes

roslib

No changes

rosmake

No changes

rosunit

No changes

Waiting for other releases...


Tooltips sometimes don't display

Hard to determine exactly what causes it, but in some situations, the tooltip doesn't show up and you have to move off of the element and back on again. It seems to happen more frequently right after the app startup and if you were just hovering over something else.

If you transition directly from one element with a tooltip to another (with no gap in between, like with struct field names) and HoverMaxPix is set to a higher value like 50, it will keep displaying the old tooltip. This is a separate problem, but it could be related.


python3Packages.pycparser: add python >= 3.8 check

Description of changes

Add check for python >= 3.8

ZHF: https://github.com/NixOS/nixpkgs/issues/309482

https://hydra.nixos.org/build/257591949

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

[ ] sandbox = relaxed
[ ] 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

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 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.

Result of nixpkgs-review pr 309703 run on x86_64-linux 1


The new version does not support calls from Xiaomi and Huawei devices, while the old kamailio  version 5.3 supports them ！

Hello buddy:
I previously used the IMS cfg files corresponding to Kamailio version 5.3, which could handle VoLTE calls between Xiaomi and Huawei phones. However, with the latest IMS cfg files and the Kamailio version from the Dockerfile, I found that calls between Huawei and Xiaomi devices are not working anymore. I have sent you the packet capture data. Could you please help me take a look and see if there are any abnormalities? Thank you.

As shown in the figure below, I used the image made by Kamailio 5.3 based on this prompt；This version of VoLte is  OK

0517-no-mmtel-hw-2-xiaomi-invite-k-1829.pcap.zip

With the latest cfg and image, VoLTE is failing; other environments like EPC, base stations, and phones remain unchanged.

0517-no-mmtel-hw-2-xiaomi-invite-1726.pcap.zip

Please attach the pcap so that I can take a look.

@Helloworld1668 Have you modified the rtp configuration file by any chance?
In 0517-no-mmtel-hw-2-xiaomi-invite-1726.pcap.zip, I see that the RTP ports are changing from packet 1147 to packet 1192 which is sent to the UE. As a result of this the ports in the packet filters sent to UE in packet 1386 are wrong resulting in 580 precondition failure. Hence, call is failing.


Simplify reporters

This change will make easier to handle multiple instances of the same rule.

Warnings

:warning:
It looks like this PR contains functional changes without a corresponding test.

  Generated by :no_entry_sign: dangerJS against 37d319ec6202a6754a56584cc0f8bee5a1877298


Warranty Lookup - based on vendor API?

It would be handy that devices would be added with their correct warranty period.
There are several API's available for this part. Maybe a good idea to include it in the agent?
E.g.:
Dell: https://techdirect.dell.com/portal/AboutAPIs.aspx
HP: https://developers.hp.com/hp-client-management/doc/device-warranty
Lenovo: http://supportapi.lenovo.com/Documentation/Index.html
Cisco: https://developer.cisco.com/docs/support-apis/#!serial-number-to-information/cisco-serial-number-to-information-api-reference
See also #https://github.com/snipe/snipe-it/issues/7326
Personally I would be helped with the HP warranty check, but other users might benefit from other.

+1 please do this!!

+1


Fix panic on atmos terraform providers lock

what
The following command atmos terraform providers lock foo --stack bar resulted in a panic message like this.

and after

why

The panic shouldn't be shown instead put the check for not nil map assignemnet.
Closes #794

references
Link to the ticket - https://linear.app/cloudposse/issue/DEV-2767/panic-on-atmos-terraform-providers-lock

Summary by CodeRabbit
Summary by CodeRabbit

Bug Fixes

Improved error handling for component and stack processing, providing clearer error messages.
Ensured robust handling of ComponentSection to prevent nil pointer dereferences.

New Features

Introduced a store configuration management feature, enhancing the CLI configuration initialization.
Added support for AWS SSM Parameter Store and in-memory storage options.

Refactor

Updated function signatures to improve data integrity and processing logic.
Streamlined the invocation of related functions for better context management.
Enhanced the structure of YAML function processing for improved readability and maintainability.

@Listener430 looks like a bad merge. Can no longer see you contributions to this PR.


New variable for margin-bottom

When the font size and line height are very large, the bottom margin for p/ul elements are too small.
For example, when the font-size is 17px and line-height is 1.75em (~30px), the calculated bottom margin is 15px.
Is it possible to create a new variable for the bottom margin for p, ul, ol, table...?

We won't be adding any more variables to v3 I think. v3.3.5 turned out bigger than I liked and we have to stay focused on v4, which will see some improvements around this area.


Bug: this.setState is not a function

Repro steps:

For date control, enter an invalid date (01/32/2008)
Error coming: this.setState is not a function

Tested with version 3.0.8


loading dds files as 3d textures

Not much of an issue, but rather a feature request.
I've attached a quick patch to support loading dds files and using them as 3d textures. Since I'm not familiar with the API, this is nothing more than a hack. However, It would be great though, if one of the devs could add proper loading and 3d texture support :).
Reading dds files is done using https://github.com/paroj/nv_dds.
Thanks !
3dtex.zip

Hey! Thank you so much for this, never heard of nv_dds library. Could you maybe open a PR though? I'd love to add this but it's difficult to navigate the diff provided in your patch .zip so a PR would be awesome!

@dfranx

Could you maybe open a PR though?

Well, just did that, though many mode mods had to be done wot compile in ubuntu 18.04 ;).
====
Again, this is just a very basic hack, adding support for just a subset of what that dds format can represent.
Thanks for looking into this !

Loading 3D (and 2D) textures from .dds files has been added to SHADERed v1.5. Thank you so much for suggestion!