listBuilds with filter throws INVALID_ARGUMENT: Request contains an invalid argument

I have a cloudfunction triggered by cloudbuilds. the purpouse of function is to cancel running builds from same branch and trigger.
filter argument does not work and has no proper documentation
Environment details

OS: gc cloudfunctions
Node.js version: 14
yarn version: 1.22.17
@google-cloud/cloudbuild version: 2.6.0

Steps to reproduce
const { CloudBuildClient } = require('@google-cloud/cloudbuild');

const parseBuild = (data) => JSON.parse(Buffer.from(data, "base64").toString());

module.exports["gcb-canceler"] = async (buildStream) => {
  const parsedBuild = parseBuild(buildStream.data);
  const buildStatus = parsedBuild.status;

  const buildTriggerId = parsedBuild.buildTriggerId;
  const buildId = parsedBuild.id;
  const projectId = parsedBuild.projectId
  const targetBranch = parsedBuild.substitutions.BRANCH_NAME

  if (buildStatus === `QUEUED` && buildId && targetBranch && buildTriggerId) {
    const cb = new CloudBuildClient();

    const filter = `id!="${buildId}" AND substitutions.BRANCH_NAME="${targetBranch}" AND buildTriggerId="${buildTriggerId}" AND status<=2`;

    console.log(filter);

    const request = {
      projectId,
      filter
    };

    const [builds] = await cb.listBuilds(request)
  }
}

throws INVALID_ARGUMENT. filter expression is correct as I test it by running gcloud builds list --filter="EXPRESSION" and it returns me list of builds.
Thanks!

Hi @OleksiiKachan,
I think the issue is id - the Cloud Build client libraries don't recognize this; they use build_id (or trigger_id) instead as you can see here.
Can you try replacing id with either build_id or trigger_id, and let us know if that works?
Thanks! 🙂

@OleksiiKachan 👋🏼  Has replacing id resolved the issue for you? Do let us know if this is still a problem for you!

Syncing back to this issue! I have re-created the above issue below (very simple filter to exclude build) and confirmed that the suggestion given by @ace-n to switch from id to build_id in the code works. This also goes with the terminal command.
See below:
// Using version: @google-cloud/cloudbuild 2.6.0
const { CloudBuildClient } = require("@google-cloud/cloudbuild");

// Note: Cloud build from build history
// https://console.cloud.google.com/cloud-build
const main = async() =>{
    const cb = new CloudBuildClient();
    const request = {
        filter: ":build_id!=YOUR_CLOUD_BUILD_ID",
        projectId: "YOUR_PROJECT_ID"
    };
    const [builds] = await cb.listBuilds(request);
    console.log(builds);
}
main();

Corresponding command: gcloud builds list --filter="build_id!=YOUR_CLOUD_BUILD_ID"
Since this has been confirmed, and no other activity has happened within this issue, going ahead and closing this. Please reopen the issue if you run into this problem again!


Printing hierarchy of Zuul jobs as a summary of found elements.

This PR adds a new section to a zuul source output that looks like this:
Jobs:
  Summary:
    .
    +-- base
         +-- linters
  In detail:
    Job: base

In case '--variants' is include on the query, the relationship between jobs is displayed on the summary. Otherwise, the are all listed from the root as usual.
Also taken the chance to document newly added code.

Should it work at this point? I'm trying to run cibyl query --jobs upload-docker-image  against the tripelo-ci-internal of downstream zuul and I get the following output:
Environment: zuul_env
  System: zuul_system
    Tenant: tripleo-ci-internal
      Jobs:
        Summary:
          .
          +-- upload-docker-image
        In detail:
          Job: upload-docker-image
      Total jobs found in query for tenant 'tripleo-ci-internal': 1
    Total tenants found in query: 1

Looking at the Zuul UI it should have a hierarchy of 3 jobs above it

The Zuul source is not smart enough to look for the parents of a job by itself yet. You will need to list all the jobs that form the hierarchy on the query.
For example, it the description I had to:
cibyl query --tenants local --jobs base linters --variants


add distance in proto requests

You should also add support for multiple countries and multiple transportation modes for proto with distance.

Right now we support UK, IE and driving, walking


invalid return, produce effects...thanks

one more question,
why  < and >  colors are so weird and inconsistent(yellow,red,pink,yellow)
Is it my own setup problem or the plugin problem
thanks

This is the expected TS behavior. TS will incorporate the return value type even if the code is not available.

one more question,
why < and > colors are so weird and inconsistent(yellow,red,pink,yellow)
Is it my own setup problem or the plugin problem
thanks

It's not from volar, please check your other Extensions.


1.4.2 broke builds

The 1.4.2 build broke our builds. It is giving a no such file or directory for source/Main.brs even though the file exist in source. It looks like something changed in the way the files are moved/defined.
We simply had
{
"src":"source",
"dest" : "source"
},
Which seems not to work now. I'm guessing the way the files get defined now just changed.

I updated the roku-deploy dependency to support multi-glob patterns for publishing....but all of my existing tests passed so it should have been fully backwards compatible. Could you give me a little more details on how to reproduce, or even a quick sample project to use?

We resolved it like this
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "brightscript",
            "request": "launch",
            "name": "staging",
            "stopOnEntry": false,
            "host": "XXX",
            "password": "XXX",
            "rootDir": "${workspaceFolder}",
            "outDir": "${workspaceFolder}/out",
            "files" : [
                "fonts/**/*.*",
                "locale/**/*.*",
                "source/**/*.*",
                "components/**/*.*",
                "ADBMobileConfig.json",
                "manifest",
                {
                    "src":"flavors/staging/Config.xml",
                    "dest" : "components/values/Config.xml"
                }
            ],
            "consoleOutput": "normal"
        }
    ]
}

VS it breaking like this
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "brightscript",
            "request": "launch",
            "name": "staging",
            "stopOnEntry": false,
            "host": "XXX",
            "password": "XXX",
            "rootDir": "${workspaceFolder}",
            "outDir": "${workspaceFolder}/out",
            "files" : [
                {
                    "src":"ADBMobileConfig.json",
                    "dest" : "ADBMobileConfig.json"
                },
                {
                    "src":"manifest",
                    "dest" : "manifest"
                },
                {
                    "src":"flavors/staging/Config.xml",
                    "dest" : "components/values/Config.xml"
                },
                {
                    "src":"components",
                    "dest" : "components"
                },
                {
                    "src":"source",
                    "dest" : "source"
                },
                {
                    "src":"locale",
                    "dest" : "locale"
                },
                {
                    "src":"fonts",
                    "dest" : "fonts"
                }
            ],
            "consoleOutput": "normal"
        }
    ]
}

This is all the information that I needed, thanks! I'll investigate and see how I can restore the previous functionality. I'm glad you found a workaround though in the mean time.

@TwitchBronBron on another project
                "components/**/*.*",
                "source/**/*.*",

Doesn't work correctly. There it seems to be writing it including the full path rather than the relative path
ex: projects/client/roku/components
vs: components

@TwitchBronBron
To be clear....
          "components/**/*.*",
                "source/**/*.*",

Works on all projects except one. That one project uses the entire path from the root. None of the other projects do that. Not sure why.
PS. There is a Slack channel for this repo, but it says I have to have a tantawowa.com email to join. I'd like to be able to get on a slack channel, but have no means to

@TwitchBronBron
The issue for that project is that the manifest isn't in the root
For example we have different flavors and each flavor has its own manifest (same project creates multiple apps)
                {
                    "src":"flavors/flavor1/manifest",
                    "dest" : "manifest"
                },

                {
                    "src":"flavors/flavor2/manifest",
                    "dest" : "manifest"
                },

Another thing I found...
               "!components/test/**/*.*",
Will only negate it if there are multiple subfolders there. If there is only one subfolder it will include it. Possible I don't know the proper expressions to use. Do you have a reference for it?

Thanks for the extra info. I'll make sure to try all of those variations out and see what I find.
Concerning the slack group, I am a member, and I have a gmail account. I think I may have included the wrong link in the readme. Try this link instead: http://tiny.cc/nrdf0y   We hang out in the #vscode-bs-lang-ext room.


chore: remove lhci upload

Continue https://github.com/Hongbo-Miao/hongbomiao.com/pull/365

Pull Request Test Coverage Report for Build 942

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 941:
0.0%

Covered Lines:
41

Relevant Lines:
41

💛  - Coveralls


source missing license header

I noticed that the JavaScript file doesn't have a license header. This seems to be a common practice amongst JavaScript libraries.
Would it be possible to add the information to the file so users can easily adhere to the project's license?
Something like:
Licensed under the Apache 2.0 License

Which file is missing a license header?

probably fixed in PR #391


Create BDSort.netkan

The identifier needs to be identical to the filename and not have any spaces :)

Duplicate of #2210.


Lint all files, not just those in tsconfig.json "files"

Fixes https://github.com/DefinitelyTyped/DefinitelyTyped/pull/29684#issuecomment-429487372

@andy-ms I think this caused the linter to also lint .d.ts files in external deps.
see: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/29698
It fails cause dtslint tries linting source-map's own .d.ts file.


Adjust formatting of legacy errors

I'm not sure what happened, but this was already reviewed in #103


[ENH] signal extraction of parcels/rois from single nifti file

Related to enhancement suggested in #301
Previous behaviour is kept but adds features: (1) resampling of mask if it is not the size of the input image (2) the template can be a single nifti image with multiple non-zero labels.

@oesteban maybe I'm misunderstanding the circleci test error here, but it does not appear to be anything with this PR right? MRICoregRPT doesn't call SignalExtraction from what I can tell.

Oh, this is that problem we ran into with #292, where every contributor has to set up Circle to use their own FreeSurfer license file.
I think maybe if we're going to continue down this road it will make more sense to skip tests if the license can't be found.

Thanks. Oscar helped me set up the FS license . Seems like the tests are running now.

Is this ready for us to review?

I believe so. It is only stage 1 of getting time series extraction into fmriprep.

Can you undo the style changes not directly related to your changes? It's hard to review with a bunch of extraneous changes.

Oops. I autopep8:ed the document out of flake8 frustration. Fixed.

Finally got around to this. Really wasnt a lot to do. Sorry it took so long!!

I suspect the test is failing because you need to merge master. Could you give that a try?

That did it.
@oesteban I think this is done.

Hi @wiheto, could you commit @effigies' suggestions? I've tried myself and I don't seem to be allowed to push to your repo.

Done. Sorry I missed the suggestion!

