Change default container configuration with "security.nesting=true"

This is a follow-up of #7065 .
The thing is that currently I have random services that do not start anymore after an upgrade because they implement ProtectSystem= in their systemd service file.
Typical example are redis, mariadb and powerdns.
There are 2 ways to fix this:

add an override system file for all those services that deactivate ProtectSystem= but this is not scalable, and the main issue is when a software is updated and add this option, meaning that it could work first and then break at any time (even minor security update can add this setting)
lxc config set container security.nesting true from the host, which doesn't seem to have any downside, that's why I think that it should be the default

I have changed my own script that create containers to add this so it doesn't change anything for me, but I think that it is critical for the LXD project to help people have a seamless experience, which is not the case when common services simply don't work.
How many people would understand and fix something like that:
 # systemctl status redis
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2020-03-26 12:47:40 CET; 15s ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
  Process: 10236 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=226/NAMESPACE)

Let's just eliminate the issue and make security.nesting=true the default.

We're not going to do that. security.nesting=true is indeed mostly harmless for unprivileged containers, though there are system administrators that do not want their users to be able to using namespacing features in containers.
It would also make then setting security.privileged=true on a container get both privileged AND nesting which is then extremely unsafe.
We'll keep monitoring what happens with systemd and specific units and workaround things when we can in the default apparmor profile but switching the default to true isn't going to happen.

Can you give us the last workarourd report ? Or an up to date link?
Without nested true, debian bullseye container systemd-networkd service still fails to init ipv4 for bridged ethernet interfaces... IPv6 probably works (ipv4 iproute settings workas an alternate configuration).

stgraber@dakara:~$ lxc launch images:debian/bullseye d1
Creating d1
Starting d1
stgraber@dakara:~$ lxc list d1
+------+---------+----------------------+-------------------------------------------+-----------+-----------+
| NAME |  STATE  |         IPV4         |                   IPV6                    |   TYPE    | SNAPSHOTS |
+------+---------+----------------------+-------------------------------------------+-----------+-----------+
| d1   | RUNNING | <IP_ADDRESS> (eth0) | 2602:fc62:c:250:216:3eff:fe9d:1e0c (eth0) | CONTAINER | 0         |
+------+---------+----------------------+-------------------------------------------+-----------+-----------+
stgraber@dakara:~$ lxc config show --expanded d1
architecture: x86_64
config:
  image.architecture: amd64
  image.description: Debian bullseye amd64 (20230531_05:24)
  image.os: Debian
  image.release: bullseye
  image.serial: "20230531_05:24"
  image.type: squashfs
  image.variant: default
  volatile.base_image: 9d10e8b9e175cdc5d8a331a439963f002c6855d35ce52b27d3cdb9c68d76c4c4
  volatile.cloud-init.instance-id: 55f6ec49-24de-4c47-bd8f-e8839b82cf02
  volatile.eth0.host_name: veth26e0db50
  volatile.eth0.hwaddr: 00:16:3e:9d:1e:0c
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
  volatile.uuid: 02ab308f-25a7-4828-8e2f-0cb47059eec3
  volatile.uuid.generation: 02ab308f-25a7-4828-8e2f-0cb47059eec3
devices:
  eth0:
    name: eth0
    network: lxdbr0
    type: nic
  root:
    path: /
    pool: default
    type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""
stgraber@dakara:~$ lxc exec d1 bash
root@d1:~# systemctl --failed
  UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.
root@d1:~#

Ok but is networkd service umasked?


How to I access to the Admin?

Question
I could start all the 3 projects successfully. All 3 projects can be loaded:

http://localhost:5001/swagger/index.html
http://localhost:5000/ (Client)
http://localhost:9000/ (Admin)

I access to http://localhost:5000/ (Client) and register new account and it is inserted into database. But for Admin, it first goes to http://localhost:9000/ and later on redirected to http://localhost:5000/Account/Login?ReturnUrl=xxx
So, my question is how do I then access to the Admin login page at http://localhost:9000/? Once, I could see this, I believe I should use the username and password at identitydata.json to login, right?
Relevant parts of the log file
   <log goes here>

Yes, for first login - please use your credentials from identitydata.json.
Thanks

I am closing this issue, feel free to reopen. Thnx


use-sync-external-store should be marked as a peerDep

Hi 👋🏻
We are using valtio in a context where react isnt used. So exclusively the /vanilla package.
But NPM is throwing an install warning for us:
npm ERR! code ELSPROBLEMS
npm ERR! missing<EMAIL_ADDRESS>|| ^17.0.0 || ^18.0.0, required by<EMAIL_ADDRESS>
Believe its because valtio requires use-sync-external-store which has a peer dep on react, which we do not want.
https://github.com/pmndrs/valtio/blob/7fe26c2a8ff2df8a5b8df019f8878dbf48e40876/package.json#LL140C18-L140C18

Perhaps there is an alternative to valtio that doesnt depend on react?

I see it's because use-sync-external-store has peer dep, and it's not optional.
We could mark it as peer dep, but that would require react users to install it. (some new package managers can do it automatically.)
Curious, how "bad" is it to install react for you?

thank you for your time. appreciate the response. But no thank you, installing react is an insurmountable sin I do not wish to commit.

Does --legacy-peer-deps option help? Otherwise, patch-package might be a last resort.

use-sync-external-store is only used in your react submodule — can that not be an optional peer dependency as it rightly is?

It could. (Theoretically, same applies to proxy-compare which is only meaningfully used in react. vanilla part is meaningless without it.)
It's just a matter of usability. If we remove use-sync-external-store from the dependency, 99.9% of users would have to re-install it. note valtio depends on it.
Say, 1% of users is using valtio/vanilla, and probably only one tenth would actually have a trouble with the react peer dependency.
I feel like a dummy react library would help in your case. or dummy use-sync-external-store.
btw, we will be removing it in the future version.

Oh this is fantastic news, looking forward to it!

By the future version, I meant v2 with React >= 18 requirement. It won't happen very soon.


Remove projects from clusterrole

Don't think it needs the "projects" resource, otherwise it'll need to have the apiGroups "project.openshift.io"

Oops accidentally deleted the branch. Tests failure looks unrelated.

test infra failed for oc cluster up, i have restarted it

I should also check whether we use namespaces in our API calls, but client calls will be rewritten pretty soon when we migrate to Kubernetes and OpenShift client sets. So I will revise our cluster policy when it's migrated to use new API groups.


get user information, status, and presence to display

Summary
Get some basic user info (for a userinfo command)
What is the feature request for?
The core library
The Problem
get user information, status, and presence to display. The information i think is already a thing but I couldnt find it in the docs. Status is just the users active status. Return a boolean if there is none, basic stuffs. Then presence is "online", "idle", "invisible" (could add alias as offline) and "dnd" (because discord.py yes)
The Ideal Solution
idk ur the nerds
The Current Solution
No response
Additional Context
No response

is user.status not working?

honestly more concerned about the information and presence
but ill try it in a bit and see because your docs are dead

wdym docs are dead?

user.status works fine for me


Meltano Community Slack currently unavailable

@tayloramurphy here - Hijacking Reuben's comment to provide an update. As of 2023-12-08 12:00 PM CST we're working with Slack to restore access. Something went wrong on the Slack side as part of a migration for Arch.

