redmine fails to start after putting redmine_tweaks into plugins directory.

I am using Redmine 3.2.4. Here is log.
Initializing logdir...
Initializing datadir...
Symlinking dotfiles...
Installing configuration templates...
Configuring redmine...
Configuring redmine::database
Configuring redmine::unicorn...
Configuring redmine::secret_token...
Generating a session token...
Note:
All old sessions will become invalid.
Please specify the REDMINE_SECRET_TOKEN parameter for persistence.
SHOULD be defined if you have a load-balancing Redmine cluster.
Configuring redmine::max_concurrent_ajax_uploads...
Configuring redmine::sudo_mode...
Configuring redmine::autologin_cookie...
Configuring redmine::email_delivery...
Configuring redmine::incoming_email...
Configuring redmine::backups...
Configuring nginx...
Configuring nginx::redmine...
Installing plugins...
Installing gems required by plugins...
Migrating plugins. Please be patient, this could take a while...
rake aborted!
NoMethodError: undefined method =~' for #<Pathname:0x00000005950b00> /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/deface-1.0.2/lib/deface/railtie.rb:50:in block (3 levels) in class:Railtie'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/deface-1.0.2/lib/deface/railtie.rb:50:in reject!' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/deface-1.0.2/lib/deface/railtie.rb:50:in block (2 levels) in class:Railtie'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/deface-1.0.2/lib/deface/railtie.rb:48:in each' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/deface-1.0.2/lib/deface/railtie.rb:48:in block in class:Railtie'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:30:in instance_exec' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:30:in run'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:55:in block in run_initializers' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in each'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in tsort_each_child' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in each'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in tsort_each_child' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in each'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in tsort_each_child' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in each'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in tsort_each_child' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in each'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in tsort_each_child' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in each'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in tsort_each_child' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in each'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:44:in tsort_each_child' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/initializable.rb:54:in run_initializers'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/application.rb:352:in initialize!' /home/redmine/redmine/config/environment.rb:14:in <top (required)>'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in require' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in require'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:274:in block in require' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:240:in load_dependency'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:274:in require' /home/redmine/redmine/plugins/a_common_libs/lib/tasks/saas.rake:1:in <top (required)>'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:268:in load' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:268:in block in load'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:240:in load_dependency' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:268:in load'
/home/redmine/redmine/lib/tasks/redmine.rake:186:in block in <top (required)>' /home/redmine/redmine/lib/tasks/redmine.rake:186:in each'
/home/redmine/redmine/lib/tasks/redmine.rake:186:in <top (required)>' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:268:in load'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:268:in block in load' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:240:in load_dependency'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:268:in load' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/engine.rb:658:in block in run_tasks_blocks'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/engine.rb:658:in each' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/engine.rb:658:in run_tasks_blocks'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/application.rb:452:in run_tasks_blocks' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/engine.rb:453:in load_tasks'
/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/railtie.rb:194:in public_send' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/railties-<IP_ADDRESS>/lib/rails/railtie.rb:194:in method_missing'
/home/redmine/redmine/Rakefile:7:in <top (required)>' /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/rake-11.3.0/exe/rake:27:in <top (required)>'
(See full trace by running task with --trace)

Looks like it is plugins conflict
See this

i close this please feel free to reopen if error still exists


Allow for parsing of error status codes from non-http response errors.

Describe the feature
Hey there 👋
I'm an Apollo Client maintainer. I'd like to start a discussion in regards to error handling when using Apollo Client with Nuxt/h3 and see if we can collaborate on a solution.
We recently had this issue opened in our repo noting that network errors thrown by Apollo Client aren't forwarding the status code to h3's underlying H3Error due to how the status code is parsed in h3's error creation functions. It appears createError expects a statusCode property in order to set this on the H3Error instance. Unfortunately this doesn't integrate well with Apollo Client because Apollo Client wraps all errors in its own ApolloError instance. The status code is lost since the status code is instead found in error.networkError.statusCode.
I'd love to contribute a way to allow for these libraries to work better together. Unfortunately we are stuck with this error structure for the foreseeable future and we'd like to avoid adding a statusCode property to ApolloError itself, especially since Apollo Client's core aims to be framework agnostic.
One potential solution is that we could add a cause from ApolloError to the original error. With this perhaps createError could try to parse status/statusCode from error.cause if its available?
I'd love to get your thoughts on this! At the very least, perhaps a recommendation I could take back to the original issue would be useful. I'll be honest, I'm pretty unfamiliar with Nuxt/h3, so any help would be appreciated. Thanks!
Additional information

[X] Would you be willing to help implement this feature?

Hi dear @jerelmiller sorry for late reply.

One potential solution is that we could add a cause from ApolloError to the original error. With this perhaps createError could try to parse status/statusCode from error.cause if its available?

This sound a good idea if cause.statusCode is available this way also h3 does not needs to add framework specific logic.

Hey @pi0 no problem! Thanks for the reply!
Glad to hear this idea is on the right track! I've got some priorities I need to get to this week, but I'm hoping I can contribute a PR for this in h3 sometime soon.
@phryneas opened https://github.com/apollographql/apollo-client/pull/11902 on our end which we are hoping to land in the next patch or two. I look forward to moving this forward!


Don't allow calendar drag if not permitted to create reservation

Will fix as part of new calendar system


Running generate with later versions of NodeJS breaks

Problem is caused by fs.writeFile callback.

Resolved in v1.5.2


fix: cast unknown to any before destructuring

Accessing a property of error causes an error, as it is typed as unknown.
A minimal reproduction of the type problem can be found here, and more details about how and why this was changed is here.

Casting this to an any solved the problem.

Thanks for the report, I've included index.d.ts in 0.2.2 so there shouldn't be type errors in other project.


Issue with ESM and CJS types exports

package.json - has issues regarding ESM and CJS support.
This problem usually happens when a library that includes both a CJS and ESM implementation attempts to use a single .d.ts types file to represent both, where the package.json has "type": "module", most often in a structure like:
{
  "name": "pkg",
  "type": "module",
  "exports": {
    ".": {
      "types": "./index.d.ts",
      "import": "./index.js",
      "require": "./index.cjs"
    }
  }
}

If they use import or export at the top level—they must represent exactly one JavaScript file. They especially cannot represent JavaScript files of two different module formats. The example above needs to add a .d.cts file to represent the .cjs file, at which point the package.json can be rewritten as:
{
"name": "pkg",
"type": "module",
"exports": {
".": {
"import": {
"types": "./index.d.ts",
"default": "./index.js"
},
"require": {
"types": "./index.d.cts",
"default": "./index.cjs"
}
}
}
}
The qrcode package is using rollup to build both CJS and EMS modules, there is a known issue with rollup regarding this and possible workaround:
https://github.com/rollup/plugins/pull/1782
Reference to cause and the potential fix:
https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseESM.md

Fixed in v4.1.9


fix: build PDF with Weasyprint 53

This patch is from @kitterma, i'm just forwarding it from https://trac.ietf.org/trac/xml2rfc/ticket/696 (it's also at https://bugs.debian.org/1001824)
Weasyprint 53 and later no longer use cairo and pango, so xml2rfc tests for PDF generation capability need updating.  Also, it appears that test_text_ content is obsolete with the new Weasyprint.  The test fails even though PDF generation succeeds.
On debian and debian-derived systems, the suggestions that remain in run.py when weasyprint isn't available are rather over-complicated,but debian can continue to patch in more streamlined suggestions for its distribution.

@dkg, @kitterma, Thank you for the PR and apologies for taking long to reply.
Because this change can affect the PDF output, we will have to regenerate a few RFCs to compare and discuss with RPC.
I'll arrange this.

Closing this PR in favour of #802.
weasyprint 53+ changes required further changes to the test suite.
Thank you for your support.


Some gallery plots not included in their pages

Not all gallery pages currently include an image of the plot generated by their code. All items still have their respective images on the main gallery page. I haven't found any examples where only a subset of a page's images are missing.
Examples:

Quickplot of a 2d cube on a map (both plots missing)
Multi-line temperature profile plot

The new Read The Docs style documentation has resolved this issue.
See https://scitools-iris.readthedocs.io/en/latest/generated/gallery/index.html.  Note this is the latest, this points to master.  When there is a release for Iris there will also be a stable release and a tagged release too.
I think we can close this issue now?

I can confirm that this appears to be solved, thanks @tkknight!


Numpy2

It fails because it relies on easyscience, which also has a few np.Inf instead of np.inf, specifically in the __init__ of  Parameter  in Variable.py.


Optimizer: Simplify Expressions

Is your feature request related to a problem?
many expressions can be simplified before execution
ex:
where year in (2000, 2000+1, 2000+2)

Since these are constant values, we can optimize them into a literal value equivalent to
where year in (2000, 2001, 2002)

Describe the solution you'd like
simplify expressions rule similar to other data engines
Describe alternatives you've considered
No response
Additional Context

datafusion implementation
polars

Would you like to implement a fix?
No

duplicate of https://github.com/Eventual-Inc/Daft/issues/2422


Refactor open date range to use std::optional

Use std::nullopt for open date range instead of TransactionFilterProxy::MIN_DATE and TransactionFilterProxy::MAX_DATE.

Concept ACK

nit: include <optional> to the src/qt/transactionview.cpp as std::nullopt are use there.


Introduce new test routine based on rate controlled requests

I intend to add a go.mod file to this command specifically, but since this code depends on changes in my other open PR, I need to wait for it to be merged to pick up the proper "psuedo-version" for the outer mctester code.

I added module support since I think it's a great practice and it actually simplifies the way imports are managed. Another thing to consider is "vendoring" (storing all dependencies within a vendor directory in this repo so this application become self-contained: https://blog.gopheracademy.com/advent-2015/vendor-folder/).
It's a fairly common practice and trivial to setup (go mod vendor in parent directory) but it's by no means necessary.


Valid CIDR errors as invalid for Allowed Networks

Describe the bug
As it says on the tin, entering a valid cider of "<IP_ADDRESS>/24" gets flagged as invalid and does not save.
To Reproduce
Steps to reproduce the behavior:

Go to System -> API
Click on Display Advanced
Scroll down to Allowed Networks
Enter "<IP_ADDRESS>/24"
Click Save
See error