Thanks!

Just a note that the new behavior didn't get tested: https://codecov.io/gh/poldracklab/niworkflows/commit/038d61fbc86ed7031a586175ebd32e48b5f7b8de#D1-696...700


Attributes are not properly applied to IBUFDS (and possibly other primitives) in Xilinx platform

https://pastebin.com/qvymcNWi
In the example an IBUFDS resource is created and requested, with particular Attributes:
Resource("IBUFDS", 0,
                DiffPairs("48", "46", conn=("gpio", 1), dir="i"),
                Attrs(IOSTANDARD="LVDS_25", IBUF_LOW_PWR="FALSE")
            ),

When run the attributes appear in the generated ucf, and an IBUFDS primitive is instantiated in the generated verilog. However when ISE actually runs synthesis, the instance properties do not show these attributes applied:

In order for ISE to apply the attributes, they need to be parameters to the IBUFDS which is Instanced in xilinx.py.
If the generated verilog is edited where the IBUFDS is Instanced, then the attributes are properly applied:
IBUFDS #(
  .IOSTANDARD("LVDS_25"),
  .IBUF_LOW_PWR("FALSE")
) IBUFDS_0_0 (
  .I(IBUFDS_0__p),
  .IB(IBUFDS_0__n),
  .O(IBUFDS_0__i)
);

In ISE:

Are you sure this is issue is actually present?
The IBUF_LOW_PWR attribute, when applied as a parameter to the IBUFDS cell in your design, does not change the bitstream whether its value is "TRUE" or "FALSE", so looking at it is not informative. However, other attributes, like DIFF_TERM or IOSTANDARD, are indeed applied when specified in the UCF file, which you can see by looking at the top_par_pad.txt report.

No response from reporter for over two years.


Filter by Null Field

Filtering by Null Field  using false value throws a NumbericFormatException is this the correct behavior? if so , then how to correctly filter by null.
               ObjectAdapter adapter = PosData.session.getObjectAdapter("product.product");
                FilterCollection filter = new FilterCollection();
                filter.add("company_id","=","false");

Hi,
I'm not sure of what you're trying to do.
As you said, filtering on null is forbidden. Apache XMLRPC prevent this an empty array has to be passed.
First case, if you need to make a search on all the model class you could pass an empty array as parameter. The proper way to deal with this is :
command.searchObject("ir.model", new Object[]{});

Now, regarding to the code you posted, I'm not sure that it's what you're trying to do. Do you want to filter on partners that are not company_id. If it's the case, you mustn't use "false". In java false is legal but not in python.
So try :
filter.add("company_id","=", false);
//OR
filter.add("company_id","=","False");

You could also try one of those operators : https://github.com/DeBortoliWines/openerp-java-api/blob/master/src/main/java/com/debortoliwines/odoo/api/helpers/FilterHelper.java#L40
Let me know


Null no longer works in class.bind

Not sure if this should be considered a bug or a breaking change in the latest releases of the binding library, but since I updated to the latest version the ClassObserver.setValue method crashed telling me split is not available on undefined.
After an hour or so of debugging I found out that I can no longer use null values in class.bind bindings. For exemple in my VM I had a property defined as sortCss = null (that I in some cases set to something else) which now crashed. When I changed it to sortCss = "" my application works again.
Not really an issue now when I know I have to set it to an empty string (or leave it undefined?), but...

I'd categorize this as a bug.  Will get this fixed asap.


Refactoring of Overview section

The current overview section for docs needs refactoring to include the following things in a sectional format:

Concise description of what multi-tenancy is and what are the challenges associated with multi-tenancy in a multi-cluster Kubernetes environment
What KubeSlice is
Brief description of KubeSlice's value prop

Hey @divya-mohan0209

@verma-kunal  is it still open

The overview section is revamped from version 1.0.0. So, I'm closing this issue.
https://kubeslice.io/documentation/open-source/1.0.0/


fix: require composer autoload

Require composer autoload only when we don't use the composer schema for the project.
Right now I am using composer for the whole project and when I load it via composer require wp2static/wp2static:7.0-alpha-004 I had all dependencies which I need. But my vendor dir doesn't present in the plugin folder.

Thanks for this, @anasinnyk!
This was in the back of my mind as a potential way of using the project that may need consideration, but I have no experience using it via Composer directly.
Could you please share a bit more of a common workflow I can replicate or public repo if you have one?
I'm hopeful if I can then organize each add-on better to reference core WP2Static as a dependency vs ignoring some PHPStan dependency notices like now!

I don't have a public repo. But I use a way to describe here https://roots.io/bedrock/
I think this repo https://github.com/roots/bedrock can be a good example.
About add-on as a dependency it's a really good idea (for my case). But I think it's not ok for common Wordpress way. For me it's will be great if we can use an add-on as a composer recommendation plugin. And I can get only code what I need. https://getcomposer.org/doc/03-cli.md#suggests

@anasinnyk sorry for no update in a while, I've been out of action for a cpl weeks. Will get onto this soon, setting up an old laptop as dedicated Windows testing box once a new disk arrives

Hi @anasinnyk - thanks again for raising this. It was manually merged in a while ago and have been adding it to other projects also.


how to install elastalert offline ?

my mechine is offline ,how can i  install elastalert ?

I have the same problem.  The "python setup.py install" script keeps asking for dependencies I don't think I need.  i.e. twilio, texttable, etc..

I solved this by using a PC with internet access. Then run
pip install --download $HOME/.mypypi elastalert
This will save all dependencies to .mypypi folder. Copy this folder to your offline machine and run on your offline machine:
pip install --no-index --find-links=file:/$HOME/.mypypi elastalert
Depending on the version of pip the syntax might be a little different. You can find more info https://www.nyayapati.com/srao/2014/06/how-to-pip-install-python-packages-offline/ or google for "Python install packages offline"


[Compatibility] MC Folders

Currently this mod crashes with MC Folders.
Opposite issue here

omg lol
enhanced searchability and compact ui and incompatible with mc folders :rofl:

Report on https://github.com/mrmelon54/compact_ui if this is still incompatible in 1.20


Add SNS ListEndpointsByPlatformApplication

https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html
Support for Lists the endpoints and endpoint attributes for devices in a supported push notification service.

Thanks!


Patch/i75 userbutton

Allows for the Interstate75 (non W) user button to be used with our new python module

Thanks @ageeandakeyboard. This should really do some handling of Interstate75 vs Interstate75W. GPIO23 which is used for boot button in Interstate, is the WIFI_ON pin on Interstate W, so we should not be touching that.

https://github.com/pimoroni/pimoroni-pico/tree/main/libraries/interstate75

Thanks. I suggested some edits. It could also do with the updates to the C++ definitions and readme too: https://github.com/pimoroni/pimoroni-pico/tree/main/libraries/interstate75 i.e. the addition of static const uint8_t BOOT = 23; to the header

There must be a way to auto-detect that the code is running on a Pico W, rather than relying upon user testimony?

Since we have Pico W and Non-W builds, we could be evil and swap out which version of interstate75 gets baked in.

It makes sense but then we i'll need to have two differently named modules.

I think the user-facing logic here can be replaced with "Pico W" in sys.implementation._machine, I might grab/rebase this with that change to keep it fresh.

@ageeandakeyboard if you still have i75 and i75w boards to hand, could you see if this works please?


Implement the admin dashboard - admin user management view

Description
As part of this issue, we need to create the admin dashboard - user management view, which should closely match the provided mockup. This will provide the super admins with a way to view, search, filter and manage all the admin users.
Tasks

Set up the basic React components as required.
Implement the layout and design of the admin dashboard - user management view, following the provided mockup.
Integrate the necessary components and assets to achieve the desired functionality and visual appearance.
Ensure responsiveness and compatibility across different devices and screen sizes.

Mockup: https://www.figma.com/file/nehm2ff8aR7NkPerg39fK9/ScholarX-V2-|-Wireframes?type=design&node-id=1974-2845&mode=design&t=zBGgiYyW1foSirHq-4

Note: You may want to mock the API refer to the API doc to see the relevant details.
Acceptance Criteria

The user interface closely resembles the provided mockup.
All required sections, elements, and content are present and displayed correctly.
The interface is responsive and works well on various devices and screen sizes.
The implementation follows best practices and coding standards.
Unit tests are written.

Can I work on this?


Metrics files refer to wrong version

Even if I check tagged version at github.com/spring-cloud/spring-cloud-dataflow-server-kubernetes/blob/v1.2.0.RELEASE/src/etc/kubernetes/metrics-controller-rabbit.yml it has
image: springcloudstream/metrics-collector-rabbit:1.0.0.M1

Just is the problem we're facing with #189. I'd use a placeholder in above yml file and keep actual version in maven build files. Then replace those during a build as it's always a problem if you need to replace version in static files.

Fixed via #198


Missing Markdown Files in Manifest

They won't be published to PyPI without it.

This will probably also break: https://github.com/jupyter/sphinx-theme/blob/master/setup.py#L24


Casting from Calendar.DateTime to DateTimeUTC is not working at all

Calecto fails to convert Calendar.DateTime to Calecto.DateTimeUTC on casting
to reproduce:
Calendar.DateTime.now_utc |> Calecto.DateTimeUTC.cast

What version of Calendar, Calecto and Ecto are you using? In newer version you don't need to do that cast.

This actually happened after I upgraded from 0.6.0 to 0.16.1 this morning

Try just removing |> Calecto.DateTimeUTC.cast You don't need to cast like that anymore.

It was my fault, I didn't up the version of Calendar (it was still on 0.14). Just blinded upgraded Calecto without looking at readme. I think it's nice to have that included in the Changelog? I also go there to look at backward incompatible changes. I can help add it there if you want.

Good thing you solved it. This is in the Calecto readme:

If you use a Calendar version earlier than 0.16, use Calecto version ~> 0.6.1


Add remark to not commit file to git if there are changes but the test succeeds

Btw. your test fail too. I assume, that we get not ride of this problem until Thomas has made his PR ready.

This changes docs only. I am pretty sure this does not break the build. I am not blindly following procedures but dealing with real world problems that occur with some frequency. Ideally the doc change should not trigger a build at all, but our docs include api docs and the api docs depend on a build the code.


CordzInfoStatisticsTest.ThreadSafety flaky failure on ppc64le

