hydra_unstable: 2023-12-04 -> 2023-12-24

Diff: https://github.com/NixOS/hydra/compare/4dc8fe0b08edc421c251270ccd4be3e5bf9d66b4...02e453fc8c39751843220eaecdeaf7d539b7e765
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Woo, more stable tests 🥳

Have been running this for days without noticing issues.


Intercom/dropin

I was wondering if it would be possible to eventually add intercom so you could click intercom on the HomeKit app and it drops in to the echos

For a speaker service, that is not possible. It has to be a camera which I doubt will be made or it has to be a HomePod which you can't recreate that service.

For a speaker service, that is not possible. It has to be a camera which I doubt will be made or it has to be a HomePod which you can't recreate that service.

Until NodeHAP provides the underpinnings for this (which seems highly unlikely), I have no plans to attempt supporting it.


chore(main): release 3.1.2

:robot: I have created a release beep boop
3.1.2 (2024-11-16)
Bug Fixes

parser: catch prefix "project." (not "project") (#233) (b15d8df)

Documentation

format README (#232) (58bc805)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v3.1.2
:sunflower:


ImportError in nebula_carina.ngql.schema.space of create_space (most likely due to a circular import)

Hi.
The sample code in the README didn't work.
from nebula_carina.ngql.schema.space import create_space, show_spaces, VidTypeEnum

main_space_name = "main"

if main_space_name not in show_spaces():
    create_space(main_space_name, (VidTypeEnum.FIXED_STRING, 20))

It's because a circular import.
It is imported in: https://github.com/nebula-contrib/nebula-carina/blob/main/nebula_carina/ngql/connection/connection.py#L107, which is also used in nebula_carina.ngql.schema.space.
Here is error messages:
Python 3.10.5 (main, May  1 2023, 20:40:12) [GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from nebula_carina.ngql.schema.space import create_space
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "hoge/.venv/lib/python3.10/site-packages/nebula_carina/ngql/schema/space.py", line 1, in <module>
    from nebula_carina.ngql.connection.connection import run_ngql, LocalSession
  File "hoge/nebula-mcat/.venv/lib/python3.10/site-packages/nebula_carina/ngql/connection/connection.py", line 107, in <module>
    from nebula_carina.ngql.schema.space import create_space, show_spaces  # noqa
ImportError: cannot import name 'create_space' from partially initialized module 'nebula_carina.ngql.schema.space' (most likely due to a circular import) (hoge/nebula-mcat/.venv/lib/python3.10/site-packages/nebula_carina/ngql/schema/space.py)

Thank you for reporting. Would be nice if you can submit a PR for this issue, or I'd like to fix it in the next few days.


Correct the location for renovate.json

:exclamation: Outdated dependencies error

Installed version of react-router-dom (5.3.4) is older than required version (6.0.0)


use cdk-nag in unit test (jest)

Describe your issue?
I tried to use cdk-nag in the unit tests in jest and had a look at this blog:
https://aws.amazon.com/blogs/devops/manage-application-security-and-compliance-with-the-aws-cloud-development-kit-and-cdk-nag/
I used the example described in the blog under "Unit Testing with the AWS CDK Assertions Library" and updated the code to fit to my tests but it doesn`t return back any errors or warnings ? The test are successful.
When I add cdk-nag to my default bin/stack.ts and do a cdk synth it works as expected and I get errors and warnings.
How can I use cdk-nag in combination with cdk test using jest ?
Does someone have a working sample or can agree that this is working as describe in the blog ?

Can you share a code snippet with your tests?
Here's an example of a similar setup (sightly different since it's a construct versus a stack)

Hey @dontirun
thanks for the reply.
This is the unittest I use.
import { App, Aspects, Stack } from "aws-cdk-lib";
import { Annotations, Match } from "aws-cdk-lib/assertions";
import { AwsSolutionsChecks } from "cdk-nag";
import { ClusterStack } from "../lib/cluster";
import { CronjobEntity } from "../lib/cronjobs.entity";
import { ScheduledCronjobStack } from "../lib/scheduled-cronjob.stack";
import path = require("path");

describe("cdk-nag AwsSolutions Pack", () => {
    let stack: Stack;
    let app: App;
    beforeEach(() => {
        // GIVEN
        app = new App();
        const env = {
            account: "123456789012",
            region: "us-east-1",
        };
        stack = new Stack(app, "test", {
            env,
        });
        const clusterStack = new ClusterStack(stack, "Cluster", {
            vpcId: "vpc-123456789",
            clusterName: "test",
            stage: "test",
            env,
        });

        const cronjobs: CronjobEntity = {
            directory: path.join(__dirname, "../../backend"),
            dockerfile: "./BatchProgs/TestCronjob/cronjob.Dockerfile",
            serviceName: "cronjob-test",
            eventSchedule: "rate(1 minute)",
            environmentVariables: {
                TEST: "test1",
            },
            cpu: 512,
            memoryLimitMiB: 1024,
        };

        new ScheduledCronjobStack(stack, "ScheduledCronjobStack", {
            cluster: clusterStack.cluster,
            vpcId: "vpc-123456789",
            subnetId: "subnet-123456789",
            cronjobEntity: cronjobs,
            stage: "test",
            env,
        });

        // WHEN
        Aspects.of(stack).add(new AwsSolutionsChecks());
    });

    // THEN
    test("No unsuppressed Warnings", () => {
        const warnings = Annotations.fromStack(stack).findWarning(
            "*",
            Match.stringLikeRegexp("AwsSolutions-.*")
        );
        expect(warnings).toHaveLength(0);
    });

    test("No unsuppressed Errors", () => {
        const errors = Annotations.fromStack(stack).findError(
            "*",
            Match.stringLikeRegexp("AwsSolutions-.*")
        );
        expect(errors).toHaveLength(0);
    });
});

result:

expected:
No unsurpressed Errors fails due to 4 errors found when I do 'cdk synth'

.findWarning

In your case you have several nested stacks (ClusterStack, ScheduledCronJobStack). The annotations for those nested stacks will not be present on the root stack (which is what you are checking for Annotations).
You'll have to check each stack individually, for example Annotations.fromStack(clusterStack)

will try - thanks for the hint!

ok this works as expected - thanks @dontirun !


remove numba cache from fisher jenks

Numba is writing cache to tmp file in __pycache__ in the environment's site packages. If you install your conda env with admin rights and then try to run mapclassify with user rights, this will fail, as @jorisvandenbossche noticed while teaching.
The cache is there to cache JIT-ted version of the function so it does not have to be compiled in a new Python runtime again. There's a lot of gotcha's in the docs for caching, plus the one above. I suppose that the benefit of caching is in the end smaller than the issues it may cause, so I am suggesting removing cache=True.

@martinfleis Good to merge?

good from my side. so unless someone prefers to keep caching here, yes.

We can revert if someone has a strong opinion later.


Fix editor demo route for selfHosted mode with modified base url

When using app in selfHosted mode with modified base url (in config.json), "View demo" button for Editor does not work properly because it changes path to absolute for root, but not for configured base url.
P.S. I'm on purpose don't provide fix for tree and verbose viewers because it becomes to be copy-paste, which means that it need kind of refactoring. I'm not very familiar with vue, so I can't provide proper solution for this.

Thanks for that! I will look at refactoring the session update method for tree/verbose :)

It wasn't terribly hard to refactor and is mostly vanilla JS anyway
https://github.com/lucko/LuckPermsWeb/commit/d2af0667821860207b0396edfa56d0c90c1e2bc3


Add support for $update's $unset operators dot notation

Description
This PR closes #803.

Readiness checklist

[x] I added tests for new functionality or bugfixes.
[x] I ran task all, and it passed.
[ ] I added/updated comments for both exported and unexported top-level declarations (functions, types, etc).
[ ] I checked comments rendering with task godocs.
[x] (for maintainers only) I set Reviewers (@FerretDB/core), Assignee, Labels, Project and project's Sprint fields.
[x] I marked all done items in this checklist.

Why that’s not a compatibility test?

I think we can do compat tests for update operators in a separate issue like #972

TestUpdateFieldCompatUnset smth like TestUpdateFieldCompatInc


Fix coverage gap in webhooks test

Signed-off-by: Nicko Guyer<EMAIL_ADDRESS>

Codecov Report

Merging #1169 (62bbbef) into main (a41e815) will increase coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #1169      +/-   ##
===========================================
+ Coverage   99.98%   100.00%   +0.01%
===========================================
  Files         305       305
  Lines       19964     19964
===========================================
+ Hits        19962     19964       +2
+ Misses          2         0       -2

Impacted Files
Coverage Δ

internal/events/webhooks/webhooks.go
100.00% <0.00%> (+0.94%)
:arrow_up:

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


User Testing Updates

Issue: https://github.com/grommet/grommet-hpe/issues/80
Edits based on December 2015 user testing notes:

[x] Move edit control that goes to directory works to a less prominent location. Changed pencil icon to "Edit in DirectoryWorks" Anchor placed in Details sidebar.
[x] Explore having the per-user Split giving equal size to both sides. Changed Split flex option to both
[x] Use "Menu" as the label for the person view menu control.
[x] indicate selected view in the person view menu. Removing highlight styles on menu (and darkening text) for active menu item.
[x] increase strength of heading text in Details view.
[x] add more detail to Details. Added details from DirectoryWorks to Details sidebar (codes are inside parantheses under appropriate headings).
[x] in the Details, for fields that do not have data, instead of removing the field entirely, leave the field and give it an indicator that there is no data. Leaving field labels and changing value to N/A for no data.
[x] in the Organization view, add an indicator when the user has nobody reporting to them. Adding "[Person] has no direct reports" to the bottom of Organization sidebar for People without teams.
[x] in the Person main content, add postal code detail in address. Already added to bottom of main Person view.
[x] in the Person main content, add content indicating how many hours ahead or behind the persons location is from the browser's location. Uses Person's hpWorkLocation (timeZone field), to show hours offset, and displays warning icon if Person's location is not between 7am and 6pm, and green ok icon otherwise.
[x] Fixed search icons on Groups and Locations views

Updated the PR with the suggested changes, and created a PR in grommet for the menu (drop active anchor) styles:
https://github.com/grommet/grommet/pull/457


More verbose csv import

Needs to be merged at the same time as the relevant pr in androidlibrary

https://github.com/opendatakit/androidlibrary/pull/15


Add adding existing node.js APIs to Javascript examples

Describe the issue or suggestion
In the JavaScript/Node articles, the examples are exclusively on frontend frameworks, but is missing on how to add existing/brownfield node.js APIs

Other than frontend frameworks as JavaScript examples, we need to add examples on reusing their existing Node.js API as part of the Aspire Application model
A primer on the instumentation.js that needs to be added to the JS projects so that they are Aspire compatible.
Guidance on where the configuration values/secrets need to be stored: at the node.js level or part of the AppHost app settings?

Also,

We need to be nuanced and provide more use cases when to use AddNPM and AddNode. Right now, its too terse.

Also , it not mentioned anywhere in the doc that you need to add  Aspire.Hosting.NodeJs, hence you dont get the two above function in the builder

Only when you peruse the github sample and inspect the AppHost and see in its dependency that you missing to add the nuget


Add workaround low memory crash during image saving

Sample model moved to cpu before processing samples to image
I am not sure how to handle additional parameter and supply it to underplaying classes
Related to FR #775

With with change I could not only generate 512x512 without crash on save, but even go to 512x1024


Are you a maintainer, or core-contributor, to the project?

[X] Yes

We already have a Pulumi.com account?

[X] Yes, we have created an account

Do you agree to regular check-ins, no more than once every 90 days, with a Developer Advocate from the Pulumi team?

[X] Yes

What's your Open Source project called?
OpenTTD
Where is the GitHub repo where your organization's infra code is located?
https://github.com/OpenTTD/infra
What's Pulumi.com team ID?
OpenTTD
Do/would you like any assistance with your Pulumi adoption from the DevRel team?

[ ] Yes

You now have 1 year of Team Edition. Please make a pull request to add your project to the README. Thanks


Updated cover image to be mobile responsive

Hi! Not sure if this change is welcome. Feel free to just close it if it is noise.
The image wasn't responsive on mobile (because of the height attribute it was squished). So I switched to using Github image markdown instead of p tag.

Oh man, it's going to be huge on desktop then. But I guess huge is better than broken on mobile. Thanks for the fix


How to cache file with squid through another proxy?

Most of time, I set different proxy ip fetch sites using request:set_proxy.
But, there is a lot of static file. e.g. js/css. I want cache these files instead of block them.
The idea simply like below:
APP ---> splash ---> squid ---> ProxyServer ---> WebServer
Does squid can accomplish my problem? how to set it?
Thank you.

Hi @genius001
Yes, squid can accomplish what you want, check here: http://wiki.squid-cache.org/Features/CacheHierarchy#How_do_I_configure_Squid_forward_all_requests_to_another_proxy.3F

Thanks @Youwotma
I will check it.


Add Android Libraries Fix link in Readme.md

I've updated the readme in the repo. Thanks for the suggestion


Help Needed - Custom criteria

Hi,
i need a little help (or an Example)for custom criterea.
The function "Landable with Atmosphere" is great, but I want to use own, custom criteria which gives out the type of the atmosphere.
For example "Landable with Oxygen Atmosphere".

Coincidentally someone else asked for something very similar on the Frontier forums recently.
There is an example criteria in the documentation that already does something very close to this, near the end of the complex criteria section. As written it checks for landable with CO₂ + nitrogen atmosphere, but could be pretty easily modified to look for other types.
Orvidius also provided an example of a threshold check on the forums in response the the question there: https://forums.frontier.co.uk/threads/elite-observatory-search-your-journal-for-potentially-interesting-objects-or-notify-you-of-new-ones-on-the-fly-while-exploring.521544/page-58#post-9594193
Note that in Orvidius example the ::End:: tag is malformed and you'll have to correct it (just add the missing :) before the criteria will work.
Finally, while I don't mind helping here, you'll most likely get more prompt responses to questions either in the forums thread or on the Observatory Discord. I'm the only person likely to ever see or response to issues here, and I often do things like sleep and work. The forums and discord are a better bet for getting help from the community at large.
Discord: https://discord.gg/y2evtaas
Forum thread: https://forums.frontier.co.uk/threads/elite-observatory-search-your-journal-for-potentially-interesting-objects-or-notify-you-of-new-ones-on-the-fly-while-exploring.521544/

Thank you. I just joined the discord and go learn the Lua stuff. =)

Sorry to necro an old thread but for posterity I wrote some lua code that does this:

::Criteria::
if scan.Landable and scan.Atmosphere ~= nil and scan.Atmosphere ~= '' then
	composition_string = ""
	for mat in materials(scan.AtmosphereComposition) do
       composition_string = composition_string .. mat.name .. " " ..tonumber(string.format("%.1f", mat.percent)) .. " percent "
  end

    return true, 'Landable with ' .. scan.AtmosphereType .. " atmosphere. " .. composition_string, 'Temperature: ' .. math.floor(scan.SurfaceTemperature) .. ' K'
end
::End::

It shows up like so:


Warning: Failed prop type: Invalid prop noDataIndication supplied to BootstrapTable

Hello,
I am new to react and started using react-bootstrap-table-next module in my app and i am getting below warning message, when i use noDataIndication prop. Please suggest me for solution.
<BootstrapTable
keyField='id'
data={ tableData }
columns={ tableColumnDefs }
striped
bordered
noDataIndication={'assaas'}
/>
Warning:
checkPropTypes.js?a15c:19 Warning: Failed prop type: Invalid prop noDataIndication supplied to BootstrapTable.
in BootstrapTable (created by Context.Consumer)
in ColumnManagementProvider (created by Context.Consumer)
in PaginationDataProvider (created by Context.Consumer)
in SortProvider (created by Context.Consumer)
in DataProvider (created by BootstrapTableContainer)
in BootstrapTableContainer (created by Bootstrap2TableComponent)
in div (created by Bootstrap2TableComponent)
in Bootstrap2TableComponent (created by LoadableComponent)
in LoadableComponent (created by ManageAccess)
in div (created by ManageAccess)
in ManageAccess (created by Connect(ManageAccess))
in Connect(ManageAccess) (created by withSaga(Connect(ManageAccess)))
in withSaga(Connect(ManageAccess)) (created by withReducer(withSaga(Connect(ManageAccess))))
in withReducer(withSaga(Connect(ManageAccess))) (created by LoadableComponent)
in LoadableComponent (created by Route)
in Route (created by App)
in Switch (created by App)
in div (created by App)
in App (created by Connect(App))
in Connect(App)
in Router (created by ConnectedRouter)
in ConnectedRouter (created by Connect(ConnectedRouter))
in Connect(ConnectedRouter)
in IntlProvider (created by LanguageProvider)
in LanguageProvider (created by Connect(LanguageProvider))
in Connect(LanguageProvider)
in Provider

I am having the exact same issue with the component. If there is data to be filled into the table it triggers this warning. Other wise it works fine for an empty table. Any reasons/ work flows to fix the warning/


Remove 404 from ignored HTTP status codes

NR ignores 404 errors by default. We'd like to start tracking them. See https://discuss.newrelic.com/t/how-to-track-404-requests/1406

👍

thanks @contolini !

So you're now explicitly declaring a list of ignored codes, which supercedes the default list of ignored codes, and the default list includes 404.  Is that right?

@jonathanwcrane Correct. When you run newrelic-admin generate-config it generates a file with the default list. I took what it generated and removed 404.

Thanks!  Good work!


production build fails

Bug, feature request, or proposal:
Error message:
ERROR in Error encountered resolving symbol values statically. Calling function 'style', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol MdInputContainer in<EMAIL_ADDRESS>resolving symbol MdInputContainer in<EMAIL_ADDRESS>resolving symbol MdInputContainer in<EMAIL_ADDRESS>resolving symbol MdInputContainer in<EMAIL_ADDRESS>What is the expected behavior?
Build should succeed.
What is the current behavior?
Build don't succeed.
What are the steps to reproduce?
Updated working project to beta.3
Which versions of Angular, Material, OS, browsers are affected?
Angular 4.0.0-rc.2
Material2 beta.3
Is there anything else we should know?

Not experiencing the same behavior. Any reason you are using RC of Angular? Perhaps updating to the latest version (which at the time is 4.0.1). Deleting node_modules folder and then running
npm install or yarn install

There's no special reason.
Will give it a try, thanks!

@Nikki1993 couldn't say what was the real problem.
But updating and fresh reinstallation of npm packages did the trick..
Thanks!


Is is possible to do a partial download?

I'm working on a script to integrate motion detection videos into a timelapse video of the entire day. If the motion video is too long, I only want the first few seconds.
I tried a modification to experiments/DownloadRecordings.py (attached)
download_partial_motions.py.txt
It forces the end time of the video:
        for recording in recordings:
            for key in recording:
                if int(recording[key]["endTime"] - recording[key]["startTime"]) > 40:
                    print("Setting endTime to 40s for large video")
                    recording[key]["endTime"] = recording[key]["startTime"] + 40
                else:

This is giving an error from the asyncio loop:
Downloading /opt2/surveillance/eyeball2/motions/2024-01-17 05_11_48-2024-01-17 05_11_58.mp4...
could not convert string to float: b'N/A\n'
Warning: Could not calculate length from stream.
Traceback (most recent call last):ll2/motions/2024-01-17 05_11_48-2024-01-17 05_11_58.mp4: 4.13 / 10
  File "/opt2/surveillance/eyeball2/download_motions.py", line 71, in <module>
    loop.run_until_complete(download_motions())
  File "/usr/lib/python3.9/asyncio/base_events.py", line 629, in run_until_complete
    self.run_forever()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
    self._run_once()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1854, in _run_once
    event_list = self._selector.select(timeout)
  File "/usr/lib/python3.9/selectors.py", line 469, in select
    fd_event_list = self._selector.poll(timeout, max_ev)

I think this is happening because this idea is too brutal.
Could you suggest a clean way to stop the playback at a clean point?

Your video has only 10 seconds, if you set the end time to more than that it will not work.

Thank you for the suggestion. It seems to be working. I'll run for a day to get more motion files.
download_partial_motions.py.txt


#491

See #491
Moved all the project creating code inside the if(check if solution has to be created) block and changed the check to search for any .sln file

I did a quick, mostly functional test on this. Here are my observations:

Editor command to open source code does not work. It can be invoked by clicking the corresponding toolbar icon, or from the file menu. Cause: in MainForm.cs it tries to open a hard-coded .sln path. Somehow DualityEditorApp should be asked about the current .sln filename.
Other than that, functionality seems OK. Does not create additional solution files, and the namespace changing logic works too.
Code style is OK.

The mentioned bug shouldn't be too difficult to fix, so I'd ask you, @Barsonax to add that. Thank you for the contribution!

Oh wasnt even aware there is namespace changing logic (why?)?? Hmm does this also use hardcoded paths? Wil that still work if one changed the name of the csproj?
Before this change the source button would have created a second solution and opened that. In that regard this is a improvement I guess XD.
Ill change it so that will work too now but it seems there are more hardcoded paths/logic than I first thought.

Editor command to open source code will now work again. Added a property to DualityEditorApp called SolutionFileName which when called will:
-Check if the solution has been created already and if so return the path to the solution file
-If the solution is not created yet create it and return the path to the created solution file.
This does mean it will be searching for the solution file every time you call this property however as long as this doesn't happen a lot this shouldn't affect performance in a noticeable way. If this becomes a problem the path might have to be cached.
Another issue might be when the source folder contains more than 1 solution file.
I have been looking to the other code that modifies the csproj files and it seems to be doing all kind of things? Not really sure why this is needed as the template used to create the projects should contain the necessary relative paths already. If the user would change the name of the project this piece of code would be broken and I don't really like the idea of duality changing all kinds of settings in my csproj after its created. @mfep @ilexp

I have been looking to the other code that modifies the csproj files and it seems to be doing all kind of things? Not really sure why this is needed as the template used to create the projects should contain the necessary relative paths already.

They should, but last time I checked VS didn't support relative paths in that particular csproj property, so Duality patches those paths when needed. Moving the project shouldn't actually break this, as Duality should keep them updated accordingly - would be a bug if it didn't.
It also updates them when selecting a different launcher application, which actually is a case that can't be done statically in the template now that I think of it.

Oh didnt knew you could switch out launchers. That would require patching the csproj. Doesn't sounds like this is a common use case though?
Still its only patching the projects using the hardcoded project paths. If the name does not match it will not find them. So this would be a potential bug.
However the problem then becomes figuring out what csproj to patch as simply patching them all would not work.

Reverted the commit 4e34e602 and implemented this functionality more inline with the feedback from @ilexp.


feat(plugins): add OxHugoFlavouredMarkdown

ox-hugo is an org exporter backend that exports org files to
hugo-compatible markdown in an opinionated way. This plugin adds some
tweaks to the generated markdown to make it compatible with quartz but
the list of changes applied it is not extensive.
In the future however, we could leapfrog ox-hugo altogether and
create a quartz site directly out of org-roam files. That way we won't
have to do all the ritual dancing that this plugin has to perform.
See https://github.com/k2052/org-to-markdown

Depends on #418
Fixes https://github.com/jackyzha0/quartz/issues/417 partially

I am adding one more change to this PR, removing the frontmatter from the text. I am not sure where this change should go. Should the frontmatter plugin remove the frontmatter after it extracts it? Otherwise we can strip this out in the ~description` plugin
Currently it looks like this:

Also sorry about the typos, and name issues, I sent out the PR in a hurry. Cleaning it up and sending. Thanks for the review!

hm, this should be a follow up to your frontmatter pr, the YAML one actually parses it out so I expect the toml one to do the same

you'll need to edit https://github.com/jackyzha0/quartz/blob/v4/quartz/plugins/transformers/frontmatter.ts#L24C9-L24C26
This should be [remarkFrontmatter, ['yaml', 'toml']] instead of remarkFrontmatter so we specify to accept both yaml and toml frontmatter

Looks good! The last thing I'm going to ask is if you could create a documentation page for the plugin :)

Added suggested changes, let me know of anything else @jackyzha0 ! Can't wait to use this now :) Glad I found Quartz!

thanks for your work on this @geekodour!


Make userId in helix moderator filter optional

Type: Bugfix
Fixes: #
I noticed, since I wanted to get a list of moderators myself, that the "HelixModeratorFilter" always wants a UserID, even though this is optional from the Twitch Rest API. With this small bugfix it is now possible to get a bigger list than 20 moderators.

Please rebase this merge request onto the versions/6.0 branch so it can be released as a patch.


volume migration: migrating from a block PVC to a filesystem one fails

What happened:
Migrate the storage from a block PVC/DV and update it using a PVC/DV with filesstem mode fails with error:
{"component":"virt-launcher","kind":"","level":"error","msg":"Live migration failed.","name":"vm-dv","namespace":"default","pos":"live-migration-source.go:625","reason":"error encountered during MigrateToURI3 libvirt api call: virError(Code=1, Domain=10, Message='internal error: process exited while connecting to monitor: 2024-09-12T14:29:08.246483Z qemu-kvm: -blockdev {\"driver\":\"file\",\"filename\":\"/var/run/kubevirt-private/vmi-disks/datavolumedisk1\",\"aio\":\"native\",\"node-name\":\"libvirt-1-storage\",\"auto-read-only\":true,\"discard\":\"unmap\",\"cache\":{\"direct\":true,\"no-flush\":false}}: Could not open '/var/run/kubevirt-private/vmi-disks/datavolumedisk1': filesystem does not support O_DIRECT')","timestamp":"2024-09-12T14:29:08.904808Z","uid":"7ade9eae-0fbc-4a89-9b52-f4fded9d846d"}

What you expected to happen:
Be able to migrate
How to reproduce it (as minimally and precisely as possible):
Use as source a block PVC/DV and update it using a PVC/DV with filesstem mode
Additional context:
Maybe this option isn't possible at all.
Environment:

KubeVirt version (use virtctl version): N/A
Kubernetes version (use kubectl version): N/A
VM or VMI specifications: N/A
Cloud provider or hardware configuration: N/A
OS (e.g. from /etc/os-release): N/A
Kernel (e.g. uname -a): N/A
Install tools: N/A
Others: N/A

/assign

@akalenyu I'm not sure, but might be that we apply some defaults for block that aren't valid for filesystems on the image. That's my guess, but I could be wrong.

@akalenyu the sc is local. I'm not sure, but might be that we apply some defaults for block that aren't valid for filesystems on the image. That's my guess, but I could be wrong.

Just tried with local, it does O_DIRECT :open_mouth:
$ dd if=/dev/urandom of=/disk/2G.bin bs=32K count=65536 status=progress oflag=direct
1976598528 bytes (2.0 GB, 1.8 GiB) copied, 8 s, 247 MB/s
65536+0 records in
65536+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 8.46427 s, 254 MB/s

The error is very weird because this is already a Filesystem PVC, however, the actual storage I think depends
on your dev environment so if your kubevirtci slices those PVs with some tmpfs or something (doubt it)
Could not open '/var/run/kubevirt-private/vmi-disks/datavolumedisk1': filesystem does not support O_DIRECT

@akalenyu the sc is local. I'm not sure, but might be that we apply some defaults for block that aren't valid for filesystems on the image. That's my guess, but I could be wrong.

Just tried with local, it does O_DIRECT 😮
$ dd if=/dev/urandom of=/disk/2G.bin bs=32K count=65536 status=progress oflag=direct
1976598528 bytes (2.0 GB, 1.8 GiB) copied, 8 s, 247 MB/s
65536+0 records in
65536+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 8.46427 s, 254 MB/s

The error is very weird because this is already a Filesystem PVC, however, the actual storage I think depends on your dev environment so if your kubevirtci slices those PVs with some tmpfs or something (doubt it)
Could not open '/var/run/kubevirt-private/vmi-disks/datavolumedisk1': filesystem does not support O_DIRECT

Interesting, but FS to FS migration works. This is happening block to FS, so I'm really wondering if there is some wrong setup somewhere

maybe it's the open against the source volume that errors? which block storage class is this?

I used the annotation kubevirt.io/func-test-block-migration-target-preparation: "true" which keeps the target pod running and I don't have issues in opening and writing on the PVC.

@alicefr could be that we don't set the right cache mode when we transition from block to filesystem?

@vladikr no, I found the problem.  When we replace block with fs, the path is truncate to the pvc directory and we are missing the disk.img. I'll write a test and then I can publish a PR

Fix: https://github.com/kubevirt/kubevirt/pull/12851

This has been solved


Repeat of bug #32

Bug Report
I think this is a re occurrence of bug #32
Unable to get AMP to execute Rust Oxide plugins.
System Information

Operating System
Distributor ID:	Ubuntu
Description:	Ubuntu 19.04
Release:	19.04
Codename:	disco

AMP version and build date
AMP Instance Manager v<IP_ADDRESS> built 10/06/2019 11:54

Which AMP release stream you're using - Mainline

I confirm:

[ X] that I have searched for an existing bug report for this issue.
[X ] that I am using the latest available version of AMP.
[ X] that my operating system is up-to-date.

Symptoms
Error:
16:09 [Info] Listing 10 plugins:
01 AdminPanel - Failed to compile: compiler version Unknown couldn't be started
02 Backpacks - Failed to compile: compiler version Unknown couldn't be started
03 BetterLoot - Failed to compile: compiler version Unknown couldn't be started
04 BotSpawn - Failed to compile: compiler version Unknown couldn't be started
05 DeathNotes - Failed to compile: compiler version Unknown couldn't be started
06 GatherManager - Failed to compile: compiler version Unknown couldn't be started
07 InfoPanel - Failed to compile: compiler version Unknown couldn't be started
08 Kits - Failed to compile: compiler version Unknown couldn't be started
09 RemoverTool - Failed to compile: compiler version Unknown couldn't be started
10 StackSizeController - Failed to compile: compiler version Unknown couldn't be started
16:40 [Info] Loading Oxide Core v2.0.3867...
16:40 [Info] Loading extensions...
16:40 [Error] Couldn't check for update to Compiler.x86_x64
16:40 [Error] Error: ConnectFailure (TLS Support not available.)
16:40 [Info] Loaded extension CSharp v2.0.4000 by Oxide and Contributors
16:40 [Info] Loaded extension MySql v2.0.3755 by Oxide and Contributors
16:40 [Info] Loaded extension Rust v2.0.4228 by Oxide and Contributors
16:40 [Info] Loaded extension SQLite v2.0.3754 by Oxide and Contributors
16:40 [Info] Loaded extension Unity v2.0.3756 by Oxide and Contributors
16:40 [Info] Using Covalence provider for game 'Rust'
16:40 [Info] Loading plugins...
16:40 [Info] Loaded plugin Rust v2.0.4228 by Oxide and Contributors
16:40 [Info] Loaded plugin Unity v2.0.3756 by Oxide and Contributors
16:40 [Error] Couldn't check for update to Compiler.x86_x64
16:40 [Error] Error: ConnectFailure (TLS Support not available.)
16:40 [Error] Exception while starting compiler version Unknown:  (Win32Exception: ApplicationName='/home/AMP/.ampdata/instances/Rust/rust/258550/Compiler.x86_x64', CommandLine='/service /logPath:/home/AMP/.ampdata/instances/Rust/rust/258550/oxide/logs', CurrentDirectory='', Native error= Cannot find the specified file)
at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x002dc] in :0
at System.Diagnostics.Process.Start () [0x0003a] in :0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
at Oxide.Plugins.PluginCompiler.CheckCompiler () [0x001f3] in <9affce1cd15c4ec183941adef8db1722>:0
16:40 [Warning] Compiler may not be set as executable; chmod +x or 0744/0755 required
16:40 [Error] Win32 NativeErrorCode: 2 ErrorCode: -2147467259 HelpLink:
16:40 [Error] Error while compiling: compiler version Unknown couldn't be started
16:40 [Error] Error while compiling: compiler version Unknown couldn't be started
16:40 [Error] Error while compiling: compiler version Unknown couldn't be started
Reproduction
Start Rust with Umod enabled and add some plugins.

Correct. CubeCoders is working with the OXIDE developers to upgrade their TLS to hopefully 1.1 or a newer version which should correct this issue. reference to post here. https://umod.org/community/rust/9486-compiler-not-working-with-amp-control-panel

Thanks for the update @Shinynecrid .
Is there a reason why MONO_TLS_PROVIDER isn't automatically set in the AMP user's environment variables as part of the install to get around this?

It actually is to my knowledge, but it's still warranting an issue. The easiest way is to compile this outside of AMP, and then upload the files. That's the current workaround until a permanent fix is addressed.

Alright, thank you.
Do you have any additional information on the steps to do the process outside of AMP and upload the files?
I could try downloading the compilers manually from https://nyc3.digitaloceanspaces.com/umod-01/
and putting them into the rust/258550/oxide directory.
Is that enough?

have amp download the files then in the directory manually extract that EXE in place, then try starting up the server.

I downloaded:
Compiler.exe
Compiler.x86
and
Compiler.x86_x64
from https://nyc3.digitaloceanspaces.com/umod-01/
Then placed the files in the rust/258550/oxide directory,
started it up and it compiled the plugins.

yep. that works too

I've updated the original #32 with the temporary workaround. your solution is a tad bit easier than the way i was doing it.

This may be a bigger problem than just what affects the downloading of the compiler btw:
Rust:IO> Steam authentication failed: WebException Error: ConnectFailure (TLS Support not available.)

This issue should be resolved as of the latest update. AMP downloads the compiler for you and changes it permissions appropriately.

This is not just about compiler download. There is no TLS support within the entire application, hence no HTTPS requests from plugins/extensions are possible. This is much more important since no workaround exists yet.

There may be a way that AMP can work around this, it's tricky though - ultimately it's about trying to work around a bug in UMod and the version of Mono it uses.


Fix secure message return to inbox

What and why?
Return to the correct inbox was not working correctly for some technical and misc messages when there is recorded survey ID in the secure_message table. The code has been updated so that all technical and misc messages will return to the correct inbox.
How to test?

Run unit tests
Deploy this PR to your dev env and run the acceptance tests
Create a technical message and misc message via Frontstage
In rOps got to navigate to the 2 messages and click on them
Click the return button and you should be redirected to the correct inbox

Jira
https://jira.ons.gov.uk/browse/RAS-1224

/deploy scorfs

/deploy wilkia

/deploy wilkia

@anwilkie sorry I forgot to update the test steps. You no longer need to make changes in the DB.

/deploy scorfs


Build empty javadoc and sources jars for azure-spring-cloud-starter-appconfiguration-config

Add the build rules to produce empty javadoc and sources jars for azure-spring-cloud-starter-appconfiguration-config.

/azp run java - appconfiguration - ci

Because this is a POM only change, I had to kick off the pipeline manually against my pull. This change fixes the build failure due to missing javadoc and sources.

/check-enforcer override


reflection fails with custom serializer for std::chrono types on clang/gcc

Howdy,
I'm using glaze to parse some data that contains date/times as well as durations (which are just an integer count of seconds). I want to use some chrono types for these values, so I wrote some custom serializers based on your examples. Originally writing the code in MSVC 19.x, everything worked as expected, but when I went to test on linux I get compilation errors. Minimal example:
Godbolt link: https://gcc.godbolt.org/z/G4zhKKG7v
#include <string>
#include <chrono>
#include <iostream>
#include <glaze/glaze.hpp>

static constexpr std::string_view json =  R"(
   {
      "message": "Hello",
      "seconds_duration": 5458
   }
)";

namespace chrono = std::chrono;

namespace glz::detail
{
   template <>
   struct from_json<chrono::seconds>
   {
      template <auto Opts>
      static void op(chrono::seconds& value, is_context auto&& ctx, auto&&... args)
      {
         int32_t sec_count{};
         read<json>::op<Opts>(sec_count, ctx, args...);
         if (glz::error_code::none == ctx.error)
            value = chrono::seconds{ sec_count };
      }
   };
} // namespace glz::detail

struct chrono_data
{
   std::string  message{};
   chrono::seconds seconds_duration;
};

int main(int, char** )
{
   auto data_result = glz::read_json<chrono_data>(json);
   if (data_result)
      std::cout << "Message '" << data_result->message << "' had duration of " << data_result->seconds_duration << std::endl;
   else
      std::cerr << "Error - " << glz::format_error(data_result.error(), json) << std::endl;
   return 0;
}

On clang/gcc, this code doesn't compile with an error stating "error: type 'chrono_data' decomposes into 2 elements, but only 1 name was provided". If I put the seconds_duration member first, the code compiles but at runtime I get a parse error "unknown key". It seems like the compile-time reflection code stops when it hits the chrono::seconds member, so the meta data for my struct is incomplete.
Am I doing something wrong, or is this a compiler-specific compile-time reflection bug?

I noticed the same regression (https://github.com/stephenberry/glaze/issues/907#issuecomment-2155815741).
Reverting 438d3e8408851c5216c6c81e59346065dc97087a fixes it for me:
git revert 438d3e8408851c5216c6c81e59346065dc97087a -X theirs --no-edit

Thanks for reporting this. I'm looking into a solution.

One thing I should point out that may be relevent, I'm not on the latest release of glaze since I'm using it thru vcpkg. So this issue goes back a little while at least on gcc/clang. Behavior is the same as seen with using trunk on godbolt though.

I posted this in #907, but here is some context for the issue:
So, the problem is that reverting https://github.com/stephenberry/glaze/commit/438d3e8408851c5216c6c81e59346065dc97087a breaks #907 with std::optional broken with reflection as the first member. The addition of const fixed the std::optional problem as well as some others. Removing the initializer list construction from count_members fixes both cases, but breaks counting C style arrays.
Currently MSVC is not compliant with the C++ standard, and I have an open issue here: https://developercommunity.visualstudio.com/t/Bad-aggregate-initializable-handling-us/10664400
However, they are reticent to fix the bug as the wording around conversion operators may change soon. However, from reading the paper the wording should change in favor of supporting what Glaze wants.
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2828r1.html
From the paper:
If the selected constructor is a copy or move constructor ([class.copy.ctor]) for T, the braced-init-list contains a single element, and the implicit conversion sequence ([over.best.ics.general]) for the constructor's first parameter would bind that parameter to the result object of a conversion function whose return type is T (ignoring cv-qualification), that conversion function is called to initialize the object.
This is what Glaze has, a single element in an initializer list whose return type is T, so MSVC and GCC ought to construct T and not fail as they currently do.
I'll continue to work with MSVC and GCC, but it's hard to find solutions when they aren't standard compliant.
There is actually another solution to counting members with requires and structured bindings, but MSVC, GCC, and Clang all have compiler errors here that I plan to report, and I don't expect this solution to be viable in the near term.

std::chrono types cause additional issues, and Clang breaks because std::chromo::duration has two template arguments. It appears to me that this is a compiler bug with Clang, because the conversion operator to T (std::chrono::seconds) should win out.

After a lot of experimenting I'm thinking the best solution is to break reflection for C style arrays. Using C style arrays in Glaze will require a glz::meta definition. I think this makes more sense because Glaze is a C++ library and users can in most cases change their C style arrays to use std::array. This also simplifies the member counting code so the compilers will act more similarly across MSVC, GCC, and Clang.
If users need C style array support, they can still do so manually through a glz::meta definition.

Support is being worked on in #1097. I've added the custom std::chrono code here as a test case.


Item Frames Turn Invisible Without Sneak + Right-Click

Hello! This is for the Fabric version 2.1.0-1.19.3 but on Minecraft version 1.19.2.
While holding an item frame, the frames are perfectly visible and behave normally, but once I'm no longer holding an item frame, the frames immediately disappear. This happens without the need to crouch + r-click on the frame.

Would you happen to be using the mod on a server?

I am :)


added boilerplate for update_many_documents + modify_rush_settings

What does this PR do?

Added necessary backend changes to support frontend PR. This involved:

creating an update_many_documents function inside of MongoModule
added modify_rush_settings  called by /events/rush/settings/{default_rush_category_id} API endpoint

Type of change

[x] Fix: Bug fix (non-breaking change which fixes an issue)
[ ] Refactor: Any code refactoring
[ ] Chore: technical debt, workflow improvements
[ ] Feature: New feature (non-breaking change which adds functionality)
[ ] Documentation: This change requires a documentation update
[ ] Merge: Pushing features to an upper envrironment

Tests Performed

Screenshots

Additional Comments

See the comments and would love to see the reasoning behind the string null – apart from that, LGTM! Let's merge after I understand the design choice behind it.

Lowkey I agree. I initially passed null from the frontend to avoid confusing it with a defaultRushCategoryId that is empty string "" (but this isn't possible anyways, so I think it makes more sense to just see ""). Going to fix now!


fix prefix issues in tests

What does this PR do?

fix prefix issues in tests introduced #890

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


docs: added prod deploy db content to readme

This edit seemed to have slipped through the cracks from our previous Production Deployment README.md update. I was able to recover it from a local version of #109 that I had.

@iuioiua told me that Deno KV replaces Supabase now as the SaaSKit database, so I'll close this PR.


REP-160: S2S Auth

JIRA link (if applicable)
S2S auth
Change description
Introduce service authentication against endpoints from v2

Client is provided via Spring Framework Feign clients
Authentication is done with Aspect advice
Routing straight to Exception Handler in case authentication failed

Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

Thanks for slightly scathing review - each comment is considerable and valuable. Before I go forward with any solution, allow me to explain my choice.
RequestInterceptor is a good option to choose. You have access to HttpRequest and HttpContext. Can make changes as you wish. I don't wish and don't need/want to. Aspect has access to specific controller methods (and therefore its' parameters). For authorization it is a bare minimum since spring mvc already requires header arguments to be passed as a method argument rather than method annotation. Although annotation would be more elegant for aspect.
Furthermore, here's a brief summary of conducted existing code scan and simple browsing of howto:

Interceptor
Spring AspectJ

Pros
- Standard feature- Full access to HttpRequest/HttpContext
- Independent from business logic- All DI as we like it in Spring Boot- Aspect has it's own configuration for any needs- Since fully DI, no need to edit existing code

Cons
- Tight bond with business logic- Not clear what where is intercepted- Lack flexibility
- As usual - AOP has own syntax (easy to follow)

Since we are using Spring Boot anyway, it is suggested to use Spring's AOP feature - it is very well established.
P.S. put down full access to request/context only to make interceptor look good enough. Personally I don't think it is 100% beneficial - would rather keep reduced access to core elements.

SonarQube analysis reported 1 issue

 1 minor

Watch the comments in this conversation to review them.

Codecov Report

Merging #21 into master will decrease coverage by 9.31%.
The diff coverage is 57.14%.

@@             Coverage Diff              @@
##             master      #21      +/-   ##
============================================
- Coverage     87.09%   77.77%   -9.32%
- Complexity       23       30       +7
============================================
  Files             9       13       +4
  Lines            62       90      +28
  Branches          0        6       +6
============================================
+ Hits             54       70      +16
- Misses            8       16       +8
- Partials          0        4       +4

Impacted Files
Coverage Δ
Complexity Δ

...f/service/endpoint/v2/PDFGenerationEndpointV2.java
100% <ø> (ø)
3 <0> (ø)
:arrow_down:

...mcts/reform/pdf/service/PDFServiceApplication.java
50% <ø> (ø)
2 <0> (ø)
:arrow_down:

.../pdf/service/exception/AuthorisationException.java
0% <0%> (ø)
0 <0> (?)

...form/pdf/service/service/AuthorisationService.java
42.85% <42.85%> (ø)
1 <1> (?)

...s/reform/pdf/service/ResponseExceptionHandler.java
50% <50%> (ø)
2 <2> (?)

...reform/pdf/service/aspect/AuthorisationAspect.java
73.33% <73.33%> (ø)
4 <4> (?)

Continue to review full report at Codecov.

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

Closing since desired implementation to include auth service in controller constructor is favoured more


[FIX] cfdilib: Order attribute name with label

Fix that assign the
SaldoFin like acc.initial
SaldoIni like acc.end

@nhomar
Could you check and merge this PR please?
Regards


Bug: Multiselect is getting cleared when select on hover is enabled

Description
There seems to be a conflict between selecting multiple files and the "hover to select option". It undoes my selection when I hover over any one of them for too long:
https://user-images.githubusercontent.com/65097814/228113349-4fc3d24d-1b7a-45fd-8705-dd8385e4ee4b.mp4
Steps To Reproduce

Enable "Select files and folders when hovering over them"
Select multiple files
Hover over one of them

Requirements
Momentarily disable the "hover to select" option when multiple files are selected.
Files Version
<IP_ADDRESS>
Windows Version
Windows 11 22H2 22621.1413
Log file

This will be fixed in the next release


Add new timestamp formats and refactor timestamp code in clp-s (fixes #261)

References
Fixes #261
Description

Add some obvious variations of existing timestamp patterns to clp, clp-s, and glt
Add "%E" format specifier to clp-s to capture unix epoch millisecond timestamps found in strings
Refactor and simplify timestamp column compression code in clp-s
Fix a nested timestamp bug

Validation performed

Compressed data with the new timestamp formats and verified that the timestamps were parsed succesfully
Verified that nested timestamps now exhibit expected behaviour for compression/decompression/search
Added unit tests in clp for new timestamp formats
Ingested cockroachdb dataset and performed searches on timestamp column

Great work! Just did the first pass. One thing I'm little bit concerned about is if we mix timestamps in milliseconds with timestamp in nanoseconds, we can get wrong results during search. For example, if we have two log messages {"timestamp": "1707026480000"} and {"timestamp": "1707026455.123456789"}, and the query is timestamp > date(1707026480000), we should return nothing but actually we will return the second log message.

Right this is a good point. I modified how we parse literals supplied inside of date() so that its at least consistent with how we parse the log. E.g. if we have timestamps like "1707026455.123456789" in the log and you copy and paste timestamps to specify a filter like timestamp: date(1707026455.123456789) then the timestamp will match as expected. You are right though that when the user starts mixing formats they can get unexpected results.
The core of the problem is that our various timestamp formats already implicitly have different levels of precision (second, millisecond, nanosecond) but we haven't really reconciled these different precisions at the storage, search, or archive metadata levels.
We sort of deal with this problem halfway in TimestampPattern as timestamps which specify second-level precision get stored with millisecond precision, but the same can't be said for raw integer or floating point timestamps. One way to handle this might be to transform all timestamps into nanosecond precision timestamps no matter how they're parsed -- this would make storage, search, and archive metadata consistent in an easy to reason about way. The downside is that this creates an encoding challenge for raw int and float timestamp columns if we want to decompress in a 1:1 way.
The other issue is that "store everything as nanosecond precision" is a bit loaded because it might sometimes be ambiguous/hard to figure out what the precision of some timestamp is supposed to be, so there's still a need to let users disambiguate via configuration for a robust solution (granted for most timestamps it should be pretty obvious).
Anyway if we do something like this (which we should at some point) I'm not sure if we want to include it in this PR (even though its slowly becoming the fix-every-timestamp-issue-we-notice PR).

And can we delete TimestampEntry::TimestampEncoding and associated ingest_timestamp(double)?

And can we delete TimestampEntry::TimestampEncoding and associated ingest_timestamp(double)?

Not yet because we still allow raw floating point columns to be timestamps.

And can we delete TimestampEntry::TimestampEncoding and associated ingest_timestamp(double)?

Not yet because we still allow raw floating point columns to be timestamps.

Oh, that's right

Great work! Just did the first pass. One thing I'm little bit concerned about is if we mix timestamps in milliseconds with timestamp in nanoseconds, we can get wrong results during search. For example, if we have two log messages {"timestamp": "1707026480000"} and {"timestamp": "1707026455.123456789"}, and the query is timestamp > date(1707026480000), we should return nothing but actually we will return the second log message.

Right this is a good point. I modified how we parse literals supplied inside of date() so that its at least consistent with how we parse the log. E.g. if we have timestamps like "1707026455.123456789" in the log and you copy and paste timestamps to specify a filter like timestamp: date(1707026455.123456789) then the timestamp will match as expected. You are right though that when the user starts mixing formats they can get unexpected results.
The core of the problem is that our various timestamp formats already implicitly have different levels of precision (second, millisecond, nanosecond) but we haven't really reconciled these different precisions at the storage, search, or archive metadata levels.
We sort of deal with this problem halfway in TimestampPattern as timestamps which specify second-level precision get stored with millisecond precision, but the same can't be said for raw integer or floating point timestamps. One way to handle this might be to transform all timestamps into nanosecond precision timestamps no matter how they're parsed -- this would make storage, search, and archive metadata consistent in an easy to reason about way. The downside is that this creates an encoding challenge for raw int and float timestamp columns if we want to decompress in a 1:1 way.
The other issue is that "store everything as nanosecond precision" is a bit loaded because it might sometimes be ambiguous/hard to figure out what the precision of some timestamp is supposed to be, so there's still a need to let users disambiguate via configuration for a robust solution (granted for most timestamps it should be pretty obvious).
Anyway if we do something like this (which we should at some point) I'm not sure if we want to include it in this PR (even though its slowly becoming the fix-every-timestamp-issue-we-notice PR).

Not sure if I'm right. From what I've observed, only %F represents a nanosecond timestamp. All other formats are converted into milliseconds. So maybe we can just handle this specific nanosecond case?


S3 Parquet Uploader

We need a configurable uploader that batches a number of datapoints over a time window into https://parquet.apache.org/ and is able to upload them to an S3 bucket.
This should be an external program using the websocket (or REST) IF to talk to KUKSA and not integrated into the server directly

https://github.com/localstack/localstack can be used to test locally


Filter dropdown OnBlur

We should use an onblur for these filters. It might be more intuitive to close them by clicking outside.

onBlur does not work if the filter panel is not focused. Focusing manually requires too much effort and will increase complexity. However, found another way around to achieve the same goal. #21


Early stopping needs a default metric - python package

It appears for early stopping the current version doesn't specify a default metric and therefore if we didn't explicitly define a metric it will fail:
import lightgbm as lgb
from sklearn import datasets, metrics, model_selection
rng = np.random.RandomState(2016)
X, y = datasets.make_classification(n_samples=10000, n_features=100)
x_train, x_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.1, random_state=1)
lgb_model = lgb.LGBMClassifier(n_estimators=100).fit(x_train, y_train, [(x_test, y_test)]
#, eval_metric="auc" ## commented out the metric
,early_stopping_rounds=1
)

ValueError                                Traceback (most recent call last)
 in ()
10 lgb_model = lgb.LGBMClassifier(n_estimators=100).fit(x_train, y_train, [(x_test, y_test)]
11                                                      #, eval_metric="auc"
---> 12                                                      ,early_stopping_rounds=1
13                                                      )
14 # lgb_model.predict(x_test)
/Users/cchen1/anaconda/lib/python2.7/site-packages/lightgbm-0.1-py2.7.egg/lightgbm/sklearn.pyc in fit(self, X, y, eval_set, eval_metric, early_stopping_rounds, verbose, train_fields, valid_fields, other_params)
333                                         eval_metric, early_stopping_rounds,
334                                         verbose, train_fields, valid_fields,
--> 335                                         other_params)
336         return self
337
/Users/cchen1/anaconda/lib/python2.7/site-packages/lightgbm-0.1-py2.7.egg/lightgbm/sklearn.pyc in fit(self, X, y, eval_set, eval_metric, early_stopping_rounds, verbose, train_fields, valid_fields, other_params)
250                               early_stopping_rounds=early_stopping_rounds,
251                               evals_result=evals_result, fobj=self.fobj, feval=feval,
--> 252                               verbose_eval=verbose, train_fields=train_fields, valid_fields=valid_fields)
253
254         if evals_result:
/Users/cchen1/anaconda/lib/python2.7/site-packages/lightgbm-0.1-py2.7.egg/lightgbm/engine.pyc in train(params, train_data, num_boost_round, valid_datas, valid_names, fobj, feval, init_model, train_fields, valid_fields, early_stopping_rounds, evals_result, verbose_eval, learning_rates, callbacks)
206                                         begin_iteration=0,
207                                         end_iteration=num_boost_round,
--> 208                                         evaluation_result_list=evaluation_result_list))
209         except callback.EarlyStopException:
210             break
/Users/cchen1/anaconda/lib/python2.7/site-packages/lightgbm-0.1-py2.7.egg/lightgbm/callback.pyc in callback(env)
176         """internal function"""
177         if len(best_score) == 0:
--> 178             init(env)
179         for i in range(len(env.evaluation_result_list)):
180             score = env.evaluation_result_list[i][2] * factor_to_bigger_better[i]
/Users/cchen1/anaconda/lib/python2.7/site-packages/lightgbm-0.1-py2.7.egg/lightgbm/callback.pyc in init(env)
158
159         if len(env.evaluation_result_list) == 0:
--> 160             raise ValueError('For early stopping you need at least one set in evals.')
161
162         if verbose:
ValueError: For early stopping you need at least one set in evals.