(sorry for the unrelated issue, wasn't sure where else to contact)

@ReubenFrankel Thanks for opening this issue. I was also having trouble accessing Slack a couple hours ago. I can't say for certain when it'll be available again, but please rest assured that we're aware of it, and working to bring it back.

The team is aware of this and is still working with Slack to get it resolved. Thanks for the patience!

An update for anyone coming across this just now: https://www.linkedin.com/posts/meltano_slack-activity-7140467510855843840-qX5h

@ReubenFrankel (& everyone else listening in): Thanks for the pointer!
There's more: We fixed the linen workspace - that means everyone can still participate in the Slack community via the linen integration: https://discuss.meltano.com/c/best-practices.
(But we will get the Slack version up and running again!)

Should this be closed now?

We're back! Come join us at meltano.com/slack !


Sites navigation in "destroy" sites list is very slow

I configured the 1.9.0-beta2 with 4 directories set in sites_directories.
They are nested:
    "sites_directory" => [
        '$HOME/Projects',
        '$HOME/Projects/one',
        '$HOME/Projects/two',
        '$HOME/Projects/three/four',
    ],

Now, when I run wpsites destroy - I get a list of 13 sites, and the navigation between them to pick one is very slow. It's like a full 1 second or so after each arrow-down press.

The situation is better when the number of sites in the list is 6 (I removed the last directory for sites_directory) - so it's definitely related to the number of sites in a list.

I tried to recreate this but I wasn't able to. Is it still an issue on your end?
It's not doing anything special when the current selection is changed.


Is this possible?

I love how this program provides a cxi on mount which is great for actual game content but is the anyway to get it to provide a cia for updates or dlc so that they can be installed in citra?

Providing a CIA in this way isn't easy due to hashes that would have to be updated. If one were to be provided, a second program or script would have to update the hashes in the tmd.


Bug: OOT Only has difficulty genning with 1 Dungeon Reward Max setting

Title is self-explanatory. It gives an error called "C is undefined" or "C is not iterable." I'm not sure if it's Entrance Rando only but I believe the cases the error has popped up is caused by ER.

Xenowars ended up fixing this so I will close this.


Added Useful Resources

Description
Added a new webpage in the more drop-down menu. This webpage contains various free resources related to DSA, tech stacks, programming languages and contains suggestions of helpful websites for cse students.
Fixes #244
List any dependencies that are required for this change
Type of change

[* ] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
UI /UX changes
Attach gif or screenshot for changes.
- After

Checklist:

[ *] My code follows the style guidelines of this project
[* ] I have performed a self-review of my own code
[ *] I have commented my code, particularly in hard-to-understand areas
[ *] My changes generate no new warnings
[* ] I have added tests that prove my fix is effective or that my feature works
[ *] New and existing unit tests pass locally with my changes

The content is being overflowed, mostly this will be resolved if used bootstrap layouts properly.

@rupal121 what is the progress for the changes?


TAA Improvements (Take Two)

Resolves https://github.com/godotengine/godot/issues/81709#issuecomment-1722183283 points 2 and 5, with some small improvements to point 1 and possible changes with point 3

Removed Velocity Closest from TAA due to it's broken state, as well as Adaptive box size which depended on it, and was also a little messy. This greatly improves AA quality and Stability in Motion. This cleanup also slightly improves transparencies as there is no more Adaptive box size that is determined by velocity, making them blend more consistently with the background, though the root of the issue is still not resolved, as the root issue seems to be that transparencies are writing to the Motion Vectors, overriding what's behind them.

Moved Screen disocclusion after all the blending factor modifications are applied, to ensure no history is used for out of screen pixels.

Before:
https://github.com/godotengine/godot/assets/50302479/56cb4a73-4bea-4521-9c6d-ff231d3306d1
After:
https://github.com/godotengine/godot/assets/50302479/90b900f1-a0d1-4498-825f-25ec6e547c76
Sadly due to the Compression It's hard to tell the difference with the Anti Aliasing and Motion Stability, and actually turns out it's less significant in a direct comparison, and that the transparency issues are significantly improved instead..
If you look at the Godot faces behind the Omni Light Gizmo's Quad, before it distorts like crazy, whereas after it distorts significantly less.

To be fair, this comparison fails to see most of the improvements done due to the relatively favorable lighting conditions of the scene to the old TAA, as here it looks OK, where in other places it just fails to do any AA with such motions, where as this does an ok job in not falling apart in those scenarios.
Sadly I cannot see a way to not go with a blurry approach as attempts to avoid it always ended up in strong ghosting or jittering or absolute failing in changing motion (the issue most obvious in the current TAA, and what the https://github.com/godotengine/godot/issues/81709 complained about, and also what makes it absolutely a no go IMO)

Aand I've gone back to the original implementation, set the box size to a fixed 0.25, dropped the disocclusion scale a ton, added a function to blur the TAA as velocity increases (mainly to combat jitter in the distance where the velocity is higher, and thus it weights more on the input sample), and suddenly the TAA looks great.... should I replace this PR with that or close it and make a take 3?

Closing in favor of https://github.com/godotengine/godot/pull/86809
Specular fix could be salvaged if it remains an issue, as that's the only thing that seems to universally help, unlike all the other changes attempted.


Fix Issue 6447: iota(BigInt) too

This adds the missing overload for three-parameter iota as pointed out in Issue 6447, and should be enough to finally close the issue.

As @wilzbach suggested, I united all iota overloads. This has the benefit of uniting functionality - where previously different overloads of iota supported different operations, now these operations are available on any iota overload whose parameter types support the necessary operations.

Autotester is not happy(

Believe me, I know. I've failed to get some of the unittests to run on my local machine, and the specific one that fails now works when I copy the code to a separate file.

I'd suggest we leave uniting the overloads to a separate PR and get the fix merged.

After repeated failed attempts at getting the unit tests to run, I decided to revert to the simple change that fixes 6447, and a greater rewrite will have to wait.

Ping @andralex

Ping @andralex this needs a rebase but is this otherwise goo to go?

PR closed as stalled. If you wish to resurrect it you are welcome to do so.


Modernize implementation of interface types

This commit is the start of the modernization of the implementation of
interface types in wasmtime. This has a long way to go, and like the
previous iteration, chunks of it are already destined to get thrown
away.
The current state of affairs is that the implementation of interface
types in wasmtime feels very "bolted on" because, well, it was! The
wasmtime-interface-types crate is not well integrated with the
wasmtime API crate. Additionally it implements an older version of the
interface types proposal dating back to when it was still based on
WebIDL bindings. The goals of this PR are to integrate interface types
into the wasmtime API crate as well as update the implementation to
the current proposal, which is more instruction/adapter based.
Support here is built on top of the tools in the wasm-interface-types
repository which contain various pieces of functionality like parsing
the text format, parsing the binary format, stringifying the binary
format, and validating the binary format. These tools are intended to be
developed standalone from Wasmtime itself to encourage other users (like
wasm-bindgen, a generator for interface types).
This should also fix a number of integration issues around the interface
types demos we have (eventually) since wasm-bindgen is targeting the
wasm-interface-types family of crates rather than the older WebIDL
bindings proposals.
The current status of this commit/PR is that it is a step in the right
direction but incomplete. I started this work a few months ago when I
had some more time and have been occasionally rebasing it on the current
wasmtime master branch. Only a few simple instructions are supported
(and it's all via an interpreter, nothing compiled), and "hard" things
like strings have yet to be done.
What is implemented, however, falls into categories like:

API integration into the wasmtime crate is sorted out

The ValType type is enhanced with interface types.
The Val type is enhanced with interface types values.
The Config type has a gate for the interface types proposal like
it does all other proposals.

The wasmtime-interface-types crate is deleted and all users are
migrated to the wasmtime crate exclusively.
The test harness has been enhanced with an invented *.wast syntax to
cover interface types. I basically add things like s8.const foo as
well as updated the parser to be able to parse @interface
directives. Again this is sort of an invented format, but the
intention is that we can easily write *.wast tests the same way for
interface types how we do for the core spec.

I don't think we want to land this as-is because of how little of
interface types it implements. Additionally there's parallel work that's
been happening in Cranelift to jit interface types stubs which we may
wish to sync up with as well. In any case the main purpose of this
commit is to add fuel to the interface types discussion and hopefully
give us something concrete to work with as well.

Some major TODO items that need to be implemented are:

[ ] Adapters on imported functions
[ ] Strings and their instructions
[ ] Filling out the rest of the instructions

I'm gonna go ahead and close this since this is unlikely to be how interface types looks in the future. Especially with the upcoming rebase on module linking interface types is going to look quite different than what is in this PR.


MBL-1475 Add backing details navigation

📲 What
When tapping the project title and thumbnail area of the card, app should open a webview that loads the backing details url
🤔 Why
🛠 How
PPO cards are currently not hooked up to a backend query, so instead I added a backingDetailsUrl field to the PPOCardDataMock data object for now with a test url. Obviously once we hook up real PPO cards this test url should be replaced with the backend-provided url for the backing details.
👀 See
Hamburger menu -> Alerts -> tap on pledge summary view:

https://github.com/kickstarter/android-oss/assets/129205442/a46b9b39-2d74-4937-b807-5f047c0cde82
📋 QA
To get PPO cards to show up, on line 15 of the VM, replace
private val ppoCards = MutableStateFlow<PagingData<PPOCardDataMock>>(PagingData.empty())
with mock data:
private val ppoCards = MutableStateFlow<PagingData<PPOCardDataMock>>( PagingData.from( listOf( PPOCardDataMock(shippingAddress = "Firsty Lasty\n123 First St Apt #5678\nLos Angeles, CA 90025-1234\nUnited States", viewType = PPOCardViewType.CONFIRM_ADDRESS) ) ) )
Tapping the pledge summary view will open up the test url https://www.kickstarter.com/projects/thehoneycouple/the-honey-couples-building-expansion
Story 📖
https://kickstarter.atlassian.net/browse/MBL-1475

Codecov Report
Attention: Patch coverage is 5.55556% with 17 lines in your changes missing coverage. Please review.

Project coverage is 68.00%. Comparing base (2ddec7c) to head (9b438e8).

Files
Patch %
Lines

.../kickstarter/viewmodels/BackingDetailsViewModel.kt
0.00%
17 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2064      +/-   ##
============================================
- Coverage     68.06%   68.00%   -0.06%
  Complexity     2113     2113
============================================
  Files           355      356       +1
  Lines         21652    21669      +17
  Branches       3050     3050
============================================
  Hits          14737    14737
- Misses         5273     5290      +17
  Partials       1642     1642

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


fix(query): user performance

Definition of Ready

[ ] I am happy with the code
[ ] Short description of the feature/issue is added in the pr description
[ ] PR is linked to the corresponding user story
[ ] Acceptance criteria are met
[ ] All open todos and follow ups are defined in a new ticket and justified
[ ] Deviations from the acceptance criteria and design are agreed with the PO and documented.
[ ] No debug or dead code
[ ] My code has no repetitions
[ ] Critical parts are tested automatically
[ ] Where possible E2E tests are implemented
[ ] Documentation/examples are up-to-date
[ ] All non-functional requirements are met
[ ] Functionality of the acceptance criteria is checked manually on the dev system.

TODO: create index hurst on projections.login_names2_users(user_name, instance_id) storing (resource_owner);

i just noticed a race condition in the integration tests: https://github.com/zitadel/zitadel/actions/runs/6169589944/job/16744247863?pr=6537#step:8:1615


Unexpected Formatting Result

Hi,
When using precise-commits i'm unexpectedly getting different output compared to running prettier directly myself. Specifically it's stripping brackets from return statements within my react render functions and doing weird things with alignment/indentation.
"husky": "^0.14.3",
"precise-commits": "^1.0.2",
"prettier": "^1.11.0",

Is precise-commits using it's own Prettier config instead of finding the .prettierrc file in my project root? Based on the below quote from your docs I had assumed it would be consistent.

"it will automatically pick up on any of the standard Prettier configuration files you may have in your project"

Something like this:
render() {
    return (

foo

    );
}

Becomes this via precise-commits:
render() {
    return

foo

;
}

Compared to this expectation which I get when running prettier directly:
render() {
    return (

foo

    );
}

Any ideas how to re-align the formatting so that precise-commits outputs the same result as prettier is?

I have same problem and it is caused by prettier with range options, IMO.
If you use raw prettier with --range-start and --range-end options, you will get same result in your question.
https://github.com/prettier/prettier/issues/3789

@ReDrUm In order to reproduce and diagnose, it is important to know what characters were actually changed before precise-commits ran on it.
In your example above, which bits changed?

Hi @JamesHenry, Sure, thanks.
I think @Sheile is correct and it's related or caused by bleeding outside of the range options which is mentioned via #13
For the purpose of this example let's assume i changed and staged a single line:

foo

Regardless of bleeding the formatting inconsistency is my concern in this issue.

Looks like this is #15 duplicate

I ran into the issue and did a bit of investigation. Seems like the problem is in Prettier itself.
When running Prettier (CLI) directly with the same --range-start and --range-end parameters, I get the same (wrong) result that precise-commits is producing.


Alerts part 2

Currently alerts in the top toolbar works for "reported" post but fails on "quoted" posts.
The last fix may need a small tweak to account for the secondary issue which is what most regular users will see.
Part of the DECREMENT issue.

Seems to be AUTH0 related from the information I have.

Hi @BallscrewBob. Thanks so much for reporting this bug. Since the alerts system has been completely changed by the switch to Discourse, I'm going to guess this issue is now obsolete. If I'm wrong about that, please comment here and I'll reopen the issue.


Test: Re-enable tests in master which are blocked by PoolBlockingPeriod in SqlClient

Once fix for https://github.com/dotnet/corefx/issues/30720 propagates to our dependencies.

This needs to add netcoreapp2.0 as tfm in test projects again.


FIX: Honor read_raw_bti's eog_ch parameter

This fixes #10092 at least partially. In my original issue, read_raw_bti()'s eog_ch parameter was ignored. This change should allow EOG channels to now be selected with it.

thx @adswa ! can you also update a test using bti data?

Happy to do so. Would test_raw be the right place to add a test condition?

yes this test
https://github.com/mne-tools/mne-python/blob/main/mne/io/kit/tests/test_kit.py#L59

yes this test https://github.com/mne-tools/mne-python/blob/main/mne/io/kit/tests/test_kit.py#L59
…

I got a bit confused by the link, I think it leads to a completely different module? Am I misunderstanding something?
I for now added a very basic, small test in mne.io.bti.tests/test_bti.py (948d722) using the test case I put in the issue.

LGTM, let's wait for CI to come back green!

All green so in it goes, thanks @adswa !


Add option to "reopen" closed portal session

Adding a new parameter to portal.api/open function that accepts a portal instance. If the instance is closed, a new one with the same session id is open. If the instance is still open, the function does nothing.
This can be useful for tooling built on top of portal since it does not need to keep track whether the browser window is open or not. A use case for that is integrating portal with org babel.
TODO:

[x] Implement for node runtime
[x] Implement for web runtime
[ ] ?Add portal parameter to api/close and api/clear functions?
[x] Update docs

@djblue Opening this PR with what we discussed in slack. Will work on the TODO list after getting your initial feedback. Thanks!

@rfhayashi This looks really good so far!
I think you can check the web runtime off the list as currently you can only have one session anyway.

@rfhayashi This PR looks like it's getting pretty close to merge. I left one additional comment and once that's resolved we should be good.

@djblue We could potentially also add the portal parameter to close and clear, but I guess we could do that in a later PR. So I think we're good to go, but let me know if you find anything else.

@djblue We could potentially also add the portal parameter to close and clear, but I guess we could do that in a later PR. So I think we're good to go, but let me know if you find anything else.


AOT compilation and serialization

Description
Hi, I have a numerical solver that I takes a long time to compile. I want to compile it ahead of time, export, serialize, and then store it. And then I want to load, rehydrate and run it without recompilation. Is this possible? To my knowledge the jax.export functionality still requires a compile post rehydration. Also when I try to do it with more complex versions of the solver I start getting segfaults. Is a compilation cache the way to go here? Been having trouble with that as well.
Currently I have a solver object that calls self.compile() in it's init.  Here is a simpler version of that compile function:
def compile(self) -> None:
        """Precompile solve function"""
        dir = os.path.dirname(os.path.abspath(__file__))
        compiled_dir = os.path.join(dir, "../compiled")
        os.makedirs(compiled_dir, exist_ok=True)

        file_name = f"filename.pkl"
        relative_path = os.path.join(compiled_dir, file_name)

        if os.path.exists(relative_path):
            with open(relative_path, "rb") as f:
                serialized = pickle.load(f)
                self._solve_compiled = export.deserialize(serialized).call
            print("Found existing compiled ilqr solver, loaded.")
            return

        print("Existing compiled solver not found, compiling...")

        placeholder_1= jax.ShapeDtypeStruct((self.nx,), jnp.dtype("float32"))
        ...etc

        placeholders = (placeholder_1,...)

        start = time.time()
        jitted_solve = jax.jit(self._solve_internal)
        compiled_solve = jitted_solve.lower(*placeholders).compile()
        self._solve_compiled = compiled_solve
        print(f"compiled in {time.time()-start}s!")

        start = time.time()
        exported = export.export(jitted_solve)(*placeholders)
        serialized = exported.serialize()
        with open(relative_path, "wb") as f:
            pickle.dump(serialized, f)
        print(f"Exported and stored in {time.time()-start}s!")

The idea behind this is that if the compiled version of this class exists, use that. Otherwise make one and store it for future instantiations of the solver with the same desired input/output shapes.
Not sure if https://github.com/jax-ml/jax/issues/476 should've been closed if you still have to recompile on load.
System info (python version, jaxlib version, accelerator, etc.)
Python Version: 3.10.15
Operating System: Linux <IP_ADDRESS>-microsoft-standard-WSL2 (posix)
JAX Version: 0.4.35
jaxlib Version: 0.4.35
Default Backend: cpu

Try using these APIs? https://github.com/jax-ml/jax/blob/main/jax/experimental/serialize_executable.py#L25-L60

Was not aware that existed thanks!!! Altered the code to this:

    def compile(self) -> None:
        """Precompile solve function"""
        dir = os.path.dirname(os.path.abspath(__file__))
        compiled_dir = os.path.join(dir, "../compiled")
        os.makedirs(compiled_dir, exist_ok=True)

        file_name = f"filename.pkl"
        relative_path = os.path.join(compiled_dir, file_name)

        if os.path.exists(relative_path):
            with open(relative_path, "rb") as f:
                serialized, in_tree, out_tree = pickle.load(f)
                self._solve_compiled = deserialize_and_load(serialized, in_tree, out_tree)
            print("Found existing compiled ilqr solver, loaded.")
            return

        print("Existing compiled solver not found, compiling...")

        placeholder_1= jax.ShapeDtypeStruct((self.nx,), jnp.dtype("float32"))
        ...etc

        placeholders = (placeholder_1,...)

        start = time.time()
        jitted_solve = jax.jit(self._solve_internal)
        compiled_solve = jitted_solve.lower(*placeholders).compile()
        self._solve_compiled = compiled_solve
        print(f"compiled in {time.time()-start}s!")

        # start = time.time()
        # exported = export.export(jitted_solve)(*placeholders)
        # serialized = exported.serialize()
        # print(f"Exported and stored in {time.time()-start}s!")

        serialized = serialize_compiled(compiled_solve)
        with open(relative_path, "wb") as f:
            pickle.dump(serialized, f)

but getting this error on deserialize_and_load
File "/opt/project/cosyco/.venv/lib/python3.10/site-packages/jax/experimental/serialize_executable.py", line 53, in deserialize_and_load
no_kwargs) = _JaxPjrtUnpickler(io.BytesIO(serialized), backend).load()
File "/opt/project/cosyco/.venv/lib/python3.10/site-packages/jax/experimental/serialize_executable.py", line 87, in persistent_load
return self.backend.deserialize_executable(pid[1])
jaxlib.xla_extension.XlaRuntimeError: INTERNAL: Failed to find compiled symbol for kernel bitcast_pad_fusion.6
I feel like I'm using the api wrong, any ideas?

I don't think you're using the api wrong. This looks more like a bug in XLA deserialization. Maybe there is some part of your computation that XLA is not serializing and deserializing properly? One way to double-check this is to see if you get the same failure with the compilation-cache enabled. The compilation cache requires retracing so it might not be what you want, but if you see the same problem there, then it is a problem with how XLA is serializing executables.

also when I use a more complex version of the solver I still get seg faults.

A segfault would probably need some sort of reproducer in order to fix. This codepath doesn't call anything special though over just calling jit directly so it would have to be serializing inside XLA somewhere.

As I work on finding the minimum version of the segfault error, I was wondering if the previous problem is possible to be solved and not just inherent to jax. Jitting, lowering, and pre compiling eliminates the precompute time to my knowledge, but as shown in the previous comment, there is still some overhead on the first run of the solver. When i run the solver with the same inputs again, there is a 20x speed up. Is this normal or am I doing something wrong?

Not clear if you switched to using compilation cache or got the aot code to work, but the speedup probably comes from the fact that you have to actually load the executable onto the devices when dispatching the first time. (Also for GPU, there is probably some lazy cuda initialization). These costs are fundamental to either approach (compilation cache or aot).

Thanks for the quick response. Yes, to clarify, I got the AOT code to work and this is CPU.
I don't think I understand "you have to actually load the executable on to the devices when dispatching the first time". Is there a way to to do this AOT without knowing the specific inputs? I.e. sacrifice the first run with placeholders and then the following run with actual inputs will enjoy the 20x speedup? This is a realtime robotics application so the speed up is fairly important.

If you just want to hot-start this, you can just pass dummy values (using the avals of the inputs) and then block_until_ready on the results.

I see, so either way I have to sacrifice some time for dummy variables after loading in the compiled function, even after lowering with placeholders. Fair enough. I will do some testing and see what I can do. Thanks for your help.

One more thing, the block_until_ready is just for accurate timing correct?

the segfault was a result of jax.numpy.linalg.inv. I found this issue https://github.com/jax-ml/jax/issues/11321 and used the inv3x3 and no more issues. Strange.


Revert "Allow empty patch in upstream script (#983)"

This reverts commit 13b894e0e3ea580291d037ee7dbd563fb57b67df.
This introduced a regression that caused make upstream.rebase to fail in AWS, GCP and other providers.
E.g. AWS:
Applying ../patches/0001-Add-TagsSchemaTrulyComputed-definition.patch
fatal: Resolve operation not in progress, we are not resuming

E.g. GCP:
Applying ../patches/0001-Allow-disabling-the-partner-name.patch
fatal: Resolve operation not in progress, we are not resuming.

CC @guineveresaenger, we had to revert this one because it blocked us from upgrading providers


RGBD DDM training details

Hi,
Thanks for your amazing paper.
Can you please share details about the training of the RGBD DDM?
How many patches did you use? how long did it train?
Thank you!

Hi there, we trained for 650k steps, with each step consisting of a batch of 32 patches. I remember this process took about a week on an A100.

Thanks for your reply!


Help System

Add a help page that can be displayed in separate browser window. The help system should be accessible from a "?" help button on the main menu as well as from "i" info buttons elsewhere in the Explorer.

[x] Establish documentation website linked to branding
[ ] Tooltips

The "Explorer" link in the header takes  the user to the User Guide at http://worldwind.earth


Iframe in event templates not displaying title #1939

@NickHaggerty1 @meols added the title back above the iframe component. I did not do anything with the styling for the title. But if you could verify you can see the title, and if there is any changed that needs to be done, it would be great :)

@millianapia thanks. approved.


Not able to run the example with Rust

Hi,
I've successfully executed the example with node, now I'm trying to run it with Rust, however I'm getting the following
error: failed to select a version for `wasmtime-fiber`.
    ... required by package `wasmtime v6.0.0`
    ... which satisfies dependency `wasmtime = "^6.0.0"` of package `host v0.0.0 (https://github.com/bytecodealliance/preview2-prototyping#75f8fc61)`
    ... which satisfies git dependency `host` of package `runner v0.1.0 (/Users/r/Experimentos/componentize/runner)`
versions that meet the requirements `=6.0.0` are: 6.0.0

the package `wasmtime-fiber` links to the native library `wasmtime-fiber-shims`, but it conflicts with a previous package which links to `wasmtime-fiber-shims` as well:
package `wasmtime-fiber v6.0.0 (https://github.com/bytecodealliance/wasmtime?branch=release-6.0.0#c00d3f05)`
    ... which satisfies git dependency `wasmtime-fiber` of package `wasmtime v6.0.0 (https://github.com/bytecodealliance/wasmtime?branch=release-6.0.0#c00d3f05)`
    ... which satisfies git dependency `wasmtime` of package `runner v0.1.0 (/Users/r/Experimentos/componentize/runner)`
Only one package in the dependency graph may specify the same links value. This helps ensure that only one copy of a native library is linked in the final binary. Try to adjust yo
ur dependencies so that only one package uses the links ='wasmtime-fiber' value.
failed to select a version for `wasmtime-fiber` which could resolve this conflict

Where runner is my local project.
I've been checking the repos and seen that preview2-prototyping has only one tag, how would you suggest to resolve this?
Thank you!

You may need to update to the Rust nightly toolchain I believe? This definitely sounds like Rust toolchain setup to me.

Hi @guybedford,
I've just updated my nightly toolchain and the error persists
❯ rustup show
Default host: aarch64-apple-darwin
rustup home:  /Users/r/.rustup

installed toolchains
--------------------

stable-x86_64-apple-darwin (default)
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin

active toolchain
----------------

nightly-aarch64-apple-darwin (directory override for '/Users/r/Experimentos/componentize/runner')
rustc 1.69.0-nightly (44cfafe2f 2023-03-03)

Perhaps you need to make the nightly toolchain the default as it is applying to dependency builds, I'm not sure.
Also make sure you have the wasm32-unknown-unknown and wasm32-wasi targets installed as well.

I was able to get past this issue by using the exact same wasmtime version as specified by the host crate here https://github.com/bytecodealliance/preview2-prototyping/blob/main/host/Cargo.toml#L14

I'll make sure to include the revision in the next toolchain upgrade PR.

Thanks @guybedford. I did follow @jianghong however I ran into another error. I'll just wait for those revisions.

The latest release now includes the revision. Please just let me know if you have any further issues here.


Improve JSON validation

Improve JSON validation, in particular if you don't specify the specification version.
This helps to address https://github.com/CycloneDX/cyclonedx-cli/issues/221.
On the given example, it will result in:
cyclonedx.exe validate --input-file badType_log4j_2.17.2_cyclonedx_1.3_sbom.json
Validation failed: Value is "boolean" but should be "string"
#/properties/dependencies/items/$ref/properties/ref/type
On instance: #/dependencies/0/ref:
True
Unable to validate against any JSON schemas.
BOM is not valid.

There are a couple of merge tests that fail due to the update of CycloneDX.Utils; however, they are unrelated to the changes in the validation.


== and Equals return different results for IPAddress

Issue Title
== and Equals return different results for IPAddress
General
I am using c#, .net Core 3.1.4 on Windows 10 1909.
IPAddress IP1,IP2; string Example="<IP_ADDRESS>"; IP1=IPAddress.Parse(Example); IP2=IPAddress.Parse(Example); bool B1=IP1.Equals(IP2); bool B2=IP1==IP2;
B1 returns true, whereas B2 returns false

Thanks for the report.
What you're seeing is an example of reference equality versus value equality. IP1 and IP2 are different instances, even though they both store the same value.
IPAddress does not define an operator==, so it gets the default == behavior in .NET of testing reference equality, not value equality. Using Equals is the correct thing to do when value equality is desired.
Adding a different operator== now would be a breaking to any existing code depending on reference equality, so this isn't something we will be able to change.


Is CISA-Use-Cases /Case-7/ valid example

in https://github.com/CycloneDX/bom-examples/tree/master/VEX/CISA-Use-Cases/Case-7 boms do not contain version of the software, but vex file affects sections contain versions or version ranges (i.e. https://github.com/CycloneDX/bom-examples/blob/7d529848e2f8bd65d03aec9eab16f139fd445ff4/VEX/CISA-Use-Cases/Case-7/vex.json#L169). So if I understand correctly, this vex should not apply to any bom as they do not specify any version, or the logic should be that if version is not specified then any matching bom with affects.ref is actually affected and in this case specifying version is irrelevant ?
What is the point of having affects section specifying also component ref and versions, if component ref is unique ? Ot is it just additional information ?

So if I understand correctly, this vex should not apply to any bom as they do not specify any version, or the logic should be that if version is not specified then any matching bom with affects.ref is actually affected and in this case specifying version is irrelevant ?
What is the point of having affects section specifying also component ref and versions, if component ref is unique?

component ref might be unique, while not version-pinned.
THerefore, the vuln might tell which version of a certain dependency is affected.
please read https://github.com/CycloneDX/specification/discussions/310#discussioncomment-7019215

Not exactly, what does it mean that component ref might be unique ? According to standard, it is unique and points to exact component in exact sbom. What is the goal in standard to give additional level of filter if bom-ref is so unique? It brings additional level of complexity when parsing, because you cannot rely on bom-ref. And producer of vex must know which exact component was scanned, as he/she filled bom ref in vex? You cannot cover with bom-ref more than one sbom at the end. You can only add many refs in affects field.
Thx

Not exactly, what does it mean that component ref might be unique ? According to standard, it is unique and points to exact component in exact sbom.

Read "A component ref might be unique [...]" as "even though component ref is unique, [...]"
;-)

Is this specific bom ref affected or not ?

see VEX
https://github.com/CycloneDX/bom-examples/blob/7d529848e2f8bd65d03aec9eab16f139fd445ff4/VEX/CISA-Use-Cases/Case-7/vex.json#L164-L172
references the following product
https://github.com/CycloneDX/bom-examples/blob/7d529848e2f8bd65d03aec9eab16f139fd445ff4/VEX/CISA-Use-Cases/Case-7/bom-2.json#L8-L12
and the VEX states, that it affects this certain product in a certain version range.
Is there something unclear? Maybe read the use-case description again?
see https://github.com/CycloneDX/bom-examples/blob/7d529848e2f8bd65d03aec9eab16f139fd445ff4/VEX/CISA-Use-Cases/Case-7/README.md#multiple-products-multiple-versions-single-vulnerability-multiple-statuses
A VEX document might list all known vulnerabilities, and state whether certain versions of a product are exploitable(=affected) or not.
And still, it is up to you to check whether you have these versions installed and running. Especially, if the referenced SBOM does not contain a version, because it is not an SBOM, but a product in general.
This way, you could build a complete vulnerability database in a VEX data document. Isn't that an amazing use case? ;-) This is VEX, not SBOM.

The idea is clear, the case is in making standard easy to use for software that operates on it :)
So in general, what you say is that standard does not enforce the quality of provided sbom files and vex :)
Like the sboms from example are actually very low quality sboms and the correct thing to do is either request from vendor to ship better sbom, or do it yourselves. In example you cannot automatically apply vex to the product relaying only on database build based on sbom and vex, without additional (human?) analysis, as the same vex has also https://github.com/CycloneDX/bom-examples/blob/7d529848e2f8bd65d03aec9eab16f139fd445ff4/VEX/CISA-Use-Cases/Case-7/vex.json#L130
And I think a lot of people have issues how to use it actually, even with tools like dependency track https://github.com/DependencyTrack/dependency-track/issues/2741

