feat(docker): Modernize Hive Metastore with template-based configuration and multi-mode deployment

Description
This PR modernizes the Hive Metastore Docker setup by introducing template-based configuration and improving the overall build process. The changes make the Docker image more flexible for both standalone and sidecar deployment scenarios.
Key Changes
Docker Build Improvements

Added BUILD_ENV build argument to support two deployment modes:

no_templates: Standard mode for standalone deployment
templates: Sidecar mode with built-in configuration templates

Upgraded to eclipse-temurin base image with configurable Java version
Added multi-architecture support for Gomplate installation
Updated dependencies to latest stable versions:

Hadoop 3.4.1
MySQL Connector 9.1.0
Log4j 2.24.1

Configuration Management

Introduced conditional template handling based on BUILD_ENV
Enhanced entrypoint script with:

Better function organization
Improved error handling
More robust template processing

Added comprehensive sidecar self-termination script for Kubernetes deployments

Documentation Updates

Added detailed build instructions for both modes
Documented all supported environment variables
Updated configuration examples
Added migration guidelines

Breaking Changes

Docker build process now may requires explicit BUILD_ENV specification
Base image changed to eclipse-temurin
Updated dependency versions may require configuration adjustments

@melodyyangaws

Amazing improvement Andor! thank you for the fantastic PR.
A minor change is required before the merge:
Can you please reuse the previous Hadoop core URL in the Dockerfile ( please keep your line but comment it out for hadoop 3.4.1+) ? It ensures the backward compatibility for older Hadoop versions, such as HADOOP_VERSION=3.2.1 for EMR 6.5 ? Besides the hadoop-xxx-lean.tar.gz doesn't exist until the version 3.4.1.
# Download and install Hadoop
RUN wget https://downloads.apache.org/hadoop/core/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}-lean.tar.gz

please double check the .github/workflows/HMS-docker.yml , ensuring the change doesn't break the auto docker build.

Hi Melody,
I have addressed your concerns and I have made improvement accordingly. Ready for next round.

Hi Melody,
I have successfully built run it for the following Hadoop versions:

hadoop-3.2.4
hadoop-3.3.6
hadoop-3.4.0
hadoop-3.4.1

I got the following image sizes:

3.2.4 - 306.86MB
3.3.6 - 322.38MB
3.4.0 - 333.16MB
3.4.1 - 334.79MB

OK, it's my fault to make it complicated. Let's simplify the Dockerfile:
1/ To get all available Hadoop versions, use this link instead https://archive.apache.org/dist/hadoop/core/.
2/ Please remove the extra layer java-builder. Don't worry about the AWS SDK versions. I remember Hadoop's build-in aws-java-sdk-bundle is sufficient for S3 to work in EKS, except Hadoop 3.2.1 ( the first supported version by EMR on EKS).
We can update README to ask users to follow this example for Hadoop 3.2.1 to replace the bundle by a newer version to meet the IRSA requirement in EKS
3/ It's fantastic to see the reduced docker image size! Thanks for the effort, absolutely brilliant! I can see there is no big difference between the size of 3.4.0 and 3.4.1 (lean). Probably we should keep the Hadoop download link consistent, don't need the verlte function, ie. use https://archive.apache.org/dist/hadoop/core/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz for all versions.
4/ Since i am suggesting to remove the java-builder layer, the version comparison function needs to move into build layer. or maybe you can think of another simpler way to tell the SDK version based on ${HADOOP_VERSION}.

Hello
1/ Updated to use the archive.apache.org link.
2/ The java-builder layer is actually necessary for optimizing image size. Let me explain why with some data comparing AWS SDK approaches:

AWS SDK "minimal"
AWS SDK bundle

3.2.4
306MB
471MB

3.3.6
322MB
592MB

3.4.1
334MB
802MB

As you can see, using the full AWS SDK bundle increases image size by 165-468MB, which significantly impacts pod startup time and networking costs.
Regarding IRSA/EKS pod identity - it actually won't work even with newer AWS SDK versions. This is because the core integration is missing in Hadoop's s3a client (tracked in Hadoop JIRA-18154). I tried implementing this before but ran into this limitation, I will retest it.
3/ About the image sizes: The difference between 3.4.0 and 3.4.1 is small because both use AWS SDK "minimal". For 3.4.0, I replaced the bundle with minimal SDK, while for 3.4.1 I just added the minimal SDK since it didn't come with a bundle.
4/ Since we still need the java-builder layer, I moved the version comparison function there (it's no longer needed in the build layer as we're not using lean Hadoop distribution).


feat: query constraint ts by optional plan ID

The constraintsDslTypescript graphql query now accepts an optional/nullable planId argument, to include external resources in the code gen.
Merge at the same time as the external profiles in constraints PR

Main pr is merged, I've triggered a build.

Main pr is merged, I've triggered a build.
@JoelCourtney Yeah you can trigger a build under the "Actions" tab using the GitHub UI.


Added optional storage_class kwarg to get_thumbnail

I find myself needing to use sorl-thumbnail for both public and private images (which use different storage classes). However, we are only able to set one global storage class in settings. I add an optional kwarg that allows you to set the storage class you wish to use when creating or getting the thumbnail.

its incomplete move to draft ...

I am also interested in seeing this become a feature. I think it's reasonable that we could also default to the file's storage backend?
This would be in the same style as this SO question: https://stackoverflow.com/questions/67483996/sorl-thumbnail-in-django-is-it-possible-to-set-two-or-more-storage-profile-depe

I'm am not interested in continuing with this. If anyone would like to take over, please feel free.
I like @julianwachholz suggestion from the stackoverflow link, and I think its a better solution than my suggestion with an optional kwarg.
Some additional notes for anyone interested:

The delete_all_thumbnails management command assumes only the default storage to delete thumbnails from. One could add a new setting like a EXTRA_STORAGES list that defaults to just a list with the THUMBNAIL_STORAGE, and then the delete_all_thumbnails() function would delete thumbnails from every storage in this list.

The _create_alternative_resolutions function in thumbnail/base.py also uses the default storage class. A quick and working solution would just be to pass an extra parameter storage to this function, which just takes the storage class from the original file in the get_thumbnail function. Since this is an internal method, I don't think adding an extra parameter poses any problem.

Thanks and sorry for not being able to see this through. Good luck!


Remove unnecessary redirects in MagusManga.kt

Checklist:

[ ] Updated extVersionCode value in build.gradle for individual extensions
[x] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[ ] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[ ] Added the isNsfw = true flag in build.gradle when appropriate
[x] Have not changed source names
[ ] Have explicitly kept the id if a source's name or language were changed
[ ] Have tested the modifications by compiling and running the extension through Android Studio
[ ] Have removed web_hi_res_512.png when adding a new extension

test your changes
don't open untested prs made through github web editor
there already is no extra redirect since MangaThemesia adds trailing slash


add EXTRA_DIST for LICENSE files

add LICENSE files to dist archive.

Coverage remained the same at 0.0% when pulling 24edbda3f55bf27b084e2951c328c0a931d888ce on ttdoda-dist-license-files into 6a5be8b72d84037b83a5ea838e17bcf372ab1d5f on master.


Headings include extra space in pdf

The commands:
\chapter{Text}
\section{Text}
\subsection{Text}
\subsubsection{Text}
Produce an extra SPACE after the first letter when copied from the resulting pdf: T EXT
This makes the pdf not fully searchable.

I will take a look at this as well. I am not getting this in PDF files I have built. What are you using to build the PDF, and what are you using to view it?

OK, it works with adobe reader. It produces extra spaces with SumatraPDF.

Good to know. Thanks for the update.


Add features to User Guide

Add Managera User Guide introduction
Add details for Show Event Details and Show Event Participants methods
Add Show Event Details and Show Event Participants to command summary

Codecov Report

Merging #35 (977c6c1) into master (1cb6948) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #35   +/-   ##
=========================================
  Coverage     70.96%   70.96%
  Complexity      429      429
=========================================
  Files            73       73
  Lines          1326     1326
  Branches        146      146
=========================================
  Hits            941      941
  Misses          344      344
  Partials         41       41

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 1cb6948...977c6c1. Read the comment docs.


[External] Table 5902 "Service Line"

Please make this function external.
procedure GetDefaultBin()
Also, please make these global variables protected:
ServHeader: Record "Service Header";
TempTrackingSpecification: Record "Tracking Specification" temporary;

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

@StanPesotskiy
Are there any updates on this?

We have implemented just the first part - procedure GetDefaultBin().
The variables were not updated by mistake.
Could you please create another request including the vars part there?


after update ionic 2 to latest version, ionic serve failed