@wxchan I think we can add default metric when object is str and eval_metric is none

@guolinke I have made this change and commited to #97 . You can check that PR now. I also updated the python examples to make it more clear.
Btw, I can't access to Wifi in where I lived these couples of days, so I may reply late some time.


README.rst: mention teuthology-openstack in Provided Utilities

Signed-off-by: Nathan Cutler<EMAIL_ADDRESS>

Reviewed-by: Loic Dachary<EMAIL_ADDRESS>
The check failure should be fixed by https://github.com/ceph/teuthology/pull/810

test this please


Support for Hooks for windows VMs

Discussed in https://github.com/kubev2v/forklift-console-plugin/discussions/1264

Originally posted by jsakil14 July  9, 2024
Hello anyone has success with using pre / post hooks for windows vms? I am looking to capture network config and disk layout part of pre hook and run a condition check for nw and disks in post hook and apply them if they are not correct. Is this possible using ansible ? since I see only requirement is to have ssh enabled , for sake of windows I got winrm enabled. I am trying to achieve this by below:
postHooks:
  - name: Bring all disks online
    type: Ansible
    image: quay.io/konveyor/hook-runner
    playbook: |
      ---
      - name: Bring all disks online
        hosts: all
        tasks:
          - name: Bring disks online
            win_shell: |
              $disks = Get-Disk | Where-Object IsOffline -eq $true
              foreach ($disk in $disks) {
                Set-Disk -Number $disk.Number -IsOffline $false
                Set-Disk -Number $disk.Number -IsReadOnly $false
              }
            become: yes