Expected behavior
I expect it to allow <IP_ADDRESS>/24 as a valid CIDR
Screenshots or Response
If applicable, add screenshots or response data to help explain your problem.
pfSense Version & Package Version:

pfSense Version: 2.7.2-RELEASE
Package Version [e.g. v1.7.3]

Affected Endpoints:

N/A

Additional context
It's worth noting that other /24s such as <IP_ADDRESS>/24 work just fine.

Hmm I'm currently able to save that CIDR on v1.7.3 without issue. Can you provide the error message you receive when you try to save?
Thanks!

Strangely, I tried again this afternoon to reproduce the error, and it magically worked. I have no idea what was wrong, all other settings remain untouched. I guess we can close this one, sorry.

I dug the error out of my history, and it appears upon looking at it again some whitespace snuck into the field:
"Access list entry '<IP_ADDRESS>/24 ' is not a valid IPv4 or IPv6 CIDR."

Ah that'd be expected behavior at the moment then. Excess whitespace would cause the validation to fail since the networks are separated by single spaces. This could probably use some extra validation to automatically remove excess whitespace and make the field more fault tolerant. I'll keep this open as a potential enhancement.
Thanks!


How to sample y and compute log_prob using trained neural likelihood

Hi,
I want to sample y and compute log_prob using trained neural likelihood for SLCP example as follow:
theta1 = prior_fn().sample(seed=jr.PRNGKey(2),sample_shape=(1,))
print(theta1)

y_observed = simulator_fn(jr.PRNGKey(2), theta1)
print(y_observed)

import haiku as hk
rng_key_seq = hk.PRNGSequence(0)

theta_t, _ = ravel_pytree(theta1)
theta_tt = jnp.tile(theta_t,[y_observed.shape[0], 1])
print(theta_tt.shape)

lp = neural_network.apply(params_t, None, method="log_prob", y=y_observed, x=theta_tt)
print(lp)

sample_y = neural_network.apply(params_t, next(rng_key_seq), method="sample",sample_shape=(2000,) ,
                                x=jnp.ones((2000, 1))*theta_tt)
print(sample_y)

The lp is ok, but  there is an error when computing sample_y:
TypeError: Cannot concatenate arrays with shapes that differ in dimensions other than the one being concatenated: concatenating along dimension 0 for shapes (2000, 5), (2000, 3).
I do not see example that samples from trained neural likelihood function, can you give me some hints?
Thanks!

The error is in the class of MaskedAutoregressiveInferenceFunnel:
    def _forward_and_likelihood_contribution(self, z, x=None, **kwargs):
        z_condition = z
        if x is not None:
            z_condition = jnp.concatenate([z, x], axis=-1)
        y_minus, jac_det = self.decoder(z_condition).sample_and_log_prob(
            seed=hk.next_rng_key()
        )

        y_cond = y_minus
        if x is not None:
            y_cond = jnp.concatenate([y_cond, x], axis=-1)
        # TODO(simon): need to sort the indexes correctly (?)
        # TODO(simon): remote the conditioning here?
        y_plus, lc = self._inner_bijector().forward_and_log_det(z, y_cond)

        y = jnp.concatenate([y_plus, y_minus])
        return y, lc + jac_det

y = jnp.concatenate([y_plus, y_minus]) should be y = jnp.concatenate([y_plus, y_minus],axis=1)
Then the error disapears.

Jice, thanks for the report. I will look at it and fix it as soon as my time allows it.


smtp_listen to take multiple addresses

It should be possible to pass multiple addresses to smtp_listen to listen on multiple addresses (e.g. IPv4 and IPv6, or some but not all of the system's addresses)

I don't know how to remove this label but it still needs fixing.

remove stale


Moving of React Unit Tests into ReactWebPack.CoreRC2

Hi to all watchers of this project,
If you took a clone of this project before today (6th July 2016) then you would have had a separate project called ReactTests which contained the Unit Tests. Having created a lot more unit tests I found that using a separate project for Unit Tests could cause multiple copies of React errors.
I have therefore moved the Unit Tests into the project that contains the React code they are testing, i.e. ReactWebPack.CoreRC2.
If you are interested in Unit Testing then you might want to take a new clone of this project. You can also find out more about the Unit Test setup in section 4c. Notes about the Unit Tests of the top README file. I also have lots of articles around these samples (two on Unit Testing) on my blog site http://www.thereformedprogrammer.net/ .
PS. I have also added a new section to the README file called Using these templates to create your own React.js application. This should be useful if you want to create your own ASP.NET solution by copying the build/test files in these samples.

I think everyone has seen this update about the change to ReactTests being moved into ReactWebPack.CoreRC2 so I am clsoing this issue.


KDE Connect download file 404 error

Bug Report
Package Name: KDE Connect
Current Behaviour
404 error when fetching file for installation.
Expected Behaviour
Use a correct link for the file.
Additional context/output
Output when installing build 843:
    The remote server returned an error: (404) Not Found.
    URL https://binary-factory.kde.org/view/Windows%2064-bit/job/kdeconnect-
    kde_Release_win64/lastSuccessfulBuild/artifact/kdeconnect-kde-21.12.1-843-windows-msvc2019_64-cl.7z is not valid

KDE Connect versions (e.g. 21.12.1-843) have two parts: the version (21.12.1) and what looks like an incrementing build number (843). As far as I can tell, looking at the KDE binary site, builds with the same version seem to be based off the same commit. They also seem to make a new build every day, at 20:25 (UTC?). Downloads seem to be available for the past 5 days' builds.
The problem comes that the .../lastSuccessfulBuild/... url used in the manifest only keeps the most recently generated files. This means that for almost 4 hours, between the KDE CI running, and the Scoop autoupdate running, the url in the manifest is wrong, giving the 404 error. This could be avoided if the otherwise identical url, based on the actual build number (e.g. .../843/...). This would also allow people to install an older version if necessary (as long as the current version is less than 5 days old).
Possible Solution
I've not written checkver and autoupdate manifest sections before, and am not currently in a position to test things right now. Still, based on the Scoop documentation, I think a working solution might look a little like this:
    "checkver": {
        "url": "https://binary-factory.kde.org/view/Windows%2064-bit/job/kdeconnect-kde_Release_win64/",
        "regex": "kdeconnect-kde-(?<version>[\\d.]+)-(?<build>[\\d]+)-windows-msvc(?<vc>\\d+)_64-cl\\.7z</a>",
        "replace": "${version}-${build}"
    },
    "autoupdate": {
        "architecture": {
            "64bit": {
                "url": "https://binary-factory.kde.org/view/Windows%2064-bit/job/kdeconnect-kde_Release_win64/$matchBuild/artifact/kdeconnect-kde-$version-windows-msvc$matchVc_64-cl.7z"
            }
        },
        "hash": {
            "url": "$url.sha256",
            "regex": "$sha256"
        }
    }

This proposal changes the regex to match the version and build separately, then recombines them in the new replace property. It also uses the matched build number in the url, to actually solve the problem.
Note: If KDE kept their files around for longer than 5 days, I would also suggest dropping the build number from the tracked version string. This would avoid Scoop suggesting people install daily rebuilds of the same thing. If there's a way for Scoop autoupdate to update the url without updating the apparent version that might be possible... otherwise the old url would become unusable after 5 days. Or perhaps KDE do keep them around somewhere, and I just haven't found them! But for now, although the proposed solution doesn't make the autoupdate any less spammy hopefully it will it least stop it 404ing.
System details
Windows version: 10
OS architecture: 64bit
PowerShell version: 5.1.19041.1320
Additional software: N/A
Scoop Configuration

//# N/A

Fixed by https://github.com/ScoopInstaller/Extras/commit/b2d2e3a04d85d096a3f357bf31122b78d02ad5c1
KDE's binary factory removes older releases, and Scoop renews the URL every 4 hours, so this got fixed automatically.

I know: that's exactly my point! (In fact, I stayed up late yesterday exactly because I knew, having diagnosed the problem, that the url would soon be updated and I would be able to install it).
But that doesn't change the fact that, for exactly the reasons you gave (and which I also laid out in my issue), as it stands KDE Connect is not installable for about 3½ hours every day, between the hours of about 20:25 and 00:00. If this were 3½ hours every month or every week I'd say it's not much of an issue, but every day seems a real problem.
Furthermore, I believe this problem is entirely unnecessary: although I'm not experience in writing manifests, it looks to me like a small tweak to the checkver and autoupdate sections will fix this. I have proposed a tweak I think will work.

I see.
@issaclin32 contributed the manifest for KDE Connect, so perhaps it would be good to ask him.

Alright, thanks for following up on this so quickly!

@DanielSherlock I have applied your proposed fix in https://github.com/ScoopInstaller/Extras/commit/99e14f128a18d1ec34e7cd328dbef82fda4d0f42. Thank you so much for reporting and testing it.


Fixed a minor documentation typo

@cla-bot[bot] check

Hi @alopatindev, we require contributors to sign our Contributor License Agreement, and we don't have yours on file. In order for us to review and merge your code, please access https://www.artima.com/cla/choose-type to sign our Contributor License Agreement. Your effort is highly appreciated. Thank you.

Okay, done.

@cla-bot[bot] check


Consider forcing Uni return types on all Session opening methods

I've got burned once again by chaining the wrong style of Session opening.
This is what I had as a general helper:
 @Inject
Mutiny.SessionFactory sf;

public <T> Uni<T> inSession(Function<Mutiny.Session, Uni<T>> work) {
    final Mutiny.Session session = sf.openSession();
    return sf.withSession( work ).eventually( session::close );
}

(This is very similar to the withSession helper offered on MutinySessionImpl, but I was needing to intentionally side-step the use of the org.hibernate.reactive.context.Context - details not relevant now)
When I'm passing as work argument a trivial work which does a single operation on the session, this works as expected.
But if I use such an helper method with a slightly less trivial work, such as needing to load more than one entity, the second load operation is likely going to hit the infamous error we already know quite well:
Caused by: java.lang.IllegalStateException: Session/EntityManager is closed
	at org.hibernate.internal.AbstractSharedSessionContract.checkOpen(AbstractSharedSessionContract.java:393)
	at org.hibernate.engine.spi.SharedSessionContractImplementor.checkOpen(SharedSessionContractImplementor.java:148)
	at org.hibernate.reactive.session.impl.ReactiveSessionImpl.checkOpen(ReactiveSessionImpl.java:1556)
	at org.hibernate.internal.AbstractSharedSessionContract.checkOpenOrWaitingForAutoClose(AbstractSharedSessionContract.java:399)

In this case, I am sure that this was all run on the same vert.x context (and the same thread); with @DavideD 's help we figured out the problem is that the Mutiny.Session instance opened this way is not fit to be used more than once, because the composition of multiple operations on it can't guarantee that the session proxy is being initialized once and atomically.
I would propose to remove the Session openSession(); method and its siblings dealing with tenant-id and stateless sessions, to be replaced with methods which return the Uni<Session>, Uni<StatelessSession>, etc...
Impact:

it would seem the Hibernate Reactive code would get simpler
most Quarkus integration code would also benefit from it
Panache Reactive would also be simpler, as it is more common to require a Uni<Session> - the only exception being the boolean isPersistent(Object entity)  method which Panache Reactive exposes, but we can either deal with that by using the context, or update the signature to also become a reactive method.

cc/ @gavinking I'd be keen to hear you opinion on this one.

I'm not expecting propagation, I'm passing the Session instance explicitly to the functions.
My only error was in expecting that I could actually use such a Session for composite operations, such as loading multiple entities with individual statements:

Then I just don't understand your code. You open one session, then you do the work in a whole different session, then you close the first session.
I don't understand the logic there.

We document fairly clearly

Well, TBH, perhaps it's not that well documented...

I think @Sanne's example was supposed to be:
public <T> Uni<T> inSession(Function<Mutiny.Session, Uni<T>> work) {
    final Mutiny.Session session = sf.openSession();
    return work.apply(session).eventually( session::close );
}

Aaah OK that makes more sense.

the problem is that the Mutiny.Session instance opened this way is not fit to be used more than once, because the composition of multiple operations on it can't guarantee that the session proxy is being initialized once and atomically.

Well if that's the case then that would be a bug.
But to be really honest I'm simply having some trouble believing you Sanne. Every time someone has complained about the proxy, it has turned out to be misuse of the session. I've stared at that code really hard in the past, and I've always managed to convince myself it's right.

oops yes sorry wrong code example. I've been going back and forth with various experiments.

But to be really honest I'm simply having some trouble believing you Sanne. Every time someone has complained about the proxy, it has turned out to be misuse of the session. I've stared at that code really hard in the past, and I've always managed to convince myself it's right.

I totally understand the feeling, we've had many such cases and most often there was some mistake in the user code, or tricky threading. In this case though while I was 99% sure I was making some mistake, I then asked Davide to help me out as I couldn't figure it out - but this time around my conclusion was that really returning an Uni<Session> would really prevent many similar problems and also simplify the code quite a bit.
Tangentially, but we also concluded that my code was OK  in this case :) And that worries  me a apparently this idea of the connection proxy is making things really tricky. And as I mentioned, all integration code I know of would actually prefer dealing with an Uni.
I guess we should make a test for Hibernate Reactive for you to see, that would simplify the discussion - I can't do that today though.