I mean, try to import this example to dependency track (or point to other tool/test that works?), nothing is applied and even base component is not identified well :)
also, affects versions and how to use them are not mentioned even in cyclonedx guide (latest), https://cyclonedx.org/guides/sbom/OWASP_CycloneDX-SBOM-Guide-en.pdf . IMO it states clearly that only ref itself matters as it "provides a direct link to the precise component within a BOM" . So is it missing in guide that "if additional version is specified, additional check is needed as it might be just VEX that at the end might not apply due to version mismatch " :)
This contradicts a bit with the idea of standard that it is easy to automate by good linking and focus on automation of bom management and exchange, as it does not promote and enforce good quality of sboms leaving corner cases ?

I mean, try to import this example to dependency track (or point to other tool/test that works?), nothing is applied and even base component is not identified well :)

@tomekkolo what is your point? Dependency-Track (and most other tools) do not support every VEX use case. They will improve over time.
The guide you mention is specific to SBOM. Only a small subset of functionality of the spec is mentioned in the guide. There is another guide in development specifically for VDR+VEX, and a handful of other guides (SaaSBOM, ML-BOM, MBOM, CBOM, etc) also being developed.
Moving this thread to a discussion.

Hey,
I just believe that this case is quite important and usefull, but the example boms and vex are not easy to implement because they are in my opinion not complete enough to apply to each other automatically, and having in standard additional version specifier conflicts a bit with ref and general idea of using them and uniqueness. Maybe better approach would be to use I.e. purl as mandatory and bom ref as optional, if someone wants to narrow matching to specific product installation for example. Then this sample is clear, any version of product that match is affected or not, but with bom ref someone can say in addition that this installation is safe as I.e. it is configured in some specific way. In current example I do not see a way for a product like dt or any other to apply this example vex to sboms in a correct and predictable way. From one side refs point to product, but versions cannot be matched, so as I wrote before, either sboms are wrong or vex are wrongly specified as they cannot be applied. Imagine that you have thousands of products for which you receive this kind of sbom and vex, no company will have human resources to analyze them manually. And standard itself should support/enforce clearly correct way to create those documents.
This is just confusing as examples should clearly guide people who want to use standard.
But anyway, if you have some links to new vdr/vex guide it would be great, maybe I'm missing something.