hi, thank you for your quesion, this looks like a question for the controller side, see: https://github.com/kubev2v/forklift/issues
here are some hooks examples:
https://github.com/kubev2v/forklift/blob/main/docs/hooks.md

https://github.com/kubev2v/forklift/issues/956


fix(http-log): add port information to the host header

Summary
Add port to host header when non-default port is used.The log server receives requests with a host header that does not include the port number.
Checklist

[x] The Pull Request has tests
[x] A changelog file has been created under changelog/unreleased/kong or skip-changelog label added on PR if changelog is unnecessary. README.md
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Issue reference

Fix #13067

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.dingjiayi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.dingjiayi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@ADD-SP Hi, Could you please take a look at the PR ?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
dingjiayi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

Seems the CLA is failing as you used a different email for the commit, could you please check it to make sure the CLA is signed?

 All committers have signed the CLA.

@ADD-SP Apologies for the confusion. I misunderstood the statement "All committers have signed the CLA," which led me to believe that I had already signed it. To ensure a clean PR process, I have closed the previous PR and created a new one.
https://github.com/Kong/kong/pull/13116


fix e2e tests

Description
Fix E2e tests for product tile since the e2e env is using different settings and instance which affects the products on PLP

Types of Changes

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Documentation update
[ ] Breaking change (could cause existing functionality to not work as expected)
[ ] Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