I mean, this code works perfectly:
	public <T> Uni<T> inSession(Function<Mutiny.Session, Uni<T>> work) {
		final Mutiny.Session session = getMutinySessionFactory().openSession();
		return work.apply(session).eventually( session::close );
	}

	@Test
	public void method(TestContext context) {
		test( context, inSession(
				(s) -> s.persist(new GuineaPig( 5, "Aloi" ))
						.call( () -> s.persist(new GuineaPig( 6, "Pig" )))
						.call( ()-> s.createQuery("from GuineaPig").getResultList() )
		) );
	}

and so I can't imagine how it could break unless you're doing something dodgy with concurrency.

this time around my conclusion was that really returning an Uni<Session> would really prevent many similar problems and also simplify the code quite a bit.

Well if you recall when I made that change last time, everyone rebelled against it and talked me out of it. So I'm kinda wary of going back there.

So, I failed miserably in reproducing the issue in the context of an Hibernate Reactive integration test, but it fails consistently in the benchmark (even without load, it fails on a single call).
The cause seems to be this code in which I need to load a bag of entities by having the set of Ids:
this fails (in the benchmark only) when using the openSession():
public Uni<List<World>> findManaged(Mutiny.Session s, Set<Integer> ids) {
    List<Uni<? extends World>> l = new ArrayList<>(ids.size());
    for (Integer id : ids) {
        l.add(s.find(World.class, id));
    }
    return Uni.join().all(l).andFailFast();
}