Or just drop bom-ref to be mandatory parameter, and allow users to specify one of: bom ref/purl/etc ? That would be super clear to use imo.

For me the version/version range in affects is really helpful because I can create suggestions based on it how to fix it in the report: Upgrade to version xyz. But it's also necessary to check if there is one pedigree (patch) available which maybe fixes this.


php-fpm latest versions not update

ISSUE TYPE

Bug Report

OS / ENVIRONMENT

Host operating system: Ubuntu 16.04
Native Docker or Docker Toolbox:  native
Docker version: 18.06.1-ce
Docker Compose version: version 1.18.0, build 8dd22a9
What containers are running:
Container versions:
Devilbox version 0.15  https://github.com/cytopia/devilbox/commit/acac4f0459b33ffcdc827e77b758e26dc82d4d5f
Git branch version:  master 8913fd4 Merge pull request #358 from cytopia/docker-blackfire

SUMMARY

I wanted to update to latest PHP 7.1(.21) base image but it was impossible.
This version is available with release 0.35 of https://github.com/devilbox/docker-php-fpm
But not with release 0.32
STEPS TO REPRODUCE

./update.sh
EXPECTED BEHAVIOUR

Be able to get always the latest PHP version
ACTUAL BEHAVIOUR

PHP 7.1.20 version installed
OTHER INFORMATION