Removing a public function or component or prop
Adding a required argument to a function
Changing the data type of a function parameter or return value
Adding a new peer dependency to package.json

Changes

(change1)

How to Test-Drive This PR

(step1)

Checklists

General

[ ] Changes are covered by test cases
[ ] CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance
You must check off all items in one of the follow two lists:

[ ] There are no changes to UI

or...

[ ] Changes were tested with a Screen Reader (iOS VoiceOver or Android Talkback) and had no issues
[ ] Changes comply with WCAG 2.0 guidelines levels A and AA
[ ] Changes to common UI patterns and interactions comply with WAI-ARIA best practices

Localization

[ ] Changes include a UI text update in the Retail React App (which requires translation)

LGTM. Question: Why do the environments have different data? Are the tests now using the default SFRA demo data?

the data set on instances are the same, but the data returned are different  because e2e tests are tested on a generated project which uses overrides, and the settings for PLP is to fetch 3 items instead of 25 like current retail app. See here


interrupt the rendering of react

This project is great, I would like to ask whether it can interrupt the rendering of react. For example, if there is a list of 10,000 length arrays and react updates this array when performing state updates, can it interrupt the rendering

Hey, good question. I've been asked this before. Maybe I should add a FAQ section and include this question.
You can't interrupt the React rendering. However, you can:

use the new concurrent rendering features in React 18 — useDeferredValue(), startTransition(), and useTransition that can render without blocking the UI. React has their own scheduler that has similarities with what main-thread-scheduling is doing.
gradually render your results by calling setState() in React after each yieldOrContinue() call.

gradually render your results by calling setState() in React after each yieldOrContinue() call.

However, this needs to be done carefully, because React is able to batch state updates. If done blindly, yielding after each setState might produce more re-renders than needed (= worse performance ultimately).

Ah, you are right. I've started writing an FAQ section with a more nuanced answer and information on the topic. Thanks!


[styles] withStyles HOC missing statics

The produced component of withStyle didn't copy statics even with hoistNonReactStatics.

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate. (There was one, but miss guided in the wrong direction, and the issue was not fixed.)

Expected Behavior 🤔

The produced component should contains the statics.
Current Behavior 😯

The produced component does not contains the statics.
Steps to Reproduce 🕹

See it in codesandbox

Please check the example above.
Context 🔦

I was using withStyles on a page component in next.js based project, and the getInitialProps static method was missing.
Workaround
Use the hook API suggested instead of withStyles
Your Environment 🌎

(Please check the codesandbox above)

Tech
Version

Material-UI
next

React

Browser

TypeScript

etc.

@shadowwalker Thank you for the report, it was fixed in #14722. It will be released under v4.0.0-alpha.3