The problem seems to be that Uni.join().all(l) will trigger the load of all find operations w/o necessarily waiting for the first one to be completed before initiating the operation of the second: it merely guarantees the composition is completed when each individual operation is completed.
The documentation rightfully points out something related [http://hibernate.org/reactive/documentation/1.0/reference/html_single/#_obtaining_a_reactive_session]
It’s very important to understand that most operations of this interface are non-blocking, and execution of SQL against the database is never performed synchronously. Persistence operations that belong to a single unit of work must be chained by composition within a single reactive stream.

So changing the operation to explicitly chain all ops will work fine:
   public Uni<List<World>> findManaged(Mutiny.Session s, Set<Integer> ids) {
    final List<World> worlds = new ArrayList<>();
    Uni<Void> loopRoot = Uni.createFrom().voidItem();
    for (Integer id : ids) {
        loopRoot = loopRoot.chain( () -> s.find(World.class, id).invoke( word -> worlds.add( word ) ).replaceWithVoid() );
    }
    return loopRoot.map( v -> worlds );
}

So this raises multiple questions:

Is this limitation really ok? I understand the concerns about using the Session "concurrently" but this isn't really concurrency, and it feels like an important element from Reactive programming that we shouldn't be flagging as illegal
Both methods above will work fine if you use the inSession() method rather than the openSession because inSession doesn't require a lazily initialized ProxyConnection.
I really need to figure out why this is straight forward to reproduce in Quarkus but not in the HR codebase.

Well, right, at least as far as I've always understood it, join() isn't threadsafe and this is something that's prohibited.

Unless I'm missing something, this also wouldn't be a problem if openSession would return a Uni<Session>.

Well if you recall when I made that change last time, everyone rebelled against it and talked me out of it. So I'm kinda wary of going back there.

Initially it sounded  nice to have openSession return something that's not reactive, but time and time again these type of methods are causing us problems (see when session.close was non-reactive  for example). And I'm starting to get suspicious every time I see one.
They also require a lot of additional code without any real benefit.
So I wouldn't mind to reconsider our position now that we have more experince.

Well no, I don't think that's right. The connection isn't the only volatile state held by the session; far from it.

Oh, looks like I responded to text you deleted.

I think you guys need to consider that changing the return type of openSession() won't do anything to eliminate this class of bugs. It just makes it much more likely that the user won't notice them, or rather that they'll manifest in a way that's much harder to diagnose. (Concurrent access to session state is going to result in problems that are much less transparent than this one.)

Well, right, at least as far as I've always understood it, join() isn't threadsafe and this is something that's prohibited.

I suppose you're using the term "threadsafe" loosely in this context, in which case I agree with you.. but let me be precise in case we're misunderstanding each other: this is all running on the same, single thread, so the canonical definition of "threadsafe" doesn't really apply.
We might need to clarify some things in the doc.

I think you guys need to consider that changing the return type of openSession() won't do anything to eliminate this class of bugs.

But that's the point I'm raising. IFF there a real problem with using Uni.join().all(l), should we work harder to detect the issue consistently?
As things stand, we only fail hard if you're using the current openSession() implementation as it just so happens that the ProxyConnection will help spotting the problem by failing fast.  We don't really raise any complaint if the sessions are opened in a different way.
On the other hand, IFF we state that using Uni.join().all(l) is "just fine" provided you use the session via the SessionFactory#withSession helper , then it would also work totally fine if we change the openSession contract to return a Uni, getting rid of the ProxyConnection.
There's a third alternative: I have a local POC which adapts the ProxyConnection implementation to deal with it correctly - I'm just unsure about us wanting to go in that direction: if you say this is fundamentally wrong we shouldn't support it.

I suppose you're using the term "threadsafe" loosely

Right.

But that's the point I'm raising. IFF there a real problem with using Uni.join().all(l), should we work harder to detect the issue consistently?

Well, how? We already do the best we can, by checking at the Vert.x context. Apparently that's not good enough to detect the problem in this case, but I don't see what else we could do if Mutiny doesn't expose some sort way to identify the "micro-context".

Ok fair enough.
So the conclusion is that using Uni.join().all(l) (or similar) is not something we want to support? I'm just not 100% clear on why we  shouldn't but I'm happy to take your word on it for now and close this.

Well it's not that I don't want to it's that I have no idea how to.

this would make it work:

https://github.com/hibernate/hibernate-reactive/pull/953

I'm just not sure if we want to :) And what other issues I'm possibly missing.

I don't see how that would fix the generic problem of concurrent access to volatile session state. During every single (nonblocking) database request, the session is in an inconsistent state.
I don't see how you can fix that without having some sort of "transactional" management of the session's internal data structures.

Ok yes I think I understand what you mean, although I'm not sure in practice which scenarious would be problematic; for sure this would work just fine for loading a sequence of trivial entities with no relations among each other (as I was doing here).
So while we agree that multi-threaded access on the same Session is a big no-no, I'm not sure how far we can expect a "reactive programmer" to not issue subsequent requests for data operations wihotout honouring a strict chain of operations - doesn't that defeat the purpose of the model?
As far as I had understood, one of the significant benefits of reactive programming is that it becames unnecessary to explicitly load N items in bulk, as one can just start requesting each of the N iteams one by one and effectively have them returned at a similar total dealy.
IMO this is a big limitation which we should look at better; specifically I'd love to see specific tests leading to inconsistent Session state, so to possibly wrap our head around it in a more concrete way.

It just makes it much more likely that the user won't notice them, or rather that they'll manifest in a way that's much harder to diagnose. (Concurrent access to session state is going to result in problems that are much less transparent than this one.)

I'm not sure how I feel about this. If a user uses withSession, they won't notice this issue anyway. I think I'd prefer a consistent behaviour. It also seems that in some simpler scenarios this might be fine when using withSession but not when using openSession.
Making the signature of the method reactive has also the benefit of simplifying the code and I suspect it will save us some headaches in the future.

It also seems that in some simpler scenarios this might be fine

Nope, it's never fine. It's not fine in regular Hibernate, and it's not fine here.
(There's absolutely nothing in what I've said here that's specific to Reactive, FTR.)

Making the signature of the method reactive has also the benefit of simplifying the code and I suspect it will save us some headaches in the future.

I think the much more relevant question here is: for someone who does want to manage their own reactive Sessions, for example, in some sort of interceptor or something, what is the most convenient API for them.
I'm not quite clear on what the answer to that is.

You mean, for example, what's more convinient between @Inject Session session and @Inject Uni<Session> session?

I'm not quite clear on what the answer to that is.

I'm not entirely sure either, but I have a draft of adapting Quarkus (and Panache Reactive) to deal with @Inject Uni<Session> instead of @Inject Session and it did simplify some code, allowing me to delete several "helpers"

You mean, for example, what's more convenient between @Inject Session session and @Inject Uni<Session> sessionUni?

I mean what's more convenient for someone implementing that sort of injection, for example.

it did simplify some code

What's "it" here.

"it" is having changed the signature in Hibernate Reactive: doing that made the Panache code a bit shorter and better looking.

I expect Uni<Session> to be always easier to implement, for them and for us.
As long as we accept that one cannot do @Inject Session session.


VPN disconnects when switching between WiFi and LTE on phone

we use a personal server and an installed client on different phone models, when the phone connects to the wifi network and then switches to the lte network and vice versa, access to the Internet is lost while the client is connected, what could be the reason for this behavior of the client?

Thanks for reaching out. Is there a specific model or operating system that this is happening on, or is it occurring across both Android and iOS?

Спасибо, что обратились. Это происходит с какой-то конкретной моделью или операционной системой или это происходит как на Android, так и на iOS?

Thanks for the answer, it doesn’t work the same on Android and iOS different phone models. for it to work you need to kill the application from memory and connect again

So it's happening on both Android and iOS. Can you share what OS version(s) you've seen this on and what version(s) of Outline Client you're using? We can ask QA to test on those specific setups to see if we can reproduce the issue here. Thank you!

I use iPhone XR version ios 16.6.1, outline version <IP_ADDRESS> 9468048).
Can I make you a test key from the server for your qa, tell me pls
email to send it?
ср, 20 сент. 2023 г. в 22:36, maddyhof @.***>:

So it's happening on both Android and iOS. Can you share what OS
version(s) you've seen this on and what version(s) of Outline Client you're
using? We can ask QA to test on those specific setups to see if we can
reproduce the issue here. Thank you!
—
Reply to this email directly, view it on GitHub
https://github.com/Jigsaw-Code/outline-client/issues/1706#issuecomment-1728319267,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BCMVUDU7ZM2ONCFZWZUNP2DX3NAUHANCNFSM6AAAAAA4NVPPQ4
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Thanks! We'll try to have QA reproduce it on our own servers but we'll let you know if we want to test with a key from yours. Thanks for offering that. We'll let you know what we learn from QA.

Thank you very much, I'm really looking forward to it.

Hi! Same case on my side.
Outline Server version 1.7.2, Outline iOS Client 1.11.0 (468046)

Thanks @unge77 @dmitriyteteruk for reporting this issue. We have confirmed this bug and have logged it in our internal system.

Hi
Any plans when the fix will be released?


Docusaurus Overhaul

Landing Page
Our landing page yew.rs shows English content no matter what language is selected. Fixed now.
The Japanese/Chinese localization files exist but are placed in out-of-date places.
The landing page use to be a intro.md "documentation", now it's a standalone "page", in docusaurus terms.
The contents in old /website/i18n/<locale>/intro.md are now moved to
/website/i18n/<locale>/docusaurus-plugin-content-pages/index.md
Other

renamed every md suffix to mdx. Actually docusaurus interprets md as mdx already, switching altogether to mdx adds the benefit of IDE support.
fix broken links

there were more than a handful of broken markdown links on the website

tree shake and update docusaurus

stopped using preset and use individual plugins instead because the preset includes some unused plugins (blog/gtag/algoia etc)
updated from beta9 to beta13

add docusaurus ideal image plugin

it sounds great

use SVG and themed image

explored a bit how to do themed images (that adapt to light/dark theme) and changed a png to SVG

delete unused static asset

two images were never used anywhere

Checklist

[ ] I have run cargo make pr-flow
[ ] I have reviewed my own code
[ ] I have added tests

@siku2 can you add /wesite/src/pages -> /website/i18n/<locale>/docusaurus-plugin-content-pages/ mappings on the GitLocalize project? Do the moderators have permission to change them? Can I be a Chinese moderator, please? I'm a native Chinese Speaker.

Why aren't the workflows being run? What happening here? Anyone got any idea?

Why aren't the workflows being run? What happening here? Anyone got any idea?

I am spooked aswell :D

Why aren't the workflows being run? What happening here? Anyone got any idea?

Lets wait untile they push conflict fixes, i may wake up after that :D

@hamza1311 @voidpumpkin I thought I merged master but had a stale master branch locally. 😅 finally did a git fetch today and merged the latest master branch. And the CI passes now.
wooo look at that crispy svg, it even adapts to dark mode!
https://yew-rs--pr2275-try-svg-xakuntxo.web.app/docs/next/concepts/router#nested-router


Cluster creation failed with certificate validation error when using mirror registry with self-signed certificate

What happened:
Failed in validation step during cluster creation due to invalid registry certificate when using self-signed certificate and provided the registryMirrorConfiguration.caCertContent field
Warning: The recommended number of control plane nodes is 3 or 5
Performing setup and validations
✅ Connected to server
✅ Authenticated to vSphere
✅ Datacenter validated
✅ Network validated
✅ Datastore validated
✅ Folder validated
✅ Resource pool validated
✅ Datastore validated
✅ Folder validated
✅ Resource pool validated
✅ Control plane and Workload templates validated
✅ Vsphere Provider setup is valid
❌ Validation failed     {"validation": "create preflight validations pass", "error": "validation failed with 1 errors: invalid registry certificate: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0", "remediation": ""}
Error: validations failed

What you expected to happen:
CA certificate is valid and cluster creation should proceed without any error.
How to reproduce it (as minimally and precisely as possible):
Use registry mirror configuration that has a self-signed certificate and provided the self-signed CA certificate as well in caCertContent field.
Anything else we need to know?:
The CA and server certificate for the registry mirror I was using on harbor was generated using AWS Private CA. When validating server certificate using openssl_client the certificate is valid.
$ openssl s_client -showcerts -connect core.harbor.g4k.io:443 -CAfile ca.crt
CONNECTED(00000003)
depth=1 C = US, O = AWS, OU = Support, ST = Virginia, CN = core.harbor.g4k.io, L = Herndon
verify return:1
depth=0 CN = core.harbor.g4k.io
verify return:1
---
Certificate chain
 0 s:CN = core.harbor.g4k.io
   i:C = US, O = AWS, OU = Support, ST = Virginia, CN = core.harbor.g4k.io, L = Herndon
-----BEGIN CERTIFICATE-----
MIIDtDCCApygAwIBAgIRAMi3uW9C4cli2HqdkIMQ5h4wDQYJKoZIhvcNAQELBQAw
bzELMAkGA1UEBhMCVVMxDDAKBgNVBAoMA0FXUzEQMA4GA1UECwwHU3VwcG9ydDER
MA8GA1UECAwIVmlyZ2luaWExGzAZBgNVBAMMEmNvcmUuaGFyYm9yLmc0ay5pbzEQ
MA4GA1UEBwwHSGVybmRvbjAeFw0yMjA0MTUwNzE2MTJaFw0yMjA3MTQwODE2MTFa
MB0xGzAZBgNVBAMTEmNvcmUuaGFyYm9yLmc0ay5pbzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBALmKpff+Oq2j7eB/P//4fQYGMlJA2FRVdm5NPw956bj2
unU7fMSpTiUpFaavRFpRGOSe1vIvSY8eSvz7yfJinbbilPQpwrEtahTmX/ODIan1
ZC6gkfhXEI5VyW1D2WrB/MVibfYVWDFVMD0a/WdgcAWG+crIpFrmHTd85PH0njdD
0gTg6hFMnFjA1L8W5EmY7KhUU9kk9T4sAaH39zflJ8zJYw5HOd2igIKnic+JRU3o
4eS6bGRplO8Xh3Oqkt9pYkuw2NAKyVAgv8DZT+xItULGBSWGTIDGAWykT2RukzRD
nsS4nwmR6NKHnwggjhxOGHaz5g9Aw2KQN+Qs2se4EbkCAwEAAaOBnDCBmTAdBgNV
HREEFjAUghJjb3JlLmhhcmJvci5nNGsuaW8wCQYDVR0TBAIwADAfBgNVHSMEGDAW
gBRH/XsAGH9MQThp1fs2gNafQkZpLjAdBgNVHQ4EFgQUblCMnuhW3f4yq03Q+R5i
NM21PGAwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAFw5fNgGkeFIyu0MPpKGJCpNDcrlafk5/
6cKobCvktD+DGx5WSV9eBq0YXAVjAwnzwyINzrGkGjk9MP7wEjfidWBq3ifikkd3
eCvPNmUcPBs8N24N1Z1eg3xhGFu3ChSwC6iMXMqhpAl/+AsWtj2XWT4NBPkaTfUq
CMCQRcJ7nbIpAw+Jnl7KazRPhoNsunwdObWsGShUYxUlifsLo2O33hBTPcPh++h4
iHFpK8drjEUobQNYiI4xy7iLpYd3eeF1Mi4IaBb+Fx+DQunJ92muGixNBaE6NPLM
urpjBTLkWf3rGLDUQcC9dagAevL3FuHB9IO9I3SeK7q3XYPAQHcu0Q==
-----END CERTIFICATE-----
---
Server certificate
subject=CN = core.harbor.g4k.io

issuer=C = US, O = AWS, OU = Support, ST = Virginia, CN = core.harbor.g4k.io, L = Herndon

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1512 bytes and written 390 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 37239BC3E9B96819FDF3D11C9A3B5928BDCF6C19A4601A112B97DF85CBD5B3C2
    Session-ID-ctx:
    Resumption PSK: 718C939703429E384CA5B35F03BB7FA5764175AD5D47204CDE4CFC8CA2FA9823E6148822D1995FFD9C5304936180AC4E
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 600 (seconds)
    TLS session ticket:
    0000 - 49 69 21 cf fc 92 de 7f-a1 2e cd 9e da 98 b3 04   Ii!.............
    0010 - 04 f0 b8 ae fd 5f 8d 81-15 e0 e7 bd 4f 68 4e 9f   ....._......OhN.

    Start Time:<PHONE_NUMBER>
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: F8A514F4C064B862294097DACE434F9F45223D821EF448040FA5B1223FB734C7
    Session-ID-ctx:
    Resumption PSK: 0F3153BEC99E57D32CF7C95472D1E694D01F97C064B59D0D05C813E0B5EA1B26A3CD6ABA0E9ED689FCD93D35FC294ED5
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 600 (seconds)
    TLS session ticket:
    0000 - c8 d1 c3 45 b1 73 d3 f8-6f 06 0d ed 16 ae 64 9c   ...E.s..o.....d.
    0010 - 85 00 e7 9f 3d 7e 7d e8-5b 24 1b be a6 94 f1 6c   ....=~}.[$.....l

    Start Time:<PHONE_NUMBER>
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK

It looks to me that the error message was coming from this validation function. I do not believe CA certificate should have sans name and a better way to validate the certificate would be like what golang x509 Certificate.Verify example in which it takes into consideration both CA certificate and server certificate.
I think the test case that was written here is incorrect as the test certificate is the generated server certificate (server.crt) not the CA certificate that signed it. The function should evaluate registryMirrorConfiguration.caCertContent not a certificate that is presented by the server.
I also found out that using a registry with self signed certificate helm template doesn't respect --insecure-skip-tls-verify which causing cillium deployment to fail. A separate issue is opened in helm github page
https://github.com/helm/helm/issues/10868
Environment:

EKS Anywhere Release: v0.8.2

@rimaulana thanks for the awesome bug report! Will look into it and get back to you.

Findings:

We should change the cert validation to either:

Only verify the ca cert format
Retrieve the server cert from the registry endpoint and verify it putting the ca cert in the trusted certs (roots)

We also need to modify the e2e test data to use the ca.crt. Right now is using the server cert, hence why is not failing.


Quick Access behavior when debug is disallowed

Quick Access is a special abstract command which performs the sequence of operations: halt, execute program buffer and resume.  There are several candidates to handle it when debug is disallowed:

Let halt operation pend like other kind of halt.

The debugger needs to reset itself when the QA is issued to a debug-disallowed hart.

QA responds with an error when mdbgen[i] is 0

QA is disallowed for S-mode debugger

QA responds an error when exceed preset timeout
QA responds with an error when hart runs in a debug-disallowed privilege

Hart needs to differentiate hart from QA and other halt

Let me comment on them according to the solution list you proposed:

Unlike a halt request, there is no mechanism to cancel quick access. A pending option will block the debugger, and only a reset can resolve this issue. However, I'm not sure if a reset is an acceptable solution from the debugger's perspective.
This is a simple solution for both the external debugger and hardware, but it limits the quick access use case.
There is extra hardware complexity and a question about how to set the timeout value. It heavily depends on the use case.
Differentiating a halt request and providing an error response from the core perspective will be difficult to implement from a hart perspective.
In summary, I am in favor of the second option due to the fact that the use case of quick access is not clear in my mind for S-mode debuggers.

The TG votes for the second solution. The spec is updated in PR #56


Cannot compile the SASS to CSS

It`s strange, cause I have what I believe are the pre-requisites on my Ubuntu 11.10 box...
libhaml-ruby: 3.0.25-2 (which brings sass)
libcompass-ruby1.8: 0.10.6~dfsg-1 (which brings compass)
ruby1.8: <IP_ADDRESS>2-2 (which brings ruby, of course)
Yet, when I go to the cloned folder ./public/theme/redmine-pepper-theme and try to:
$ compass compile ./sass/application.sass
It does not work... :-( and echos in the console the following:
exists stylesheets
compile sass/application.sass
WARNING: Neither compass/css3/images.sass nor .scss found. Using compass/css3/images.css instead.
This behavior is deprecated and will be removed in a future version.
If you really need compass/css3/images.css, import it explicitly.
error sass/application.sass (Line 4: Undefined mixin 'background'.)

overwrite stylesheets//application.css
Am I doing something completely wrong? Or is there something missing I haven't considered?

Ahh, by the way... the resulting application.css (generated regardless of the error messages) cripples the site to an awful  text only theme

What happens when you try to compile?

Hum... I have accidentaly posted the incomplete issue, but I have already edited the original post...
It echoes in the console:

exists stylesheets
compile sass/application.sass
WARNING: Neither compass/css3/images.sass nor .scss found. Using compass/css3/images.css instead.
This behavior is deprecated and will be removed in a future version.
If you really need compass/css3/images.css, import it explicitly.

error sass/application.sass (Line 4: Undefined mixin 'background'.)
overwrite stylesheets//application.css

The resulting css can be seen here: http://portal.wingscg.com:4000/sandbox
Its not public, but you can login using the username: koppen   password: k321

sorry, wrong link: http://portal.wingscg.com:4000/projects/sandbox

I think you might need at least Compass 0.11. As far as I can tell that's when the background image was added. Not sure if you can get that via Ubuntu packages, but it is available as a Ruby gem.

So, should I try a sudo gem install compass -v0.11 ?

Recent updates, no, the sudo gem install compass (without version number) solves the isse, because it installs the compass v 0.11.06 (the 0.11.0 still does not work)
Since, when I run $ compass compile it generates the correct CSS :D
Thanx for the heads up


Simple Browser address bar fails to update

Type: Bug

Open Simple Browser with URL to a page with a link.
Click the link.
See the address bar doesn't change.
Click the refresh icon on the address bar, and the preview URL is loaded, not the current one reloaded.

 If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!

@mjbvz Is there some context for why this bug isn't of importance? Is the simple browser deprecated?


[C / 2nd viz] FE add interactions (e.g. filters) to viz

currently the only filter request for the 2nd viz is time range.
A screenshot/look at the visualized data might be helpful in order to determine, which kind of filters we could add.
Maybe product category might be an intresting filters here.
Not sure if 'filter', but possibility to change grouping settings for x-axis between by day/week/month could be intresting to some. I think you picked week as default which is totally fine and i don't see a priority here

Filters and Interactions are added in the Dashbaord+ux PR


README should be more helpful

Add instructions go get started, add link to examples in Wiki and extend examples for changing the settings.

added by @mahtin


[MM-20436] Migrate toggle_mute_channel to TypeScript

Summary

This migrates the toggle_mute_channel component over to typescript.
Ticket Link

Fixes https://github.com/mattermost/mattermost-server/issues/16138
JIRA: https://mattermost.atlassian.net/browse/MM-20436

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

@msal4 Could you please update the snapshot using npm run test-ci -- -u?

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

@DHaussermann, ping for review.  @msal4, QA has been pretty busy lately, but will review your PR soon! Thanks for the contribution!

/update-branch

Hey @msal4, looks like a few lint errors are still present. We made a couple eslint changes recently that probably caused these:
/root/mattermost/mattermost-webapp/components/channel_header_dropdown/menu_items/toggle_mute_channel/toggle_mute_channel.tsx
  17:112  error  Expected a semicolon  @typescript-eslint/member-delimiter-style
  25:23   error  Expected a semicolon  @typescript-eslint/member-delimiter-style
  30:22   error  Expected a semicolon  @typescript-eslint/member-delimiter-style
  35:22   error  Expected a semicolon  @typescript-eslint/member-delimiter-style
  40:17   error  Expected a semicolon  @typescript-eslint/member-delimiter-style
  45:22   error  Expected a semicolon  @typescript-eslint/member-delimiter-style

Can you fix these up and then we can merge? Thanks for your help :)

@devinbinnie sorry, I don't get these errors for some reason.

@devinbinnie sorry, I don't get these errors for some reason.

@msal4 You'll need to pull your branch down from the server. We updated it since it was out of sync, but unfortunately some lint errors came up so we weren't able to merge.

@devinbinnie thanks


caffe compilation selection

I'm following https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment-for-caffe/setting-up-the-build-dependencies to build armnn. In the tutorial, it doesn't say anything about what specific config I need to make on caffe.
I want to use both CPU and GPU. But caffe only has a CPU only option. Their default GPU is CUDA. Should I just build a CPU only caffe and it would automatically contains the GPU side invocation? Or should I compile the OpenCL caffe?

Hi @photoszzt you can just build the CPU caffe.
For ArmNN, GPU and CPU targets are selected by the ArmNN build system when you follow this step in the documentation: https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment-for-caffe/building-the-environment

Thanks!


client.UpdateConversation returning "Input could not be validated"

I'm trying to update a conversation but getting the error "Input could not be validated" but don't know why.
I'm using the code
Dim newConv = client.UpdateConversation(New Conversation() With {
.Subject = "Testing the Helpscout API Mathieu",
.Mailbox = New MailboxRef() With {
.Id = mymailboxid
},
.Status = ConversationStatus.active,
.Owner = New Person() With {
.Id = operatorId,
.Type = PersonType.user
}
})
Any clues?

@mathieukempe Looks like the endpoint for UpdateConversation was missing the id part. My pull request should fix @sergiopfaria issue.

Thanks @Soulfire86 ! I've merged the pull request


NoClassDefFoundError: javassist/bytecode/ClassFile

I'm trying to run changelogs but I've got this error:
java.lang.NoClassDefFoundError: javassist/bytecode/ClassFile
	at org.reflections.adapters.JavassistAdapter.getOfCreateClassObject(JavassistAdapter.java:100)
	at org.reflections.adapters.JavassistAdapter.getOfCreateClassObject(JavassistAdapter.java:24)
	at org.reflections.scanners.AbstractScanner.scan(AbstractScanner.java:30)
	at org.reflections.Reflections.scan(Reflections.java:243)
	at org.reflections.Reflections.scan(Reflections.java:203)
	at org.reflections.Reflections.<init>(Reflections.java:128)
	at org.reflections.Reflections.<init>(Reflections.java:169)
	at io.changock.runner.core.ChangeLogService.lambda$fetchChangeLogClassesSorted$1(ChangeLogService.java:95)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at io.changock.runner.core.ChangeLogService.fetchChangeLogClassesSorted(ChangeLogService.java:97)
	at io.changock.runner.core.ChangeLogService.fetchChangeLogs(ChangeLogService.java:85)
	at io.changock.runner.core.ChangockBase.execute(ChangockBase.java:44)
	at io.changock.runner.spring.v5.ChangockSpringBuilderBase$ChangockSpringApplicationRunner.run(ChangockSpringBuilderBase.java:107)
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:786)
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:776)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
	at com.acme.Application.main(Application.java:37)
Caused by: java.lang.ClassNotFoundException: javassist.bytecode.ClassFile
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 25 common frames omitted

Using those dependencies:

Spring Boot 2.3.1 in reactive mode with Netty Server
Mongock 4.1.4.BETA

The POM :
<dependencyManagement>
	<dependency>
		<groupId>com.github.cloudyrock.mongock</groupId>
		<artifactId>mongock-bom</artifactId>
		<version>4.1.4.BETA</version>
		<type>pom</type>
		<scope>import</scope>
	</dependency>
</dependencyManagement>
<dependencies>
	<dependency>
		<groupId>com.github.cloudyrock.mongock</groupId>
		<artifactId>mongock-spring-v5</artifactId>
	</dependency>
	<dependency>
		<groupId>com.github.cloudyrock.mongock</groupId>
		<artifactId>mongodb-springdata-v3-driver</artifactId>
	</dependency>
</dependencies>

The property is set in application.yaml :
spring:
  mongock:
    change-logs-scan-package:
      - com.acme.changelogs

@EnableMongock added on the main class and the changelog class is:
@ChangeLog
public class DatabaseChangelog {
	@ChangeSet(order = "001", id = "001-update-session-model", author = "johndoe")
	public void updateSessionModel(MongoTemplate mongoTemplate) throws IOException {
		System.out.println("Test");
	}
}

Hello @joelroyer ,
first, we haven't provided reactive support yet for Mongock. Take into account that you cannot use MongoTemplate directly in your ChangeSet methods, you must use MongockTemplate. So in order to support Mongo reactive with spring, we would need to provide MongockReactiveTemplate.
Said that, I see that you are using non-reactive approach by using MongoTemplate. We haven't tested yet, but the error you are getting is something different. Not found javassist. That doesn't make much sense as that transitive dependency is brought by library Reflections. Unless you are taking it out from your pom explicitly somehow.
However, regardless the log, I believe it's related to some mess up with templates, I'd suggest to make sure there is nothing messing up the templates.
Try to collect a bit more useful information and we'll try to help. Otherwise, as currently Mongock doesn't support reactive and we are really full of work, we cant't go deep into that right now

Thanks for your response. Indeed, we use a non-reactive approach.
I've tried with MongockTemplate in place of MongoTemplate but error still occurs.
We have the same code on another service, and it works well.

Well, keep using MongockTemplate.
Very weird. As said, that class is brought by |Reflections" library. can you provide the dependency tree by executing mvn dependency:tree
You can send it to me by email if you prefer.

mvn dependency:tree done and found a mistake on third-party dependency.
You can close this issue.

glad you found it, @joelroyer.
Can you tell me what was the issue so I can address it faster next time? :)

We use Powermock for some tests and the developer who set it up followed this ticket:
https://stackoverflow.com/questions/31189086/powermock-and-java-8-issue-interfacemethodrefinfo-cannot-be-cast-to-methodrefin
In this ticket, you can see that javassist is excluded from powermock junit4 module dependencies and added manually in another version with scope "test".
But the developer didn't see the warning above the answer. I removed scope and it runs!

great, thanks!


chore: update node-version to 22 and pnpm/action-setup to v4

I want to use a Node LTS that's supported on Lambda/Vercel so gonna close this


Join requests not working

Easily reproducible on local - sign up as a new mentor, request to join a dojo as a mentor.
Get an error that says join request not found.
The join request is in the database correctly and I'm logged in as the founding champion.
Two reports of this in the last couple of days also - something to do with API version 2.0?

Can't reproduce it. Can I get more details please? Can you send me the request that fails?

http://zen.coderdojo.com/api/2.0/dojos/accept-user-request is the request that returns the error

Made a fix for this. Will be added after merging with the user validation changes.

@mihaidma @tangentfairy this should be fixed by the changes made here:
https://github.com/CoderDojo/cp-zen-platform/pull/749 & https://github.com/CoderDojo/cp-users-service/pull/171

Thanks, will test this asap

tested this and it's working fine now

I still get this error, we'll have to take a look and make sure there's not something funny I am doing!

I tested the scenario that was reproducing this and seems that the issue is solved. Tested with dojos-service on master

Working on those branches now


Order of operations

2 + 3 * 4 = 14 but should be 20

Also would be nice to have () so as to specify doing in addition/subtraction before a multiplication/division.
Maybe even ^ for exponents.

bug was fixed but feature was not yet implemented.

The fix I made didn't work in some cases... I have a new implementation of Bars Expression that works correctly and includes the use of ()... will work on getting it into bars soon!


Encountering numba current locale errors?

`raise NotImplementedError("cannot convert native %s to Python object" % (typ,))
LoweringError: cannot convert native const('\tnn descent iteration ') to Python object
File "../../../../home/.local/lib/python2.7/site-packages/umap/umap_.py", line 663
[1] During: lowering "print($515.5)" at /home/.local/lib/python2.7/site-packages/umap/umap_.py (663)
Failed at nopython (nopython mode backend)
cannot convert native const('\tnn descent iteration ') to Python object
File "../../../../home/.local/lib/python2.7/site-packages/umap/umap_.py", line 663
[1] During: lowering "print($515.5)" at /home/.local/lib/python2.7/site-packages/umap/umap_.py (663)
`
Related to <IP_ADDRESS> here:  http://numba.pydata.org/numba-doc/dev/user/faq.html

Wow, good catch! Thanks for the reference -- it saved me an evening of (probably very frustrating) googling. I think I have it fixed, but I would greatly appreciate it if you can test on your system (if you have time) to ensure that it does indeed resolve the issue for you. Thanks!

I am encountering the same exact error even after your change.

If that's the case then I must admit I am really not sure what the correct fix is -- this involves numba internals which I am not familiar with. I'll have to try and ask numba developers what the right solution to this is, which unfortunately may take a while. As an interim solution you can check out the code and simply remove or comment out code blocks
if verbose:
    print(...)

Ultimately I would prefer a more complete solution though, as the progress logging is really quite useful.

This is strange. I could try changing the prints to the logging module, but it looks like the problem comes during a string conversion, not the print function.
Does this happen always with python 2.7? Is there a formula for recreating the issue so I can play around with it?

I am using python2.7 yes. I just ran the examples/digits/digits.py code nothing from my side and it gave this error:
raise NotImplementedError("cannot convert native %s to Python object" % (typ,))
LoweringError: cannot convert native const('\tnn descent iteration ') to Python object
File "build/bdist.linux-x86_64/egg/umap/umap_.py", line 455
[1] During: lowering "print($515.5)" at build/bdist.linux-x86_64/egg/umap/umap_.py (455)
Failed at nopython (nopython mode backend)
cannot convert native const('\tnn descent iteration ') to Python object
File "build/bdist.linux-x86_64/egg/umap/umap_.py", line 455
[1] During: lowering "print($515.5)" at build/bdist.linux-x86_64/egg/umap/umap_.py (455)

I suspect the logging module will not play nicely with numba; perhaps this is a python2/python3 compatability issue related to the print function? @sauln if you have some time to look into this I would greatly appreciate it as I don't have a lot of time for the next week or so.

I think it's some combination of print statements and string operations in python 2.
Multiple print arguments like
print("hello", "world")

cause the error and I haven't figured out any other way to format strings in numba.
This issue talks briefly about numba+print, but it was closed without explicit resolution.
I haven't found any way around this problem. There might be something in the numba documentation, but nothing has come up from google searches.  I'll try to dig a bit more into this tomorrow.

Thanks Nathaniel, at least we know what the likely issue is. One possibility is to use cffi and get the printf function from C to do the formatted printing, but that adds an extra dependency on cffi. Another option would be to explicitly write a very constrained function to do the limited format of printing we need and call that instead. I would welcome other ideas as neither of those seem optimal.

It might be hacky, but it should be possible to require cffi only for python2.7. That would force maintenance of two different logging systems though.  As a first step, it's probably easiest to disable all logging on 2.7.
What do you think about having different behavior for 2.7 and 3? It's not ideal, but at least that way, 3+ could have complete and pretty logging.

I'm good with just disabling logging for 2.7 for now -- if you want to make
the PR I'll happily accept it.
On Wed, Nov 29, 2017 at 2:35 PM, Nathaniel Saul<EMAIL_ADDRESS>wrote:

It might be hacky, but it should be possible to require cffi only for
python2.7. That would force maintenance of two different logging systems
though. As a first step, it's probably easiest to disable all logging on
2.7.
What do you think about having different behavior for 2.7 and 3? It's not
ideal, but at least that way, 3+ could have complete and pretty logging.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lmcinnes/umap/issues/28#issuecomment-347971421, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ALaKBbuwVw3gOKCSjG5sjRx3dECeLr0yks5s7bHzgaJpZM4QsgTs
.

I’ll look into it tonight.


Running Sauce Tests Locally

It would be nice to run my tests with :sauce => true local only. The swappable-sauce suggestion does enable me to run tests locally, but it still tries running my tests on SauceLabs. It would be nice to have a config setting that completely switches of all sauce functionality. Only way I've gotten this to work so far is by monkey patching the self.included method in SeleniumExampleGroup.
  module Sauce
    module RSpec
      module SeleniumExampleGroup
        def self.included(othermod)
        end
      end
    end
  end

+1 for a real solution as well. The workaround I've been using is including Sauce::RSpec::SeleniumExampleGroup in my Rspec.configure if an ENV variable exists so I can control running it from command line


POSTMAN Clone using JS

Describe the project you want to add with tech stack
Post Master clone is similar to postman API platform where we can enter the URL and get the information in the format specified by the user.
This project is done using HML,CSS,JS,Bootstrap.
Expected behavior
we need to choose the request type either GET OR POST.
Now we need to specify the content type either JSON or Custom parameters.
we can add same many custom parameters we want by clicking on + button.
The output will be displayed in the ouput box.
Screenshots (optional)
Additional context (optional )

@Harikaraja go ahead.

Ok sir
On Sun, 4 Jun 2023, 00:03 Saurabh Kumar, @.***> wrote:

@Harikaraja https://github.com/Harikaraja go ahead.
—
Reply to this email directly, view it on GitHub
https://github.com/pranjay-poddar/Dev-Geeks/issues/1744#issuecomment-1575113989,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATCQWHRU4AG45AB3APWQQJLXJN7QXANCNFSM6AAAAAAYZNRPDQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

There are few more issues #1773,#1774 can you assign them please sir
actually I have raise the issue 2 weeks ago
On Sun, 4 Jun 2023, 00:03 Saurabh Kumar, @.***> wrote:

@Harikaraja https://github.com/Harikaraja go ahead.
—
Reply to this email directly, view it on GitHub
https://github.com/pranjay-poddar/Dev-Geeks/issues/1744#issuecomment-1575113989,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATCQWHRU4AG45AB3APWQQJLXJN7QXANCNFSM6AAAAAAYZNRPDQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Have a console like Postman

The last restraint before I migrate from Postman to Bruno is the lack of a real console. I can't work properly with the chrome debuger.
I'd like to have in one time when I send a request :

The real request I send
The informations of the network
The headers sent and recieved
The bodies sent and received
The errors
Is it possible to have this ?

Are you using bruno Opensource or Golden Edition?
This issue should be moved to the main usebruno/bruno repo.

I am using bruno opensource


fix colorgen to generate code compatible with new Accent struct

current generated code not work.

Colorgen will be removed, as we have builtin Material Design 3 color in matcolor.


please prioritize the subcommands in manual page

Thanks, this looks very useful, I am still checking it out.

The manual page seems to be alphabetized, which makes it hard to know in which order to learn about the subcommands. This will get harder as the project grows, I think it is better to choose a sensible order now...

In the README, cargo install --root ~/.local git-series installs the binary, that's helpful. Right after this can you provide a command to install the documentation? Like
cargo install --root ~/.local git-series
wget ... -O ~/.local/man/...

It's weird to have the automated installer leave out the documentation, I know there is a sentence "You may also want to install the included manpage, git-series.1, into ~/.local/share/man/man1/git-series.1." but that is pretty easy to skip over, and the phrasing ("included" where?) seems ambiguous.

I'm new to Rust - how did cargo know where to find git-series?

Things I am wondering - should I apply commits onto a separate branch when using this tool? Where does the metadata get stored? What is happening behind the scenes? How do I get a quilt-style list of patches?

Another documentation issue: I guess git series format is the best way to output a series of patches - what is the way to input such a series? Just git apply with the list of patch files? Can we describe this, and explain what other commands are needed to go with it (e.g. git series add?). I want a really concise description of how to get data into and out of this tool. Thanks.


Not working in the Ember's Production Environment

CSS inlining is not working with the ember production build, it is working fine with the development build though.
Reproduction:
Tried ember-inline-css addon in this ember addon repo (ember-scroll-preview). CSS got inlined properly in the development, but failed with the production environment (ember build --environment=production).

In our app we are excluding the css assets to be in-lined from fingerprinting, as described here: https://ember-cli.com/asset-compilation#fingerprinting-and-cdn-urls
I wonder if this would solve the issue and obviate the PR? Either way, might be good to mention it in the readme?

@gowthamrm Sorry, musta missed this.  I can tell you that I have this code such as it is in place on a few production sites.


pip-compile insists on newer versions despite sufficient version in link folder

I had the scenario where some wheels are packaged with a repository and I need to compile a requirements file. Given the existing wheels that are in the package, it would be ideal if those wheels did not need to update if they were sufficient. Instead, these wheels are being forced to update even though there are no hard requirements forcing this action.
Environment Versions

OS Type: Linux
Python version: Python 3.7.4
pip version:  pip 20.0.2 from /home/derek.thomas/.python/lib/python3.7/site-packages/pip (python 3.7)
pip-tools version: 4.5.0

Steps to replicate
Perhaps I misunderstand the purpose of --finds-link, but given the following scenario, the compiled requirements file always ends up with the latest version:
# requirements.in
pip-tools>3.6

Filesystem:
$ ls linksdir
pip_tools-3.6.0-py2.py3-none-any.whl

Expected result
$ python3 -m piptools compile --find-links linksdir requirements.in
$ cat requirements.txt
#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile
#
click==7.0                # via pip-tools
pip-tools==3.6.0          # via -r requirements.in (line 1)
six==1.14.0               # via pip-tools

Actual result
$ python3 -m piptools compile --find-links linksdir requirements.in
$ cat requirements.txt
#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile
#
click==7.0                # via pip-tools
pip-tools==4.5.0          # via -r requirements.in (line 1)
six==1.14.0               # via pip-tools

My expectation was that it would require pip-tools==3.6.0 because of the wheel present in the link directory. If this behavior is as expected, is there a way to achieve the desired outcome?

Hello @derekbrokeit,
Thanks for the issue! --find-links is an option for additional package repositories. See pip docs:

pip looks for packages in a number of places: on PyPI (if not disabled via --no-index), in the local filesystem, and in any additional repositories specified via --find-links or --index-url. There is no ordering in the locations that are searched. Rather they are all checked, and the “best” match for the requirements (in terms of version number - see PEP 440 for details) is selected.

Thanks @atugushev . I feel that there should be a way to prefer add a discovery order and "first-come-first-serve" preference in order to support local package repositories. Perhaps this is better suited as a feature request. From what I am understanding, the current implementation does not support this.

@derekbrokeit
you could request a feature on pip's issue tracker. Let's see how it goes.

Workarounds that may or may not . . . work for you:

Add --no-index to requirements.in -- This would apply to all the packages, though, which I doubt is what you want. It might be a neat feature to apply options like that to a subset of packages, or it might raise complexity levels through the roof :man_shrugging:.
After compiling, manually downgrade the versions for those packages in the resulting txt, then compile again to iron out any dependency changes. This could be scripted, too.

Here's such a script in zsh. Not thoroughly tested, and sloppy enough to not care if the cached wheels work with the right python/arch. And it assumes GNU sed, because GNU sed is best sed.
#!/bin/zsh
downcompile () {  # <wheeldir> <reqstxt> [pip-compile options...]
    local all_cached=(${1:P}/*.whl)
    local reqstxt=$2
    shift 2
    local wheel pkgname pkgver
    for whl in ${(n)all_cached}; do  # numeric sorting
        wheel=(${(s:-:)whl:t:l})  # basename, lowercase, split on '-'
        pkgname=$wheel[1]
        pkgver=$wheel[2]
        sed -Ei 's/^('$pkgname'==)\S+(.*)/\1'$pkgver'\2/g' $reqstxt
    done
    pip-compile ${@:-${reqstxt:r}.in}  # if none specified, just pass reqsin based on reqstxt name
}
downcompile $@

Using it:
$ print -l -- "-f $HOME/.cache/pip-tools/wheels" jinja2 > requirements.in
$ pip-compile --no-header requirements.in
--find-links /home/andy/.cache/pip-tools/wheels

jinja2==2.11.1            # via -r requirements.in (line 2)
markupsafe==1.1.1         # via jinja2
$ ./down-compile.zsh $HOME/.cache/pip-tools/wheels requirements.txt --no-header
--find-links /home/andy/.cache/pip-tools/wheels

jinja2==2.11.0            # via -r requirements.in (line 2)
markupsafe==1.1.1         # via jinja2

@derekbrokeit

does that function achieve what you want?
if so, is an external shell function a satisfactory solution, or will you try to get such a feature into pip?

@derekbrokeit
What do you think?

@derekbrokeit ?

@derekbrokeit ?

Hey @derekbrokeit
It's been about a year since you've been here, so I'm going to close this, but we can re-open any time.
Thanks!


English language support

Please add possibility to select the english language to display all contents.

Please add possibility.


Wrong cursor shape being set under various circumstances

Hyprland Version
 System/Version info
Hyprland, built from branch main at commit 56de72f357222beca94e3d4f8152e2523a22c0b3  (internal: store matched windowrules and emit event).
Date: Thu May 2 03:18:01 2024
Tag: v0.39.1-124-g56de72f3, commits: 4584

flags: (if any)

System Information:
System name: Linux
Node name: arch
Release: 6.8.8-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 28 Apr 2024 15:59:47 +0000

GPU information:
2b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Bug or Regression?
Bug
Description
Cursor shape behaves weirdly under certain circumstances, mainly related to focus and hovering over clients.
Relevant config variables used throughout the testing:
general {
    no_cursor_warps = true
    resize_on_border = false
}
input {
    follow_mouse = 0
    float_switch_override_focus = 0
}
misc {
    vfr = false
}

This happens in all of the applications I tested, including Firefox, Dolphin, Nautilus, Alacritty and many others. At the time of recording I was using hyprcursor and hardware accelerated cursor on Nvidia, however it's also reproducible with those disabled.
How to reproduce
1. Shape of the cursor changes when a client gets focused
Upon changing focus, the cursor will take shape desired by the newly focused client, even though it's nowhere near it. This can happen by opening new clients, manually switching focus, workspaces, etc.
Once the cursor is moved, it immediately goes back to the correct shape.
2. Cursor takes shape of a focused client when entering a different client
When hovering over a client different from the currently focused one, the cursor will take shape of the focused client either way.
3. Client's border can affect the cursor shape
There exists a one pixel wide area around the outer edge of the client's border that affects cursor shape. Only applies to the border of the focused client.
This one is very nitpicky, but thought I might as well report it.
Crash reports, logs, images, videos
Below are the videos showcasing the issues along with a short description of what's happening.
1. Shape of the cursor changes when a client gets focused

Client gets focused
Cursor changes shape (should not happen)
Cursor gets moved and immediately returns to the correct shape
https://github.com/hyprwm/Hyprland/assets/7283019/a1dee9d7-d109-419f-97d2-29e4e6b1d71c

2. Cursor takes shape of a focused client when entering a different client

Cursor enters an unfocused clients
Cursor shape turns to that requested by the focused client (should not happen)
~~https://github.com/hyprwm/Hyprland/assets/7283019/a48dcc00-fbf3-409e-aa54-788e230f0417~~

3. Client's border can affect the cursor shape

Cursor enters a one pixel zone on the outer edge of a focused client's border
Cursor changes its shape to one requested by the focused client (should not happen)
https://github.com/hyprwm/Hyprland/assets/7283019/c974e5c2-667a-496d-8fa1-933bad9169fa

Cannot reproduce issue no. 2 anymore on 0.44.0, probably got fixed somewhere along the way.
Other issues remain the same.


Find all iana from array of Windows Time Zones

Does we have the possibility to find all Time Zones from Array of Windows Time Zones?
Using findIana() or something else?

Sorry for taking so long to reply.
I'm not sure I understand your question, but could you maybe do something like the following?
windowsTimeZoneArray.map((it) => findIana(it)).flat()

Sorry for taking so long to reply.
I'm not sure I understand your question, but could you maybe do something like the following?
windowsTimeZoneArray.map((it) => findIana(it)).flat()


Add versioning for distributions

There are now several quicklisp distributions available: stable and testing. Both built via travis-ci. See https://github.com/borodust/bodge-projects repository.


Doc/folder name bug: Change Virtual Assistant to Voice Assistant

In folder name, doc title etc. I also fixed a broken link to docs.microsoft as a result of these name confusions. Please check links as well.
For example:
Change cognitive-services-speech-sdk/quickstart/csharp/uwp/virtual-assistant/
to
cognitive-services-speech-sdk/quickstart/csharp/uwp/voice-assistant/

Assigning this to @trrwilson per chat with @dargilco.

closing the issue as I believe changes are already done.


patchelf: update to v0.18.0

Update the patchelf tool from v0.14.2 to v0.18.0.

In particular, this fixes ELF corruption on x64-linux-dynamic with RPATH rewriting, which manifests itself as odd segfaults on initial binary execution, or library dependencies being messed up (eg. the binary depends on libfoo.1.2.3 (& objdump/ldd/readelf displaying as such) but the runtime linker tries to load a truncated libf). eu-elflint reports errors like section [ 6] '.dynstr' not fully contained in segment of program header entry 2
The issues don't seem to affect all architectures and distributions evenly — eg. Fedora is much more likely to encounter runtime errors than Debian (with the same binary), as are amd64 binaries cf arm64: maybe there's some differing glibc behaviours/options at play? Presumably may depend on build path lengths and other fun variables too.
Relevant upstream issues:

https://github.com/NixOS/patchelf/issues/403
https://github.com/NixOS/patchelf/pull/430
https://github.com/NixOS/patchelf/issues/446 (fixed in https://github.com/NixOS/patchelf/pull/447 & https://github.com/NixOS/patchelf/pull/469)
https://github.com/NixOS/patchelf/issues/482 (fixed in https://github.com/NixOS/patchelf/issues/485)

There seem to be an issue in latest release of patchelf, better wait for the fix.
https://github.com/NixOS/patchelf/issues/492

Note: I will be converting your PR to draft status. When you respond, please revert to "ready for review". That way, I can be aware that you've responded since you can't modify the tags.

Closing this as upstream appears unresponsive and there hasn't been activity in more than 4 months. Please feel free to reopen or open a new PR if this becomes unblocked and/or you're interested in continuing. Thanks!


Adding custom version data

Implement a feature to configure a service in main application that returns custom version data

It's implemented with #8.
Update Readme and create extension method


angular material vs material design lite

while having a material-design-lite project for static sites/older browser makes perfectly sense, the naming conventions for css is a little different i.e.  i.e. angular material uses md-card while material design lite mdl-card with a slightly different css structure.
I am more intrigued in the difference in naming convention, as the scss for the two projects could have been merged, making us hoarders a little easier to consume these awesome libraries. Coming from angular material, its not just simple consume, there is a learning curve involved.
Just curious in knowing about the design decisions taken for different approaches as per scss is concerned.

Hey @ysfjwd, I can’t quite tell from your question, but Angular Material is completely unrelated to MDL and AM is not by Google. We did not consider any other MD implementation before starting MDL because we wanted to start fresh and not carry any technical debt so we can try and stay lightweight (the “L” in MDL). I’m not saying we achieved that 100%, but that was the reasoning.
There’s always a learning curve when adopting a new library/toolkit/framework, and the larger it is and the more it tries to do, the steeper that curve will be. As I said in another comment, we are purposely limiting ourselves to static content to flatten the curve at least a little. But you will still have to learn.
Even though I have never used Angular Material extensively, I fear the underlying technologies would have gotten us into deep trouble if we had tried to keep the CSS naming equivalent or similar.

@surma thanks for the reasoning and not carrying technical debt.
however your remark that AM is not Google was a :open_mouth: moment for me. Angular is by google, AM is hosted at https://material.angularjs.org/ <-- a subdomain of angular implies that work done on AM is being done by core team at AngularJS or atelast some collaboration is there. Not really pointing any fingers or being rude (though i have a tendency of rubbing people the wrong way), but apologies in advance if you are offended.
Anyways, the reasoning that keeping the project removes the technical debt from other project makes perfect sense.

Haha, no, no offense taken at all. The question was totally valid, so no worries here. This might also be helpful to others in the future :)

@ysfjwd I stand corrected! AM is supported by Google. So you were right. However, the original justification still applies :) Sorry about the confusion!

:smile:

however your remark that AM is not Google was a :open_mouth: moment for me.

:+1:


Firestore negative zero (-0) is stored as integerValue instead of doubleValue

This issue is about an inconsistency between the firestore JS SDK and the nodejs SDK. Firestore JS SDK stores negative zero (-0) has a double value with the correct sign. The NodeJS SDK does not do so. This leads to loss of data (the number's sign) as well as some odd behavior when trying to query documents saved from the JS SDK based on -0.
Environment details

OS: macOS
Node.js version: 16.13
npm version: 8.1
@google-cloud/firestore version: 4.15.1

Steps to reproduce

write negative zero to a document

await firestore.collection('test').doc('test').set({ number: -0 })

read the document and ensure the value is negative zero

const doc = await firestore.collection('test').doc('test').get();
const expectedToBeNegativeZero = doc.data().number;
console.assert(Object.is(expectedToBeNegativeZero, -0))

Firebase Web SDK: ✅ Works as expected
Firebase Node.JS SDK: ❌ Value is 0 instead of -0

Hi @Yonom. Thanks for the report. I'll take a look into it.

@dconeybe thanks, I have also submitted a PR with a fix 👍


Add wallet name to address book page title

It fixes #756.
Each address book page window it's now labeled with the wallet name they were opened with, so the user can easily identify which addresses belong to which wallet even when there are many windows opened. It's a helpful enhancement for users managing multiple wallets.

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews
See the guideline for information on the review process.
A summary of reviews will appear here.

Tested 9fc21cfd3bdf2ab7d446a5f78318ce1b95b0dbbe. It works as expected.
However, I'm curious, doesn't the ability to open "Sending/Receiving addresses" windows for multiple wallets rather confuse the user than improve their experience?
Maybe, it makes sense to make those windows modal?

cc @luke-jr @furszy @theStack @achow101 @jarolrod

Making those windows modal could be an alternative but it would change the present behaviour unexpectedly for those users that are used to it. Perhaps a current use case could be that a user may want to make transfers between wallets and needs to see their addresses.
Some other alternative could be that when a user selects a different wallet a dialog shows up asking to confirm the preference to close the addresses book page/ s (sending/ receiving/ both) hide them temporarily (until the user selects the wallet back) or just keep them open? Then we can also save it as a setting so that dialog doesn't show up anymore or ask for confirmation every time.


Cannot find matching entity for condition" when using upsertMany

Describe the bug
A "Cannot find matching entity for condition" error gets raised when using upsertMany

Reproduction
// Definitions
@Entity({
  tableName: 'accounts',
})
export class Account extends BaseEntity<'balance' | 'locked'> {
  [PrimaryKeyProp]?: ['member', 'currency'];

  @ManyToOne({
    primary: true,
    entity: () => Member,
    ref: true,
  })
  member!: Ref<Member>;

  @ManyToOne({
    primary: true,
    entity: () => Currency,
    ref: true,
  })
  currency!: Ref<Currency>;

  @Property({
    type: BigNumberType,
    default: 0,
  })
  balance: BigNumber = new BigNumber(0);

  @Property({
    type: BigNumberType,
    default: 0,
  })
  locked: BigNumber = new BigNumber(0);
}

// For context
await db.em.upsertMany(
  Account,
  currencies.map((currency) => {
    return {
      member,
      currency,
    };
    // OR
    // return {
    //   member: member.id,
    //   currency: currency.id,
    // };
  }),
  {
    onConflictAction: 'ignore',
  },
);

What driver are you using?
@mikro-orm/mysql
MikroORM version
6.2.1
Node.js version
v20.12.1
Operating system
Linux
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Slack.
[X] The provided reproduction is a minimal reproducible example of the bug.

There is a problem with the way bigint is handled, the member here is a number when it should be a string or bigint


added a note to the CG and NG docs about Basic Authentication - CDS-48446

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Preview environment: https://ci.pr.harness.io/pr-641


Update PPP

Codecov Report

Merging #180 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #180   +/-   ##
=========================================
  Coverage     57.03%   57.03%
  Complexity      697      697
=========================================
  Files           122      122
  Lines          2772     2772
  Branches        320      320
=========================================
  Hits           1581     1581
  Misses         1062     1062
  Partials        129      129

Continue to review full report at Codecov.

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

Thanks for refactoring


ccx: ISM330DLCTR Gyroscope/Accelerometer Sensor Driver

Product page
Datasheet
Interface: LPSPI4
Also needs to generate an interrupt signal.

STMicroelectronics driver


[VL] remove unnecessary system lib

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

good


[WIP]CMOS-128: Tutorial - Deploy CMOS in a VM based infrastructure

Please make sure to use single line per sentence to simplify reviews. It probably needs adding to the contribution guide so apologies for that.