I've searched before to find where it came from.
https://github.com/cytopia/devilbox/blob/master/docker-compose.yml#L98
Tell us
 php:
    image: devilbox/php-fpm:${PHP_SERVER:-7.0}-work-0.32

I've replaced work-0.32 by work-0.35 and all is good

@llaville I was already a bit ahead with creating new PHP versions and removed the old once from nightly auto-building without adding the new one to the Devilbox. PR is coming today.

@cytopia I won't reopen this issue, but I'll keep you aware that you should think on a solution to provide Docker PHP-FPM images with latest PHP versions.
Actually either devilbox/php-fpm:7.2-work or devilbox/php-fpm:7.2-work-0-42 contains only PHP 7.2.10 version.
I've not checked other images, but I'm pretty sure there are not up-to-date too !
PHP 7.2.11 was released on Oct 11, 2018.  PHP 7.1.23 was released also the same day

@cytopia Hello; I've just tested release v0.44 (with changing line https://github.com/cytopia/devilbox/blob/master/docker-compose.yml#L98), and it works :

like a charm for PHP 7.1.23

like a charm for PHP 7.2.11

but i'm surprised with PHP 7.3, when I enter php container I see<EMAIL_ADDRESS>in /shared/httpd $

Confirmed with command php -v
PHP 7.3.0-dev (cli) (built: Jul 27 2018 20:16:57) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.0-dev, Copyright (c) 1999-2018, by Zend Technologies

Latest version is 7.3.0RC4 (25-Oct)

Latest version is 7.3.0RC4 (25-Oct)

Yes, this is due to the fact that I am building PHP 7.3 out of the github source myself, as it wasnt available by the time I've added it to the Devilbox. I will switch this to the official RC the coming days and add the current state of PHP 7.4 to the stack

@cytopia I've just test release v0.46 with PHP 7.3, and noticed a little change in php container prompt since previous unofficial version (see my comment)
See<EMAIL_ADDRESS>in /shared/httpd $
And command php -v give
PHP 7.3.0RC4 (cli) (built: Oct 26 2018 20:43:47) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.0RC4, Copyright (c) 1999-2018, by Zend Technologies

Is it not suppose to see prompt with<EMAIL_ADDRESS>?

Is it not suppose to see prompt with<EMAIL_ADDRESS>?

Looks like I forgot to also parse upper case. PR on the way: https://github.com/devilbox/docker-php-fpm/pull/61


socket.gaierror: [Errno 8] nodename nor servname provided, or not known

I tried to run the quickstart.py example and got a stack trace and socket.gaierror.
Expected Behavior
Quickstart demo should run.
Actual Behavior
Dies with a stack trace.
See: stacktrace.txt
Steps to Reproduce the Problem
I followed the steps at https://developers.google.com/drive/api/v3/quickstart/python

Enable the Drive API and download credentials.json
 pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Download quickstart.py from https://github.com/gsuitedevs/python-samples/blob/master/drive/quickstart/quickstart.py
python3 quickstart.py  or  python quickstart.py

I tried running this directly and in a venv, and it didn't make a difference.
Specifications

Python version (python --version)
Python 3.7.3
I also used Python 2.7.16, and then it dies with ImportError: No module named google_auth_oauthlib.flow
OS
MacOS Catalina Version 10.15.3

After more investigation, the problem was that my /etc/hosts was empty for some reason, so localhost couldn't be accessed.
% ping localhost
ping: cannot resolve localhost: Unknown host

Restoring the contents of /etc/hosts resolved the problem.


Fix descriptions on fMRI preprocessing and VBM

Problem
It looks like the description for VBM was accidentally put on fMRI preprocess.

Tasks
Please make the following changes:

Put the current description of fMRI preprocess onto VBM.

"This computation runs Voxel Based Morphometry on structural T1 weighted MRI scans(BIDS format and T1w nifiti) using SPMv12 standalone and MATLAB Runtimev713. Each scan takes approximately 5 mins to run on a system with 2.3 GHz,i5 equivalent processor, 8GB RAM. Each scan output directory takes about 150MB space. Please make sure to have the space and resources."

Put this description onto fMRI preprocess:

"This computation performs realignment, slice timing, normalization, and smoothing on functional T2*-weighted MRI scans (BIDS format and nifiti) using SPMv12 standalone and MATLAB Runtimev713."

Closed by #808


SODEV-17715 - Supports multiple push providers

Closes https://github.com/zo0r/react-native-push-notification/issues/952

Restored branch for now while dependencies get switched.


hardsuit fireproof nerf

hardsuits are no longer fire proof
atmos suit and elite syndie suit and deathsquad suit are fire proof
annual pride month hardsuit nerf
🆑

tweak: atmos, elite syndie, and deathsquad hardsuits are now the only fireproof suits

I think CE suit should also remain fireproof

I am kinda don't think the elite needs yet ANOTHER "buff" via every other hardsuit getting a nerf.
Granted this is minor but the Elite hardsuit is one of if not the best antag purchases. It doesn't need another niche to fill.

elite was originally meant to be for pyromania if it wasnt fireproof it would literally just be anti-laser suit

I am kinda don't think the elite needs yet ANOTHER "buff" via every other hardsuit getting a nerf.
Granted this is minor but the Elite hardsuit is one of if not the best antag purchases. It doesn't need another niche to fill.

this isn't a buff, it was like this before the pr

elite was originally meant to be for pyromania if it wasnt fireproof it would literally just be anti-laser suit

Sure if thats its expected use, sure. But it isn't just the "anti-laser" suit, its the zero movespeed penalty hardsuit.
Movement is insanely important in combat, and as such its more the "combat hardsuit" than "anti-laser hardsuit"

Elite suit isnt even meant to be the hard anti-laser suit afaik. On tg its specifically marketed as being anti-fire and anti-caustic (separate damage entirely from lasers)

RD hardsuit should still have fire protection. There is an artifact response (as well as fire anom pulse) that can easily do enough heat damage through fire that it will heat-gib you. Especially as a moth or diona. It wouldn't make the hardsuit overpowered; its got some extreme slowdown.