Describe the bug
In the Fedora Linux distribution package for abseil-cpp, since updating to 20211102.0 in the development version of the distribution, we see frequent flaky failures of CordzInfoStatisticsTest.ThreadSafety in absl_cordz_info_statistics_test on the ppc64le architecture. When the test fails, a message like [mutex.cc : 1682] RAW: Mutex unlocked when destroyed or not locked: v=0x0 is printed.
Steps to reproduce the bug
The error can be observed in the RPM build infrastructure for Fedora Linux, but there is nothing particularly special about how we are building the library, and there are no significant downstream patches involved. I expect that this error can probably be reproduced on any ppc64le system.
What version of Abseil are you using?
20111102.0
What operating system and version are you using
Fedora Linux Rawhide/37 (development version)
What compiler and version are you using?
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-libstdcxx-backtrace --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-12.0.1-20220308/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-offload-defaulted --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.1 20220308 (Red Hat 12.0.1-0) (GCC)

What build system are you using?
cmake version 3.23.0-rc2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

Additional context
We are using https://github.com/abseil/abseil-cpp/archive/20111102.0/abseil-cpp-20111102.0.tar.gz with:

CMake build system (using ninja backend)
System copies of gtest/gmock 1.11.0
A small patch for #1063
System compiler GCC 12.0.1

While I don’t have convenient interactive access to real PowerPC hardware, I can easily test patches or try experiments on real hardware by submitting “scratch” RPM builds.
I have attached a complete build log from a failing build.
I just did a trial of five builds, in which three succeeded and two failed. Assuming builds succeed or fail independently, and using the Clopper-Pearson method, a 90% confidence interval for the failure rate for this test is approximately 8–81%. This is good enough to say that the test fails “frequently.”
No other architectures (of x86_64, i686, aarch64, and s390x) are affected.

It looks like, similar to #1133, this can be worked around by disabling LTO.

Debian has seen this too; it’s bug 1018804 there.

I did a new trial of ten ppc64le builds with:

Fedora Linux Rawhide/40 (development version)
Abseil 20230802.0, https://github.com/abseil/abseil-cpp/archive/20230802.0/abseil-cpp-20230802.0.tar.gz
System copies of gtest/gmock 1.13.0
No patches
System compiler GCC 13.2.1

I did not observe any failures. I’m going to cautiously say that this is fixed for me. Since I don’t know the root cause and haven’t tracked the fix down to a particular change in Abseil or in the environment, I can’t say whether it is truly fixed or just no longer manifesting in my environment.
I’m going to try some test builds on F37 and F38 and see if I can at least conjecture about whether this is probably-fixed-in-Abseil or probably-fixed-in-the-toolchain. Once I follow up on that, I will probably close this issue, but I hope that @bbarenblat will follow up if Debian encounters anything different.

I tried ten test builds of Abseil 20230802.0 on ppc64le for Fedora 37, and they all succeeded. I tried five test builds of 20220623.1, and three failed as described in this issue. That suggests that a change in Abseil probably fixed this.


az webapp up defaults to Node 8.11

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Need to check more into this, we should be defaulting to 8.11 for up.

This was because an older version of webapp extension version was being used that had an older node version as default


[Enhancement] (nereids)implement showColumnsCommand in nereids