Thanks, I was looking into the latest code but couldn't find anything wrong. I should have thought this may not be released to npm yet!


Boundingbox on Link API

There is an alternative of Gazebo-classic's Link API Boundingbox function for ignition?
API reference page still shows a "TODO"
thanks!

We already have the ability to get the bounding box, but it's through a component. Documenting this would be a good step as well.


add codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@07b54d9). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #14   +/-   ##
=======================================
  Coverage        ?   23.07%
=======================================
  Files           ?        6
  Lines           ?      143
  Branches        ?        0
=======================================
  Hits            ?       33
  Misses          ?      108
  Partials        ?        2

Help us with your feedback. Take ten seconds to tell us how you rate us.


Add target file for PY32F0 series chip

Adding support for PY32F0 series chip.
Generated via target-gen from https://www.puyasemi.com/uploadfiles/2023/PY32F030-PY32F003-PY32F002A-230410.rar
(Puya.PY32F0xx_DFP.1.1.7.pack inside)
Tested and working with cargo-embed/cargo-flash and cmsis-dap on PY32F002AF15P6.

Thank you very much!
Would you mind adding a changelog entry? =)


2.0.2 Fails to Stylize Module Management

Are you able to add and test a line of code for me? I think I know what the issue is

Can you install the module via this manifest and let me know if the issue is fixed?
https://github.com/mouse0270/module-credits/releases/download/2.0.3/module.json

Will do

It's fixed