No, I am not a contributor, sorry, but I do play a lot of CE. The CE's hardsuit should be absolutely fireproofed.
CE should be able to handle every single thing their department's line of work comes across. It doesn't make sense to have to rely on atmos techs to resolve a plasmafire/tritfire, do work in a burn chamber, etc.
It also doesn't make sense to have the ability to stand in gas that is at extreme pressures and temperatures, but the moment you catch on fire you HAVE to stop drop and roll unless you want to be out for the next 15 minutes.


Am I supposed to see some sort of output from - shell2http /top "top -l 1 | head -10"

I installed the SNAP on my Ubuntu 20.04
I executed several of the "Examples" for instance:

$ shell2http /top "top -l 1 | head -10"
2020/09/11 11:33:32 register: /top (top -l 1 | head -10)
2020/09/11 11:33:32 register: / (index page)
2020/09/11 11:33:32 listen http://localhost:8080/

Am I supposed to see something more than the above?   Maybe I am misunderstanding the use of this tool?
Thanks for any enlightenment.
Brian

Hi Brian,
you see server logs, that's all there is. Because this is an http server, then you can see the shell command output in the browser.


bug: trying to drop struct containing a dicitonary

Bug Report
Cairo version:
a3f2f3428610267a55fd69f36ec1648a1a33dd7e

Current behavior:
thread 'main' panicked at 'Failed to specialize: `drop<DictFeltTo<u128>>`. Error: LibfuncSpecialization { libfunc_id: GenericLibfuncId("drop"), generic_args: [Type(ConcreteTypeId { id: 11, debug_name: None })], error: UnsupportedGenericArg }', crates/cairo-lang-sierra-generator/src/utils.rs:254:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Expected behavior:
The push method inserts the item and the length is incremented.

Steps to reproduce:

Related code:
I have a Vec struct containing two members including a dict
struct Vec<T> {
    items: DictFeltTo<T>,
    len: usize,
}

and a push implementation
    fn push(ref self: Vec<T>, value: T) -> () {
        let Vec{mut items, mut len } = self;
        items.insert(len.into(), value);
        len += 1_usize;
        self = Vec { items, len };
    }

https://github.com/msaug/quaireaux/blob/94eaf51f0d43de07c0a00e8014abbe6164f7d6dc/src/data_structures/vec.cairo
Related tests: https://github.com/msaug/quaireaux/blob/94eaf51f0d43de07c0a00e8014abbe6164f7d6dc/src/tests/vec_test.cairo
Other information:
It compiles when we are not updating the length and only the items.
    fn push(ref self: Vec<T>, value: T) -> () {
        let Vec{mut items, mut len } = self;
        items.insert(len.into(), value);
        self = Vec { items, len };
    }

Otherwise, it looks like it tries to drop the previous self struct when re-instantiating the new one - although it's not possible because it contains a dict.
Another solution I thought about was using a dict to track the length of the vec. it doesn't need to be dropped since we can just update the entry when incrementing the total length. But I would like to avoid this approach.

this cannot be fully solved until we have destructors.
the issue here is indeed that you try to update the field - but the problem isn't the update - it is the fact that += is an action that may panic for non-felt types - but this isn't allowed since Vec isn't droppable.
for now - you can simple use the actual underlying extern function that cannot panic.

for now - you can simple use the actual underlying extern function that cannot panic.

Thanks, works great :)

Are destructors on the schedule anytime soon?
I'm just wondering if it's worth the wait or if I need to find another solution (not just for vec, but for dicts in general).
Since panicable operations are forbidden between the declaration of a dict and its squash, this reduces the use cases a lot.

BTW, you can write the code like this:
fn push(ref self: Vec<T>, value: T) -> () {
        self.items.insert(self.len.into(), value);
        self.len += 1_usize;
    }

It's on the schedule soon, yes.


Some questions about butterknife

Hi JakeWharton, I have some questions need for help:
first, why generated code in build/generated/source/apt directory, Instead of other directory? eg: inside /src。
second, how does butterknife using those generated code, combine with some activity？
My English is not very good, hope for the answer。

We don't control where the generated code goes. The Android Gradle plugin configures the java compiler such that any code generated by an annotation processor goes into that folder.
The generated code can be referenced directly or looked up dynamically by calling ButterKnife.bind. If you look at the implementation of bind, you'll see it looks up the generated code similar to how a LayoutInflater loads views, with Class.forName.

very thankful


'NoneType' object has no attribute 'SMALL_ICON_SIZE'

The PR should fix #65 . This is based on a regression made by e3f8fa9.

Thanks.  Please tell me more about how this solves?

Thanks. Please tell me more about how this solves?

As specified in #80 we are getting NoneType error on style object. It means it is not imported by system at the time when you tested. We can see in  e3f8fa9 that the change I made in
4a3cf3f was removed in e3f8fa9.

@Saumya-Mishra9129 4a3cf3f uses a try except clause that imports or sets GRID_CELL_SIZE, the issue is with style.SMALL_ICON_SIZE.

@Saumya-Mishra9129 wrote:

As specified in #80

Actually, you mean in https://github.com/sugarlabs/turtleart-activity/issues/65.

we are getting NoneType error on style object.

Yes.  In the toolkit source file src/sugar3/graphics/icon.py.
style was an imported module, as shown by
https://github.com/sugarlabs/sugar-toolkit-gtk3/blob/f0b479f068804db6ab99f38eb79d301fa4580c61/src/sugar3/graphics/icon.py#L106
style was found to be None at the point of the error, which was;
https://github.com/sugarlabs/sugar-toolkit-gtk3/blob/f0b479f068804db6ab99f38eb79d301fa4580c61/src/sugar3/graphics/icon.py#L536
Above code links are from Sugar 0.112.
No code changes style between the import and the error.
We are also getting a RuntimeError: sys.meta_path must be a list of import hooks.

It means it is not imported by system at the time when you tested.

Not so.  Firstly, it was imported as shown above, and secondly if it were not imported the error would have been "NameError: name 'style' is not defined".

We can see in e3f8fa9 that the change I made in 4a3cf3f was removed in e3f8fa9.

I see your logic; you are suggesting that the port to GTK 3 and GStreamer 1.0, which removed support for very old versions of the GTK 2 toolkit (before GRID_CELL_SIZE was added), was the cause of the error.  You are suggesting that adding back support for very old versions of the GTK 2 toolkit will fix it.   However, the error is not reported against the source file you are changing.
Let me offer an alternative speculation;

for style object to lose meaning in the scope of icon.py, despite being imported, means that the Python data structures in memory have been corrupted,
for sys.meta_path to lose contents in the scope of logger.py, means that the Python data structures in memory have been corrupted,
that the code was ported from GTK 2 with static modules to GTK 3 with PyGObject introspection modules suggests that the actual changes in Turtle Art https://github.com/sugarlabs/turtleart-activity/commit/e3f8fa9d69041f4912fce5f624397c82018a8ffb may be less important than the changes between GTK 2 and GTK 3, and between static imports and PyGObject introspection imports.

By the way, to reproduce or test this you would need to install Fedora 18 VM with Sugar 0.112 packages.  Those packages are available for i386 32-bit architecture from rpmdropbox.laptop.org.

@Saumya-Mishra9129 wrote:

As specified in #80

Actually, you mean in #65.

we are getting NoneType error on style object.

Yes. In the toolkit source file src/sugar3/graphics/icon.py.
style was an imported module, as shown by
https://github.com/sugarlabs/sugar-toolkit-gtk3/blob/f0b479f068804db6ab99f38eb79d301fa4580c61/src/sugar3/graphics/icon.py#L106
style was found to be None at the point of the error, which was;
https://github.com/sugarlabs/sugar-toolkit-gtk3/blob/f0b479f068804db6ab99f38eb79d301fa4580c61/src/sugar3/graphics/icon.py#L536
Above code links are from Sugar 0.112.
No code changes style between the import and the error.
We are also getting a RuntimeError: sys.meta_path must be a list of import hooks.

It means it is not imported by system at the time when you tested.

Not so. Firstly, it was imported as shown above, and secondly if it were not imported the error would have been "NameError: name 'style' is not defined".

We can see in e3f8fa9 that the change I made in 4a3cf3f was removed in e3f8fa9.

I see your logic; you are suggesting that the port to GTK 3 and GStreamer 1.0, which removed support for very old versions of the GTK 2 toolkit (before GRID_CELL_SIZE was added), was the cause of the error. You are suggesting that adding back support for very old versions of the GTK 2 toolkit will fix it. However, the error is not reported against the source file you are changing.
Let me offer an alternative speculation;

for style object to lose meaning in the scope of icon.py, despite being imported, means that the Python data structures in memory have been corrupted,
for sys.meta_path to lose contents in the scope of logger.py, means that the Python data structures in memory have been corrupted,
that the code was ported from GTK 2 with static modules to GTK 3 with PyGObject introspection modules suggests that the actual changes in Turtle Art e3f8fa9 may be less important than the changes between GTK 2 and GTK 3, and between static imports and PyGObject introspection imports.

By the way, to reproduce or test this you would need to install Fedora 18 VM with Sugar 0.112 packages. Those packages are available for i386 32-bit architecture from rpmdropbox.laptop.org.

Yeah You are probably right. however I think sugar-toolkit-gtk3 is the place which can cause the error because of port from GTK2 to GTK3 . I still need to test it on Fedora because we can't make assumptions.


Installing on macOS Sierra: problem with qt

Apparently, qt is not yet installable in macOS Sierra via brew. I got the following error when running install-deps:
qt: This formula either does not compile or function as expected on macOS
versions newer than El Capitan due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.

Is there some workaround for it?

I've now made qt optional for OSX in the instal-deps script. The optional packages qtlua and qttorch will not install during the install process, but that's fine.
https://github.com/torch/distro/commit/d10e1f05d3d07356586c0d843c426f89aa986ae0