showColumns command is supported in legacy planner but not in nereids(new doris fe planner). you need implement the following showColumns command in nereids:
unsupportedshowColumnsStatement
        ((FROM | IN) database=multipartIdentifier)? wildWhere?                      ```

@LiBinfeng-01 will pick this up


Removed some code duplication between Depictor.cpp and common.h

This is to get rid of some duplicated code between Depictor.cpp and common.h. In passing I also did a bit of code cleanup.

@greglandrum The PR porting the MinimalLib code for aligned depictions to the main C++ core is now ready for review; as discussed, it would be good to merge it before releasing the beta.

@ptosco it looks like the test failure, curiously only on one system, may be legit. It is at least in a test you added here

@greglandrum I’ll fix it this evening, thanks for the heads up.

@greglandrum I figured out: I was running some CoordGen tests even in the case the build does not support CoordGen. Since molecules were still being drawn by RDKit, the angle tests (which were expecting a CoordGen layout) were failing.

@ptosco I approved this and then was too quick with merging it, so I reverted the merge.
We should figure out whether or not this is safe for the upcoming 2023.09.1 release


cmd/gofmt: canonicalize octal literals to the '0o' form

Go 1.13 adds the 0o form for octal numbers: instead of writing 0644 we can write 0o644. Gofmt is also changing to canonicalize 0O to 0o.
We should go one step further and have gofmt canonicalize the old style of octal literals to the 0o style: 0644 should be changed to 0o644.
Octal numbers are a surprising feature for programmers coming from a language that does not have them, or where they are rarely used. It's unintuitive that adding a leading zero to an integer changes its meaning. Some modern languages, such as Rust and Swift, have opted to omit the 0-prefix syntax altogether and only support the 0o form. Removing the 0-prefix syntax from Go would be too disruptive now, but we should strongly encourage use of the 0o form via this gofmt rule.
As a separate justification, with the new octal syntax there will be two different octal styles the programmer can choose. It's better for gofmt to remove this choice and enforce a single standard.
This will cause some churn in code bases, mostly around os.OpenFile and similar calls, but I believe the change is well worth it.

@griesemer

One way to ease the transition would be for -s to apply the change for a couple of Go releases, so that codebases can transition at their pace, and later enforce it as part of regular gofmt.

This seems like a -s only feature to me. I thought regular gofmt only did whitespace and newline adjustments ?

@agnivade

I thought regular gofmt only did whitespace and newline adjustments ?

With Go 1.13, gofmt will already be canonicalizing integers to some extent:

For instance, 0B1010, 0XabcDEF, 0O660, 1.2E3, and 01i become 0b1010, 0xabcDEF, 0o660, 1.2e3, and 1i after applying gofmt.

Please no. This will result in lots of gratuitous churn, especially considering that many people will want to support older versions of Go for some more time.
Maybe bring it up again once the new literal variants are understood by all gc versions still on support and appropriate releases of gccgo (and other implementations of Go) have had a change to disseminate among their user base.


What's the release date for PULID XL 1.1?

The current PULID model based on flux is extremely GPU-intensive. We're eagerly anticipating PULID 1.1, which will be built on the diffusion xl framework. It was rumored to launch this month - has there been any news of a postponement?

will suggest build a sd3 medium one if flux is too heavy, we found that DiT is much more better for id cognition, than UNet

An alpha preliminary working version of PuLID Flux for ComfyUI was reposited just 13 hours ago, you can try
https://github.com/balazik/ComfyUI-PuLID-Flux
FP8 one can run within a minute, though the person face in the end result is a bit blurry but I think should be improving as it goes


kMaxCompiledRegexes leads to non-deterministic SparkSQL regexp_replace behavior

Description
The context of this issue is re-introducing SparkSQL regexp_replace. The current PR to do this is #8333. This issue was discovered after @mbasmanova 's comment on that PR "Would you check if documentation needs updating to clarify the behavior for input NULLs and explain when result might be NULL?" made me realize that there is zero reason to support null arguments in SparkSQL regexp_replace. We do still need to support null return values (to the best of my knowledge) since we throw exceptions. So, the correct call function is 'bool call'.
Summary
The 3 main changes I am proposing are:

Remove the VELOX_USER_CHECK_LT for cache size
Change getCachedRegex to return a std::shared_ptr instead of a raw pointer to avoid seg faults scope closing
Use a SimpleLRUCache in place of a folly:F14FastMap to allow for easy cache eviction.

Common Eval vs Simplified Eval add regexes/patterns to the patternCache_ in different orders, and when the cache size is compared to kMaxCompiledRegexes in
https://github.com/facebookincubator/velox/blob/c4ef9edc5ac207f19fd0a9dae27232e82487d810/velox/functions/sparksql/RegexFunctions.cpp#L197-L207
exceptions are thrown at different rows per each Eval method, breaking the fuzzer.
Details
This is because the fuzzer succeeds when a common and simplified eval execution produce the same output. Figuring out this fuzzer bug was the first time that I've had to dive deep into expression evaluation, so I am still new to it. But, from what I understand, common eval will find common sub-expressions and "fold" them to reduce repeated work.
In the context of regexp_replace, this means that even if a query has a set of unique regexes > kMaxCompiledRegexes, the different expression evaluation strategies will provide these regexes in a different order. This leads to non-deterministic behavior in some corner cases of RegexpReplace execution.  In the example I will provide below, common eval throws an error during row 16, whereas simplified eval throws during row 87 and 98.
I discovered this while trying to evaluate my 'bool call' implementation against the fuzzer. I ran 4, 30 minute duration, simultaneous instances of the fuzzer with regexp_replace given 1,000 tickets. 2/3 of the fuzzer calls failed about 25 minutes into execution.
In one such case, the input vector is as follows:
I0118 12:15:31.541563 2947888 ExpressionVerifier.cpp:31] 2 vectors as input:
I0118 12:15:31.541568 2947888 ExpressionVerifier.cpp:33]        [FLAT VARCHAR: 100 elements, 10 nulls]
I0118 12:15:31.541581 2947888 ExpressionVerifier.cpp:33]        [DICTIONARY VARBINARY: 100 elements, 16 nulls], [DICTIONARY VARBINARY: 100 elements, 12 nulls], [DICTIONARY VARBINARY: 100 elements, 8 nulls], [FLAT VARBINARY: 100 elements, 7 nulls]
I0118 12:15:31.541592 2947888 ExpressionVerifier.cpp:36] RowVector contents (ROW<c0:VARCHAR,c1:VARBINARY>):

I believe this is saying that is a two column rowVector of a flat VARCHAR and a 3-nested DICTIONARY that maps to VARBINARY.
It ran the following query against this input:
"try"("translate"("regexp_replace"('MiB$?;8Y"%,qT^!vqWU(J<|*r]>LF%~5#)X^ZmFWK{JITh-[nfXZx4', "c0", "c0"), 'noFSI%o/dE}/mm0h,WhvmQy3IeH^84:', "regexp_replace"("md5"("c1"), "md5"("c1"), '-:VmR@n9?is;6[Ty!Q{8DI^h86C')))

but the error occurs in
regexp_replace(md5(c1), md5(c1), '-:VmR@n9?is;6[Ty!Q{8DI^h86C')

Here are the rows that do not match:
I0118 12:01:44.539122 2941041 FuzzerToolkit.cpp:123] At 16 [ null vs MiB$?;Y"@!qT!8qQU(J<|*r]>LV@~5#)XZ6VQK{JRTy-[-fXZx ]
...
I0118 12:01:44.539484 2941041 FuzzerToolkit.cpp:123] At 87 [ MiB$?;Y"@!qT!8qQU(J<|*r]>LV@~5#)XZ6VQK{JRTy-[-fXZx vs null ]
...
I0118 12:01:44.539549 2941041 FuzzerToolkit.cpp:123] At 98 [ MiB$?;Y"@!qT!8qQU(J<|*r]>LV@~5#)XZ6VQK{JRTy-[-fXZx vs null ]

Reproduction
Reproducing is complicated by the fact that I have rebased my branch away from the commit that initially caused it. But I do have a branch on my remote that I believe you can reproduce the input vectors on here: https://github.com/codyschierbeck/velox/tree/md5withSparkExpressionRunner.
If you run the command line in "Error Reproduction", you should eventually run into the error.
I am not sure if GitHub allows it, but I can also provide a .zip or .tar of the fuzzer_repro_path directory if need be.
Once you have reproduced the error, you can use the following branch to test the solutions below: https://github.com/codyschierbeck/velox/tree/testing_bool_regexp_replace.
This branch includes the spark_expression_runner_test I created in #8341 to allow you to attach a debugger of your choice.
Solution
A simple way to solve this is to just remove the check. But, in the case of input vectors that are very large with zero unique regexes, this will lead to a map that stores each one of them. We have to introduce some way of evicting entries.
I decided to use velox/common/caching/SimpleLRUCache to accomplish this. Below is the implementation:

template <typename T>
struct RegexpReplaceFunction {
  VELOX_DEFINE_FUNCTION_TYPES(T);

  using RegexLRUCache = SimpleLRUCache<std::string, std::shared_ptr<re2::RE2>>;

  RegexpReplaceFunction() : cache_(kMaxCompiledRegexes, 1) {}

.....

  std::shared_ptr<re2::RE2> getRegex(const std::string& pattern) const {
    std::shared_ptr<re2::RE2> pReg = getFromCache_(pattern);
    if (pReg != nullptr) {
      return pReg;
    }

    // VELOX_USER_CHECK_LT(
    // regexCache_.size(),
    // kMaxCompiledRegexes,
    // "regexp_replace hit the maximum number of unique regexes: {}",
    // kMaxCompiledRegexes);

    checkForCompatiblePattern(pattern, "regexp_replace");
    std::shared_ptr<re2::RE2> patternRegex =
        std::make_shared<re2::RE2>(pattern);
    checkForBadPattern(*patternRegex.get());

    addToCache_(pattern, patternRegex);
    return patternRegex;
  }

   mutable RegexLRUCache cache_;

The solution branch above also has functions getFromMap_ and addToMap_ which you can plug in to test the map based solution. When I create a PR for the solution, I will remove the functions and just have the correct logic within the "getRegex" function.
Error Reproduction
_build/debug/velox/expression/tests/spark_expression_fuzzer_test --repro_persist_path <path_to_your_repro_dir> --duration_sec 1800 --enable_variadic_signatures --lazy_vector_generation_ratio 0.2 --velox_fuzzer_enable_column_reuse --velox_fuzzer_enable_expression_reuse --max_expression_trees_per_step 2 --retry_with_try --enable_dereference --seed 532472015 --logtostderr=1 --minloglevel=0 --assign_function_tickets regexp_replace=1000

Relevant logs
No response

@codyschierbeck Hi Cody, thank you for debugging and sharing your findings. I need to find more time to read your findings carefully as it is not obvious to me what exactly is happening. Are you seeing this failure only with try? Does the error go away if you run fuzzer with --retry-with-try option disabled?

A simple way to solve this is to just remove the check.

I feel that it is important to keep this check. Compiling regular expressions is expensive. We don't want to compile new regex for every row. This will use lots of resources, make queries very slow and users unhappy. It is particularly dangerous as users won't see much trouble testing their queries at a "smaller scale".
Fuzzer is a piece of software and therefore may have bugs and limitations. A fuzzer failure may indicate a legitimate bug in production code or a bug in the Fuzzer itself. We need to figure out which one it is in this case. It might be a bug (or a limitation) in the Fuzzer itself.
Any chance you could illustrate the problem using some simple expressions and data?
CC: @bikramSingh91 @kagamiori @kgpai

@mbasmanova
I hope that the below explanation illustrates the problem regexp_replace is running into, and clarifies that outside of extreme corner cases, the solution I've provided will not compile a regex for every row. I couldn't craft an example with simple expressions and data, because the corner case itself relies on a uniquely efficient folding of input vectors, to the best of my understanding. I haven't taken a look at the outcome of other input vector foldings, but this case processes a 100 row vector with 26 calls thanks to efficient folding.
On compiling for every row
As for compiling regexes at every row, we still only compile a unique regex ideally once. Now, instead of throwing an error when we've seen more than kMaxCompiledRegexes, we evict the least recently used regex from our SimpleLRUCache and add the new regex. So, in the case where we have a query ran over 1,000,000 rows but with a constant pattern like "regexp_replace(c0, '(\d+)', 100), the regexp "(\d+)"  is compiled a single time then retrieved from the cache every subsequent call.
This is how it worked beforehand. As long as the query did not send >20 unique regexes, regexp_replace could theoretically process an infinite amount of rows and only compile each regex once. I included two test cases to ensure that:
https://github.com/facebookincubator/velox/blob/fce32e4d033ef656244e011f6adcee11de2ee68a/velox/functions/sparksql/tests/RegexFunctionsTest.cpp#L532-L570
The first test made sure kMaxCompiledRegexes worked, and the second one made a vector of kMaxCompiledRegex -1, then duplicated it 50000 times to make a df of size 1,000,000 that wouldn't hit the limit. (In hindsight I will change that to *3 because if anyone ever changes kMaxCompiledRegexes to a larger number that could cause a decent delay in CI/CD for other PRs. As it currently is implemented, this test case takes 3 seconds).
Detailed explanation
The problem with the cache size check is that it is dependent not on the input values, but on the state of the query evaluation as a whole and this is because the state of the cache is also query evaluation dependant and not row dependant. I modified my RegexpReplace function to try and illustrate this. Instead of ever throwing an error, I caught all errors and made them the result. I also included function members that tracked which "callNumber" of the function this was, what the size of the cache was at the end of the call, and offset into the result vector we were being written to. Here is an example of common eval compared to simple eval:

You'll likely have to open the image in another window as I tried to include as much output as possible. As you can see, the value of row 1 for the common evaluation (left hand side) was calculated during the 5th call, the cache size was also 5, and its "result offset" was 21. Until the cache limit is hit, cache size always matches callNumber for common evaluation
Importantly, though, is row 16 which is where we saw the initial fuzzer failure before I changed the result output.
At 16 [ [16->79] Cache Limit:callNumber: 22, cacheSize: 20, result offset: 79 vs a:callNumber: 11, cacheSize: 7, result offset: 16 ]

The state of the query when it processes the result for row 16 differs. For common eval, it was the 22nd call to regexp_replace and the first time we had a full cache and didn't find the pattern in the cache. For simple eval, it was the 11th call (there were 5 null values before), we had leveraged the cache 4 times to this point, and the result was being directly written to the row being processed.
I believe the reason for this is a mixture of common evaluation sub-expression folding, the way it leverages dictionary encoding, and the query itself.
regexp_replace(md5(c1), md5(c1), '-:VmR@n9?is;6[Ty!Q{8DI^h86C')

Effectively, this call is just "if row x of c1 isn't null, make it -:Vmr...."
While I am still not exactly sure how common evaluation folding works, it appears incredibly efficient with this given input vector and query. The entirety of the output is not shown in the above picture, but common evaluation reduces 100 calls in this case to 27 calls. It hits its first cache miss with a full cache in its 22nd call, as seen above with row 16.
On the other hand, simple evaluation gets its first cache miss with a full cache in call 47 (row 72)
At 72 [ [72->53] a:callNumber: 13, cacheSize: 13, result offset: 53 vs Cache Limit:callNumber: 47, cacheSize: 20, result offset: 72 ]

And from then on any cache miss is a null value.
To summarize, I am confident that the problem is that we are throwing a query state-dependent exception (cache.size > 20) and then comparing the results of different evaluation methods. What I am not confident about is how common this corner case happens. I discovered this a week ago using two different seeds using regexp_replace tickets at 10000. The errors occurred about 25 minutes into a 30-minute execution. Fuzzer seeds that don't see this failure ran regexp_replace upwards of 60k times in those 30 minutes, so I would assume that it took 50k calls of regexp_replace before hitting this corner case.
Both fuzzer runs failed with the exact same query and input vectors. The first column of the input vector is not used in the offending query. The second is a 100-element VARBINARY with 3 dictionaries wrapping it.
Solutions
There may be more options for a solution, but here are some that come to mind, starting with the worst ones.

We could ignore it and remove regexp_replace from the spark fuzzer. I don't like this option but Spark Fuzzer already excludes regexp_extract, and this corner case is 1/50,000. But there are better options.

Remove the check. I can't think of a way to implement this check without it being query execution state-dependent. As long as the cache can miss while above its limit at different points in query execution, this error will persist. But if we are going to remove the check we need to avoid the Folly::F14FastMap growing in worst case to size O(n).

Implement LRU cache eviction. This is what the PR currently implements. When we have a cache miss at our limit, we just evict the least recently used compiled regex. This maintains our ability to efficiently run both constant and non-constant pattern parameters. With constant, we cache once and use that cached value for however many rows it's required. This emulates how every other regexp function works in Velox, without demanding that the parameter is constant. We also allow users to pass columns of regexes. Ideally, they pass it with a column sorted by pattern to guarantee that an evicted pattern isn't used again. In the case they don't the cache still will do its best job to keep the most commonly used patterns and avoid recompilation, but of course, there are still going to be edge cases where we process a large amount of regexes, sometimes multiple times. I think in this case, increasing the size of kMaxRegexsCompiled, to 100 for example, would help avoid recompilation. This would further guarentee that recompilation only occurs when the user has passed a column that already requries a lot of processing.

In the worst case, we are passed a very large column of unique regexes and have to compile each one. I'm not sure how to avoid this on Velox's end without simply checking beforehand how many unique patterns there are. I may be naive, but if its the query the user is asking for I also don't understand why we throw an exception. We could warn them after noticing how many unique regexes they've supplied, but in the end they are asking for compiling thousands of unique regexes.
I'm curious about your thoughts, and if you have any other ideas for how to get around this problem.

@codyschierbeck Hi Cody, I think I understand what's going on. Let me try to explain.
Common expression evaluation is aware of encodings. If input is dictionary-encoded, common eval peels off the dictionary encoding and evaluates the expression on the base vector. If dictionary has lots of repetitions, this reduces the number of evaluations. Simple expression evaluation always flattens the inputs and evaluates expression on each row.
Common eval may process rows out of order. For example, if input is dictionary encoded using indices 10, 9, 8,....0, then evaluation will will happen in "reverse" order. The following simple test case can be used to illustrate that point. Here, we evaluate LIKE on 30 rows with unique patterns each. When evaluating on flat inputs first 20 rows are processed and remaining 10 rows fail. When we wrap that input in a dictionary with indices in reverse we observe that last 20 rows are processed while first 10 rows fail.
TEST_F(Re2FunctionsTest, xxx) {
  auto data = makeRowVector({
      makeFlatVector<std::string>(
          30, [](auto row) { return std::string(row, 'x'); }),
      makeFlatVector<std::string>(
          30,
          [](auto row) {
            return fmt::format(
                "{}%{}", std::string(row, 'x'), std::string(row, 'y'));
          }),
  });

  auto r = evaluate("try(c0 like c1)", data);
  LOG(ERROR) << r->toString();
  LOG(ERROR) << r->toString(0, 30);

  auto indices = makeIndicesInReverse(30);
  auto d2 = makeRowVector({
      wrapInDictionary(indices, data->childAt(0)),
      wrapInDictionary(indices, data->childAt(1)),
  });

  r = evaluate("try(c0 like c1)", d2);
  LOG(ERROR) << r->toString();
  LOG(ERROR) << r->toString(0, 30);

  FAIL();
}

Thus, comparing common and simplified eval is not valid for functions whose results depend on the order of inputs.
The Fuzzer is simply not sophisticated enough to test regexp_xxx functions which have a limit on number of unique regular expressions which makes them dependent on the order of inputs.
It seems the only viable solution would be to skip these functions in the Fuzzer.

In the worst case, we are passed a very large column of unique regexes and have to compile each one. I'm not sure how to avoid this on Velox's end without simply checking beforehand how many unique patterns there are. I may be naive, but if its the query the user is asking for I also don't understand why we throw an exception. We could warn them after noticing how many unique regexes they've supplied, but in the end they are asking for compiling thousands of unique regexes.

Usually, queries are processed on shared clusters and therefore it is important to ensure that no single query uses outsized amount of resources. Also, often queries are processed without a human in attendance, hence, there is no-one to warm about a problematic query. Unless a query fails, the author won't be interested in knowing whether the query is not written correctly. Furthermore, the query may originally be fine and process only a handful of unique regexes, but over time the data may change or a bug may be introduced that causes the number of unique regexes to explode. In this case, failing early and loudly will protect a shared resource and save operating team a lot of time investigating major outage as well as protect users of well-written queries.
Hope this makes sense.

 Just as an fyi, Expression fuzzers can persist their vectors, plus expression, so you can easily share the repro around . We have documentation here : https://facebookincubator.github.io/velox/develop/testing/fuzzer.html#accurate-on-disk-reproduction - Please try it out and it should help you out a lot more in the future. Secondly please feel free to reach out to me on slack if you need clarifications if you think you see unusual behavior.

One option is to make a limit configurable and set it to some high value in the Fuzzer. However, Fuzzer's coverage for json and regex functions is quite limited. Fuzzer generates random data that has virtually no chance of being valid JSON or regular expression, hence, test coverage doesn't go beyond some sanity checks. It would be great to extend ExpressionFuzzer to allow custom input generators similar to the ones available in AggregationFuzzer.

May do the trick?

It may... or may not.
Consider an expression with a lambda function: transform(array, x -> f(x)). If we evaluate this expression on 100 rows with 10-element array in each row, we'll need to evaluate f(x) on 10 * 100 = 1000 values.


build package artifacts for Linux with CPack

This PR includes a CPack implementation for CMake and an Actions workflow cpack.yml that builds a package artifact for a handful of mainstream Linux distributions on x86_64. The pre-existing CI continues to build ziti-edge-tunnel for the same target OSs and ARCHs.
The goals of this PR include:

Deliver a CMake-based build system for Linux distribution packages
Deliver on-demand CI that composes the package artifact, and will be integrated with future distribution channels (e.g yum and apt repos in Artifactory)

The changes to the top-level CMakeLists.txt files follow a rationale: If building packages then require a semver from Git (not the dummy version like 0.0.0). You may pass an explicit version to use or override the requirement for a semver with command-line build options. The semver is important for package managers like yum and apt to compute upgrade and downgrade actions based upon the semver that's embedded in the package.
CPack builds a deb for the Debian family and rpm for RedHat based upon the OS detected by CMake. These packages install systemd specific units, and are intended to be run on mainline distributions which use systemd as their init system.
The Actions workflow uses the matrix strategy to loop over a list of Linuxes for which parallel jobs are spawned to build the Linux package in the target OS by way of Actions job.container spec.

A runner VM Ubuntu 20.04 (latest) runs a runner container for each matrix element.

The runner container has the same base image as the target OS for the package (e.g. redhat-7, ubuntu-18.04) to ensure a build that is compatible for the target OS. The runner container spawns and waits for the builder container of the same OS to produce the artifact, then runs the binary artifact and installs the package artifact as a simple test.

To demonstrate the package build, I've triggered the on-demand (on-dispatch) CI job that builds packages for the current HEAD in this workflow run.
On that page you can see the list of downloadable package artifacts that were produced. When we decide the release procedure and deliver distribution repos for rpm and deb then those same artifacts will be uploaded to Artifactory as part of a normal release.

in general this seems like a lot of repetition for each linux distro. I was thinking that we would build once on the oldest distro (kernel,glibc,toolchain) that we can tolerate and package that binary into the different packages.

Definitely considered that minimal approach, and at first it seemed best to me too. We'll definitely need at least four permutations:

old redhat
new redhat
old ubuntu
new ubuntu

In total we have six, and certainly the vast majority of the differences are expressed in the first four. At that point it felt inexpensive to add the last two, the Dockerfiles were already written and tested, and the fact of the ability to build the artifact by no means implies that we shall advertise and distribute every artifact. In fact, now that the framework (loosely termed) is developed, we can easily add and remove any OS we wish from the set of package artifacts we can build. This is intentionally distinct from the question of distribution (i.e. package repos) that we will later choose to advertise. That's why I'm now less concerned about the repetition than I was at first.

Package job run for current rev with all the fixes discussed above is here: https://github.com/qrkourier/ziti-tunnel-sdk-c/actions/runs/2041485430
Ready for review!

The on-demand CI job for the current HEAD is here: https://github.com/qrkourier/ziti-tunnel-sdk-c/actions/runs/2097935179


feat: create local db environment and db schema

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: cka-y:x: github-actions[bot]You have signed the CLA already but the status is still pending? Let us recheck it.


Please add an interface for displaying and managing all the fonts in the folder C:\Windows\Fonts

What feature or improvement do you think would benefit Files?
Explorer have already provides a user-friendly interface for the C:\Windows\Fonts folder. I hope Files can also have a similar interface to manage fonts.
Requirements
null
Files Version
<IP_ADDRESS>
Windows Version
10.0.22631.2715
Comments
No response

Thanks for the feedback, Windows File Explorer doesn't use a different interface compared to Files. You can set it to grid view with the tool bar options.


Added Pysa - Python Static Analyzer

In our tasks, there's a mention of Static Analysis of our code. I found Pysa, let's check if and how good it works :)

Will there be something else to fix and all check will be ok?

Pysa is not meeting our needs currently. Will focus on PR #26


Minor tweaks to PR as feedback

@teeeteee  -- saw a few small things in your PR (https://github.com/ginger-io/react-use-form/pull/11) that'd be easier to tweak in code, so I'm submitting this PR  on-top of your branch.

Thanks Josh!

Thanks Josh!


Implement RPC to dump in memory config

Related to #633.
Add <endpoint>/api/config.dump to RPC.
e.g)
example conf:
<source>
  type http
  bind <IP_ADDRESS>
  port 9880
  body_size_limit 32MB
  keepalive_timeout 10
  # backlog 0
  add_http_headers false
  format default
</source>

<match test>
  type stdout
</match>
<system>
  rpc_endpoint <IP_ADDRESS>:9000
</system>

Dump API
$ curl http://<IP_ADDRESS>:9000//api/config.dump
{"ok":true}

then, got:
2015-08-28 15:45:28 +0900 [info]: dump in-memory config
2015-08-28 15:45:28 +0900 [info]: <ROOT>
  <source>
    type http
    bind <IP_ADDRESS>
    port 9880
    body_size_limit 32MB
    keepalive_timeout 10
    add_http_headers false
    format default
  </source>
  <match test>
    type stdout
  </match>
  <system>
    rpc_endpoint <IP_ADDRESS>:9000
  </system>
</ROOT>

via HTTP
$ curl http://<IP_ADDRESS>:9000/api/config.getDump
{"conf":"<ROOT>\n  <source>\n    type http\n    bind <IP_ADDRESS>\n    port 9880\n    body_size_limit 32MB\n    keepalive_timeout 10\n    add_http_headers false\n    format default\n  </source>\n  <match test>\n    type stdout\n  </match>\n  <system>\n    rpc_endpoint <IP_ADDRESS>:9000\n  </system>\n</ROOT>\n","ok":true}

Do we really need two ways to dump?

I'm not sure for now.
I think that dump in-memory config in log is really needed.
But, I think that via HTTP version needs to pay attention to implement. (detail as below)
At least, both ways makes easy to dump in-memory configurations.
Two ways to dump has different advantages and disadvantages.
config.dump
Advantage

Display in-memory config with pretty print

Disadvantage

Need to login or open terminal where fluentd running

config.getDump
Advantage

Be able to get dump without login or open terminal where fluentd running

Disadvantage

Too easy to see in-memory config when someone know Fluentd RPC endpoints (maybe violate security???)

In my opinion, we can monitor Fluentd configuration from remote point continuously with config.getDump. It's helpful to find Fluentd node/process which are running with old/outdated configuration.
If all plugins uses :secret feature to mask sensitive values, there seems no security risk. But right now, we can't expect it.
I think that config.getDump should be disabled in default, and it's better to be enabled by command line option or <system> configuration. Fluentd v0.14 may be able to enable it in default.

I think that config.getDump should be disabled in default, and it's better to be enabled by command line option or  configuration. Fluentd v0.14 may be able to enable it in default.

:+1:
I think so, too.
I want to toggle enable/disable it by <system> configuration.

@sonots @tagomoris If you are Okay, please merge this PR.

:+1:

Can we merge this?


Fixing issue #70 where language support was not working when using React with addons

Added tests and fixed the file regex.

As a workaround, one can go to the package settings in atom and change the React File Pattern property to:

/((require(['"]react(?:(-native|/addons))?['"])))|(import\s+\w+\s+from\s+['"]react(?:(-native|/addons))?['"])/

Hi! Thanks for contributing!


Cannot connect to device

I have been struggling with this for a few days now and I can't for the life of me figure out how to actually connect to the hardware. I am running macOS with Python 3.7.
I built everything from source and ran mavsdk_server serial:///dev/tty.usbserial-AJ02ZC94:115200 to which I get the following response
[12:25:56|Info ] MAVSDK version: 0.21.1 (mavsdk_impl.cpp:25)
[12:25:56|Debug] New: System ID: 0 Comp ID: 0 (mavsdk_impl.cpp:390)
[12:25:56|Info ] Server set to listen on <IP_ADDRESS>:50051 (grpc_server.cpp:47)
[12:25:56|Info ] Server started (grpc_server.cpp:31)
[12:25:56|Info ] Waiting to discover system... (connection_initiator.h:58)
[12:25:56|Debug] Component Autopilot (1) added. (system_impl.cpp:401)
[12:25:56|Debug] Component Gimbal (154) added. (system_impl.cpp:401)
[12:25:56|Debug] Discovered 2 component(s) (UUID: 1) (system_impl.cpp:561)
[12:25:56|Info ] System discovered [UUID: 1] (connection_initiator.h:62)
[12:25:56|Warn ] sending again, retries to do: 3  (511). (mavlink_commands.cpp:222)
[12:25:56|Error] Error: get param busy timeout: MIS_TAKEOFF_ALT (mavlink_parameters.cpp:456)
[12:25:57|Error] Error: UUID changed (system_impl.cpp:257)
[12:25:57|Debug] MAVLink: critical: Data link lost (system_impl.cpp:308)
[12:25:57|Debug] MAVLink: info: Data link regained (system_impl.cpp:308)

To me, that looks like it connected to the platform.
Now, when I try to run any of the examples, it always hangs on Waiting for drone to connect...
I have tried setting the connection string directly to serial:///dev/tty.usbserial-AJ02ZC94:115200 without the mavsdk_server running, I have tried setting the system_address kwarg to localhost and connect to the running instance, nothing.
Is there something fundamentally wrong with what I am doing?
Additionally, I don't know if it ever actually connects to the running mavsdk_server. I can put in garbage into the system_address kwarg and it always returns Connected to mavsdk_server! so I can't tell what's working, especially with all the asynchronous stuff.

No, it has not connected:
[12:25:56|Debug] New: System ID: 0 Comp ID: 0 (mavsdk_impl.cpp:390)

This is a dummy/non-vehicle. It should say something like New: System ID: 1 Comp ID: 1. I agree that's a bit confusing!
Connected to mavsdk_server!

This only refers to the gRPC connection between the Python client and the mavsdk_server running.
Are you sure the baudrate is 115200? Is this for a telemetry radio? Usually these are at 57600.

Yes the baudrate is 115200. Hasn't it connected, though if it says
[12:25:56|Debug] Component Autopilot (1) added. (system_impl.cpp:401)
[12:25:56|Debug] Component Gimbal (154) added. (system_impl.cpp:401)

It certainly doesn't do that if the cable is unplugged. As in, it found the pixhawk and the gimbal, right?

Oh, it has, sorry I did not read that through!
I think I'm getting what is happening. You are running mavsdk_server manually and then using Python which also tries to start mavsdk_server but can't because your started one already has the port. I think you don't need to start your own mavsdk_server, and cnan just do this in Python:
# Init the drone
    drone = System()
    await drone.connect(system_address="serial:///dev/tty.usbserial-AJ02ZC94:115200")

    print("Waiting for drone to connect...")
    async for state in drone.core.connection_state():
        if state.is_connected:
            print(f"Drone discovered with UUID: {state.uuid}")
            break

@kiranshila: any success on that front?

I can try it again, but I switched over to using dronekit a while ago

Ok! Closing for now, please feel free to re-open this issue if you need more help.
Also this blogpost might be a useful read to get started with MAVSDK-Python :blush:.


Table not work when I refresh page

Hi,
this issue appears when I come to refresh page component,
this is my code =>
this.settings = {
mode: 'internal',
actions: {
title: data['Action'],
add: false,
delete: false,
},
edit: {
editButtonContent: '',
},
columns: {
code: {
title: data['creditLimitCode'],
type: 'string',
},
name: {
title: data['creditLimitName'],
type: 'string',
},
days: {
title: data['creditLimitDays'],
type: 'string',
},
discount: {
title: data['creditLimitDiscount'],
type: 'string',
},
}
}

<ng2-smart-table class="creditlimit-smart-table" [settings]="settings" [source]="source" (edit)="onEdit($event)">

::ng-deep .creditlimit-smart-table {
.form-control {
color: nb-theme(form-control-color);
}
}

this was happen to me too, but you need to declare your settings as a global function:
`export class ReportsComponent {
variable1: any;
...
settings = {
columns: {},
mode: "external",
hideSubHeader: true,

};
constructor(){ ... }
}`

this was happening to me too, but you need to declare and set your settings as a global variable:
@Component({
  selector: "yourComponent",
  templateUrl: "./yourComponent.component.html",
  styleUrls: ["./yourComponent.component.scss"],
})

export class yourNameComponent{

globalVariable1: any;
globalVariable2: any;
globalVariableN: any;

// declare your seettings here as global
 settings = {
    columns: {...},
    mode: 'internal',
   actions:{...}
  ....
  };

  constructor(){ ... }
}

thank you very much, its work


printing graphics other than bitmap format

Hi,
thanks for this. can you pls advise on how to print a logo image in png or jpg format?
thanks.

never mind. managed to get it.


Update k8s client version

Issue
AM needs to use latest k8s client version following an issue during testing.
Description
Update to gravitee-node to lastest K8s client version for AM usage.
Additional context

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 4.6.0-update-k8s-client-version-SNAPSHOT
download it from Artifactory here

:tada: This PR is included in version 4.6.0-alpha.2 :tada:
The release is available on:

4.6.0-alpha.2
GitHub release

Your semantic-release bot :package::rocket:


FlutterActivity onStop taking a while to be called

I am presenting a FlutterActivity from an existing application but I am having problem when I try to close this activity and open again. After some testing I noticed that the problem just happens if I reopen the activity before the other FlutterActivity onStop being called. What happens then is that this new open activity freezes for a while and then crashes.
Steps to Reproduce

Create a FlutterActivity subclass
Override method provideFlutterEngine to return a engine from the FlutterEngineCache
Present the activity and dismiss it
Observe the onStop call

Target Platform: Android
Target OS version/browser:  6, 7 and 9
Devices: Simulator and device

No issues found! (ran in 3.4s)

[✓] Flutter (Channel master, v1.10.15-pre.408, on Mac OS X 10.15 19A602, locale
    pt-BR)
    • Flutter version 1.10.15-pre.408 at
      /Users/leonardodasilva/development/flutter
    • Framework revision 7d03371610 (2 days ago), 2019-11-05 08:57:25 -0800
    • Engine revision 7b968ff95f
    • Dart version 2.7.0

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/leonardodasilva/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor
      --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.0, Build version 11A420a
    • CocoaPods version 1.8.3

[!] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)

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

[✓] Connected device (2 available)
    • Positivo Slim      • 4A579BD9G                                •
      android-arm • Android 7.0 (API 24)
    • iPhone de Leonardo • ac197a55a52fbad3d364054a4c99dbe29ed46b23 • ios
      • iOS 13.2

! Doctor found issues in 2 categories.

i figured out, there was a animation in the previous screen that was delaying the onStop :D

Hi @lslv1243
I'm glad that you fixed the issue,
given your last message I feel safe to close this issue,
if you disagree please write in the comments
and I will reopen it.
Thank you


java.lang.IllegalArgumentException: Invalid character '[' for QUERY_PARAM in "menuIds[]"

Describe the bug
Please provide details of the problem, including the version of Spring Cloud that you
are using.
Sample
If possible, please provide a test case or sample application that reproduces
the problem. This makes it much easier for us to diagnose the problem and to verify that
we have fixed it.

can you please provide the details you left untouched in the description?

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


[Bug]: dear teachers, i have two questions about spu on torch

Issue Type
Support
Modules Involved
Others
Have you reproduced the bug with SPU HEAD?
Yes
Have you searched existing issues?
Yes
SPU Version
spu0.5.0
OS Platform and Distribution
ubuntu18.04
Python Version
3.10.13
Compiler Version
GCC11.2.1
Current Behavior?
dear teachers,  following steps of "https://github.com/secretflow/spu/tree/main/examples/python/ml/torch_lr_experiment",
i have two questions about spu on torch, hope to get your help, thanks!
①Do I need to download torch_xla if I don't need tpu? Does torch have to run in tpu on spu：
②when i use the "bazel run -c opt //examples/python/utils:nodectl -- up" ，it error as follows, I tried to  put https://github.com/secretflow/yacl/archive/refs/tags/0.4.5b1.tar.gz in abc/spu/cache/bazel /_bazel_aa/36fb706c243/external/yacl /temp7573373/0.4.5b1.tar.gz but still output the same error:
INFO: Repository yacl instantiated at:
/abc/spu/WORKSPACE:19:9: in
/abc/spu/bazel/repositories.bzl:35:10: in spu_deps
/abc/spu/bazel/repositories.bzl:39:10: in _yacl
/abc/spu/.cache/bazel/_bazel_aa/36fb706c2/external/bazel_tools/tools/build_defs/repo/utils.bzl:233:18: in maybe
Repository rule http_archive defined at:
/abc/spu/.cache/bazel/_bazel_aa/36fb706c2/external/bazel_tools/tools/build_defs/repo/http.bzl:372:31: in
WARNING: Download from https://github.com/secretflow/yacl/archive/refs/tags/0.4.5b1.tar.gz failed: class java.io.IOException connect timed out
ERROR: An error occurred during the fetch of repository 'yacl':
Traceback (most recent call last):
File "  /abc/spu/.cache/bazel/_bazel_aa/36fb706c243/external/bazel_tools/tools/build_defs/repo/http.bzl", line 132, column 45, in _http_archive_impl
download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Error downloading [https://github.com/secretflow/yacl/archive/refs/tags/0.4.5b1.tar.gz] to   /abc/spu/.cache/bazel/_bazel_aa/36fb706c243/external/yacl/temp7573373/0.4.5b1.tar.gz: connect timed out
ERROR:   /abc/spu/spu/WORKSPACE:19:9: fetching http_archive rule //external:yacl: Traceback (most recent call last):
File "/abc/spu/.cache/bazel/_bazel_aa/36fb706c243/external/bazel_tools/tools/build_defs/repo/http.bzl", line 132, column 45, in _http_archive_impl
download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Error downloading [https://github.com/secretflow/yacl/archive/refs/tags/0.4.5b1.tar.gz] to   /abc/spu/.cache/bazel/_bazel_aa/36fb706c243/external/yacl/temp757/0.4.5b1.tar.gz: connect timed out
ERROR: Error computing the main repository mapping: no such package '@yacl//bazel': java.io.IOException: Error downloading [https://github.com/secretflow/yacl/archive/refs/tags/0.4.5b1.tar.gz] to   /abc/spu/.cache/bazel/_bazel_aa/36fb706c243/external/yacl/temp7573373/0.4.5b1.tar.gz: connect timed out
Loading:
Standalone code to reproduce the issue
print("A bug")

Relevant log output
No response

torch_xla is required but TPU is not.

torch_xla is required but TPU is not.
It's a network connection problem. Build from source need access to github and other Internet links. Make sure you can connect to them.

thank you very much!


fix linksdk_demo cannot use file system error

感谢提交 Pull Requests！
Thanks for submitting a pull request.

Security Check : 70aff7aff8a29f6aed314fef38fb44bd775bf997

auto build success,number:147

autotest fail,number:1360


implement copy row

Success criteria (What criteria will consider this ticket closeable?)
A source row can be copied to a destination row

closing as a subset of #637


when priting left panel disaper in portrait mode

Hello,
Great job !
I would like to submit an issue, is it possible to move the picture when printing?
Everything else work like a charm expect the picture is lost.
Thx !

I believe that this in intentionally built into the theme to remove the sidebar when the document is printed


Fixes #1514. Enable latest SNAPSHOT option by default

Fixes #1514
#1520 originally fixed #1514 by reimplementing part of chain resolver
to check all resolvers to find the latest snapshot artifacts.
This behavior did not work well with Maven repositories where sbt was
failing to calculate the correct publication dates.
Now that #2075 fixes the Maven integration issue we should enable this
flag back again.
The build user can opt out by:
updateOptions := updateOptions.value.withLatestSnapshots(false)

/review @jsuereth, @dwijnand, @Duhemm

LGTM asides from the minor commented code comment


Azure: etcd cluster operator: StaticPodsDegraded

Hi folks,
I installed
registry.svc.ci.openshift.org/origin/release:4.4.0-0.okd-2020-02-08-183312
on Azure.
After restarting all masters and workers the installation I was able to login to the Console.
The etcd operator seems to have problems. I got this events in the Cluster Overview:
StaticPodsDegraded: pods "etcd-c1-okd4-454td-master-1" not found
StaticPodsDegraded: pods "etcd-c1-okd4-454td-master-0" not found
StaticPodsDegraded: pods "etcd-c1-okd4-454td-master-2" not found
InstallerControllerDegraded: missing required resources: configmaps: config-1,etcd-pod-1
RevisionControllerDegraded: configmaps "etcd-pod" not found
TargetConfigControllerDegraded: "configmap/kube-apiserver-pod": node/c1-okd4-454td-master-1 missing InternalDNS

oc adm must-gather results are here:
https://drive.google.com/open?id=1TYfWYnWzo--RqXrfJI16uhORx5YRyviH
Greetz,
Josef

Dupe of https://bugzilla.redhat.com/show_bug.cgi?id=1800313 or https://github.com/openshift/cluster-etcd-operator/pull/103

possibly, let's re-test here once that has landed and leave this open for tracking
xref: https://github.com/openshift/okd/issues/13

@LorbusChris  @vrutkovs
Currently I installed the latest version
4.4.0-0.okd-2020-02-12-020746
Problem still exists.
StaticPodsDegraded: pods "etcd-c3-okd4-x924z-master-0" not found
StaticPodsDegraded: pods "etcd-c3-okd4-x924z-master-1" not found
StaticPodsDegraded: pods "etcd-c3-okd4-x924z-master-2" not found
InstallerControllerDegraded: missing required resources: [configmaps: config-1,etcd-metrics-proxy-client-ca-1,etcd-metrics-proxy-serving-ca-1,etcd-peer-client-ca-1,etcd-pod-1,etcd-serving-ca-1, secrets: etcd-all-peer-1,etcd-all-serving-1,etcd-all-serving-metrics-1]
TargetConfigControllerDegraded: "configmap/kube-apiserver-pod": node/c3-okd4-x924z-master-0 missing InternalDNS
RevisionControllerDegraded: configmaps "etcd-pod" not found

Pretty sure that's https://bugzilla.redhat.com/show_bug.cgi?id=1801898

Yes. That's it. Seems to be introduced recently.

I tried out 4.4.0-0.okd-2020-02-18-143245 on vSphere. It seems to be fixed. I had the problem on vSphere as well on Azure.


Feat/guided answers/header visibility 90

This PR addresses the tasks from this story https://github.com/SAP/guided-answers-extension/issues/90

Changes in folder structure for easier navigation
Move the header section into a new component and add props for the logo and nav button
Toggle off part of the header in the Details section

Split Header into smaller components

Thanks @Klaus-Keller


awscli2: 2.17.5 -> 2.17.13

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for awscli2 is: Unified tool to manage your AWS services
meta.homepage for awscli2 is: https://aws.amazon.com/cli/
meta.changelog for awscli2 is: https://github.com/aws/aws-cli/blob/2.17.13/CHANGELOG.rst
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.17.13 with grep in /nix/store/27px9kdbn5abxn7b34kpks1vjvw3qr0y-awscli2-2.17.13
found 2.17.13 in filename of file in /nix/store/27px9kdbn5abxn7b34kpks1vjvw3qr0y-awscli2-2.17.13

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

awscli2
liquidsoap

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/27px9kdbn5abxn7b34kpks1vjvw3qr0y-awscli2-2.17.13 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A awscli2 https://github.com/r-ryantm/nixpkgs/archive/866f468a2b06742b06bacb99fb8c592d9e6d0cf3.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/866f468a2b06742b06bacb99fb8c592d9e6d0cf3#awscli2

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/27px9kdbn5abxn7b34kpks1vjvw3qr0y-awscli2-2.17.13
ls -la /nix/store/27px9kdbn5abxn7b34kpks1vjvw3qr0y-awscli2-2.17.13/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

awscli2
awscli2.dist
liquidsoap

Maintainer pings
cc @bhipple @davegallant @bryanasdev000 @devusb @anthonyroussel for testing.

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

3 packages built:

awscli2
awscli2.dist
liquidsoap

@NixOS/nixpkgs-merge-bot merge


The polyfill won’t work with CSSStyleSheet() or CSSStyleDeclaration()

Is your feature request related to how popovers work in general?
No.
Is your feature request related to how this polyfill works? Please describe.
When using *.adoptedStyleSheets or *.style.setProperty() to add CSS Anchor Positioning declarations, in unsupported browsers, these declarations will be ignored/removed since they are not recognized CSS properties and values. As a result, this polyfill won't work because those declarations aren't there in the first place.
The current work around is to use *.setAttribute('style', '...') or creating a style element with the Anchor Positioning declarations as its text content. But this work around could trigger content security policy issues.
Describe the solution you'd like
Unclear.
Additional context
We are currently building some custom elements (using Popover API) that would benefit from CSS Anchor Positioning, so we are investigating if using the polyfill would help in unsupported browsers. We understand the cross-root referencing issue, so in the custom element, we creates a new CSSStyleSheet() object and inject that into document.adoptedStyleSheets, e.g.
#trigger-123 {
  anchor-name: --trigger-123;
}
#popover-123 {
  left: anchor(--trigger-123, left);
  top: anchor(--trigger-123, bottom);
}

But in unsupported browsers, this style sheet would just be:
#trigger-123 {}
#popover-123 {}

We are wondering if there is a solution for this use case, or rather this is out of the scope of this polyfill.

Hm, good question. It's definitely related to this polyfill, but somewhat tangential to the work of the polyfill itself -- more generally "How can I define styles for custom elements in browsers that don't understand them as styles?".
I'm not thinking of anything other than <link> or the workarounds you outlined (createElement('style') with textContent). @jamesnw @mirisuzanne @mmalerba Any ideas?

I think if we really wanted to be fancy we could try to monkey-patch the relevant APIs to intercept these styles, for example:
const realReplaceSync = CSSStyleSheet.prototype.replaceSync;
CSSStyleSheet.prototype.replaceSync = function(css) => {
    addToPolyfill(css);
    return realReplaceSync.apply(this, arguments);
}

If that's too crazy, the design direction I'm exploring involves moving all of the unsupported properties and properties with unsupported values into custom properties as part of a preprocessing step. Maybe we could expose that preprocessing function to allow users to preprocess their own CSS, and update the polyfill to look for already pre-processed styles

I think the pre-processing approach makes a lot of sense as a workaround here. But I would defer to others if the ✨fancy approach is more usable.

Thank you for the discussion so far! This is a tricky one.
The pre-processing approach would force all browsers to use the polyfill, it's still nicer than directly using Floating UI because you can just remove the pre-processor when the future arrives. But it would be nicer if we can still leverage the built-in support whenever we can.
The API interception approach may cause performance issue, because all calls to those built-in APIs will have to go through the process. I wonder, instead of polyfilling the built-in APIs, maybe provide a ponyfill function, something like:
function replaceSyncWithAnchorPositioning(styleSheet, css) {
  if (CSS.supports('anchor-name: --a')) {
    return;
  }

  addToPolyfill(css);
  styleSheet.replaceSync(css);
}

This way at least authors can opt in.
Either way, it would be really nice to have that addToPolyfill() function exported, so authors can use it more flexibly. For example, in our use case, our library is a group of custom elements for a design system, and we do want to bundle the polyfill in so that we can keep the bundle size down, also users of our library may want to use their own polyfill solutions, so rather than out-of-the-box polyfill support, we'd recommend polyfill solutions in our documentation. The ponyfill approach will not work for this use case, but having the addToPolyfill() function could help make it easier.

I just created a draft PR for proof-of-concept purpose: https://github.com/oddbird/css-anchor-positioning/pull/256
The change is quite small (hopefully the implementation is correct). And I can make it more robust if needed, e.g. supporting <link> element, supporting inline styles, etc. But I'd like to get your thoughts on the approach before I go deeper. Also, if you already have a plan for addressing the issue, let me know, happy to wait for an official solution. Thanks!

This is released in v0.3.0.

Realized this isn't really "closed" by #256, so I'm re-opening it.


Cached gems layer reused even when ruby minor version changes

What happened?
We built a Ruby app with version 2.7.2 of mri, then rebuilt it, changing the version to 2.6.6. The app failed to run after rebuild because it was not able to find the required gems.
Reproduction Steps

Clone this sample app
Generate a Gemfile.lock by running bundle install locally.
Add a buildpack.yml that specifies an MRI version:

---

mri:
  version: 2.7.2

Build the app:

pack build changing-version --builder paketobuildpacks/builder:0.1.20-base --buildpack gcr.io/paketo-buildpacks/ruby:0.1.5 --clear-cache

Run the app

docker run -d --env PORT=8080 --publish 8080:8080 changing-version

And see the expected output when accessing it:

curl <IP_ADDRESS>:8080
<!DOCTYPE html>

      <title>Powered By Paketo Buildpacks</title>

Then, change the buildpack.yml to specify a different MRI version:

---

mri:
  version: 2.6.6

Rebuild the app without clearing the cache:

 pack build changing-version --builder paketobuildpacks/builder:0.1.20-base --buildpack gcr.io/paketo-buildpacks/ruby:0.1.5

Note that build output includes:

[builder] Paketo Bundle Install Buildpack 0.1.0
[builder]   Reusing cached layer /layers/paketo-buildpacks_bundle-install/gems
[builder]

Re-run the app (in interactive mode); note the error output:

docker run -it --env PORT=8080 --publish 8080:8080 changing-version
bundler: command not found: puma
Install missing gem executables with `bundle install`

Re-run the app and jump into the container; note that the gems are in a ruby/2.7.0 directory

docker run -it --env PORT=8080 --publish 8080:8080  --entrypoint=launcher changing-version  /bin/bash
cnb@80bec5a816a0:/workspace$ ll /layers/paketo-buildpacks_bundle-install/gems/ruby/
total 12
drwxr-xr-x 3 cnb cnb 4096 Jan  1  1980 ./
drwxr-xr-x 4 cnb cnb 4096 Jan  1  1980 ../
drwxr-xr-x 9 cnb cnb 4096 Jan  1  1980 2.7.0/

The buildpack should rebuild the gem layer when the minor version of ruby changes, because the gems will need to be placed in a different subdirectory.
Checklist
Please confirm the following:

[x] I have included log output.
[x] The log output includes an error message.
[x] I have included steps for reproduction.

This is fixed by the bundle-install v0.1.1, which is available in the metabuildpack ruby:0.1.6. Please reopen it you feel otherwise.

I do not think this is resolved by the fix that is mentioned. I followed the above reproduction criteria, with a minor additon (I also include a Gemfile.lock in the source code) and am still seeing the missing gem issue. The above fix would only resolve the issue if the user did not include a Gemfile.lock.

Using the same reproduction steps as the original issue, this has now been resolved as of Ruby buildpack v0.4.0.
Running
pack build changing-version --buildpack gcr.io/paketo-buildpacks/ruby:0.4.0

after changing the version in the buildpack.yml shows that the cached gems layer is no longer being reused:
[builder] Paketo Bundler Buildpack 0.1.4
[builder]   Resolving Bundler version
[builder]     Candidate version sources (in priority order):
[builder]       <unknown> -> ""
[builder]
[builder]     Selected Bundler version (using <unknown>): 2.2.11
[builder]
[builder]   Reusing cached layer /layers/paketo-buildpacks_bundler/bundler
[builder]
[builder] Paketo Bundle Install Buildpack 0.1.6
[builder]   Executing build process
[builder]     Running 'bundle config path /layers/paketo-buildpacks_bundle-install/gems'
[builder]     Running 'bundle config clean true'
[builder]     Running 'bundle config cache_path --parseable'
[builder]     Running 'bundle install'
[builder]       Completed in 11.327s
[builder]
[builder]   Configuring environment
[builder]     BUNDLE_PATH -> "/layers/paketo-buildpacks_bundle-install/gems"

and docker run now succeeds on the rebuilt app.
Also, after rebuilding, if we look at the layer contents in the rebuilt image, we see:
docker run -it --env PORT=8080 --publish 8080:8080  --entrypoint=launcher changing-version  /bin/bash
cnb@15dcfbddbd87:/workspace$ ll /layers/paketo-buildpacks_bundle-install/gems/ruby/
total 12
drwxr-xr-x 3 cnb cnb 4096 Jan  1  1980 ./
drwxr-xr-x 4 cnb cnb 4096 Jan  1  1980 ../
drwxr-xr-x 9 cnb cnb 4096 Jan  1  1980 2.6.0/

meaning that the directory with the stale 2.7.0 gems has also been cleaned up.


Test against models Vec3/list patch

Context https://github.com/openforcefield/openff-models/pull/36

Cool, no surprises here


Any ways to make bgset plugin also do progressive load?

Sort of like the progressive plugin, but AFAIK that plugin only works with img tags right? I don't see the progressive jpeg effect when combining progressive plugin with bgset plugin, eg. hi-res background show up only when fully loaded.
I guess it because bgset load the hi-res image through an img element, so it suffers from the same problem described by progressive plugin ?
PS: I am using LQIP pattern with background image (a hero image) by setting the smallest image in CSS, and use lazysizes to load the hi-res version.

I updated my strategy to do following:

use media query to specific the minimum resolution on different css width (disregard pixel density)
then use lazysizes bgset to load the optimal resolution.
now make sure all my images are progressive, then the initial load will be progressive, and bgset not showing the progressive effect is less a problem.

We can also use img and it has advantage of loading faster (browser delay background-image download); but we will need object-fit polyfill to achieve background-size: cover effect on many browsers and it's not semantically correct as our hero image is visual decoration.
TL;DR, my issue is probably not a big deal, just a note that bgset doesn't show progressive jpeg like default background-image.

...that plugin only works with img tags right?

yes.

I guess it because bgset load the hi-res image through an img element, so it suffers from the same problem described by progressive plugin ?

No this is due to the fact, that the currentSrc property of the responsive image API only returns the selected image candidate after it was fully downloaded and not after it was selected. If I would get the selected image request/pending image request earlier, I could implement this.

We can also use img and it has advantage of loading faster (browser delay background-image download); but we will need object-fit polyfill to achieve background-size: cover effect on many browsers and it's not semantically correct as our hero image is visual decoration.

Absolutely right. If you have just one hero image, that is always above the fold, this should be the best way from a pure performance aspect. (You can add role="presentation" alt="" to modify the semantics of you html).


[Issue]: order agents within a groupchat for round_robin to work

Describe the issue
At the moment, agents added to a groupchat container are retrieved ordered by created date (descending). This clearly causes an issue with round_robin. The fix will be to keep track of the ordering (as agents are added to a groupchat container) and use that detail in ordering the agents before they are created.
Steps to reproduce

Create user_proxy agent
Create assistant agent
Create groupchat, and add assistant agent first, user_proxy second
The user_proxy agent will always be consider first in the groupchat because of current ordering logic: agent desc created date
Test the groupchat with selection_method: round_robin. user_proxy will run first, and chat terminates immediately

Screenshots and logs

Additional Information
No response

@filippopirri we'd greatly appreciate it if you could create a pull request. thanks
cc @victordibia


vmlatency: Add securityContext to checkup's container

Currently, when executing this checkup on DS, the following warning message appears:
Warning: would violate PodSecurity "restricted:latest":
allowPrivilegeEscalation != false (container "vm-latency-checkup"
must set securityContext.allowPrivilegeEscalation=false),
unrestricted capabilities
(container "vm-latency-checkup" must set securityContext.capabilities.drop=["ALL"]),
runAsNonRoot != true
(pod or container "vm-latency-checkup" must set securityContext.runAsNonRoot=true),
seccompProfile
(pod or container "vm-latency-checkup" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")

Add a securityContext to the checkup's container.
Signed-off-by: Orel Misan<EMAIL_ADDRESS>

@Anatw

@orelmisan did you see the mentioned warning on CI now that its been updated to k8s 1.25?

@orelmisan did you see the mentioned warning on CI now that its been updated to k8s 1.25?

No, I haven't.
I suspect its more relevant to DS, but could be beneficial to US as well.

From my perspective, the reasoning for this change is the increase in security strictness when running the checkup.


Unbilled Expenses Authorization

Do we want to throw on the PI access to the Unbilled Expenses page?

Worker doesn't see these, so we don't have to worry about that.


Option for a QR code on the install web page https://install.appcenter.ms/

Describe the solution you'd like
Add the option to scan a QR code next to each build on the install web page  https://install.appcenter.ms/
¨
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Same option which is already available on the https://appcenter.ms/ page under Company name/App Tittle/ Distribute/ Releases

Hi @RadkaSYBO, thanks for the feature request! Could you please describe how you use install page today? Do you open a link from the email notification? Step by step workflow would be useful for us to understand your usecase.

Hi @akamenev, sure!
Currently, we use the install page on the mobile devices we test on. We dont use any emails notifications.
So the workflow would be:

Confirm that the build is done on the CI/CD tool we use.( builds are configured to automatically upload to Appcenter)
open https://install.appcenter.ms/ in a browser on a mobile device
navigate to the app title
Scroll to the build ( not always the latest one). & install it.

However, when the build is ready, an install page link is also generated, on the CI/CD tool, which we often share across the team. Since the link is opened on the web, it would be great to have the QR code option, so we dont have to scroll through builds on the install page on the device.
I hope this answers your question. Let me know if additional info is needed.

Thanks for the clarification! We'll take a look at possible install portal enhancement but unfortunately cannot grab this work item anytime soon. Appreciate your feature request!