What appears to have happened is one of those modules is saying it requires a module you do not have installed and I forgot to check that. So its trying to get the title of a module you don't have installed. lol

Yeah it's a common occurrence between V9 and V10 updates. Updates sometimes don't bring up dependencies, or the dependency is deemed an error by V10 by not having a script it says it has or similar.


A user has stopped receiving Company Communicator notifications

The user received notifications via Teams using the correctly installed app. The user accidentally left the group associated with Company Communicator and when he was added back he no longer received notifications sent from the Company Communicator app. In the log detail of the message sending, it does not even give an error with the user, it is simply as if it did not exist and indicates that the message has been sent correctly to as many members of the group that has been selected for the notification except one, but it does not show it as an error, it simply does not count it in the sending.
The following actions have been taken with the user to resolve the incident, all without success:
a. All types of notifications allowed by Company Communicator have been tried (sending to a team's general channel, sending to the personal chat of team members, and sending to the personal chat of an M365 group) and the same thing happens in all of them; the user is not detected as a member.
b. The user has been removed from all groups that have a policy and has been added back.
c. The policies have been removed from Teams and have been added back.
The error in Azure gives the following message:
AllSendStatusCodes:404
ErrorMessage: {"error":{"code":"ConversationNotFound","message":"Conversation not found."}}

Hello @osevilla6 ,
Thanks for reaching out to us!
Could you please share your email id so that we can start discussing this issue internally over teams?

Hola,
En el perfil? Si es ahí ya lo he actualizado el email.
Gracias.
El vie, 22 nov 2024, 13:33, v-jaygupta @.***> escribió:

Hello @osevilla6 https://github.com/osevilla6 ,
Thanks for reaching out to us!
Could you please share your email id so that we can start discussing this
issue internally over teams?
—
Reply to this email directly, view it on GitHub
https://github.com/OfficeDev/microsoft-teams-apps-company-communicator/issues/1616#issuecomment-2493657653,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BNC7C3QF2QXLWFOW5FWLKOT2B4QDLAVCNFSM6AAAAABSEXMMVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJTGY2TONRVGM
.
You are receiving this because you were mentioned.Message ID:
<OfficeDev/microsoft-teams-apps-company-communicator/issues/1616/2493657653
@github.com>

Hey @osevilla6, Can you please paste your e-mail ID here on the GitHub so that we can reach out to you over the Microsoft Teams or Outlook.

@osevilla6 ,
Could you please update us with the above requested information?


InfoState component should accept as children not only text

Feature description
As children of the info state componet we can only put tags that can be descendant of the <p> tag.
But in some cases we need to add extra information formatted in some ways such as a list
Describe the solution you'd like
Personally I would add a new prop on the info state called message which represents the message of the info state and that it can be only text.
And then let add as children props any component the user want an place it between the message and the actions.
Describe alternatives you've considered
We can also let the user add the message and the other extra informations as children of the info state
Additional context and information

Code of Conduct

[X] I've searched across open and closed issues for similiar requests

Personally I would add a new prop on the info state called message which represents the message of the info state and that it can be only text.
And then let add as children props any component the user want an place it between the message and the actions.

This change leads to a breaking change because removing the pre-formatted text will require consumers to add the Text component (with the same style) on their own.


Implement presentation of SDJWT

Description
Spec: https://drafts.oauth.net/oauth-sd-jwt-vc/draft-ietf-oauth-sd-jwt-vc.html#section-4
Spec: https://drafts.oauth.net/oauth-selective-disclosure-jwt/draft-ietf-oauth-selective-disclosure-jwt.html#section-5.3
Spec: https://drafts.oauth.net/oauth-selective-disclosure-jwt/draft-ietf-oauth-selective-disclosure-jwt.html#section-6.2
base Branch: https://github.com/adorsys/keycloak-oid4vc/tree/issue-25638
Before You Start
Have a look at how to contribute

Solved with: https://github.com/adorsys/keycloak-oid4vc/pull/24


Add blocklist for dating sites

Please include dating sites into Social for example:

tinder.com
bumble.com
badoo.com
okcupid.com
hinge.co
coffeemeetsbagel.com
happn.com
weareher.com
clover.co
pof.com
match.com

and so on...

Thank you for this @ww00xx.
Ping @sinfonietta, would you consider adding these?  Seems right and reasonable to me.

@StevenBlack I have added these to my social-hosts list.

Thanks @Sinfonietta and thank you @ww00xx for the suggestion.
Closing.

I just found this host list for dating sites https://www.github.developerdan.com/hosts/lists/dating-services-extended.txt


Specify compilation and the babel-runtime for ES6 libraries

When writing a library, it's clear a polyfill should be used and that the require hook automatically includes the polyfill. The warning that the require hook is not suitable for libraries offers no correct alternatives so this pull request updates the documentation on require hooks to point you to the recommend solution of compiling your library and depending on the babel-runtime.

Awesome, thanks!


Unicode not work

I used unicode string array. but it not worked for me. How can I handle that issue. thank.

#156 may help you.

thanks yuku-t, also stackoverflow answer was helpful me. thanks.
http://stackoverflow.com/questions/29124968/jquery-textcomplete-not-work-with-unicode-and-remove-space/29126775

I have an idea from the google input tool. it is suggest word with the number order. When suggesting, we can enter it's number. then word replace easily. Also thank for jquery-textcomplete. http://www.google.com/intl/si/inputtools/try/


Brought in omop observations by concept id, value, and string

Hi,
I added three methods to get observations - one for each potential data type:
get_observations_concept_valued(pid, obj, dictionary, new_dict_entries)
get_observations_string_valued(pid, obj, dictionary, new_dict_entries)
get_observations_number_valued(pid, obj, dictionary, new_dict_entries)
I am sure it would have been more elegant to do just one method and pass a flag but this was easier and quicker. Tested on my nursing home datasets and I am able to see results and observations so long as the observations are associated with a concept id.
We have a few observations that have no concept id associated with them (just a source value) and these do not appear. What are your thoughts on handling those?
thanks,
-R

Awesome! Thanks :) As for observations that have no concept id it might be that those events are created with None as their values (ie. null later in the JSON response). You could try to assign default values for them that either show that they are missing or replace it with the correct values:
name = "unknown" if row['o_name'] is None else row['o_name']

for all values that are pulled from the concept table and might end up not being mapped.
Btw, forgot to mention earlier you can fix the color used for those events by adding the group name here.
I'm leaving the PR open for now in case you want to update it otherwise I'll merge.

Great! I did make the suggested changes to handle unknown observation concepts and specify a color for observations. I pushed to my master which I think will come in with this pull request.

I merged your PR and also applied your bug fix onto other domains (ie. "Condition", "Procedure", etc.) and made some cosmetic adjustments. Thank you! :)
fixes #58
fixes #56


Improve documentation for String.get_extension()

This closes https://github.com/godotengine/godot-docs/issues/5185.

Thanks!

Cherry-picked for 3.3.4.


Errors adding environment variables and mounting secret volumes to services