Release a 1.0.0?

 As-is, the package is below version 1.0.0, so I have to pin it exactly, since at any time backward-incompatible changes could be made. That means I might miss out on bugfixes and performance improvements :(

Yeah, we with @marijnh also want to do that, but there is still some divergency between SpiderMonkey-based parsers in node types for some ES6 syntax features. So we want to get agreed on those before going "stable" so that nothing will be seriously broken after 1.0.
During last couple of weeks (after Esprima went under jQuery), we could finally start working on this topic with others, and I don't think it should take too much time.

Probably best to hold off 1.0.0 until estree is stable and supported by esprima and acorn.

I don't understand the hesitation here. Positive integers are free. If you have to release 2.0.0 and 3.0.0 in short succession due to jQuery Foundation or estree or whatever, that's fine. But in the meantime you're in 0.x la-la land and that means I'm going to have to miss out on any bug fixes when I pin.

I just don't understand why releasing 1.0.0 when there might be a bunch of breaking changes in returned results between 0.* and 1.0? Just to look like "stable"?
Just don't pin but use range like ^0.11.1 so that you'll get all the bug fixes but not the breaking changes.

So you are guaranteeing that there will be no breaking changes on patch versions, even below 1.0.0? Because that's not how most packages work (because it's not what semver guarantees).
And if you are guaranteeing that, why not just follow semver and go to 1.0.0 and bump patches there, instead of at 0.x?

So you are guaranteeing that there will be no breaking changes on patch versions, even below 1.0.0?

Yep, that's how it worked so far.

And if you are guaranteeing that, why not just follow semver and go to 1.0.0 and bump patches there, instead of at 0.x?

Because then ^ (which npm uses by default when you do npm install acorn --save) would start accepting any 1.x.y versions so that for breaking changes we would require to update major version each time and would go way too high as ES6 representations are not currently stabilized.
Actually I think that 0.11.x is the last range before 1.0 as now we have concrete questions and representatives from each implementation in ESTree and can agree on representations pretty quickly, so this discussion should become irrelevant anyway :)

would go way too high as ES6 representations are not currently stabilized.

What is too high? Number.MAX_SAFE_INTEGER is a long ways off, so that is probably not what you mean. I am confused.

Many people (me included, oftentimes) do attach some emotional significance to major version numbers, seeing them as representing an 'era' of a software project. This, I agree, doesn't work too well with semantic versioning, and we might have to get over it, but for the moment, 1.0 is planned to represent the milestone of being feature-complete and having a well-considered API, and we're not quite there yet.
Also, integers are not entirely free. If you bump the major version every time the mood strikes, you'll end up with either tons of branches to port bugfixes to, or people stuck on old unfixed versions because you're only maintaining the current major version. This is a cost that you shouldn't downplay.

I've just released 1.0.0.


Preventing from running dotnet test if test runner is not specified

/cc @victorhurdugaci @pranavkm

:shipit:


ValueError: not enough values to unpack

Guessing i'm missing something obvious here - requires a specific (older) version of opencv-python?
Traceback (most recent call last):
  File "segment.py", line 94, in <module>
    hand = segment(gray)
  File "segment.py", line 38, in segment
    (_, cnts, _) = cv2.findContours(thresholded.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2)

getting same error..Can someone help?

I'm just linking the PR that fixes this: https://github.com/Gogul09/gesture-recognition/pull/11