hello,
i updated ionic 2 version and i opened new project and i'm trying to run it with
ionic serve and it failed
`C:\Users\adirz\myapps\pelephone>ionic serve

ionic-hello-world@ ionic:serve C:\Users\adirz\myapps\pelephone
ionic-app-scripts serve

[01:35:26]  ionic-app-scripts 0.0.45
[01:35:26]  watch started ...
[01:35:26]  build dev started ...
[01:35:26]  clean started ...
[01:35:26]  clean finished in 1 ms
[01:35:26]  copy started ...
[01:35:26]  transpile started ...
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE <IP_ADDRESS>:8100
    at Object.exports._errnoException (util.js:1036:11)
    at exports._exceptionWithHostPort (util.js:1059:20)
    at Server._listen2 (net.js:1252:14)
    at listen (net.js:1288:10)
    at net.js:1398:9
    at _combinedTickCallback (internal/process/next_tick.js:77:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    at Module.runMain (module.js:592:11)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)

npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "ionic:serve" "--"
npm ERR! node v6.7.0
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! ionic-hello-world@ ionic:serve: `ionic-app-scripts serve`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ionic-hello-world@ ionic:serve script 'ionic-app-scripts serve'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ionic-hello-world package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     ionic-app-scripts serve
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ionic-hello-world
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ionic-hello-world
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\adirz\myapps\pelephone\npm-debug.log
There was an error serving your Ionic application: There was an error with the spawned command: serve

I'm facing the same message.

Same error :(

after installing ionic@latest.
same error

Same here. I updated ionic 2 and created a new project. The new project is using ionic-app-scripts version 0.0.45.
I've also a project with ionic-app-scripts 0.0.38. That is still working.
So I looked at the package.json and noticed some differences in "scripts".
For me it solved the issue by doing the following:
From my 0.0.38 project I copied the following lines from the package.json:
"scripts": {
    "build": "ionic-app-scripts build",
    "watch": "ionic-app-scripts watch",
    "serve:before": "watch",
    "emulate:before": "build",
    "deploy:before": "build",
    "build:before": "build",
    "run:before": "build"
  },

And replaced it in my package.json where I use app-scripts 0.0.45.
Then I did ionic serve and it all worked for me.

@kwv84  thank you man! it solved my problem! apperciate

I found that error when I am running 2 Ionic serve servers, so try quiting all your serves, and restarting the server you want to work on, OR try running on a different port.

Hello, thanks for using Ionic everyone! You can see our update steps for this change here on the app-scripts changelog.

Hello, i am facing same error with following config
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.13
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.45
ios-deploy version: Not installed
ios-sim version: 5.0.8
OS: OS X El Capitan
Node Version: v7.2.0

@ykonstant Check the answer by @jgw96 👍


feat: create query to fetch user through phone number

Your checklist for this pull request
🚨Please review the guidelines for contributing to this
repository.

[x] Make sure you are requesting to pull a topic/feature/bugfix branch
(right side). Don't request your default branch!
[x] Make sure you are making a pull request against the default branch
(left side). Also you should start your branch off default branch.
[x] Check the commit's or even all commits' message styles matches our
requested structure.
[x] Check your code additions will fail neither code linting checks nor unit
test.
[x] I have added necessary documentation (if appropriate)

Description
Create a query getUserByPhone to fetch user data through phone number parameter.
❤Thank you!
Post merge checklist

[x] Follow steps from the guidelines for contributing to
this repository.
[x] If you are a new contributor, ping in the thread and one of the
maintainers will add you to all-contributors list.

@riteshsp2000 We need to finish this by today pls :)


Added Unleash feature flag support, an example of usage in thridparty…

… repo and a fake server for unit testing.
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update
[ ] Refactor

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] I run go fmt ./... to check that my code is properly formatted
[X] I run go vet ./... to check that my code is free of common Go style mistakes

/retest

/lgmt

/retest

/retest

/retest


[LDAP] Query for user groups or group members

Description

Added ability to query all groups an individual belongs to
Added ability to query all users belonging to an individual group

Examples

In Reference To
Feature Request: https://github.com/Porchetta-Industries/CrackMapExec/issues/793

if this would be better placed in a module, let me know and i can port that over

I think this is catered for in certain modules. Try these:
cme ldap <IP_ADDRESS> -u test -p 'pass' -d test.info -M groupmembership -o USER=testuser
cme ldap <IP_ADDRESS> -u testuser -p 'testpass!' -M GROUP-MEM -o GROUP='Domain Admins'

Just tried it, yep that's exactly what i was looking for. Thank you!

I realise that's very annoying after your hard work so apologies for being a spoil sport. There are a lot of features not documented unfortunately so it's hard to know what cme does sometimes. I only found the groupmembership module but reading the code. Thanks again for your effort and hopefully you have other ideas.

Ain't no worries at all. I'm glad I ended up on the same path as someone else who had an idea here. Hopefully the next one is an original :D
Cheers


version: fix regex to pull minor and major versions

gitMajor and gitMinor are being deprecated, but this patch preserves the major and minor version by tweaking the regex when building k8s.
Our version string never parsed correctly with the included +: v1.9.0+coreos.0...

Is this something we want to carry though? Should this be reverted upstream, or should we be reacting to it downstream?

We use a + in our version string, which upstream is not expecting and has not expected for ~years.

and I'm guessing changing our version string everywhere internally would be a small mess to try to undertake. :(

I would guess that, yes.

going to close this... there is a slightly better fix I made upstream.


Add Terminology

https://www.enlightenment.org/about-terminology
Great terminal emulator. I personally use it.

PR #189 shall fix this

Closing in favor of #189.


breakout hapi plugin

It's not necessary to have the "core" functionality of digs as a Hapi plugin.  You might not want to use Hapi, and you might not want to run a web server at all.

[x] remove any reference to a Hapi.Server instance from the core
[x] DigsEmitter may be useless at this point; possibly remove it
[x] emit events intended for logging (or whatever).  don't actually log anything aside from debug() calls.
[x] pull register() function and routes module out into new package hapi-digs
[ ] probably want to expose the entire Digs instance
[x] refactor demo application to depend upon hapi-digs

once this is done, I'll have a better idea of what the "core" is; my hunch is that it's an MQTT client.

this is done


The subtraction doesn't work, or only sometimes

Hi @Phil94comp 👋,
many thanks for your support. I just looked at your pull request and tested it. You can see your changes here. Your NH 🙂


Original data

Is there a way to share the original data that is used for injection, and other tasks?
Thanks!

Hi @iazdan,
The injections module doesn't support access to the original data, just the embeddings.
However, the themes module uses the same approach, though with a much smaller set of prompt injection examples, which is available on langkit in themes.json. You can also provide your own set of examples to be used with the module.


Double scrollbar with html {overflow-y: scroll;}

This bug can be easily reproduced on official plugin page http://dimsemenov.com/plugins/magnific-popup/ for "Load content via ajax" link if add property overflow-y: scroll; to html tag via Firebug.

Weird issue with Chrome. Now I'm getting double scrollbar the first time popup is shown (inline or ajax). Next time I open popup on the same page there is one scrollbar (the closing 'X' symbol appears to be closer to scrollbar than usual). I don't have this issue in other browsers.

I am experiencing the same issue as @hardsubs. This, also, causes a second scrollbar to appear on the page when hovering over any element that triggers a popup.


Added BaseX_Calculator files

Description 📜
Added files for BaseX_Calculator project.
Fixes #20

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GSSOC'22 contributor
[x] Have you added a working video of your calculator ?

Screenshots / Gif (Optional) 📸
I've already attached a demonstrating video about how to use the calculator in the PR.

@mansi-garg-12 Moved the explanation video as requested and resolved some merge conflicts.


The link to "Try the UI Library" is broken or the toolkit is down on the Designing your Microsoft Teams app with UI templates page

On the page https://learn.microsoft.com/en-us/microsoftteams/platform/concepts/design/design-teams-app-ui-templates, the link to "Try the UI Library" is broken or the toolkit is down. The link currently directs to https://dev-int.teams.microsoft.com/storybook/main/index.html which gives the error
This XML file does not appear to have any style information associated with it. The document tree is shown below. <Error> PublicAccessNotPermitted <Message>Public access is not permitted on this storage account. RequestId:9b8f656e-f01e-000b-5880-ed1dbb000000 Time:2022-10-31T23:26:34.8620162Z</Message> </Error>
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: e739fdd6-8835-cfcd-f25c-1b4c7cb42afa
Version Independent ID: 3bbef1d2-6427-0c7f-bfe2-57bf016629da
Content: Designing your app with UI templates - Teams
Content Source: msteams-platform/concepts/design/design-teams-app-ui-templates.md
Service: msteams
GitHub Login: @heath-hamilton
Microsoft Alias: lajanuar

Thanks @BrendanAndrade  for bringing this up. There is already a doc enhancement request raised for this issue, where we mentioned documentation team to update it. Please refer this thread for further updates.
Thanks!


Finite State Machine nuXmv

When I run synthesizers to generate a finite state machine in ./smv-out.smv for nuXmv, is it possible that some transitions might be missing? Have you ever encountered this issue?

It may be possible because of a few factors:

Inaccuracy of NEUTREX
Missing or miscategorized keywords
Insufficient DSL rules

Hope this helps.


k8s 1.31 support for rancher-gatekeeper

Add k8s 1.31 support for rancher-gatekeeper

Rancher-gatekeeper was deprecated a while ago and was removed from v2.10, so it won't be getting an update to support k8s 1.31.


Broken link in Dev Documentation

In the dev documentation page, section on "How to Create New Powertoys", both links are broken and yield a 404
https://github.com/microsoft/PowerToys/tree/master/doc/devdocs#how-to-create-new-powertoys
I am looking at possibly porting one of my older projects into Powertoys.
Thanks!

@enricogior, i know a lot of this I think is out of date. do we have anything still kept up-to-date?  i know we did a ton of recent changes
@gmyx lets sync before you start doing work so we know it is a good fit.

xref #761

@gmyx
https://github.com/microsoft/PowerToys/tree/master/tools/project_template
https://github.com/microsoft/PowerToys/blob/master/doc/devdocs/settings.md
https://github.com/microsoft/PowerToys/blob/master/doc/devdocs/settings-reference.md
As @crutkas said, the documentation is really outdated and it doesn't contain any information for the new settings (the current documentation only describes the old settings for Windows 10 1809 and older).
Also the lowlevel hooks have changed, and even if the API is still available is deprecated.
I guess that at the moment it would be better if you ask specific questions and tell us more about your project so we  can point you in the right direction.
Thanks.

Thanks for the heads up!
I was thinking of converting my BrowserChooser2 project into a PowerToy. It acts as a default browser so that you can choose which browser to open a link with. It has a very large configuration set to try  and be as flexible as possible.

@dedavis6797 this should be one of your work items for fixing :)

I was thinking of converting my BrowserChooser2 project into a PowerToy. It acts as a default browser so that you can choose which browser to open a link with. It has a very large configuration set to try and be as flexible as possible.

That would be the answer for #1642 😀

Please move this issue to another project

All the links are working now, so I guess problem solved (?)

@Jay-o-Way
we have other broken links, like src/core that needs to be changed to src/settings-ui

looks like this was fixed.


Update lvgl_helpers.c

Update for support LVGL 8 or/and master

Hi @Trackhe , #69 was just merged and it contains a proposal to solve this exact issue, can you try it before we consider merging your request? Let me know how it goes.

Hi @Trackhe , #69 was just merged and it contains a proposal to solve this exact issue, can you try it before we consider merging your request? Let me know how it goes.

Yes, I will test it and report back to you.

He has also tested and used the same patch. I guess this is obsolet now.


Possible to configure dom watch?

In vue fontawesome it is possible to configure dom watching:
import { dom } from '@fortawesome/fontawesome-svg-core'

dom.watch()

Is there a way to configure it using this plugin?

Oh well, I simply put the code above in the component where I need this.

@kevcodez Thanks for your workaround!


Add support for rebasing

This PR adds support for rebasing through an additional config flag: integration_tool. It defaults to merge, but also allows for rebase. If rebase is provided as the integration_tool, the PR being worked on will then be rebased onto the base branch before the rest of the CI tasks run.

I need this too!

Regarding the format changes, my bad, they were an accidental inclusion, I'll remove them. The name change seems ok with me, will update soon. Thanks for reviewing.

Changes implemented, let me know what you think, thanks for the feedback.


Wrong URL doc string for media components (and others?)

When you click "more information" in a component description in the designer palette, the link shown for media components is /reference/components/index.html rather than to /reference/compoents/media.html#
This is resulting from componentHelpWidget.java at line 68 where getReferenceComponentsUrl is returning the wrong thing.

Hi @halatmit, I just created a pr for this issue.
The hint above is a very helpful starting point. I fixed this soon after I read it.

Hi @jisqyv , shall we close this issue? or is there any follow-up action needed to be done?

Yep, I forgot to close it....


Alert box is not detected by spectron-webdriverio

I am trying below code to test my electron  app.
I can see the alert box but alerttext() is not detected/printed.
I am not sure with spectron or webdriverio or I am doing something wrong
Asked in community but no response so posting here

it('Check associate home with issues', function() {

        return app.client.execute(function() {
            setTimeout(function() {
                alert('Whaaat up');
            }, 1000);
        }).waitUntil(function() {
            console.log("inside waiting ")
            return this.alertText().then(function(text) {
                console.log("inside alert "+ text)
                return text;
            }, function() {
                console.log("inside failed")
                return false;
            });
        }, 30000).then(function(alertText) {
            console.log(alertText)
            alertText.should.be.equal('Whaaat up');
        });

    });

As discussed with webdriverio community its difficult to handle default alert() function and they suggested to implement my own alertbox.So using https://github.com/limonte/sweetalert2  I implemented my own l alert and test is working fine


set up testing framework

The requirement is to be able to run tests on a compiled cborhex

[ ] plutus-simple-model
- [ ] cardano-node-tests
[ ] cardno-node-emulator

https://github.com/mlabs-haskell/plutus-simple-model

17:46 $ nix develop
warning: Using saved setting for 'allow-import-from-derivation = true' from ~/.local/share/nix/trusted-settings.json.
do you want to allow configuration setting 'extra-experimental-features' to be set to 'nix-command flakes ca-derivations recursive-nix' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
warning: Using saved setting for 'extra-substituters = https://cache.iog.io https://public-plutonomicon.cachix.org https://mlabs.cachix.org' from ~/.local/share/nix/trusted-settings.json.
warning: Using saved setting for 'extra-trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= public-plutonomicon.cachix.org-1:3AKJMhCLn32gri1drGuaZmFrmnue+KkKrhhubQk/CWc=' from ~/.local/share/nix/trusted-settings.json.
warning: ignoring untrusted substituter 'https://public-plutonomicon.cachix.org'
warning: ignoring untrusted substituter 'https://mlabs.cachix.org'
error: experimental Nix feature 'ca-derivations' is disabled; use '--extra-experimental-features ca-derivations' to override
17:46 $ nix develop
warning: Using saved setting for 'allow-import-from-derivation = true' from ~/.local/share/nix/trusted-settings.json.
do you want to allow configuration setting 'extra-experimental-features' to be set to 'nix-command flakes ca-derivations recursive-nix' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
warning: Using saved setting for 'extra-substituters = https://cache.iog.io https://public-plutonomicon.cachix.org https://mlabs.cachix.org' from ~/.local/share/nix/trusted-settings.json.
warning: Using saved setting for 'extra-trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= public-plutonomicon.cachix.org-1:3AKJMhCLn32gri1drGuaZmFrmnue+KkKrhhubQk/CWc=' from ~/.local/share/nix/trusted-settings.json.
warning: ignoring untrusted substituter 'https://public-plutonomicon.cachix.org'
warning: ignoring untrusted substituter 'https://mlabs.cachix.org'
error: experimental Nix feature 'ca-derivations' is disabled; use '--extra-experimental-features ca-derivations' to override

Use nix flake init -t github:LovelaceAcademy/nix-templates#plutus might be drop-in solution to use plutus and nix.

❌ https://github.com/NixOS/nix/issues/4784
alex@nixos:~/.config/nix]$  nix show-config | grep experimental
experimental-features = flakes nix-command


Issues after grape upgradation

When using grape(0.5.0) for the parameter type Integer got the validation error message "invalid parameter: 'parameter_name'" .But after upgrading to grape(0.11.0) this exception is not being caught.
Also with grape(0.11.0) the parameter with Type array is not displayed on the swagger.
parameter is defined like this:
params do
requires :settings, :type => Array
end

This is a lot of Grape versions ago. I don't think I quite understand what you're trying to say here though, would you be so kind to bring this up on the mailing list with a more complete example, thanks!

When using grape(0.5.0) and grape (0.11.0) I get the below response when
the parameter plan_price_cents is passed as empty string.

With grape(0.5.0)

2.With grape (0.11.0)

With latest version of grape error message 'invalid parameter' is not
received.
On Fri, Apr 17, 2015 at 9:09 PM, Daniel Doubrovkine (dB.) @dblockdotorg <
<EMAIL_ADDRESS>wrote:

Closed #991 https://github.com/intridea/grape/issues/991.
—
Reply to this email directly or view it on GitHub
https://github.com/intridea/grape/issues/991#event-284016283.

@kavyavj Can you please email the list with details of the question, your code has been stripped above.


Border remains, when pinned window is closed while not being active window

Microsoft PowerToys version
0.53.3
Running as admin

[ ] Yes

Area(s) with issue?
Always on Top
Steps to reproduce
Pin a window to top (CTRL-WIN-T)
Work in a different window.
DONT re-active the pinned window on top, just hit its close widget.
The window closes, but the blue border remains ontop of your windows.
Newly pinned windows gte new border, but orphaned border remains until you exit power toys
✔ Expected Behavior
Border should disappear when window closes.
❌ Actual Behavior
Border remains if window is the active window while closing it.
Other Software
No response

Duplicate of #15453

Issue is a duplicate
Thank you for your issue! We've linked your report against another issue to centralize the thread.
The fix for this is merged and should be shipped with version 0.55 in a few weeks, please keep an eye on the updates!
Thanks for helping us to make PowerToys a better piece of software.


how to set network proxy

Hello! We are using tcp client from reactor-netty and you can configure proxy for new tcp client as it's described in reference docs. And you can set new tcp client for MTProtoBootstrap and it will look like this:
MTProtoTelegramClient.create(...)
    .setTcpClient(TcpClient.newConnection()
        .proxy(spec -> spec.type(ProxyProvider.Proxy.SOCKS5)
            .address(InetSocketAddress.createUnresolved("proxy", 1989))
            // other properties
        ))

But if you are looking for mtproxy support, it is not ready yet.

it work, thanks


Update collections.array - fsharp .md

fixed signature for copy function

:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/conceptual/collections.array-module-[fsharp].md
:warning:Warning

Details

docs/conceptual/collections.array-module-[fsharp].md

Line 42: [Warning] Invalid file link:(~/array.comparewith['t%5D-function-%5Bfsharp%5D.md).
Line 48: [Warning] Invalid file link:(~/array.distinct['t%5D-function-%5Bfsharp%5D.md).
Line 44: [Warning] Invalid file link:(~/array.contains['t%5D-function-%5Bfsharp%5D.md).
Line 46: [Warning] Invalid file link:(~/array.countby['t,'key]-function-[fsharp].md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

LGTM, thanks @rahulstein!


Validate storage root, check file digests

Additions to make 0.0.4

Pull Request Test Coverage Report for Build 177

30 of 92 (32.61%)  changed or added relevant lines in 4 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-3.3%) to 88.529%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

ocfl/object.py
5
10
50.0%

ocfl/store.py
15
72
20.83%

Files with Coverage Reduction
New Missed Lines
%

ocfl/store.py
1
40.85%

Totals

Change from base Build 171:
-3.3%

Covered Lines:
1204

Relevant Lines:
1360

💛  - Coveralls


SAML User is already registered with another login method

Describe the Bug
Configurated bookstack after some running time with SAML (with authentik).
Wanted to login and get the message the user is already registrated with another login method (the "normal" login)

Steps to Reproduce

Create fresh bookstack instance
Create localy some users
Add SAML integration
Login over SAML

Expected Behaviour

The user should be matched (both have same email address) and login should be possible over SAML

Exact BookStack Version
v21.12.5
PHP Version
No response
Hosting Environment
docker image: linuxserver/bookstack:latest

Seems to be #2968

Ok I needed to populate "external_auth_id" in the database with the username login id from Authentik.


[Discuss] generates extra branches in LLVM IR 0.57.1

Coming from https://matrix.to/#/!kKkfrNhBPczqpCPTmY:gitter.im/$e-ljAvw88hxAaomrKJY4kZ7b8z9PUcTCkRDHyi9wWbk?via=gitter.im&via=tryp.io&via=matrix.org, for this simple function
import numpy as np
from numba import njit
from functools import partial
from timeit import timeit
import os
os.environ["NUMBA_DUMP_OPTIMIZED"] = "1"
os.environ["NUMBA_DUMP_ASSEMBLY"] = "1"
os.environ["NUMBA_OPT"] = "3"

@njit(inline='always', fastmath=True)
def exp_any(p):
    return np.exp(p)

@njit(fastmath=True)
def foo(x, base):
    a1 = np.sign(x) * (1 - exp_any(-abs(x) / base))
    return a1

x = 0.1
base = 0.145
foo(x, base)

partial_foo = partial(foo, x, base)
ret = timeit(partial_foo, number=10000000)
print(ret)

Then compare the LLVM IR and ASM between 0.56.3 and 0.57.1. They have two big differences, which I think it will hurt the performance in 0.57.1:

In LLVM IR for foo in 0.57.1, it uses several branches with br and basic blocks; but in 0.56.3, LLVM IR is optimised to 2 select IR. (And after I changed the opt=0 to 1 in here https://github.com/numba/numba/blob/release0.57/numba/core/codegen.py#L1192, numba can generate select IR in 0.57.1)
In LLVM IR for foo in 0.57.1, it has a branch common.ret, which contains a new phi node; but in 0.56.3, different branches can return by its own. (this common.ret branch is generated in many (or most) functions in my large benchmark)

And I checked related ASM for foo, I believed that the ASM in 0.57.1 does have more branches than 0.56.3.
I think it should be related to excinfo logic changes in numba and llvmlite, and also related to llvm upgrade from 11 to 14. Any idea about this?
gentle cc @sklam @apmasell
foo LLVM IR in 0.57.1
; Function Attrs: mustprogress nofree nosync nounwind willreturn writeonly
define i32 @_ZN8__main__3fooB2v1B40c8tJTIcFKzyF2ILShI4CrgSEKg1MQvBALILIaQIAEdd(double* noalias nocapture writeonly %retptr, { i8*, i32, i8*, i8*, i32 }** noalias nocapture writeonly %excinfo, double %arg.x, double %arg.base) local_unnamed_addr #0 {
for.body:
  %.15 = fcmp ogt double %arg.x, 0.000000e+00
  br i1 %.15, label %for.end, label %for.body.else

for.end:                                          ; preds = %for.body.else, %for.body.else.else, %for.body
  %.13.0 = phi double [ %arg.x, %for.body.else.else ], [ 1.000000e+00, %for.body ], [ -1.000000e+00, %for.body.else ]
  %.34 = fcmp oeq double %arg.base, 0.000000e+00
  br i1 %.34, label %for.end.if, label %for.end.1, !prof !0

for.body.else:                                    ; preds = %for.body
  %.16 = fcmp olt double %arg.x, 0.000000e+00
  br i1 %.16, label %for.end, label %for.body.else.else

for.body.else.else:                               ; preds = %for.body.else
  br label %for.end

common.ret:                                       ; preds = %for.end.1, %for.end.if
  %common.ret.op = phi i32 [ 1, %for.end.if ], [ 0, %for.end.1 ]
  ret i32 %common.ret.op

for.end.if:                                       ; preds = %for.end
  store { i8*, i32, i8*, i8*, i32 }* @.const.picklebuf.47611314910464, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8, !numba_exception_output !1
  br label %common.ret

for.end.1:                                        ; preds = %for.end
  %.32 = tail call double @llvm.fabs.f64(double %arg.x)
  %.33 = fneg double %.32
  %.43 = fdiv double %.33, %arg.base
  %.51 = tail call double @llvm.exp.f64(double %.43)
  %.57 = fsub double 1.000000e+00, %.51
  %.58 = fmul double %.57, %.13.0
  store double %.58, double* %retptr, align 8
  br label %common.ret
}

foo LLVM IR in 0.56.3
; Function Attrs: nofree nounwind writeonly
define i32 @_ZN8__main__3fooB2v1B42c8tJTIcFHzwl2ILiXkcBV0JBlQYmFXhgFUHkNAE_3dEdd(double* noalias nocapture %retptr, { i8*, i32, i8* }** noalias nocapture %excinfo, double %arg.x, double %arg.base) local_unnamed_addr #0 {
entry:
  %.34 = fcmp oeq double %arg.base, 0.000000e+00
  br i1 %.34, label %for.end.if, label %for.end.1, !prof !0

for.end.if:                                       ; preds = %entry
  store { i8*, i32, i8* }* @.const.picklebuf.47142666169600, { i8*, i32, i8* }** %excinfo, align 8
  ret i32 1, !ret_is_raise !1

for.end.1:                                        ; preds = %entry
  %.32 = tail call double @llvm.fabs.f64(double %arg.x)
  %.33 = fneg double %.32
  %.43 = fdiv double %.33, %arg.base
  %.15 = fcmp ogt double %arg.x, 0.000000e+00
  %.16 = fcmp olt double %arg.x, 0.000000e+00
  %.arg.x = select i1 %.16, double -1.000000e+00, double %arg.x
  %.13.0 = select i1 %.15, double 1.000000e+00, double %.arg.x
  %.51.le = tail call double @llvm.exp.f64(double %.43) #3
  %.57 = fsub double 1.000000e+00, %.51.le
  %.58 = fmul double %.13.0, %.57
  store double %.58, double* %retptr, align 8
  ret i32 0
}

For my end,

I has a workaround to optimize the point 1, by using opt=1 in codegen.py.
But don't know how to optimize the point 2.

And another question about excinfo, why and which PR is the change from { i8*, i32, i8* }** noalias nocapture %excinfo to { i8*, i32, i8*, i8*, i32 }** noalias nocapture writeonly %excinfo?

After some digging, excinfo changes should be related to 2 PRs which changes some logic in callconv.py

#8134
#8535

For the point 1, another workaround is removing pm.add_jump_threading_pass() in codegen.py for llvm14. It can remove  some branches and generate select IR for this example as well.

Hi @dlee992, the excinfo changed in https://github.com/numba/numba/pull/8134 to support dynamic exceptions. You can see the details in the pull request, but basically Numba added two new fields to the existing struct to store dynamic values.

For example, I noticed in IR for NRT_incref, which has the new branch common.ret, compared to 0.56.3

The code for NRT_incref hasn't changed in 8 years. Perhaps LLVM was able to optimize away the common.ret branch? By the way, this is the LLVM IR I get in Numba 0.55/0.56:
define linkonce_odr void @NRT_incref(i8* %.1) local_unnamed_addr #2 {
.3:
  %.4 = icmp eq i8* %.1, null
  br i1 %.4, label %.3.if, label %.3.endif, !prof !1

.3.if:                                            ; preds = %atomicrmw.start, %.3
  ret void

.3.endif:                                         ; preds = %.3
  br label %atomicrmw.start

atomicrmw.start:                                  ; preds = %atomicrmw.start, %.3.endif
  %0 = bitcast i8* %.1 to i64*
  %1 = tail call i64 @llvm.aarch64.ldxr.p0i64(i64* nonnull %0)
  %new = add i64 %1, 1
  %2 = tail call i32 @llvm.aarch64.stxr.p0i64(i64 %new, i64* nonnull %0)
  %tryagain.not = icmp eq i32 %2, 0
  br i1 %tryagain.not, label %.3.if, label %atomicrmw.start
}

I'm pretty sure that generation of "common" return blocks came from adoption of/upgrade to LLVM 14, it's "block tail merging" from Transforms::Scalar::SimplifyCFGPass::performBlockTailMerging. Numba's reference pruning passes in llvmlite had to be updated to accommodate this.

Related option: https://github.com/numba/numba/issues/8430 ?

Really hard to provide an example to show IR/ASM diff and performance degradation at the same time. I will try...
But could you show me how to remove common.ret branch, instead let each branch coming to this just directly returns for itself. How to hack numba, llvmlite, or llvm? Literally, reverse the impact of Transforms::Scalar::SimplifyCFGPass::performBlockTailMerging, unmerge it... If I can do this, then I can rerun latency test, then  we can indirectly check if this extra branch hurts the performance?

Hi, @gmarkall @guilhermeleobas @gmarkall .
I tried to provide an example to show the IR diff and performance regression.
Here includes 4 files https://gist.github.com/dlee992/ba3db06e6561ca7d91490f2c38c2ed27
One is the python file, what is running the gaussian function, others are testing cmd, IR&ASM for 0.56.4 and 0.58.0.
Basically, you can see ~ 4% performance regression when running this script multiple times.
I have to say, the timeit is not very stable, sometimes, 0.58.0 is faster than 0.56.4. But in most cases, I feel 0.56.4 is faster.
And I think the main cause is the extra branch common.ret, it also affects the ASM, makes the ASM have extra branch as well.

@dlee992, I tried your script. At first, I am getting the 4% difference. After trying different llvmlite versions and numba versions, suddenly the script no longer produces the 4% difference. In fact, sometimes it's the newer numba and llvmlite versions that are producing better performance.

The modified script:
import math
import os
from timeit import timeit
from functools import partial
import numpy as np

import numba
from numba import njit

os.environ["NUMBA_DUMP_OPTIMIZED"] = "1"
os.environ["NUMBA_DUMP_ASSEMBLY"] = "1"

@njit
def gaussian(x, mu, sigma):
    coefficient = 1 / (sigma * math.sqrt(2 * math.pi))
    exponent = -((x - mu) ** 2) / (2 * (sigma ** 2))
    return coefficient * math.exp(exponent)

mean = 0.0
std_deviation = 1.0
x = 1.0
result = gaussian(x, mean, std_deviation)
print(f"f({x}) = {result:.6f}")

ga = partial(gaussian, x, mean, std_deviation)

print(f"{numba.__version__}: {timeit(ga, number=50_000_000)}")

times = []
for _ in range(10):
    times.append(timeit(ga, number=50_000_000))

print(times)
print("mean", np.mean(times))
print("stddev", np.std(times))

To help reduce the noise, I slightly modified your script to repeat the timeit() for 10 times, and ran it on the follow configurations:

numba
llvmlite
llvm

config 1
0.58.0
0.41.0
(14, 0, 6)

config 2
0.56.4
0.40.0
(14, 0, 6)

config 3
0.56.4
0.39.1
(11, 1, 0)

Result samples:
On config 1:
[7.662383125, 7.647548916999998, 7.654502375, 7.634112834, 7.629486333000003, 7.6543646249999995, 7.6237393749999995, 7.6474195420000015, 7.652181208000002, 7.639226874999991]
mean 7.644496520900001
stddev 0.01177326530497024

On config 2:
[7.287940832999999, 7.278479667000001, 7.291535959000001, 7.227093457999999, 7.355575459000001, 7.330579374999999, 7.2697380839999965, 7.290797332999993, 7.285666165999999, 7.288532500000002]
mean 7.290593883399998
stddev 0.032360418128370004

On config 3:
[7.611829208, 7.632908708000002, 7.620016458999999, 7.626093874999999, 7.6489904999999965, 7.701432208, 7.699524124999996, 7.635975916, 7.619798625000001, 7.609852082999993]
mean 7.6406421707
stddev 0.03188029291876236

Even with the repeated timeit, the script is still quite sensitive to system load. The numbers can change quite a bit between execution. I cannot determine if there is a difference given the noise.
When comparing the assembly, there are small differences between llvm 14 vs llvm 11 but I am not sure it would have an observable impact to the runtimes.

Thanks for your detailed testing! Sry for providing this unstable script.
but does the result of config 2 show that 0.56.4 is a little better than 0.58.0 for this script? It's similar as I did in my customized numba, I use numba 0.57.1 but revert #8130 and #8535 (which makes it nearly equals to 0.56.4), llvmlite 0.39.1, and llvm 11.1.0.
But I didn't expect config 2 is better, but config 3 is similar as config 1. Hard to explain.
I will keep an eye on this issue, and if I find a more stable script, will provide it again.

Then maybe we should close this for now?

I use numba 0.57.1 but revert #8130

I think you mean https://github.com/numba/numba/pull/8134

Hi, @sklam. Thanks again! This time, I brought more experimental results to show the version regression.
Based on your revised script, I tried to plot the distribution of running time with different configs. And most importantly, I pin the CPU to run these experiments (using an isolating CPU) to avoid the noise and make it more statistically sound as best as I can. And I think this result can be stably reproducible.
Here is my revised script, main change is that I adjust the iteration times of the outer loop and the inner timeit.
import math
import os
from timeit import timeit
from functools import partial
import numpy as np
import pandas as pd
import numba
from numba import njit

@njit
def gaussian(x, mu, sigma):
    coefficient = 1 / (sigma * math.sqrt(2 * math.pi))
    exponent = -((x - mu)**2) / (2 * (sigma**2))
    return coefficient * math.exp(exponent)

mean = 0.0
std_deviation = 1.0
x = 1.0
result = gaussian(x, mean, std_deviation)
print(f"f({x}) = {result:.6f}")

ga = partial(gaussian, x, mean, std_deviation)

print(f"{numba.__version__}: {timeit(ga, number=50_000)}")  # run first time

times = []
for _ in range(int(1e4)):
    times.append(timeit(ga, number=50_000))

# print(times)
print("mean", np.mean(times))
print("stddev", np.std(times))

Then I plot the distribution of 3 configs as you listed:

In this result, config 1 (0.58.0) has 10% performance regression compared with config 3 (0.56.4), and config 2 is the slowest. I didn't expect 10%, maybe we can turn on some acceleration options, such as FASTMATH, etc. But the regression should still exist if we keep the same acceleration options for different configs.

That's very useful for debugging the problem. As previously i tried to revert commits and git bisect to find the source but it is very hard to pick from the noise. Let me see if i can replicate your results on my machine.

@dlee992, here's my result:

Note the dev0 ones are mesuring on the dev label. A 0.57.0dev0 will be one commit after the branching of 0.56.0. The 0.59.0dev0 label will be right after the 0.58 release.
I don't think this benchmark is revealing anything here. For instance:

nb57dev0-llvm14, which is the same as 0.56, has a different performance than 0.56 with either llvm versions.
The start of the 0.58 cycle (nb58dev0-llvm14) is worst but by the end of the release cycle (nb59dev0-llvm14) it becomes better again.

I think we are measuring CPU throttling.

Thanks! I don't know why my results show nb56_4 (config 3) is better than nb58_0 (config 1), but your results always don't. But anyway, appreciate for your following up! Maybe new version has already overcame this issue for me. Will try upgrade again.

I managed to reproduce the performance difference noted in the OP. I then looked at the assembly reported by LLVM (via .inspect_asm() on the dispatcher) and noted that the only material difference was in the cpython wrapper, the nopython function was the same. I then tested the performance running the code on HEAD and 0.56 via the cfunc wrapper and the performance was the same, which suggested the difference was in the cpython wrapper. I then started reducing the code and found that a simple NOP function exhibited the same behaviour (locally).
from functools import partial
from timeit import timeit
from numba import njit

def gauss():
    pass

ga = partial(gauss())
print("time = ", timeit(ga, number=50_000_000)

The main differences between HEAD and 0.56 are 1. the change to the exception handling 2. that LLVM 14 generates common return blocks in the IR, so I started looking at the impact of this. I then disassembled the in-memory binary as linked by MCJIT for HEAD and 0.56 to try and see what was going on. I did it at this level to make sure that e.g. padding and layout were taken into consideration. Having looked at the binaries, it seems like HEAD generates machine code for the wrapper where the "exception" from unboxing the args tuple and the "success" return path are a) shared and b) is located immediately after assembly of the item to return. In pseudo code it looks like this:
    call PyArg_UnpackTuple
    if call failed goto 10
    test for env pointer
    if failed goto 20
    call main()
    call PyIncRef on Py_NoneStruct
10  do return stuff # shared path for PyArg_UnpackTuple and "success"
    return
20  do stuff for return env pointer missing
    return

whereas in 0.56 the unboxing from the args tuple and the "success" return path are a) separate and essentially duplicated and b) the "exception" return is located after the standard return. In pseudo code it looks like this:
    call PyArg_UnpackTuple
    if call failed goto 20
    test for env pointer
    if failed goto 10
    call main()
    call PyIncRef on Py_NoneStruct
    do return stuff for "success"
    return
10  do return stuff for env pointer missing
    return
20  do return stuff for failed PyArg_UnpackTuple
    return

From this I guessed at it being potentially to do with branch prediction/binary layout, so ran the sample through perf stat and found that the on 0.56 0.33% of all branches are branch-misses whereas on HEAD it's 0.46%.  I guess this is enough to cause the minor differences and also to perhaps make it quite hard to track and potentially hardware and hardware-state specific.

Wonderful explanation! @stuartarchibald then this is a feature in the new version or a bug/enhancement which could be fixed or improved? A very interesting and subtle case!

Updates for my internal tests: I tried to upgrade numba to 0.58.1 and remove the changes in callconv.py in #8535 , but keep using llvmlite 0.39.1 with llvm 11.1.0. The performance doesn't have degradation. Just in case anyone meets the same issue as me.

Update again: After I tried another customised/tricky optimization internally, this issue doesn't stand any more. I can get the same speed with the numba 0.58.1 and corresponding llvmlite and llvm.
I think I can close this for now.


Very minor typo in an example

Technically 20016 is a valid year I guess ;-)

Thanks Doug for your Eagle Eyes.

I find it is infinitely easier to spot typos in other people's documentation ;-)


Attribute Error on first run after install

Expected result
Vq shows the help text
Actual result
Vq throws an error
Output
$ vq --help
Traceback (most recent call last):
File "/usr/local/bin/vq", line 39, in
from vquery import *
File "/usr/local/lib/python2.7/dist-packages/vquery/init.py", line 4, in
from .vqconnect import setup_connection
File "/usr/local/lib/python2.7/dist-packages/vquery/vqconnect.py", line 24, in
context = ssl.create_default_context()
AttributeError: 'module' object has no attribute 'create_default_context'
Version information
Python 2.7.6
Latest version of vq installed via pip

Seems to be an issue for many python-projects utilizing SSL context creation, as those methods were introduced in Python 2.7.9
Suggested solution is to run vq in Python3 or upgrade Python2. Thanks for bringing it to attention though - I'll add it to documentation.


Use pytest-aiohttp in tests

Otherwise, we get:
E       fixture 'aiohttp_client' not found

What do these changes do?
Add a test dependency on pytest-aiohttp.
Are there changes in behavior for the user?
No. Tests only.
Related issue number
I haven't opened one.
Checklist

[x] I think the code is well written
[x] Unit tests for the changes exist - without his, the tests won't run
[x] Documentation reflects the changes - not needed
[ ] Add a new news fragment into the CHANGES folder

name it <issue_id>.<type> (e.g. 588.bugfix)
if you don't have an issue_id change it to the pr id after creating the PR
ensure type is one of the following:

.feature: Signifying a new feature.
.bugfix: Signifying a bug fix.
.doc: Signifying a documentation improvement.
.removal: Signifying a deprecation or removal of public API.
.misc: A ticket has been closed, but it is not of interest to users.

Make sure to use full sentences with correct case and punctuation, for example: Fix issue with non-ascii contents in doctest text files.

There is no CHANGES folder.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

This is not a nice response to a PR after 1 year. Consider my contribution Public Domain.

I tested this PR and it correctly fixes pytest.PytestUnhandledCoroutineWarning: async def functions are not natively supported and have been skipped., it should be mergd.


Patch ftx, bybit and security

Ftx:

Adding Rest request
Adding OTC
Adding Ping WebSocket Request
Bybit:
Adding Ping WebSocket Request
Security:
Edit ApiKey

Hi Fenrur. Thank you for your input. However, there is too much formatting change here in this PR. Could you kindly exclude the non-logic changes please?


Failed to install kubecloud!!!

Hi, I've install it using kubectl apply, but it returns repository does not exist or may require 'docker login', it seems the image is not public? How to solve this problem.
Events:
  Type     Reason     Age                  From                  Message
  ----     ------     ----                 ----                  -------
  Normal   Scheduled  3m11s                default-scheduler     Successfully assigned kubecloud/kubecloud-7789fd444f-6cscw to ks-allinone
  Normal   Pulling    81s (x3 over 3m10s)  kubelet, ks-allinone  Pulling image "kubecloud"
  Warning  Failed     47s (x3 over 2m32s)  kubelet, ks-allinone  Failed to pull image "kubecloud": rpc error: code = Unknown desc = Error response from daemon: pull access denied for kubecloud, repository does not exist or may require 'docker login'
  Warning  Failed     47s (x3 over 2m32s)  kubelet, ks-allinone  Error: ErrImagePull
  Normal   BackOff    11s (x5 over 2m31s)  kubelet, ks-allinone  Back-off pulling image "kubecloud"
  Warning  Failed     11s (x5 over 2m31s)  kubelet, ks-allinone  Error: ImagePullBackOff

明显拉不到镜像

There is currently no public network image available for download, you can build the image locally.


Fix at lease instead of at least typo

Why:
There are multiple typos

What's being changed (if available, include any code snippets, screenshots, or gifs):
Changed all occurrence of at lease to at least
Check off the following:

[ ] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[X] For content changes, I have completed the self-review checklist.

@Greesb - Thanks for opening an PR! I've made a slight edit to your post to link it to your issue. For more information on how to do that, see "Linking a pull request to an issue". 👍
I'll get this triaged for review! :zap:

(PR#22952)
On Tue, Jan 3, 2023, 9:05 PM Courtney Wilson @.***>
wrote:

@Greesb https://github.com/Greesb - Thanks for opening an PR! I've made
a slight edit to your post to link it to your issue. For more information
on how to do that, see "Linking a pull request to an issue
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue".
👍
I'll get this triaged for review! ⚡
—
Reply to this email directly, view it on GitHub
https://github.com/github/docs/pull/22952#issuecomment-1369867536, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A5AOZYEVC4ZWBLLCRUW4T4TWQQ525ANCNFSM6AAAAAATOXBP6U
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi @Greesb 👋🏻
Many thanks for identifying this typo in the REST API docs 🙇🏻♀
Our docs for the REST API articles are generated automatically from an OpenAPI schema, which is why your pull request triggered the warning above. Having autogenerated docs makes it easier to ensure that they are updated whenever the API is updated, but does have the side effect that we'll need to fix this typo internally.
I'll trigger a workflow that will open an internal issue to fix this error.

Closing because this needs to be fixed in a different repository.


Swift Package cannot pass Archive Validation

Hello,
I am using the onnx swift package in my iOS project, when attempting archive and upload a build to the TestFilght, it is failing validation with the following errors.
It appears there are two errors, the statically linked framework needs to set MinimumOSVersion in its info .plist.
Also the onnxruntime_extensions looks like it needs to renamed to not use underscores.
MinimumOSVersion. Apps that only support 64-bit devices must specify a deployment target of 8.0 or later. MinimumOSVersion in 'MyApp.app/Frameworks/onnxruntime.framework' is ''.

Asset validation failed
Invalid MinimumOSVersion. Apps that only support 64-bit devices must specify a deployment target of 8.0 or later. MinimumOSVersion in 'MyApp.app/Frameworks/onnxruntime_extensions.framework' is ''.

Asset validation failed
Missing Info.plist value. A value for the key 'MinimumOSVersion' in bundle MyApp.app/Frameworks/onnxruntime.framework is required.

Asset validation failed
Missing Info.plist value. A value for the key 'MinimumOSVersion' in bundle MyApp.app/Frameworks/onnxruntime_extensions.framework is required.

Asset validation failed
This bundle is invalid. The bundle at path Payload/Interview.app/Frameworks/onnxruntime_extensions.framework has an invalid CFBundleIdentifier 'com.microsoft.onnxruntime_extensions' There are invalid characters(characters that are not dots, hyphen and alphanumerics) that have been replaced with their code point 'com.microsoft.onnxruntime\u005fextensions' CFBundleIdentifier must be present, must contain only alphanumerics, dots, hyphens and must not end with a dot. [see the Core Foundation Keys at https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/TP40009249-102070-TPXREF105]

Asset validation failed
Invalid Bundle. The bundle MyApp.app/Frameworks/onnxruntime.framework does not support the minimum OS Version specified in the Info.plist.

Asset validation failed
Invalid Bundle. The bundle MyApp.app/Frameworks/onnxruntime_extensions.framework does not support the minimum OS Version specified in the Info.plist.

I do not get the errors when archiving and uploading using cocoa pods.
But would much rather be using Swift Packages as Onnx is the only pod being used in my project.
Thank you!

This bundle is invalid. The bundle at path Payload/Interview.app/Frameworks/onnxruntime_extensions.framework has an invalid CFBundleIdentifier 'com.microsoft.onnxruntime_extensions'

this one has been fixed in com.microsoft.onnxruntime_extensions

This bundle is invalid. The bundle at path Payload/Interview.app/Frameworks/onnxruntime_extensions.framework has an invalid CFBundleIdentifier 'com.microsoft.onnxruntime_extensions'

this one has been fixed in com.microsoft.onnxruntime_extensions
cc @edgchen1

Should we wait for the next release, or should we just re-fetch the package?

cc @edgchen1 @apsonawane, please, this seems like an easy fix

this one has been fixed in com.microsoft.onnxruntime_extensions

onnxruntime-swift-package-manager 1.20.0 has been released. It uses onnxruntime-extensions 0.13.0 which includes the fix for the invalid identifier.

I still see the issue after updating to use 1.20.0 version of the package. I still see MinimumOSVersion errors when trying to validate my archive.
I think I have found a work around, but would prefer not to do this.
I added the following to Run Script under build phases and no longer see the MinimumOSVersion errors, in my case my app has a minimum iOS version of 16.0

set -e
/usr/libexec/PlistBuddy -c "Delete :MinimumOSVersion" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/onnxruntime.framework/Info.plist" || true
/usr/libexec/PlistBuddy -c "Add :MinimumOSVersion string 16.0" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/onnxruntime.framework/Info.plist"
set -e
/usr/libexec/PlistBuddy -c "Delete :MinimumOSVersion" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/onnxruntime_extensions.framework/Info.plist" || true
/usr/libexec/PlistBuddy -c "Add :MinimumOSVersion string 16.0" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/onnxruntime_extensions.framework/Info.plist"


NativeModules is {}

Description
NativeModules is {}
I've created a new React Native app with configuration for sharing Intents.  My app icon shows up in the app share tray, and when the user taps the app icon in the app share tray - the emulator brings my app to the top as expected.  Unfortunately, NativeModules is always an empty object ({}) in my RN component so I'm not able to access my custom module:

I've validated my current implementation with all of the AI chatbots
I've researched and posted to StackOverflow and Reddit
I've tried all of the different approaches that were mentioned in previous GitHub Issues threads

So I'm submitting this issue.  Maybe I'm just missing something - which is quite possible since this is the first native module that I've implemented in RN.  I've created the following repo as a very simple example to isolate the problem at hand:
https://github.com/design-and-deliver/nativemodulesdebug
It should be fully runnable with all of the required files and configurations.  I'm really curious what the problem might be here.
Steps to reproduce

npm install
npx react-native run-android
app will load and Home component will render
check metro logs to see that NativeModules is {}

React Native Version
0.74.3
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
  OS: Windows 11 10.0.22621
  CPU: (8) x64 Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
  Memory: 2.50 GB / 15.80 GB
Binaries:
  Node:
    version: 18.18.0
    path: C:\Program Files\nodejs\node.EXE
  Yarn:
    version: 3.6.4
    path: ~\AppData\Roaming\npm\yarn.CMD
  npm:
    version: 9.8.1
    path: C:\Program Files\nodejs\npm.CMD
  Watchman: Not Found
SDKs:
  Android SDK: Not Found
  Windows SDK:
    AllowAllTrustedApps: Disabled
    Versions:
      - 10.0.17763.0
IDEs:
  Android Studio: AI-241.15989.150.2411.11948838
  Visual Studio:
    - 17.6.33723.286 (Visual Studio Community 2022)
    - 16.11.33529.622 (Visual Studio Community 2019)
Languages:
  Java: 17.0.11
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.74.3
    wanted: 0.74.3
  react-native-windows: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

Stacktrace or Logs
LOG  [7/11/2024 12:13:36 PM] All Native Modules: {}
 LOG  [7/11/2024 12:13:36 PM] IntentModule - direct access: null
 ERROR  [TypeError: Cannot read property 'getSharedText' of null]

Reproducer
https://github.com/design-and-deliver/nativemodulesdebug
Screenshots and Videos

@design-and-deliver you will not be able to enumerate native modules by  console.log
also You need to register your native module package to access from js side

@design-and-deliver Did you tried fix proposed by @netmaxt3r ?

@design-and-deliver you will not be able to enumerate native modules by console.log also You need to register your native module package to access from js side

That's a dead link, have a working one?

@design-and-deliver you will not be able to enumerate native modules by console.log also You need to register your native module package to access from js side

That's a dead link, have a working one?

Here it is: https://reactnative.dev/docs/0.74/native-modules-android?android-language=kotlin#register-the-module-android-specific

Im also facing same issue.
just {} is coming for native modules if I put console log
but if I call its working :)


fix: CoreStatement uses optimize regex for generated key matches

While profiling some software that makes heavy use of prepared statements and SQLite, I noticed that each call to java.sql.Connection#prepareStatement(java.lang.String) ended up compiling a regex pattern as part of org.sqlite.core.CoreStatement.<init>(SQLiteConnection) construction. This appears to be a recent addition as part of https://github.com/xerial/sqlite-jdbc/pull/1056  with example call trace showing up as over 75% of total allocations in JFR:

Because JDK Pattern instances are immutable and thread-safe, we can compile the regex on CoreStatement class load to a static field for reuse, and adjust the regex to avoid additional possible allocations from trimming and converting the SQL to lower case, as well as use non-capturing groups to avoid Pattern#matcher allocating the int[] arrays associated with capture groups.

thanks a lot for the PR !


Allow Option with the new Query many() interface

What problem does this solve or what need does it fill?
I'd like to get multiple entities at once from a Query where some of those entities may be optional. Unless I've missed something, I don't currently see a way to do this.
What solution would you like?
struct SomeEntities {
    a: Entity,
    b: Option<Entity>,
}

fn system(mut query: Query<&mut Transform>, entities: Res<SomeEntities>) {
    let [a_transform, b_transform] = query.many_mut([entities.a, entities.b]);

    if let Some(b_transform) = b_transform {
        // ...
    }
}

What alternative(s) have you considered?
So far I'm not sure of an alternative aside from the old ways of working without the new many() interface.

You can always dip into the unsafe waters with get_unchecked for now.

How were you doing this before? I don't really see a way to do this at all before without get_unchecked,


Request

Swedbank? One of the largest bank's in north/east europe.

That's actually a bank and not a payment method or provider as far as I get it from Wikipedia. Banks are not to be included with PaymentFont, as that would go beyond the scope of it's purpose. Please correct me if I'm wrong ;)


Detection default language work incorrectly

Description
By default I use Russion language in my windows. In Files sets as language Windows default. In fact Files uses English language
Steps To Reproduce

Switch langiage of your OS to some not English langiage. For example to Russian.
In Files set as language value Windows default
Look to English interface of Files

Expected behavior
Files should use system language
Files Version
<IP_ADDRESS> 21H2
Windows Version
Windows 11 Pro 22000.348
Relevant Assets/Logs
debug.log

Is this still an issue in <IP_ADDRESS>?


[fix] repair a snapshot-split bug:

when use splitOneUnevenlySizedChunk, sometimes(for example, a database or a table or a column use 'utf8mb4_general_ci') we will get a big chunk. For example when the value of primaryKey like ['0000','1111','2222','3333','4444','aaaa','bbbb','cccc','ZZZZ',...] almost all of the values which starts with a [a-zA-z] will be split into a big chunk;

Hi @AidenPerce, could you please rebase this PR with latest master branch before it could be merged? Renaming like com.ververica.cdc to org.apache.flink.cdc might be necessary.

Hi @AidenPerce, could you please rebase this PR with latest master branch before it could be merged? Renaming like com.ververica.cdc to org.apache.flink.cdc might be necessary.

I have rebase the branch of this pr, but there are some problems in test-case of  db2-connector, that caused i can't
update this pr.  I don't know why the case couldn't pass, this is the check log:  https://github.com/AidenPerce/flink-cdc-connectors/actions/runs/8963238039/job/24613239338

Hi @AidenPerce, sorry about the inconvenience. I think it's related to a glitch in Db2 incremental connector and should be fixed by #3283. Will try to get it merged asap.

Hi @AidenPerce, the Db2 CI fix has been merged into master branch, could you please rebase this PR and see if this problem persists? Thank you!

@yuxiqian may help to merge it please ?

Hi @AidenPerce, is there any updates on this PR? Feel free to comment here if you need any help.


urlparse can not parse s3 url correctly

After setting s3 bucket, an error occurs:
S3 datastore operation _put_s3_object failed (Parameter validation failed:
Invalid bucket name "": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$" or be an ARN matching the regex "^arn:(aws).*:s3:[a-z\-0-9]+:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\-]{1,63}$"). Retrying 7 more times..

This is due to in metaflow/datastore/s3.py urlparse can not figure out schema and netloc correctly.
A simple workaround is replacing the following content
try:
    # python2
    from urlparse import urlparse
    import cStringIO
    BytesIO = cStringIO.StringIO
except:
    # python3
    from urllib.parse import urlparse as offcial_urlparse
    import io
    BytesIO = io.BytesIO

with
try:
    # python2
    from urlparse import urlparse as offcial_urlparse
    import cStringIO
    BytesIO = cStringIO.StringIO
except:
    # python3
    import io
    from urllib.parse import urlparse as offcial_urlparse
    BytesIO = io.BytesIO
# modified by Kevin
# 07/12/2019
def urlparse(path):
    return offcial_urlparse(path if path.startswith('s3:') else 's3://' + path)

There should be a more elegant way to fix the issue

What’s the schema for your S3 bucket that you are configuring?

What’s the schema for your S3 bucket that you are configuring? We expect paths to be prefixed by s3://.

In .metaflowconfig/config.json "METAFLOW_DATASTORE_SYSROOT_S3": "s3://tsproj"

And that isn't working? What are the steps you took to reproduce the behavior?

It will work if you remove the s3:// prefix. We will make a small patch to handle this in the next release.

It will work if you remove the s3:// prefix. We will make a small patch to handle this in the next release.

Thanks, mate. It helps


HTTP<->GRPC transcoding

@kyessenov commented on Thu Jul 13 2017
@lizan what needs to be configured to support GRPC transcoding in Istio?
Do we want to expose a new port for HTTP for GRPC services or GRPC endpoint for HTTP services? How do we provide API specification to Envoy and in what form?

@lizan commented on Thu Jul 13 2017
I don't think we need a new port, they can live together.
The filter in envoy need proto descriptor and service name. What API specification will we have in pilot?

@kyessenov commented on Thu Jul 13 2017
Sharing the port makes it simpler. API specification should be bound to a service name and a port. Does Envoy just expect a protobuf descriptor with http rule annotations?

@lizan commented on Thu Jul 13 2017
https://lyft.github.io/envoy/docs/configuration/http_filters/grpc_json_transcoder_filter.html
Yes, full protobuf descriptor with http annotations, and the gRPC service name is needed.

@rshriram commented on Thu Jul 13 2017
How are we going to surface this?
On Thu, Jul 13, 2017 at 5:28 PM Lizan Zhou<EMAIL_ADDRESS>wrote:

https://lyft.github.io/envoy/docs/configuration/http_filters/grpc_json_transcoder_filter.html
Yes, full protobuf descriptor with http annotations, and the gRPC service
name is needed.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/pilot/issues/928#issuecomment-315207264, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH0qd5RRNq7MYzzZRbFIjSgOOCCrBxz3ks5sNov_gaJpZM4OXhit
.

--
~shriram

@kyessenov commented on Thu Jul 13 2017
We would need configuration element attached to a service. We could extend DestinationPolicy with the transcoding options and API surface spec embedded within. The protobuf descriptor is rather obscure, however. Can we convert it to something human readable, Lizan?

@lizan commented on Thu Jul 13 2017
Protobuf descriptor is a protobuf binary, so you can always convert it to JSON. Do you consider JSON human readable? 😛

@kyessenov commented on Thu Jul 13 2017
Yes, even if it is, proto descriptors are too verbose. Filed https://github.com/istio/galley/issues/52 to get storage as distinct objects.

@arbarlow commented on Mon Oct 30 2017
Not sure if it's relevant here, but it would be also super useful to be able to use the gRPC web filter that's available and in general have a bit access to Envoy filters etc, thoughts?

@arbarlow commented on Mon Oct 30 2017
Happy to open a separate issue if need be

@lizan commented on Mon Oct 30 2017
gRPC-web should be a separate issue, feel free to open it, and it should be easier than transcoding since the proxy doesn't have to know about the proto descriptor.

We need a storage for proto descriptor to support this, CRD is not suitable because it's not binary safe and has small size limit (1MB).
@kyessenov where did https://github.com/istio/galley/issues/52 get moved to?

are there plans to add support for transcoding grpc <-> http/json?

any update?


Implement symmetric versions of models

In this PR we add symmetric model Hamiltonians using MPSKitModels.jl. This allows us to run, e.g., a $\mathrm{U}(1)$ symmetric optimization of the Heisenberg model.

I noticed a problem with the symmetrized optimization when I looked at Lander's symmetrization code I hadn't taken into account before: already at the retract stage the PEPS needs to be symmetrized in order for the line search to work properly. Before, I only symmetrized at the finalize! stage which also kind of worked but leads to problems, I think.
Of course it is not very nice to have retract, inner and finalize! as keyword arguments in fixedpoint but since we anyway want to change the optimizer, I kept it like that for now for correctness. Then we at least know what the new optimization package should be capable of (i.e. custom retraction/finalization routines or something similar).

I think the warnings are because you defined the lattice to default to the peps models, while they already had default values to be the infinitechain. Probably it's better to just not give them a default value here.
Considering the symmetrization, if we add these keywords to the fixedpoint routine than that routine is really just becoming more and more of a carbon copy of the optimization calls. Maybe we can add a symmetrization kwarg instead that automatically inserts the correct retraction etc?

I think the warnings are because you defined the lattice to default to the peps models, while they already had default values to be the infinitechain. Probably it's better to just not give them a default value here.

Whoops, I didn't have that in mind but I'm also okay with having to specify InfiniteSquare() when you initialize the Hamiltonian. I just thought that would make the user interface again a bit more complicated and convoluted but if we want to be compatible with MPSKitModels then that's probably the best compromise.

Maybe we can add a symmetrization kwarg instead that automatically inserts the correct retraction etc?

The problem with just having the symmetrization kwarg is that we still need a callback/finalize kwarg (for example if one wants to implement some kind of checkpoint saving mechanism). I do of course agree that fixedpoint is now just converging to a carbon copy of the optimization routine but it is still more convenient to have some wrapper around the optimize call.
At this point the optimization interface with all the arguments has grown too much and I think we should consider doing a clean rewrite. Also if we switch to Optim.jl/Manopt.jl then things will again change a bit (i.e. how to implement callbacks and the symmetrization). So I'm not sure what the best way is to proceed in the meantime. I could implement a symmetrization kwarg which accepts nothing or SymmetrizationStyle and then inserts the correct arguments but I would still need the finalize! kwarg. What do you think?

I think it's definitely nicer to have a symmetrize and finalize kwarg in that case. I think you could wrap the user-provided finalizer by first doing the symmetrization and then the finalizer, and at least this is hiding the fact that you need to know about retractions and inner products etc that have to be compatible.
My general feeling is a bit like this: either we try and do things automatically, in which case it should be possible to use the interface without knowing too much about the internals, or we consider this to be an expert usage case. If the former, I think symmetrize is a bit more intuitive, and if the latter, it's not actually that hard to hijack the optimization routine yourself to hack in custom finalizers etc. I don't like mixing up these two concepts, as that typically ends up with being too elaborate for casual use, while not being flexible if you want to really fiddle with it

I think it's definitely nicer to have a symmetrize and finalize kwarg in that case.

I would also think so, I'll get to it after the weekend!

My general feeling is a bit like this: either we try and do things automatically, in which case it should be possible to use the interface without knowing too much about the internals, or we consider this to be an expert usage case.

I definitely agree with the general idea. I feel like that we already are somewhat in the middle ground between an expert and automatic user interface, so that's why I would like to redesign a bit at some point (especially the way all the parameters are set). But for now I will just implement the symmetrization kwarg.


Header date variable always shows UTC timezone

Is there any way to set the time zone and language?
Would it be feasible to set this in an environment variable?

docker compose:

gotenberg:
    container_name: gotenberg
    image: gotenberg/gotenberg:8
    restart: always
    environment:
      TZ: America/Sao_Paulo

excerpt from the header.html:

{{.Date}}

{{.Title}}

Great question! No idea, maybe Chrome reads the TZ env var?

As far as I know, chromium should pick up the system's timezone settings.
I tried this but without success:
FROM gotenberg/gotenberg:8

USER root

RUN apt-get update -qq &&\
    DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends -t bookworm-backports libreoffice-l10n-de &&\
    sed -i '/pt_BR.UTF-8/s/^# //g' /etc/locale.gen &&\
    locale-gen &&\
    # Cleanup.
    # Note: the Debian image does automatically a clean after each install thanks to a hook.
    # Therefore, there is no need for apt-get clean.
    # See https://stackoverflow.com/a/24417119/3248473.
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

ENV LANG pt_BR.UTF-8
ENV LANGUAGE pt_BR:pt
ENV LC_ALL pt_BR.UTF-8
ENV TZ America/Sao_Paulo

USER gotenberg

AFAIK you may emulate a given timezone on a page using the ChromeDevTools protocol, but i'm not sure it will work for the header/footer feature though 🤔


Uncaught TypeError: Cannot read property '0' of null

Steps to reproduce below:

This was the SCSS file I tried to do "Css clean". https://gist.github.com/cliffordfajardo/b0b58cc76afcaef843cd
The error seems to be coming from line 79, when there is no closing semicolon. However, even with the semicolon added, the 'Cannot read property '0' of null' still occurs.
and the code around line 79 remains like so after running ' Css clean.
I removed the Sass inline comments form 82 - 86  of the gist and that completely solved the errors from steps 1 & 2.

.card-menu a {
 display        : inline-block;
 margin-right   : 20px;
 padding-top    : 15px;
 text-transform : uppercase;
 font-size      : 0.8em;
 font-weight : 500;
 color: black;
}

Atom Version: 1.4.0
System: Mac OS X 10.11.2
Thrown From: css-clean package, v1.4.0
Stack Trace
Uncaught TypeError: Cannot read property '0' of null
At /Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3

TypeError: Cannot read property '0' of null
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2390)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at getGroup (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2811)
    at cleanCss (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:2941)
    at atom-text-editor.module.exports.convert (/Users/cliffordfajardo/.atom/packages/css-clean/lib/css-clean.js:3:9882)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at CommandPaletteView.module.exports.CommandPaletteView.confirmed (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/command-palette/lib/command-palette-view.js:183:32)
    at CommandPaletteView.module.exports.SelectListView.confirmSelection (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-space-pen-views/lib/select-list-view.js:338:21)
    at space-pen-div.atom.commands.add.core:confirm (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-space-pen-views/lib/select-list-view.js:109:19)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:536:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:359:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:97:36)
    at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)

Commands
     -0:37.1.0 autocomplete-plus:confirm (atom-text-editor.editor.is-focused.autocomplete-active)
     -0:23.5.0 core:copy (atom-text-editor.editor.is-focused)
  2x -0:23.3.0 core:backspace (atom-text-editor.editor.is-focused)
     -0:20.3.0 emmet:insert-formatted-line-break-only (atom-text-editor.editor.is-focused)
     -0:20.3.0 editor:newline (atom-text-editor.editor.is-focused)
     -0:18.6.0 emmet:insert-formatted-line-break-only (atom-text-editor.editor.is-focused.autocomplete-active)
     -0:18.6.0 autocomplete-plus:confirm (atom-text-editor.editor.is-focused.autocomplete-active)
     -0:18.6.0 autocomplete-plus:activate (atom-text-editor.editor.is-focused)
  2x -0:17 core:save (atom-text-editor.editor.is-focused)
     -0:13.1.0 command-palette:toggle (atom-text-editor.editor.is-focused)
     -0:11.9.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:11.9.0 css-clean:convert (atom-text-editor.editor)
     -0:11.4.0 core:save (atom-text-editor.editor.is-focused)
     -0:04.0 command-palette:toggle (atom-text-editor.editor.is-focused)
     -0:02.8.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:02.8.0 css-clean:convert (atom-text-editor.editor)

Config
{
  "core": {
    "disabledPackages": [
      "wrap-guide",
      "welcome",
      "styleguide",
      "timecop",
      "package-generator",
      "about",
      "background-tips",
      "font-viewer",
      "pane-move-plus",
      "sync-settings",
      "atom-runner",
      "npm-plus",
      "autocomplete-modules",
      "atom-ternjs",
      "linter-jshint",
      "livestyle-atom",
      "linter-csslint",
      "linter-htmlhint"
    ],
    "packagesWithKeymapsDisabled": [
      "css-clean"
    ],
    "themes": [
      "atom-material-ui",
      "duotone-dark-syntax"
    ]
  }
}

Installed Packages
# User
aligner, v0.17.4
atom-beautify, v0.28.21
atom-fix-path, v0.1.0
atom-material-ui, v0.8.0
autoclose-html, v0.19.0
autocomplete-project-paths, v2.2.0
autoprefixer, v3.1.0
browser-plus, v0.0.54
color-picker, v2.0.14
css-clean, v1.4.0
duotone-dark-syntax, v0.5.0
emmet, v2.3.17
file-icons, v1.6.13
git-time-machine, vundefined
linter, v1.11.3
linter-jsonlint, v1.1.4
package-settings, v1.0.1
pane-layout-plus, v0.7.3
pigments, v0.19.6
rest-client, v0.5.0
set-syntax, v0.3.0
svg-preview, v0.7.3
terminal-plus, v0.14.5

# Dev
No dev packages

Fixed now

Same Issue here.
TypeError: Cannot read property '0' of null     at Function.capture.comment inline (/Users/Hannes/.atom/packages/css-clean/main.js:194:14)     at capture (/Users/Hannes/.atom/packages/css-clean/main.js:25:23)     at Object.capture.property group.capture.sass each.capture.sass for.capture.sass import.capture.sass mixin.capture.shared.nested (/Users/Hannes/.atom/packages/css-clean/main.js:407:19)     at Function.capture.selector (/Users/Hannes/.atom/packages/css-clean/main.js:155:26)     at capture (/Users/Hannes/.atom/packages/css-clean/main.js:25:23)     at capture.property group.capture.sass each.capture.sass for.capture.sass import.capture.sass mixin.cleanCss.fn.value (/Users/Hannes/.atom/packages/css-clean/main.js:508:19)     at Object.value (/Users/Hannes/.atom/packages/css-clean/main.js:1338:24)     at atom-text-editor.capture.property group.capture.sass each.capture.sass for.capture.sass import.capture.sass mixin.getValue.comment block.getValue.media query.getValue.sass import.lines.map.value.split.map.module.exports.convert (/Users/Hannes/.atom/packages/css-clean/main.js:1470:10)     at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)     at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61     at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:570:16)     at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:378:22)     at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:97:36)     at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)
css-clean: 2.2.10
Atom: 1.6.0

Same thing happens on comment:
.toggleContent{  // display: block;  }
Stack Trace:
TypeError: Cannot read property '0' of null     at Function.capture.comment inline (C:\Users\btoktas\.atom\packages\css-clean\main.js:194:14)     at capture (C:\Users\btoktas\.atom\packages\css-clean\main.js:25:23)     at Object.capture.shared.nested (C:\Users\btoktas\.atom\packages\css-clean\main.js:407:19)     at Function.capture.selector (C:\Users\btoktas\.atom\packages\css-clean\main.js:155:26)     at capture (C:\Users\btoktas\.atom\packages\css-clean\main.js:25:23)     at Object.capture.shared.nested (C:\Users\btoktas\.atom\packages\css-clean\main.js:407:19)     at Function.capture.selector (C:\Users\btoktas\.atom\packages\css-clean\main.js:155:26)     at capture (C:\Users\btoktas\.atom\packages\css-clean\main.js:25:23)     at Object.capture.shared.nested (C:\Users\btoktas\.atom\packages\css-clean\main.js:407:19)     at Function.capture.selector (C:\Users\btoktas\.atom\packages\css-clean\main.js:155:26)     at capture (C:\Users\btoktas\.atom\packages\css-clean\main.js:25:23)     at Object.capture.shared.nested (C:\Users\btoktas\.atom\packages\css-clean\main.js:407:19)     at Function.capture.selector (C:\Users\btoktas\.atom\packages\css-clean\main.js:155:26)     at capture (C:\Users\btoktas\.atom\packages\css-clean\main.js:25:23)     at Object.capture.shared.nested (C:\Users\btoktas\.atom\packages\css-clean\main.js:407:19)     at Function.capture.selector (C:\Users\btoktas\.atom\packages\css-clean\main.js:155:26)     at capture (C:\Users\btoktas\.atom\packages\css-clean\main.js:25:23)     at cleanCss.fn.value (C:\Users\btoktas\.atom\packages\css-clean\main.js:508:19)     at Object.value (C:\Users\btoktas\.atom\packages\css-clean\main.js:1419:24)     at atom-text-editor.module.exports.convert (C:\Users\btoktas\.atom\packages\css-clean\main.js:1549:10)     at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (C:\Users\btoktas\AppData\Local\atom\app-1.7.3\resources\app.asar\src\command-registry.js:260:29)     at CommandRegistry.handleCommandEvent (C:\Users\btoktas\AppData\Local\atom\app-1.7.3\resources\app.asar\src\command-registry.js:3:61)     at CommandRegistry.module.exports.CommandRegistry.dispatch (C:\Users\btoktas\AppData\Local\atom\app-1.7.3\resources\app.asar\src\command-registry.js:160:19)     at AtomEnvironment.module.exports.AtomEnvironment.dispatchContextMenuCommand (C:\Users\btoktas\AppData\Local\atom\app-1.7.3\resources\app.asar\src\atom-environment.js:1106:28)     at EventEmitter.outerCallback (C:\Users\btoktas\AppData\Local\atom\app-1.7.3\resources\app.asar\src\application-delegate.js:327:25)     at emitThree (events.js:97:13)     at EventEmitter.emit (events.js:175:7)

[Enter steps to reproduce below:]

...
...

Atom Version: 1.8.0
System: Mac OS X 10.11.5
Thrown From: css-clean package, v2.5.0
Stack Trace
Uncaught TypeError: Cannot read property '0' of null
At /Users/sky/.atom/packages/css-clean/main.js:157

TypeError: Cannot read property '0' of null
    at Function.capture.comment inline (/Users/sky/.atom/packages/css-clean/main.js:157:14)
    at capture (/Users/sky/.atom/packages/css-clean/main.js:87:23)
    at Object.capture.shared.nested (/Users/sky/.atom/packages/css-clean/main.js:436:19)
    at Function.capture.selector (/Users/sky/.atom/packages/css-clean/main.js:107:26)
    at capture (/Users/sky/.atom/packages/css-clean/main.js:87:23)
    at cleanCss.fn.value (/Users/sky/.atom/packages/css-clean/main.js:592:19)
    at Object.value (/Users/sky/.atom/packages/css-clean/main.js:1617:24)
    at atom-text-editor.module.exports.convert (/Users/sky/.atom/packages/css-clean/main.js:1746:10)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61)
    at CommandRegistry.module.exports.CommandRegistry.dispatch (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:160:19)
    at AtomEnvironment.module.exports.AtomEnvironment.dispatchContextMenuCommand (/Applications/Atom.app/Contents/Resources/app.asar/src/atom-environment.js:1106:28)
    at EventEmitter.outerCallback (/Applications/Atom.app/Contents/Resources/app.asar/src/application-delegate.js:340:25)
    at emitThree (events.js:97:13)
    at EventEmitter.emit (events.js:175:7)

Commands
     -3:04.8.0 core:undo (atom-text-editor.editor.is-focused)
     -1:46.9.0 css-clean:convert (atom-text-editor.editor.is-focused)
     -1:44.4.0 core:undo (atom-text-editor.editor.is-focused)
     -1:41.8.0 core:redo (atom-text-editor.editor.is-focused)
     -1:31.7.0 core:undo (atom-text-editor.editor.is-focused)
     -1:21.7.0 core:redo (atom-text-editor.editor.is-focused)
  4x -1:11.4.0 core:undo (atom-text-editor.editor.is-focused)
     -1:04.1.0 core:redo (atom-text-editor.editor.is-focused)
     -1:00.8.0 core:undo (atom-text-editor.editor.is-focused)
     -0:57.8.0 core:close (atom-text-editor.editor.is-focused)
     -0:49.4.0 css-clean:convert (atom-text-editor.editor.is-focused)
     -0:40.8.0 core:undo (atom-text-editor.editor.is-focused)
     -0:36.5.0 core:redo (atom-text-editor.editor.is-focused)
     -0:12.8.0 core:undo (atom-text-editor.editor.is-focused)
     -0:11.6.0 core:close (atom-text-editor.editor.is-focused)
     -0:00.7.0 css-clean:convert (atom-text-editor.editor.is-focused)

Config
{
  "core": {
    "disabledPackages": [
      "linter-bootlint",
      "webbox-color"
    ],
    "excludeVcsIgnoredPaths": false
  }
}

Installed Packages
# User
atom-ternjs, v0.14.2
autocomplete-elixir, v1.5.14
css-clean, v2.5.0
css-snippets, v0.9.0
emmet, v2.4.3
language-elixir, v0.14.0
language-haml, v0.24.0
linter, v1.11.14
linter-jshint, v2.1.0
linter-sass-lint, v1.6.1
merge-conflicts, v1.4.4
rails-i18n-autocomplete, v0.4.0

# Dev
No dev packages

Fixed, just pushed a new version. Let me know if it fixes everything.

Had the Issue in Atom 1.8.0
Updated to Atom 1.9.5 and it seems to be resolved. Thanks!

Thank you.


Recursive collapse

Collapse seems to have a recursive structure, so it can be reimplemented from the current approach (fully explode, then collapse a graph of 0-diagrams and 0-rewrites). The hope is that this new approach would be faster too.

I have a working draft of this, currently it passes 47/53 test cases for contraction.

Here is some performance data of running the benchmark for label identifications high dimensions/8

 w/ shared label identifications allocations (eebc0a8e7ebdc986120acec375182b5ad03d42c7)
	 w/o shared label identifications allocations

 old collapse
	 https://share.firefox.dev/3GSqazn (6.7s)
	 https://share.firefox.dev/3WmidYC (9.4s)

 new collapse
	 https://share.firefox.dev/3XySflG (497ms)
	 https://share.firefox.dev/3ZNTpvU (1.2s)

Thankfully, it confirms that eebc0a8e7ebdc986120acec375182b5ad03d42c7 is a performance improvement.

Fantastic to see this performance improvement being realized.

I made a small mistake in eebc0a8e7ebdc986120acec375182b5ad03d42c7, so that it never actually memoized anything (but it did avoid reallocations). Fixed in 15f2cd1fcf3d5e05a6592be45ca93bb73413d6a5.
I noticed a lot of potential for speedup in memoizing Rewrite::cone_over_generator too, which is done here: 5bda4a97bd1de7917ffa6b590df2be7a0522eb1a. Also made a slight change to label identification sharing here: ea0dd8de9006858c44ecba5b1b88c49b230c0622. All of these changes have been backported to the existing (old) collapse implementation, and should make noticeable performance improvements, but it also importantly means that the tests which we're using to measure the speed of collapse are not dominated by other factors.
This gives us a new baseline also (again for label identifications high dimensions/8):

 old collapse
	 https://share.firefox.dev/3w9txwO (2.4s)

 new collapse
	 https://share.firefox.dev/3w9u41M (**54ms**)

That's a ~98% speedup for the new collapse algorithm in this case, now that repeated allocations/recursive calls unrelated to collapse aren't dominating the running time.  The speedup should be non-linear: I can now run label identifications high dimensions/9 on my machine with the new collapse in roughly 200ms (previously it wouldn't finish in a reasonable amount of time, definitely not under 20 minutes).

Really excellent!!