The override examples don't seem to be working for me.
With the latest operator code, applying an environment variable override (to add an environment variable as per https://temporal-operator.pages.dev/features/overrides/#example-add-an-environment-variable-to-the-worker-pod
apiVersion: temporal.io/v1beta1
kind: TemporalCluster
metadata:
  name: prod
  namespace: demo
spec:
  version: 1.23.0
  numHistoryShards: 1
  persistence:
    defaultStore:
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal
        connectAddr: postgres.demo.svc.cluster.local:5432
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD
    visibilityStore:
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal_visibility
        connectAddr: postgres.demo.svc.cluster.local:5432
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD
  services:
    worker:
      overrides:
        deployment:
          spec:
            template:
              spec:
                containers:
                  - name: service
                    env:
                      - name: HTTP_PROXY
                        value: example.com

causes the following error:
2024-08-29T16:34:20.751752301Z 2024-08-29T16:34:20Z     DEBUG   events  failed to create resource prod-worker of Type *v1.Deployment{"type": "Warning", "object": {"kind":"TemporalCluster","namespace":"demo","name":"prod","uid":"c246e4c8-fe32-4fef-8845-03a3f42a6b14","apiVersion":"temporal.io/v1beta1","resourceVersion":"5760"}, "reason": "RessourceCreateError"}
2024-08-29T16:34:20.751760515Z 2024-08-29T16:34:20Z     DEBUG   events  Deployment.apps "prod-worker" is invalid: [spec.template.spec.containers[0].env[0].valueFrom: Invalid value: "": may not be specified when `value` is not empty, spec.template.spec.containers[0].env[1].valueFrom: Invalid value: "": may not be specified when `value` is not empty, spec.template.spec.containers[0].env[2].valueFrom: Invalid value: "": may not be specified when `value` is not empty]   {"type": "Warning", "object": {"kind":"TemporalCluster","namespace":"demo","name":"prod","uid":"c246e4c8-fe32-4fef-8845-03a3f42a6b14","apiVersion":"temporal.io/v1beta1","resourceVersion":"5760"}, "reason": "ProcessingError"}

Additionally, adding an additional volume causes an error as well (taken from https://temporal-operator.pages.dev/features/overrides/#example-mount-an-extra-volume-to-the-frontend-pod)
apiVersion: temporal.io/v1beta1
kind: TemporalCluster
metadata:
  name: prod
  namespace: demo
spec:
  version: 1.23.0
  numHistoryShards: 1
  persistence:
    defaultStore:
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal
        connectAddr: postgres.demo.svc.cluster.local:5432
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD
    visibilityStore:
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal_visibility
        connectAddr: postgres.demo.svc.cluster.local:5432
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD
  services:
    frontend:
      overrides:
        deployment:
          spec:
            template:
              spec:
                containers:
                  - name: service
                    volumeMounts:
                      - name: extra-volume
                        mountPath: /etc/extra
                volumes:
                  - name: extra-volume
                    secret:
                      secretName: test-secret
---
apiVersion: v1
kind: Secret
metadata:
  name: test-secret
  namespace: demo
type: Opaque
data:
  TEST: TEST

results in the following error in starting the pod:
2024-08-29T16:55:27.928266623Z 2024-08-29T16:55:27Z     DEBUG   events  Deployment.apps "prod-frontend" is invalid: [spec.template.spec.volumes[0].configMap: Forbidden: may not specify more than 1 volume type, spec.template.spec.containers[0].volumeMounts[0].name: Not found: "extra-volume"]       {"type": "Warning", "object": {"kind":"TemporalCluster","namespace":"demo","name":"prod","uid":"c246e4c8-fe32-4fef-8845-03a3f42a6b14","apiVersion":"temporal.io/v1beta1","resourceVersion":"8330"}, "reason": "ProcessingError"}

I think this is due to some of the limitations to StrategicMergePatch with the default object, where the override replaces the existing object at index 0 with something that conflicts on a key, so there may be other fields where the same limitations applies. For example, env can have either the value field or the valueFrom field. When the operator does the StrategicMergePatch call, the result has a value field in index 0 where there was previously a valueFrom field. When kubernetes tries to apply this, it fails, probably similar to the issue in: https://github.com/kubernetes-sigs/kustomize/issues/2734#issuecomment-905518074. The volumes is similar story, it is an array with objects that cannot have both configMap and secret set, so when the first index is overridden with another type it causes this issue.

cc @uritig @yujunz
Looks like the issue has been introduced in https://github.com/alexandrevilain/temporal-operator/pull/720

I thought it is covered by tests, isn't it?
Too busy recently. Not sure if I can find some free time to check details. @andrewbelu could you try adding a test case to fail this case?

@yujunz As requested, added some test cases: https://github.com/alexandrevilain/temporal-operator/pull/795

Thank you @andrewbelu .  We may reproduce it with the tests.
go test pkg/kubernetes/overrides_test.go
--- FAIL: TestApplyDeploymentOverrides (0.00s)
    --- FAIL: TestApplyDeploymentOverrides/add_env_var_to_existing_env (0.00s)
        overrides_test.go:515:
            	Error Trace:	/Users/yujunz/Code/github.com/alexandrevilain/temporal-operator/pkg/kubernetes/overrides_test.go:515
            	Error:      	Should be true
            	Test:       	TestApplyDeploymentOverrides/add_env_var_to_existing_env
    --- FAIL: TestApplyDeploymentOverrides/add_secret_volume_to_existing_volumes (0.00s)
        overrides_test.go:515:
            	Error Trace:	/Users/yujunz/Code/github.com/alexandrevilain/temporal-operator/pkg/kubernetes/overrides_test.go:515
            	Error:      	Should be true
            	Test:       	TestApplyDeploymentOverrides/add_secret_volume_to_existing_volumes
FAIL
FAIL	command-line-arguments	0.786s
FAIL

Let's see if there is a way to fix it. Do you already have some proposals?

A quick workaround seems including the original members from default configuration. See https://github.com/yujunz/temporal-operator/commit/bb5f77e64e6b0fc37f1c4f2ce7b547026dde8f6f
Still need to look into the root cause though.

A simple test of strategicMergePatch does work as expected. See https://github.com/yujunz/temporal-operator/tree/issues-793

@yujunz tests are failing: https://github.com/alexandrevilain/temporal-operator/actions/runs/10647522715/job/29529515031?pr=795

The workaround works. https://github.com/alexandrevilain/temporal-operator/pull/797/checks
But still not clear about the root case. We may need to dig the code of strategic merge.

Print some debug info.
        overrides_test.go:511: expected env: [{Name:b Value:c ValueFrom:nil} {Name:a Value: ValueFrom:&EnvVarSource{FieldRef:nil,ResourceFieldRef:nil,ConfigMapKeyRef:&ConfigMapKeySelector{LocalObjectReference:LocalObjectReference{Name:test,},Key:,Optional:nil,},SecretKeyRef:nil,}}]
        overrides_test.go:512: actual env: [{Name:b Value:c ValueFrom:&EnvVarSource{FieldRef:nil,ResourceFieldRef:nil,ConfigMapKeyRef:&ConfigMapKeySelector{LocalObjectReference:LocalObjectReference{Name:test,},Key:,Optional:nil,},SecretKeyRef:nil,}} {Name:a Value: ValueFrom:&EnvVarSource{FieldRef:nil,ResourceFieldRef:nil,ConfigMapKeyRef:&ConfigMapKeySelector{LocalObjectReference:LocalObjectReference{Name:test,},Key:,Optional:nil,},SecretKeyRef:nil,}}]

When kubernetes tries to apply this, it fails, probably similar to the issue in: kubernetes-sigs/kustomize#2734 (comment). The volumes is similar story, it is an array with objects that cannot have both configMap and secret set, so when the first index is overridden with another type it causes this issue.

@alexandrevilain , I think the root cause is the one mentioned by @andrewbelu above. While there can be a more graceful fix by patching null fields on the fly, it is difficult to implement a generic solution.
What do you think we add a similar workaround in examples?

When kubernetes tries to apply this, it fails, probably similar to the issue in: kubernetes-sigs/kustomize#2734 (comment). The volumes is similar story, it is an array with objects that cannot have both configMap and secret set, so when the first index is overridden with another type it causes this issue.

@alexandrevilain , I think the root cause is the one mentioned by @andrewbelu above. While there can be a more graceful fix by patching null fields on the fly, it is difficult to implement a generic solution.
What do you think we add a similar workaround in examples?

I don't believe the workaround works. If you replace swap the null on the secret and the configMap like so:
  services:
    frontend:
      overrides:
        deployment:
          spec:
            template:
              spec:
                containers:
                  - name: service
                    volumeMounts:
                      - name: extra-volume
                        mountPath: /etc/extra
                volumes:
                  - name: extra-volume
                    configMap: null
                    secret:
                      secretName: test-secret

It gives:
Deployment.apps "prod-frontend" is invalid: [spec.template.spec.volumes[0].configMap: Forbidden: may not specify more than 1 volume type, spec.template.spec.containers[0].volumeMounts[0].name: Not found: "extra-volume"]

Before the resource is even created by Kubernetes, so probably at some validation step.

I did test this case and it looks ok in unit test.
							Raw: []byte(`{"containers":[{"name":"test", "volumeMounts":[{"name":"b", "readOnly":true, "mountPath":"/b"}]}], "volumes":[{"name":"b", "secret": {"secretName": "test"}, "configMap": null}]}`),

@andrewbelu Are you encountering it in e2e tests? Could you try reproducing it with unit tests so we can narrow down the possible root case?

I did test this case and it looks ok in unit test.
Raw: []byte(`{"containers":[{"name":"test", "volumeMounts":[{"name":"b", "readOnly":true, "mountPath":"/b"}]}], "volumes":[{"name":"b", "secret": {"secretName": "test"}, "configMap": null}]}`),

@andrewbelu Are you encountering it in e2e tests? Could you try reproducing it with unit tests so we can narrow down the possible root case?

Yes, this is actually trying to apply the resource to a running cluster. I believe the unit test only tests that the StrategicPatchMerge works as expected. It doesn't actually validate the Kubernetes resource by adding it to a Kubernetes cluster. This would seem to be more like an E2E or integration test required (I don't think the scope of a unit test would cover this). I can take a look at adding the E2E test over the weekend.

just for my own understanding, #760 didn't fix the issue discussed here, right?

Hi @TheHiddenLayer nothing has been merged to fix this for now.

Added a pull request to add functionality for JSON patching, which should provide override functionality in YAML arrays.
https://github.com/alexandrevilain/temporal-operator/pull/875


Support multiple parameters

I found myself repeating calls to this action over and over like so:
    - name: aws-ssm-to-env
      uses: bomb-on/aws-ssm-to-env@master
      with:
        ssm_parameter: 'PARAM_1'
        prefix: 'PREFIX_'

    - name: aws-ssm-to-env
      uses: bomb-on/aws-ssm-to-env@master
      with:
        ssm_parameter: 'PARAM_2'
        prefix: 'PREFIX_'

    - name: aws-ssm-to-env
      uses: bomb-on/aws-ssm-to-env@master
      with:
        ssm_parameter: 'PARAM_3'
        prefix: 'PREFIX_'

So I tweaked the bash script to accept either a singular string or a comma separated list of strings as inputs, the result being:
    - name: aws-ssm-to-env
      uses: craigtsmith/aws-ssm-to-env@master
      with:
        ssm_parameter_list: |
          PARAM_1,
          PARAM_2,
          PARAM_3
        prefix: 'PREFIX_'

Maybe somebody will find it useful :)
Thanks for the action! Any changes you want me to make let me know.

Thanks for your contribution! I see your issue here, makes sense to be able to do it simpler like you suggested, will review the code when I catch some time, definitely this week!

Hey, apologies for taking so long to get around to this - I will work through the changes now.

@bomb-on, I have added this commit, we were getting deprecation errors and noticed this issue

Thanks for fixing all this, I wasn't aware of set-env alternative, I'm fine with it, just don't have time to test it out, did you maybe try to use it with new methods and does it work?

Yes it's tested and works as expected. They're removing the old version on Monday I think? So we had to fix it today.

Ok, will approve it! Thank you one more time for you contributions and don't hesitate to propose additional functionality if you will need it. Unfortunately, I personally don't have a use case for this action anymore since I changed my job, but will keep my eye on future updates.

No problem! Thanks for creating the action!
Góða helgi!

hehe góða helgi sömuleiðis! :)


uclibc/mips: add missing MAP_HUGETLB constant

Signed-off-by: Xiaobo Liu<EMAIL_ADDRESS>This add the MAP_HUGETLB constant on Linux and uclibc.
It is defined as part of the uclibc in mman.h:
https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/libc/sysdeps/linux/mips/bits/mman.h#n35

@bors r+

:pushpin: Commit b83e31635922006df425b4446c099cd59288a500 has been approved by JohnTitor
It is now in the queue for this repository.

:hourglass: Testing commit b83e31635922006df425b4446c099cd59288a500 with merge 3190d469e1817b330ec0c7f6b2c2bac72d6d5f72...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13, checks-cirrus-freebsd-14
Approved by: JohnTitor
Pushing 3190d469e1817b330ec0c7f6b2c2bac72d6d5f72 to master...