In this line: (_, cnts, _) = cv2.findContours(thresholded.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
Put (cnts, ) instead of (, cnts, _) this worked for me.


error in committees/CommitteeAgendaSearch: failed to get meetings for committee 11

This issue was automatically created, please do not modify the title or remove any labels
Unexpected exception received while trying to get meetings of committee 11: ('Connection aborted.', error(110, 'Connection timed out'))

Encountered the error again
Unexpected exception received while trying to get meetings of committee 11: ('Connection aborted.', error(110, 'Connection timed out'))

Encountered the error again
Unexpected exception received while trying to get meetings of committee 11: ('Connection aborted.', error(110, 'Connection timed out'))

Encountered the error again
Unexpected exception received while trying to get meetings of committee 11: ('Connection aborted.', error(110, 'Connection timed out'))

Encountered the error again
Unexpected exception received while trying to get meetings of committee 11: ('Connection aborted.', error(110, 'Connection timed out'))


try 600m

600m mx
debugging info

Codecov Report

Merging #528 into master will decrease coverage by -0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #528      +/-   ##
============================================
- Coverage     51.09%   51.08%   -0.01%
+ Complexity      252      244       -8
============================================
  Files            89       86       -3
  Lines          2887     2774     -113
  Branches        191      185       -6
============================================
- Hits           1475     1417      -58
+ Misses         1361     1307      -54
+ Partials         51       50       -1

Impacted Files
Coverage Δ
Complexity Δ

.../src/main/java/com/example/appengine/Greeting.java

...torage/appengine/serviceaccount/StorageSample.java

...src/main/java/com/example/appengine/Guestbook.java

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 2f53d05...758e6af. Read the comment docs.


documentation: cluster config doc needs updated for configuration changes

https://clearlinux.org/documentation/ciao-cluster-setup.html includes reference to the ciao-cert command and various ciao component command line invocations. Since #224 these command lines have changed and are not backwards compatible. The documentation in https://github.com/01org/ciao was changed to cover the new simplified cluster configuration defaults and override /etc yaml, but the external docu has not been yet and needs done.

This is done, just waiting the documentation rebuild. It should happen by EOD


"Reported from in-game: asdad" - submitted via. helper utility

Mods:
-
-

Boss Expertise 2.8
Mod Helpers <IP_ADDRESS>
-

Name
Male
Has Demon Heart
Difficulty mode
Life
Mana
Defense

AssToMouth
True
True
0
400 of 400
200 of 200
40

Player AssToMouth's (0) equipment:

Head
Body
Legs
Accessory 1
Accessory 2
Accessory 3
Accessory 4
Accessory 5
Accessory 6
Vanity 1
Vanity 2

Orichalcum Helmet
Orichalcum Breastplate
Orichalcum Leggings
Fleeting Worm Scarf
Wild Ranger Emblem
Armored Cobalt Shield
Jagged Leaf Wings
Hasty Flurry Boots
Warding Cloud in a Bottle
Wild Shackle
Lucky Climbing Claws

Is day: False, Time of day/night: 27928, Elapsed half days: 0
World name: paxs world, world size: Medium
World progress: Eye of Cthulhu killed, King Slime killed, Queen Bee killed, Eater of Worlds killed, Skeletron killed, Wall of Flesh killed, Destroyer killed, Twins killed, Skeletron Prime killed
Items on ground: 9, Npcs active: 11
Player count: 1 (multiplayer)
Autopause: False
Autosave: True
Lighting mode: 0
Lighting threads: 0
Frame skip mode: 2
Is screen maximized: False
Screen resolution: 1920 1080
Quality style: 0
Background on: True
Child safety: False
Game zoom: 1
UI zoom: 1
Recent error logs:
1:000:00000 - 000009.47   HamstarHelpers.PlayerLogic.OnCurrentClientEnterWorld - No (old) UID for AssToMouth (0) to send to server

asdasd

Stupid spam; ignore.


Moves docs-updating tip to top of list

Talked this over with @pepopowitz at writing office hours and we think it makes more sense to put this upfront, rather than as a pseudo-actionable item near the end.

Ashkan is out of office, going to assign to @jonallured instead.

Sorry for the delay, this looks great, merging!! ❤

🙌


[SPARK-43942][CONNECT][PYTHON] Add string functions to Scala and Python - part 1

What changes were proposed in this pull request?
Add following functions:

char
btrim
char_length
character_length
chr
contains
elt
find_in_set
like
ilike
lcase
ucase
len: Because it conflicts with Python keywords, and we already have length
left
right

to:

Scala API
Python API
Spark Connect Scala Client
Spark Connect Python Client

Why are the changes needed?
for parity
Does this PR introduce any user-facing change?
Yes, new functions.
How was this patch tested?

Add New UT.

also cc @beliefer

Update all, exclude:
1.In Scala side: escapeChar: Char -> escapeChar: Column
2.In Python side: escapeChar: Optional["str"] -> Optional["ColumnOrName"]

Update all, exclude:
1.In Scala side: escapeChar: Char -> escapeChar: Column
2.In Python side: escapeChar: Optional["str"] -> Optional["ColumnOrName"]

OK. Please wait for @HyukjinKwon 's opinion.

@beliefer There is a small bug in PR SPARK-43938

@panbingkun Please wait https://github.com/apache/spark/pull/41640

Update all, exclude: 1.In Scala side: escapeChar: Char -> escapeChar: Column 2.In Python side: escapeChar: Optional["str"] -> Optional["ColumnOrName"]

thanks for the update, my last suggestion would be
1.In Scala side: escapeChar: Char -> escapeChar: Column
2.In Python side: escapeChar: Optional["str"] -> Optional["Column"].

I still feel it would be ambiguous if treat str as the column name here; so I suggest to use Optional["Column"] and then support other types later (if we support a type now, it is nearly impossible to remove it)

Update all done.

I am going to merge this PR after all tests pass, and I just notice that we can support BINARY  via call_udf (see https://github.com/apache/spark/pull/41659), please help check it and send a follow-up PR if it works.

@panbingkun @beliefer thank you guys!
merged to master


Update docs

(on top of #318)

Can you add your name in the CHANGE (and if possible PR numbers?)
Also please add your name to the author list!


body and head tag not indenting

Issue Type: Bug
Hello,
Despite having enabled the option to indent head & body html tags, every time I save a file, the indent is removed. I have also disabled the option to check syntax on save, so I don't know why it behaves, seems like a bug for that preference ?

You can try this with F1 and >Developer: Reload Window With Extensions Disabled

Hello,
Thank you for your answer!
Yes I tried to disable the extensions I installed and the behavior was still present and body & head tags weren't indented.
That being said I just tried your tip F1: Developer: Reload Window With Extensions Disabled , which actually helped with the indentation, but then it prevents newlines from being kept, not sure why.
Anyway sorry I should have tried to disable each extension one after the other, so I would have detected that the ESLint one was the gulty.
I let you decide what to do with that request, if at some point it is expected that such extension can overwrite the setting or not.
Thank you again!

Yes, each extension has it's own settings. the html settings are for the built-in HTML extension and the built-in HTML formatter.
I understand that's a bit confusing.
Looking at the extension list, you were likly using the vscode-JS-CSS-HTML-formatter formatter.


configure containerd registry certificates by default

Issue #, if available:
N/A
Description of changes:
By default, Docker used to allow placing registry certificates on the host filesystem under /etc/docker/certs.d. Containerd did not support this until 1.5 and as of 1.6, it is still not enabled by default. There are some discussions around enabling it in 1.7 (https://github.com/containerd/containerd/issues/6485), but it would be helpful to have this enabled in EKS AMIs as well.
Testing Done
Created an EKS 1.23 cluster with containerd as the runtime. Using a docker registry deployed within the cluster with a self-signed cert, dynamically placed a CA into /etc/docker/certs.d and confirmed that a pod referencing that registry worked.

@cartermckinnon or @mmerkes would you be able to provide input on this?

This doesn't sound unreasonable to me. However, my concern would be the same as mentioned in the issue you reference:
This is not defaulted because it is a new option which is replacing older options.
We could see if the older options are set and set a default if they are not, maybe?

Since this AMI is a consumer of containerd, I didn't think that applied. How would AWS customers provide an option currently?

Since this AMI is a consumer of containerd, I didn't think that applied. How would AWS customers provide that option currently?

I' don't think it would break as they mentioned, but I think it's possible that some customers might append to files/containerd-config.toml, which would result in invalid TOML as there'd be duplicate keys. For example:
version = 2
root = "/var/lib/containerd"
state = "/run/containerd"

[grpc]
address = "/run/containerd/containerd.sock"

[plugins."io.containerd.grpc.v1.cri".containerd]
default_runtime_name = "runc"

[plugins."io.containerd.grpc.v1.cri"]
sandbox_image = "SANDBOX_IMAGE"

[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d:/etc/docker/certs.d"

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2"

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true

[plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "/opt/cni/bin"
conf_dir = "/etc/cni/net.d"

[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d:/etc/docker/certs.d"

Interesting, that makes sense. Is there a policy for breaking changes? If, for example, we only set this in 1.24 going forward would that be acceptable?
Would most people be appending during the AMI creation process (meaning we could set this option in bootstrap.sh) or at runtime?

@steved This is just hypothetical. I have no idea if and when customers are setting this. If customers are getting into this potentially breaking situation, I would assume that the easiest way would be at runtime by setting it in their userdata. If they were doing this at build time, they'd probably need to have their own fork of this repo, and I'd be less concerned about that case.
For breaking changes, we avoid doing them unless we have a very compelling reason. In this particular case, while it's not ideal, customers can configure this in their userdata. There would be some lift by baking something into bootstrap.sh (by checking for the presence of an environment variable or directly as an argument), but we already support the --containerd-config-file flag, which gives you this in a different way and is probably the best way to set this at present.
That being said, if we decided that this was generally valuable and don't expect this to break any customers, another option would be to add some validation in bootstrap.sh that ensures that running bootstrap.sh fails in a very clear and obvious way if the containerd config file is invalid (i.e. someone appended to it and now there's duplicate keys).
I will mention this to my team and get some input, but there may not be appetite for it given the potential risk of breaking customers who set this themselves with the append method vs. the --containerd-config-file flag. Regardless, we can keep this open (or turn it into a feature request) and see if others in the community has interest in this.

I think this change is fine as long as we can provide a clear error message in the case @mmerkes is describing.
In the bootstrap script, we could do:
containerd config dump

which will fail if duplicate keys are present in the TOML.
For example, if I have a /etc/containerd/config.toml:
[cgroup]
path = "foo"
[cgroup]
path = "bar"

then I get:
> containerd config dump
containerd: Near line 36 (last key parsed ''): Key 'cgroup' has already been defined.

@cartermckinnon added the config validation and a unit test (had to make a decent set of changes to get verification to work, so let me know if there's a better way).
@mmerkes any feedback from the internal team?

Looks fine to me; but I don't think we should move things into the files/containerd directory. It probably would have been a good idea early-on, but it's likely that some folks are depending on these paths, and I don't think the re-org adds enough value to break them.

Makes sense, that was leftover from trying to continue to work with the local volume mapping -v. Pushed e629145fcef9080863b6317de7fe36b73de0e12c.

@cartermckinnon @mmerkes thoughts?

Gentle nudge @cartermckinnon, any thoughts?

@steved this looks good to me! Can you resolve the conflicts on this branch?

done, thank you!

Thanks for working on this!

It seems that this PR also breaks compatibility with the deprecated way of configuring registry mirrors. We use the AMI with cluster-api and append the registry mirror configuration to the default configuration as mentioned above. Its not a big deal but could lead to problems when using cluster-api without a custom image and instead rely on the official one because it could break clusters over night.

We have encountered the problem with newest AMI including this PR on a production cluster today.
The reason was as @AljoschaP  and @mmerkes mentioned - duplicate [plugins."io.containerd.grpc.v1.cri".registry] sections, as we have been appending ours by userdata.
We have fixed our issue by removing the custom section from userdata.
I'm just posting this here as a confirmation that this PR does in fact break backwards compatibility.

Since this AMI is a consumer of containerd, I didn't think that applied. How would AWS customers provide that option currently?

I don't think it would break as they mentioned, but I think it's possible that some customers might append to files/containerd-config.toml, which would result in invalid TOML as there'd be duplicate keys. For example:

We encountered this issue, too. Added some simple logic to fix it
  CONTAINERD_CFG=/etc/eks/containerd/containerd-config.toml
  IS_REGISTRY_EXIST=$(grep '\[plugins\."io\.containerd\.grpc\.v1\.cri"\.registry\]' $CONTAINERD_CFG)
  if [[ $IS_REGISTRY_EXIST != "" ]]; then
    echo "registry config already exists"
  else
    echo -e "\n\
[plugins.\"io.containerd.grpc.v1.cri\".registry]\n\
config_path = \"/etc/containerd/certs.d\"" >> $CONTAINERD_CFG
  fi

I think we can also add some kind of similar logic in AMI to prevent potential compatibility issues if we already thought it is possible.

I'm sorry for the annoyance this has caused. I would recommend a check like @dogzzdogzz suggests if you patch the containerd config file, because appending will always have this risk. If you override the bootstrap command, there's also the safer --containerd-config-file.


Add Impart Provider to registry

hi @sbzimpart thx for the contribution! you will need to add docs over in your repo, check out the deets in our docs
https://www.pulumi.com/docs/using-pulumi/pulumi-packages/how-to-author/#write-documentation

@susanev the docs have been added to the repo. Thanks!

Hi @susanev. Checking if anything else is needed for this pr.

@sbzimpart so sorry, missed ur comments! will review today


support https

thanks @jsstrn :star:

You're most welcome! :+1:

Moved the CloudFlare record from a A record to a CNAME record.

:+1:  As a later date, the assets will have a protocol relative url with an absolute path #35


[ENHANCEMENT] Publish net-install ISO

Is your enhancement related to a problem? Please describe.

Some users encounter installation problems when mounting Harvester ISO via BMC. The cause is image preloading is I/O intensive.
We can consider shipping a net-install ISO to let users skip the preloading-image stage.
The ISO is also suitable for users who are not willing to download a big ISO or burn the ISO to a double layer DVD.
Describe the solution you'd like

We can ship a net-install ISO without image tarballs since we already publish the cluster-repo image.
Describe alternatives you've considered

A flag in the installation to skip the preloading stage can be a workaround.
Additional context

For such an ISO, we also need to consider if we want to support an upgrade with it.

Add release note: to mention the net-install ISO in the Download -> ISO section.

@bk201 document for network installation with PXE boot is required.
Otherwise users will hit the error: '/var/lib/rancher/agent/image/rancherd-bootstrap-images-*.txt': No such file or directory when using PXE boot with net-install ISO.

Thanks, before I have the doc PR ready please add harvester.install.with_net_images=true to the kernel parameters.

Move back to implement as the node installed from net-install ISO unable to join existing cluster.
The log from journalctl -u rancher-system-agent.service -f

It's caused by dockerhub's rate limitation: https://docs.docker.com/docker-hub/download-rate-limit/
Will add this info to doc too.

Doc PR under review: https://github.com/harvester/docs/pull/516

Verified this enhancement has been applied.
Test Information

Environment: qemu/KVM 2 node
Harvester Version: v1.3.0-rc3
ui-source Option: Auto

Verify Steps
Case 1

Install Harvester main node with net-iso via CUI
Install Harvester with net-install ISO via CUI to join the main node
Install Harvester with net-install ISO via PXE boot to join the main node
Install Harvester with normal ISO to join the main node
Perform Harvester API tests in https://github.com/harvester/tests/tree/main/harvester_e2e_tests

Case 2

Install Harvester main node with net-iso via PXE boot
Install Harvester with net-install ISO via CUI to join the main node
Install Harvester with net-install ISO via PXE boot to join the main node
Install Harvester with normal ISO to join the main node
Perform Harvester API tests in https://github.com/harvester/tests/tree/main/harvester_e2e_tests

Case 3

Install Harvester main node with normal ISO
Install Harvester with net-install ISO via CUI to join the main node
Install Harvester with net-install ISO via PXE boot to join the main node
Perform Harvester API tests in https://github.com/harvester/tests/tree/main/harvester_e2e_tests