Avoid 'dist' subdirectory in published artifacts (requires changing UseBlazor middleware)

On publish, the assets are going into a folder with the same name as the app and web.config sits at the root of publish with rewrite rules to serve from {app_name}/dist.
publish
    -- StandaloneApp
        -- dist
            -- _framework
            -- css
            -- index.html
    -- web.config

... but I was expecting a much flatter structure akin to what has been done with ASP.NET Core ... something along the lines of ...
publish
   -- _framework
   -- css
   -- index.html
   -- web.config

I have the notion that dist is a holdover from other frameworks. Having the app name in the mix seems strange. Just wondering why it was setup this way?
Would it be an improvement to use the flatter structure (following the ASP.NET Core publishing philosophy these days)? The structure is simpler and the rewrite rules can be dropped. There might be an additional reason to use the flatter structure: My understanding was that the web.config was placed into a flat structure in ASP.NET Core because it allows publishing of multiple apps with WebDeploy. cc/ @shirhatti

Also ... any known regressions for IIS hosting? Assets seem to be available and loading. No messages in Console. index.html loads. The Loading ... message appears, then disappears. However, nothing else happens.

I think you're right that we could avoid the dist subdirectory in the published output. The only reason we have this currently is that the UseBlazor middleware expects there to be one. If we improved this code a bit so it didn't assume there would be a dist, and instead got that information from the .blazor.config file, we could avoid it in the publish output.
As for the other artifacts:

It's inevitable that standalone publishing has to have some URL rewriting rules, as that's the only way to make client-side routing work properly (for background info, see https://learn-blazor.com/getting-started/static-hosting/). This applies to all SPA frameworks, not just Blazor.
We do want to have the ClientAppName subdirectory, because this unifies standalone and hosted publishing. During hosted publishing, we want each of the client apps for a given server project to be deployed to bin/ClientAppName/ so as to guarantee no filename clashes.

I'll rename this issue to just "remove the 'dist' subdirectory" and leave it open on the backlog.

It's inevitable that standalone publishing has to have some URL rewriting rules

I added a note (Redirects for correct routing) to our tracking issue for the Host and deploy topic to make sure it's covered: https://github.com/aspnet/Docs/issues/5771

We do want to have the ClientAppName subdirectory

I see. I naively thought each project is published to its own bin folder, thus published to its own publish folder (per config). I take away from this that in the hosted project scenario that there's one project (one bin; one publish per config) that contains a single hosting app and one or more client apps. I linked this to our high level planning Wiki so that this will be covered in the Blazor directory structure topic.

Just adding a note here for future discussion of serverless Azure CDN hosting.
In addition to the lack of redirect capabilities at the moment for anything other than a Premium Azure CDN endpoint, there's another smaller problem with the directory structure of a published Blazor app: Without a completely flat directory structure, deployment to Azure CDN's $root container isn't going to be possible. No / path delimiters are allowed in $root, thus no fake folder structure is permissible. Hopefully, the upcoming Azure CDN default doc/redirect features will cover this hosting scenario. https://feedback.azure.com/forums/217298-storage/suggestions/6417741-static-website-hosting-in-azure-blob-storage

Azure Storage / Azure CDN for a completely serverless hosting setup
I have the standalone template app running on Azure Storage (and I think it will run on the Azure CDN in this configuration), but it took some hacks:

Because it has to be hosted in a non-$root container [path delimiters (/) aren't allowed in $root], I used an app container to hold the app. The <base> href in index.html is set to /app.
Pages/Index.cshtml :point_right: add @page "/app/index.html".
index.html :point_right: <link> and <script> links prefixed with app/.
_framework/blazor.js :point_right: Prefix four instances of _framework with app/ in the script.
Pages/FetchData.cshtml :point_right: Prefix URL for GetJsonAsync with app/.

... and you'll need to wait on the upcoming Azure Storage/CDN rewriting feature or go without address bar routing. Alternatively, the Premium Verizon CDN offers the Rules Engine that has a rewrite feature (might be $$$ ... idk).
If there was a completely flat publish option, it would have been possible to host in $root. It wouldn't need all of those app/ path prefixes. It would have only required the route template addition (item 2 above) sans app/.

I suspect if you set the base href to /app/ (with trailing slash) then you wouldn’t need to modify the other files to put in any prefixes there.

I tried it ...
Using /app/ ...

The app loads
It gets the CSS/JS loaded
The index page appears (with @page "/index.html" added to Index.cshtml)

... but internal routing :boom:. I'll play with it a bit more.

@SteveSandersonMS Thanks ... I added an "Option 2" :point_up: with that approach, which is definitely better because it eliminates having to mess around inside the blazor.js script.
However, to get rid of the app totally, it will need a completely flat publish option to avoid / delimiters, which aren't welcome in the Azure Storage $root container. I'll see about hacking up an "Option 3" that would allow that type of deployment (just for fun :smile:).


Improve asset system

I had a little play around with the asset system, not sure if I went too far (I originally was just updating the asset versions). My goal was to make it easier to update the assets, unify the assets under one remote source and provide a little more configuration. With remote_source, you could swap out, for example to unpkg.
I also have a local commit for moving the config out into mix.
This PR fixes #99

hah I was checking to fix this one because I forgot 😄

@avitex Niiiiceee! 💟
I would change some of the code just because it makes it more readable, people will read this code more than actually code it so I think is important, but it looks good to me.

@tlvenn If you have any comments on this one, considering your contributions updating the :advanced interface, please chime in 😄
I'm going to look at this in more depth this weekend.

I've made changes as per @yordis and @bruce's suggestions.
Also note I have a local commit for refactoring asset_config out into mix.

@benwilson512 I'll review this early tomorrow for inclusion in the next rc.

Hrmmm,  I can't merge this; looks like the source branch is gone and the patch file is even empty trying to do a manual pull. @avitex any ideas? Looks like your fork disappeared.


Support remote read on uni ps

What problem does this PR solve?
Issue Number: ref #6882
Problem Summary: Support read remote page on S3 directly inside Uni PS.
What is changed and how it works?

Add a new write type WriteBatchWriteType::PUT_REMOTE which just include the location info on S3 of the page;
Add a new type EditRecordType::UPDATE_REMOTE which is used to update local cache info for remote pages;
Determine whether to read locally or read from S3 by the is_local_data_reclaimed member inside CheckpointInfo;
When dump snapshot, do LZ4 compression on the record data;

Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/rebuild

/run-all-tests

/run-all-tests

/merge


Add missing tests and docs for modified query error codes

As a follow-up to #10746 , additional unit tests for JsonParserIterator are required as well as the query docs(https://druid.apache.org/docs/latest/querying/querying.html)  need to be updated with the latest error codes.
Supporting integration tests would be useful as well

Added milestone 0.21.0 to this issue, since #10746 is part of the 0.21.0 release


The Docker file has the make rule which is not appear in Makefile

What have you changed? (mandatory)
I change  make rule build_release  to  build_dist_release and add Copy two file which is needed for making
Please explain IN DETAIL what the changes are in this PR and why they are needed:

Summarize your change (mandatory)
How does this PR work? Need a brief introduction for the changed logic (optional)
Separately describe each logical change and avoid lazy messages (optional)
Describe any limitations of the current code (optional)

Please NOTE that:

Do not assume reviewers understand the original issue

What are the type of the changes? (mandatory)
The currently defined types are listed below, please pick one of the types for this PR by removing the others:

New feature (change which adds functionality)
Improvement (change which is an improvement to an existing feature)
Bug fix (change which fixes an issue)
Engineering (engineering change which doesn't change any feature or fix any issue)
Misc (other changes)

How has this PR been tested? (mandatory)
Please describe the tests that you ran to verify your changes. Have you finished unit tests, integration tests, or manual tests? What additional tests would give you greater confidence in this change?
Does this PR affect documentation (docs) or release note? (mandatory)

If there is a document change, please file a PR in (docs) and add the PR number here.
If this PR should be mentioned in the release note, please update the release note.

Does this PR affect tidb-ansible update? (mandatory)
If there is a configuration or metrics change, please file a PR in tidb-ansible, and add the PR number here.
Refer to a related PR or issue link (optional)
Benchmark result if necessary (optional)
Add a few positive/negative examples (optional)

Thanks @dhcn
#5017 fixes this problem.

Thanks for the contribution! However this PR duplicates to https://github.com/tikv/tikv/pull/5017 so I'm going to close it.


Fix for https://github.com/intuit/cfn-deploy/issues/13

Fix for https://github.com/intuit/cfn-deploy/issues/13

Hi @mridhul  - Could you please take a look at this PR ?


Fixed Drush & WP-CLI output formatting

Closes #539

I don't know how I feel about "normal" as a flag. But that shouldn't block this from moving forward.
:+1: :flags:

I'd started thinking as I was wrapping up that "interactive" may've been a better term to use. I could open a new issue/PR to that effect.


Don't require a minimum username length

Don't require a minimum username length
In https://github.com/gopasspw/gopass/pull/2293, minimum lengths began being enforced for some fields within the create wizard. One such field was username, however, this field should not be required for a simple password (in practice, email is used by many sites instead of username, so it's more convenient for me to assume my email is the "username" and allow specifying an actual username for cases where that isn't true)
RELEASE_NOTES=n/a
Signed-off-by: Landon Carter<EMAIL_ADDRESS>

If the email is the identifier then please enter that into the username field.

#2349 will change the way create templates are shipped, i.e. you will be able to modify them. So this makes this PR obsolete.


fix(explore): don't put ? if no query params

Hey, I just made a Pull Request!
Hello,
The Explore plugin frontend do a call to /api/explore/tools? with a trailing "?" sign at the end of the URL, when there are no filters.
I've some trouble on my internal proxy on this request , so I push this fix.
Thank you!
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Thank you @awanlin . You are right ; I added the unit test :)

@Rugvip, look good to me, can you take a peek?


Learn hardening steps of Windows VM

Describe the issue
Study on-prem Windows VM to learn the configuration used for security hardening.
Additional context

This will feed into how we handle VMs in all our clouds and the VM accelerator app, very important
Expecting that there will be manifest files lying about on the desktop or in some config folders, mostly likely at C:\ level
Requires BC Gov VPN access

Definition of done

Documented what BC Gov did to security hardened their Windows VM

see if we can detect user limitations

additional security tracking software that was installed

services turned off

Hardening steps get documented in a bcgov-c repo (cloud-ops...)
Reach out to Prabhu and Jon to do a ride along and collab on this ticket because Jon has the 2022 and 2019 config
Jon to share the above configs

"you asked for SSH not RDP"

Our team's VPN IP Ranges not in the allowlist

Julian to escalate

Sean from DXE shared the security config settings and verbally updated me, so no need for this VM.  I will share with the team


corrected template for verification mail message

https://gyazo.com/7f062e6988fca90c1a44632c0b85564a

https://gyazo.com/9857ec466bc59cd65c29ff76d78a3a89


Intl platform Namespace should not be blocked by locker

Internationalization is important, preventing the ability to query for localized formatting increases the pain of the devlopement

@mgetzbw please elaborate - Locker is simply exposing the public parts of the Aura API that the Aura FW team has signed up to support externally. What is being blocked that you think should not be?

@dutchchasman so in this case we needed to be able to find the currency symbol via the currencyisocode, currently Aura exposes no utility to do this but intl does. There is no reason this functionality should not be supported as it is currently supported on all browsers that aura or salesforce lightning experience support.

Perfect - just wanted to make sure we were talking about the same thing - and the fix for this is already in master and being cherry picked into 204/patch (the branch that corresponds to Salesforce Winter'17 patch) and is scheduled for release on or near 10/18.


Bumped Versions and Cleanup.

Updated to Minecraft Version 1.20.1
Updated some libs.
Removed unused imports.
Added missing unique annotation inside ElytraTrinketRendererMixin.
Converted ArmorContext into a record class.
Added missing authors to the fabric.mod.json

@enjarai can you at least tell me why you closed this entire pr?

Because I don't accept cleanup PR's I could do myself in 2 minutes.

Oh now i understand, good luck.


Update aws.md to add a warning that the sts service is needed for the…

… aws integration
internal ref: https://spacelift-io.slack.com/archives/C068YTSPXC1/p1725930920705999?thread_ts=1725924084.158409&cid=C068YTSPXC1
Description of the change

Checklist
Please make sure that the proposed change checks all the boxes below before requesting a review:

[x] I have reviewed the guidelines for contributing to this repository.
[x] The preview looks fine.
[x] The tests pass.
[x] The commit history is clean and meaningful.
[x] The pull request is opened against the main branch.
[x] The pull request is no longer marked as a draft.
[x] You agree to license your contribution under the MIT license to Spacelift (not required for Spacelift employees).
You have updated the navigation files correctly:

[x] No new pages have been added, or;
[ ] Only nav.yaml has been updated because the changes only apply to SaaS, or;
[ ] Only nav.self-hosted.yaml has been updated because the changes only apply to Self-Hosted, or;
[ ] Both nav.yaml and nav.self-hosted.yaml have been updated.

If the proposed change is ready to be merged, please request a review from @spacelift-io/solutions-engineering. Someone will review and merge the pull request.
Spacelift employees should request reviews from the relevant engineers and are allowed to merge pull requests after they got at least one approval.
Thank you for your contribution! 🙇

https://spacelift-user-documentation-pr-622.onrender.com/integrations/cloud-providers/aws.html#trust-policy


feat: [Storage] Support UniformBucketLevelAccess

This takes over from #782
Adds support for UBLA, workarounds have been removed

@googlebot I consent.


FE: Unnecessary full page re-rendering

After a page refresh (cold loading) clicking on brokers triggers a full page re-render including the menu bar which has already been rendered
https://github.com/kafbat/kafka-ui/assets/1494347/c7f90540-854b-4fd3-9da9-9eb836f4fefb

Hey Haarolean,
I am a student in Germany, and in one of my lectures, I need to work on an open-source project. I would like to look into this specific task.

Thank you. I will give me best to solve this issue!

If i create a Cluster and i click on Brokers i get an endless Loading screen until the whole website ist turning white. Did i do something wrong in the project Setup?

If i create a Cluster and i click on Brokers i get an endless Loading screen until the whole website ist turning white. Did i do something wrong in the project Setup?

check your browser's console to see what's wrong

i get a 500 Error with this message     "message": "Error while creating AdminClient for Cluster local",

@StefanG1102 this is a backend configuration issue. But I can't tell you what's wrong with just Error while creating AdminClient for Cluster local without looking at the backend (container) logs. If you're running one of the compose files (kafka-ui-arm64.yaml or kafka-ui.yaml) this should basically work out of the box.
Please check our dev docs: https://ui.docs.kafbat.io/
You can run the command specified here and set vite_dev_proxy in .env to localhost:8080.
I'm also available on discord if you need further help, the link is available in the project README.

I apologize for my inability to resolve the issue despite my best efforts. It appears that the problem requires a level of expertise beyond my current skill set. Nonetheless, I sincerely appreciate the opportunity to try.

@StefanG1102 no worries! Please take a look at the "up for grabs" board, there are simpler issues for sure :)
https://github.com/orgs/kafbat/projects/2


#452: Get correct index parameter (WIP)

Potential fix for #452

@sergibondarenko pending testing and review

@lmangani I think the first if statement never passes.
if (req.fetchParams && req.fetchParams.title) {       const index = req.fetchParams.title.toString() || req.fetchParams.title;       $scope.indices.push(index);     }
I guess this is due to req.fetchParams.title. req.fetchParams.title.index ?

@havlan patching, I mis-interpreted the provided example indeed

thanks @havlan corrected with a backwards compatible condition (hopefully!)

@lmangani excellent work! :+1:

@havlan did it work and solve the issue?

@lmangani from what I can manually test it works as intended. Thanks! watcher.txt

@sergibondarenko ready for merge on the next available round - thanks!

@sergibondarenko does this need any backporting and/or do we know if it affects previous versions?


style(icon): use camel case for main

Still not 100% on font loading with webpack via create-react-app, but this is definitely needed to start.

Deploy preview for hopeful-hamilton-4090b9 ready!
Built with commit 3a21eb7f534221cf8f29d87af02422b51837decf
https://deploy-preview-756--hopeful-hamilton-4090b9.netlify.com


Revert "hare: do not set HARECACHE on the setup hook"

Description of changes
This reverts commit a0165ee168c2f945b367261164e657b43956c7f2.
This broke the compilation of himitsu, because hare stubbornly aborts the build when it can't create it's cache directory.
See also: https://hydra.nixos.org/log/5cjp4qx5l2np0y56k3i0hmx8bs91zncq-himitsu-0.1.drv
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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

[X] 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/)
22.11 Release Notes (or backporting 22.05 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

Notify maintainers
@AndersonTorres

Definitely this is not good.
As I have said before, when using nix develop, setting HARECACHE as above creates an inaccessible directory, breaking the build. When I removed this, the nix shell worked.
For now I will close this and keep the conversation on the other PR.


Orchestration release checklist

Deployment checklist

[ ] Move all CLI stuff to new package (public and private), a10-neutronclient

[ ] Tests for CLI.

[ ] Install docs

[ ] Usage docs

[ ] Move all UI stuff to new pacakge (public and private), a10-horizon

[ ] Tests for GUI (write test plan, have Chelsea or Kristina execute)

[ ] Install docs

[ ] Usage docs

[ ] All public extensions, hooks, and filters into a10-neutron-lbaas

[ ] Full test coverage?

[ ] Install docs

[ ] Usage docs

TestsTemplate.xls.zip


HTTP2 locally-originated stream resets use the NO_ERROR code

HTTP2 locally-originated stream resets use the NO_ERROR code: When envoy originates a stream reset on an HTTP2 codec it sends a RST_STREAM frame but erroneously uses the NO_ERROR error code, causing clients to think the stream terminated successfully
Description:
When envoy's HTTP2 codec sends a stream reset, it converts the stream reset reason into an HTTP2 error code here. Only two reset reasons are covered, and the remainder reset with NO_ERROR. From the RFC, NO_ERROR indicates:

The associated condition is not a result of an error. For example, a GOAWAY might include this code to indicate graceful shutdown of a connection.

The other reset reasons (see all here) are terminated as NO_ERROR indicating that the stream is complete.
Here's an example where I ran into this issue:

Upstream is HTTP1
Downstream is HTTP2
Downstream sends a GET request as HTTP2
Upstream gets the request headers as HTTP1
Upstream sends happy response headers (200 OK) with Transfer-Encoding: chunked
Downstream receives response headers
Upstream sends response data in chunks, but gets an error part way through the response body. Headers were already sent, so all it can do is reset the HTTP1 stream
Envoy sees this as a protocol error, HPE_INVALID_EOF_STATE
Envoy proxies the reset by resetting the downstream HTTP2 stream
However the downstream stream is reset with 0x00, NO_ERROR
The client sees this and thinks the response body is complete and nothing is amiss, not realizing it doesn't have a complete response

Repro steps:
Python server to provide partial chunked responses over HTTP/1.1:
import socket
import threading

def handle_client(client_socket: socket.socket):
    _ = client_socket.recv(1024).decode()
    response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nTransfer-Encoding: chunked\r\n\r\n5\r\nHel"
    # response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nTransfer-Encoding: chunked\r\n\r\n5\r\nHello\r\n0\r\n\r\n"
    client_socket.sendall(response.encode())
    client_socket.close()

def start_server(host='<IP_ADDRESS>', port=8080):
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind((host, port))
    server_socket.listen(5)
    print(f"Serving HTTP on {host} port {port} ...")

    while True:
        client_socket, _ = server_socket.accept()
        client_handler = threading.Thread(target=handle_client, args=(client_socket,))
        client_handler.start()

if __name__ == "__main__":
    start_server()

Envoy config:
admin:
  address:
    socket_address: { address: <IP_ADDRESS>, port_value: 19901 }
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        address: <IP_ADDRESS>
        port_value: 10000
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          codec_type: HTTP2
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  cluster: service
  clusters:
  - name: service
    type: STATIC
    dns_lookup_family: V4_ONLY
    load_assignment:
      cluster_name: service
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: <IP_ADDRESS>
                port_value: 8080

then reach envoy via an nghttp client (settings, priority, window_update frames omitted):
with partial chunked response:
[  0.005] Connected
[  0.005] send HEADERS frame <length=38, flags=0x25, stream_id=13>
          ; END_STREAM | END_HEADERS | PRIORITY
          (padlen=0, dep_stream_id=11, weight=16, exclusive=0)
          ; Open new stream
          :method: GET
          :path: /
          :scheme: http
          :authority: localhost:10000
          accept: */*
          accept-encoding: gzip, deflate
          user-agent: nghttp2/1.63.0
[  0.045] recv (stream_id=13) :status: 200
[  0.045] recv (stream_id=13) content-type: text/plain
[  0.045] recv (stream_id=13) x-envoy-upstream-service-time: 7
[  0.045] recv (stream_id=13) date: Tue, 17 Sep 2024 23:18:26 GMT
[  0.045] recv (stream_id=13) server: envoy
[  0.045] recv HEADERS frame <length=65, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0)
          ; First response header
[  0.045] recv DATA frame <length=3, flags=0x00, stream_id=13>
[  0.045] recv RST_STREAM frame <length=4, flags=0x00, stream_id=13>
          (error_code=NO_ERROR(0x00))
[  0.045] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
          (last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])

with complete response:
[  0.011] Connected
[  0.011] send HEADERS frame <length=38, flags=0x25, stream_id=13>
          ; END_STREAM | END_HEADERS | PRIORITY
          (padlen=0, dep_stream_id=11, weight=16, exclusive=0)
          ; Open new stream
          :method: GET
          :path: /
          :scheme: http
          :authority: localhost:10000
          accept: */*
          accept-encoding: gzip, deflate
          user-agent: nghttp2/1.63.0
[  0.014] recv (stream_id=13) :status: 200
[  0.014] recv (stream_id=13) content-type: text/plain
[  0.014] recv (stream_id=13) x-envoy-upstream-service-time: 1
[  0.014] recv (stream_id=13) date: Tue, 17 Sep 2024 23:22:55 GMT
[  0.014] recv (stream_id=13) server: envoy
[  0.014] recv HEADERS frame <length=65, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0)
          ; First response header
[  0.014] recv DATA frame <length=5, flags=0x00, stream_id=13>
[  0.014] recv DATA frame <length=0, flags=0x01, stream_id=13>
          ; END_STREAM
[  0.014] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
          (last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])

Envoy trace logs around the event:
[2024-09-17 15:54:44.924][54449801][debug][client] [source/common/http/codec_client.cc:170] [Tags: "ConnectionId":"1"] Error dispatching received data: http/1.1 protocol error: HPE_INVALID_EOF_STATE
[2024-09-17 15:54:44.924][54449801][debug][client] [source/common/http/codec_client.cc:107] [Tags: "ConnectionId":"1"] disconnect. resetting 1 pending requests
[2024-09-17 15:54:44.924][54449801][debug][client] [source/common/http/codec_client.cc:158] [Tags: "ConnectionId":"1"] request reset
[2024-09-17 15:54:44.924][54449801][trace][main] [source/common/event/dispatcher_impl.cc:242] item added to deferred deletion list (size=1)
[2024-09-17 15:54:44.924][54449801][debug][router] [source/common/router/router.cc:1323] [Tags: "ConnectionId":"0","StreamId":"164029717455481211"] upstream reset: reset reason: protocol error, transport failure reason:
[2024-09-17 15:54:44.924][54449801][trace][main] [source/common/event/dispatcher_impl.cc:242] item added to deferred deletion list (size=2)
[2024-09-17 15:54:44.924][54449801][trace][main] [source/common/event/dispatcher_impl.cc:242] item added to deferred deletion list (size=3)
[2024-09-17 15:54:44.924][54449801][debug][http] [source/common/http/filter_manager.cc:974] [Tags: "ConnectionId":"0","StreamId":"164029717455481211"] Resetting stream due to upstream_reset_after_response_started{protocol_error}. Prior headers have already been sent
[2024-09-17 15:54:44.925][54449801][debug][http] [source/common/http/conn_manager_impl.cc:243] [Tags: "ConnectionId":"0","StreamId":"164029717455481211"] doEndStream() resetting stream
[2024-09-17 15:54:44.925][54449801][debug][http] [source/common/http/conn_manager_impl.cc:1932] [Tags: "ConnectionId":"0","StreamId":"164029717455481211"] stream reset: reset reason: protocol error, response details: -
[2024-09-17 15:54:44.925][54449801][trace][main] [source/common/event/dispatcher_impl.cc:242] item added to deferred deletion list (size=4)
[2024-09-17 15:54:44.925][54449801][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x11e76c2b0 for 3600000ms, min is 3600000ms
[2024-09-17 15:54:44.925][54449801][trace][http2] [source/common/http/http2/codec_impl.cc:1315] [Tags: "ConnectionId":"0"] about to send frame type=3, flags=0
[2024-09-17 15:54:44.925][54449801][trace][http2] [source/common/http/http2/codec_impl.cc:1337] [Tags: "ConnectionId":"0"] send data: bytes=13
[2024-09-17 15:54:44.925][54449801][trace][connection] [source/common/network/connection_impl.cc:529] [Tags: "ConnectionId":"0"] writing 13 bytes, end_stream false
[2024-09-17 15:54:44.925][54449801][trace][http2] [source/common/http/http2/codec_impl.cc:1208] [Tags: "ConnectionId":"0"] sent frame type=3, stream_id=1, length=4
[2024-09-17 15:54:44.925][54449801][debug][http2] [source/common/http/http2/codec_impl.cc:1237] [Tags: "ConnectionId":"0"] sent reset code=0
[2024-09-17 15:54:44.925][54449801][debug][http2] [source/common/http/http2/codec_impl.cc:1362] [Tags: "ConnectionId":"0"] stream 1 closed: 0

Desired behavior:
Envoy should use a non-zero error code when resetting HTTP2 streams. For the chunked encoding case, PROTOCOL_ERROR would seem appropriate.
I have a PR (will submit soon) that should fix this, but it will require us to make some decisions about what the right error codes are for each situation.

Looks like a bug.  I suspect the cause is
https://github.com/envoyproxy/envoy/blob/main/source/common/http/http2/codec_impl.cc#L104
where most unknown errors are converted to NO_ERROR.
Looking at https://httpwg.org/specs/rfc7540.html#NO_ERROR
I think that INTERNAL_ERROR is a better default.
The one gotcha is if the peer sends NO_ERROR we do want to propogate that, so I'd suggest also adding a new check around here
https://github.com/envoyproxy/envoy/blob/main/source/common/http/http2/codec_impl.cc#L1480
that if the error is NO_ERROR that we set the stream reset code to RemoteResetNoError and adapt reasonToReset to handle that case.


[master] HHH-11254 Timestamps cache fails validation if eviction strategy = MANUAL

https://hibernate.atlassian.net/browse/HHH-11254

@rvansa @pferraro Can you also conceive of a test that asserts this change?

@sebersole The current tests that cover query caching already flow through this validation. If we additionally to validate that EvictionStrategy.MANUAL is allowable (the only other strategy for which isEnabled() does not return true), then we'd need to upgrade to Infinispan to 8.2.5.Final.

I think this can get in as-is - Infinispan just got another enum value that's effectively NONE but provides different warnings. EvictionStrategy.isEnabled() returns false for those two enum values.

@pferraro +1 to upgrade to Infinispan to 8.2.5.Final, I'll do that.

I'll merge this as we need the fix. If anyone still thinks a test is due, please open a follow-up JIRA so we can address that as a separate task.

thanks @pferraro ! closing this as it's being cherry-picked.


Emily/model standardization

Basic Info
What's this pull request about?

Resolve #125 --- add a flag (standardize_within) that standardizes all variables within tasks, rather than across tasks.

Documentation

All standardization has been moved to the create_datasets() function. Previously, standardization was taking place before we created the test set --- but this actually meant we (incorrectly) also standardized the task features, which is corrected in this PR.

standardize_within defaults to FALSE (this is a design decision that I elaborate on in the next 2 bullets).

Overall, there's a mixed impact on model performance. For CSOP (the blended model), R^2 goes up from 0.1818 to 0.1945 when you standardize within (versus across). For the 4-task joint model, the R^2 goes down from 0.1926 to 0.1896. Importantly, though, a major difference seems to be that the models that use within-standardized features have more subtle grammatical features as their top features --- things like the number of auxiliary verbs --- rather than positivity and wordcount (which were previously the top features, but these had significant between-task variation that got neutralized by the normalization).

Given the mixed impact on model performance, my weakly-held opinion is that we should default to standardizing across tasks (what we had before). When we standardize within tasks, we're essentially eliminating a lot of the between-task variation that makes the task features interesting; notice how, when we standardize across tasks, the task features end up becoming much more important, because they help explain some of the between-task variation.

(I could be wrong in this decision? @yashveersinghsohi feel free to weigh in!!)
Testing
This is what the conversation dataframe looks like, when standardizing within each task:

And this is the same dataframe, standardizing across all tasks. Notice that average_num_words has huge values for the first few rows (as those are all juries).

I agree with your reasoning behind setting this flag to False. I think in the current implementation we might be missing the case when the user supplies one dataset only for training (and/or testing). From the image below we can see that In this case we are not standardizing the features (the columns from the raw csop have the same distribution as the one from the preprocessed csop).

I have added some lines of code to do this (as comments) here.
If the edit makes sense, feel free to uncomment and push it. Since we have set the flag to False, this change should not really affect the model.ipynb notebook. It is merely a sanity check for the case when we set the flag to True and have just a single dataset in training (and/or testing).
Otherwise we are good to merge this in with main!

Hey @yashveersinghsohi great catch! I realized with your comment that we aren't standardizing at all in the case where we have 1 dataset. That seems incorrect, so I added standardization back in.
But upon additional thought, I feel like perhaps we should standardize regardless of the value of the standardize_within flag, since standardizing within and standardizing across are the same (there is 1 dataset, so there's nothing to standardize 'across'...). So I uncommented the second line but not the if statement.
Does that check out with you?

Yeah that makes sense.
In that case, we can approve this one and merge it with main.


Appending a list to itself causes an error

Running the below code throws a modified collection error.  The code that prompted this issue was doing . += ..().

Whoever implements this please also add an optional lint this is bullshit

It's not possible for the compiler to know you're doing this in most helpful scenarios. The code that prompted this issue was doing . += ..().

Should work as long as you don't add a layer of indirection by putting it into a bar? Looking for more of a typo-catcher


Removing tar tranformation, as it is error prone and not needed.

See:
https://www.debian.org/doc/manuals/debmake-doc/ch05.en.html#name-version
https://en.wikipedia.org/wiki/Debian_build_toolchain#Source_packages

Closes #12


bad request - path based routing

(below configuration had worked for couple of times 3-4 months back. But right now its not. I am currently trying this in central india - worked earlier southeast asia)
I have deployed 2 simple apps into AKS

Guestbook - exposed as frontend service at port 80
An API App with path /api/values exposed as apiservice at port 80

Can access front app (guestbook) without any issue.
However when I try to access the api - I get bad gateway error.
I have tried with path /api/* or /api/values
also I tried to use appgw.ingress.kubernetes.io/backend-path-prefix: "/"
But nothing worked.
Here are my services
kubectl get services
NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
apiservice     ClusterIP   <IP_ADDRESS>             80/TCP     23h
frontend       ClusterIP   <IP_ADDRESS>            80/TCP     23h
Output within a pod for the API service.
curl apiservice/api/values
["value1","value2"]

when I access from Application gateway URL - I get bad gateway error.
Here is my ingress yaml.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: guestbook
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - host: tupakscin.centralindia.cloudapp.azure.com
    http:
      paths:
      - path: /api/*
        backend:
          serviceName: apiservice
          servicePort: 80
      - backend:
          serviceName: frontend
          servicePort: 80

Ingress Controller details

Output of kubectl describe pod <ingress controller> . The  pod name can be obtained by running helm list.

Name:               invited-whale-ingress-azure-5d65689dd-vhjjt
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               aks-agentpool-16978572-1/<IP_ADDRESS>
Start Time:         Thu, 04 Jul 2019 12:30:09 +0530
Labels:             aadpodidbinding=invited-whale-ingress-azure
                    app=ingress-azure
                    pod-template-hash=5d65689dd
                    release=invited-whale
Annotations:        <none>
Status:             Running
IP:                 <IP_ADDRESS>
Controlled By:      ReplicaSet/invited-whale-ingress-azure-5d65689dd
Containers:
  ingress-azure:
    Container ID:   docker://0a233c3e696227123ba1820b58c525792e19e00506f8eadaeb28f2f4533eac26
    Image:          mcr.microsoft.com/azure-application-gateway/kubernetes-ingress:0.3.0
    Image ID:       docker-pullable://mcr.microsoft.com/azure-application-gateway/kubernetes-ingress@sha256:c110f441f81fc53060d4a88367ca9430c681e9a513cc978d55bed8c9025e9121
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Thu, 04 Jul 2019 12:30:12 +0530
    Ready:          True
    Restart Count:  0
    Environment Variables from:
      invited-whale-cm-ingress-azure  ConfigMap  Optional: false
    Environment:
      KUBERNETES_PORT_443_TCP_ADDR:  akswithappgw-dns-e84e861d.hcp.centralindia.azmk8s.io
      KUBERNETES_PORT:               tcp://akswithappgw-dns-e84e861d.hcp.centralindia.azmk8s.io:443
      KUBERNETES_PORT_443_TCP:       tcp://akswithappgw-dns-e84e861d.hcp.centralindia.azmk8s.io:443
      KUBERNETES_SERVICE_HOST:       akswithappgw-dns-e84e861d.hcp.centralindia.azmk8s.io
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from invited-whale-sa-ingress-azure-token-r4vgn (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  invited-whale-sa-ingress-azure-token-r4vgn:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  invited-whale-sa-ingress-azure-token-r4vgn
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:          <none>

Output of `kubectl logs .

ERROR: logging before flag.Parse: I0705 04:45:01.499784       1 eventqueue.go:60] Enqueuing skip(false) item
ERROR: logging before flag.Parse: I0705 04:45:01.500065       1 eventqueue.go:119] Processing event begin, time since event generation: 283.602µs
ERROR: logging before flag.Parse: I0705 04:45:01.500165       1 controller.go:50] controller.processEvent called with type k8scontext.Event
ERROR: logging before flag.Parse: I0705 04:45:01.545295       1 controller.go:98] ~~~~~~~~ ↓ ApplicationGateway deployment ↓ ~~~~~~~~
ERROR: logging before flag.Parse: I0705 04:45:21.879573       1 controller.go:112] deployment took 20.334229047s
ERROR: logging before flag.Parse: I0705 04:45:21.879670       1 controller.go:119] ~~~~~~~~ ↑ ApplicationGateway deployment ↑ ~~~~~~~~
ERROR: logging before flag.Parse: I0705 04:45:21.879714       1 eventqueue.go:128] Processing event done, updating lastEventTimestamp
ERROR: logging before flag.Parse: I0705 04:54:06.476173       1 eventqueue.go:60] Enqueuing skip(false) item
ERROR: logging before flag.Parse: I0705 04:54:06.476491       1 eventqueue.go:119] Processing event begin, time since event generation: 319.402µs
ERROR: logging before flag.Parse: I0705 04:54:06.476523       1 controller.go:50] controller.processEvent called with type k8scontext.Event
ERROR: logging before flag.Parse: I0705 04:54:06.606571       1 controller.go:98] ~~~~~~~~ ↓ ApplicationGateway deployment ↓ ~~~~~~~~
ERROR: logging before flag.Parse: I0705 04:54:27.046162       1 controller.go:112] deployment took 20.439555095s
ERROR: logging before flag.Parse: I0705 04:54:27.046263       1 controller.go:119] ~~~~~~~~ ↑ ApplicationGateway deployment ↑ ~~~~~~~~
ERROR: logging before flag.Parse: I0705 04:54:27.046297       1 eventqueue.go:128] Processing event done, updating lastEventTimestamp

Any Azure support tickets associated with this issue.
119070523000775

Hi @mtuppad,
From the format of the logs you attached to this issue I see that you are using a relatively old version of the Ingress Controller.
Please follow this document to upgrade to the latest version of AGIC (as of this writing this is 0.7.1)
AGIC has a way to enable verbose logging, which would show you detailed information on what configuration it is applying to the Azure Application Gateway. Here is how to enable verbose logging, should that be necessary after you upgrade.
If you're still seeing 502 Bad Gateway after the upgrade, could you please enable verbose logging and attach these here (with some sanitization of sensitive data).  I'd love to also see the Kubernetes Service YAML - do we actually have the services referenced in the Ingress - the latest version of AGIC would log an error when these are not setup correctly.
Would love to get your feedback on documentation, logging, upgrade process etc.

Thanks @draychev
I followed you suggestion.

Upgraded AGIC to 0.7.1
Enabled verbose logging (I feel we need update the documentation here - as it is not there in sample file)

Still got 502 error.
When I looked at health probes - it was using host name as localhost ( as I didn't mentions host name in my ingress and path to /api/*
However my api app doesn't have any response for /api/*. So it was showing unhealthy.
So I changed my ingress controller to
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: guestbook
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - host: tupakscin.centralindia.cloudapp.azure.com
    http:
      paths:
      - path: /api/values
        backend:
          serviceName: apiservice
          servicePort: 80
      - backend:
          serviceName: frontend
          servicePort: 80

Now it works fine.
Have question
what if my api host have multiple end points such as
/api/values
/api/getcustomer
/api/getvehicles
what would be my ingress controller config looks like?
Do I need to create 3 different path to point to same service?
is there any way to use /api/* and mention custom probe?

I was able to update my deployment yaml as below and use wild card path specification. Now I can access my apis.
Updated yaml files.
apiVersion: v1
kind: Service
metadata:
  name: apiservice
  labels:
    app: apiapp
    tier: backend
spec:
  # if your cluster supports it, uncomment the following to automatically create
  # an external load-balanced IP for the frontend service.
  # type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: apiapp
    tier: backend
---
apiVersion: apps/v1 #  for k8s versions before 1.9.0 use apps/v1beta2  and before 1.8.0 use extensions/v1beta1
kind: Deployment
metadata:
  name: apiapp
spec:
  selector:
    matchLabels:
      app: apiapp
      tier: backend
  replicas: 1
  template:
    metadata:
      labels:
        app: apiapp
        tier: backend
    spec:
      containers:
      - name: apiapp
        image: myacr.azurecr.io/apisample
        resources:
          requests:
            cpu: 200m
            memory: 200Mi
        readinessProbe:
          httpGet:
            path: /api/values
            port: 80
          periodSeconds: 30
          timeoutSeconds: 3
        env:
        - name: GET_HOSTS_FROM
          value: dns
          ports:
        - containerPort: 80

updated ingress controller.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: guestbook
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - host: tupakscin.centralindia.cloudapp.azure.com
    http:
      paths:
      - path: /api/*
        backend:
          serviceName: apiservice
          servicePort: 80
      - backend:
          serviceName: frontend
          servicePort: 80

Thanks again for the help.


arch/stm32f7: Fixes bug in tickless driver where the compare register…

… is set to a value less than the current time.
Summary
When using a very high resolution timer, and very small time intervals, it is possible for the Compare register of the STM32 timer peripheral to be set to a value that has just passed. This means the timer expiration won't happen until a full overflow cycle of the timer.
The proposed solution is to disable interrupts, set the capture register, and then after, but before turning back on interrupts, check to see if the time has already passed. If it has, we force the expiration immediately.
Impact
All tickless drivers should be evaluated for this flaw. The LPC family devices have more protection for this and guided my understanding of this issue.
Testing
Run on STM32F765 processor with 1us clock and interval timers of varying times - some very short (6us)

I can't get the nxstyle line 800 error to go away. Otherwise I fixed all other formatting issues.
This is ready for final review and then merging.

@antmerlino I fixed that nxstyle error.
@davids5 @xiaoxiang781216 @patacongo If you don't have any other concerns, please merge.

LGTM.


D4mac win 1705 ce 9

what's changed

release notes for 1705 CE 9 Docker for Mac, Windows
added some missing release notes on both (C36)
copyedits on dates, titles, made Edge release notes titles consistent, included RC numbers

Reviewers, fyi
@gtardif @magnus @dsheets @friism @jeanlaurent

LGTM


Implement relabeling functionality in the Loki logger.

This allows the user to control the labels on the entries sent to Loki, similar to how promtail allows it:
https://grafana.com/docs/loki/latest/clients/promtail/configuration/#relabel_configs. This should grealy improve query performance by allowing the user to configure labels to filter their most relevant log entries.
There is no change to the default behavior of the logger with regards to the identity and job labels. But they can now be adjusted by the relabel-config as well.
Log entries can also be dropped if all labels are removed.
End to end tested:

Good catch, fixed the identity label.

One more thing, can you make the linter happy ?

Done.


Modules conflicting with with MC formating

Hello. Here are some module I found conflicting with the latest MC formatting changes:
Quick Module Enable: Causes bottom buttons of Manage Modules window to drop off the screen in big mode (no problem with Settings window) and adds a large empty area below those buttons in normal mode.
Window Controls: Causes the Configure Settings -> Module Settings to not make full use of the window height (window larger than content) in normal mode. No problem in big mode.
SocketSettings: Not so much a conflict, but a fix. MC in big mode fixes SocketSettings causing two scroll-bars (window size) in normal mode.

Quick Module Enable Alright, well those are really big words and completely throws off the UI. I wonder if instead of trying to set my heights via css I need to just use javascript. Its not as efficient but it'll prevent more of these conflicts... Also I might just patch this module, cause it makes the screen ugly either way.
Window Controls I am not sure what you are describing here? If you can, please provide a screenshot.
SocketSettings Are you saying I fix this with my module, or this needs fixed by my module? It appears my module makes the window work a little nicer with socketsettings enabled. However I'd like to make the settings button more consistent and fix issues when you enable the Options in SocketSettings

Windows Controls conflict in normal mode (not Big Picture mode):

SocketSettings: I am saying that MC fixed the SocketSettings issue when Big Picture mode is used, because then the window size is fixed (and usually enlarged). I posted an issue with SocketSettings, because it is their issue, but MC kind of works around it.
The scroll-bar happens, because SocketSettings causes the Core Settings window to originally not scale properly big. Once you click another tab and back (like Module Settings and then back to System Settings) it's fixed by the window being resized.
When Big Picture mode is not used then fixed windows might be the way to go, others may have more insight on that, though. Only the System Settings (PF2) are few enough to not need the full height of the screen in my world, so dynamic sizes would do little for them, unless a maximum size is set (maybe 3/4 or 2/3 screen height max?).

Can you provide you provide me with a list of modules you are using, I am not sure its windows controls causing that issue for you?

Oh yeah, I kinda just setting the default height of that window to 75% of the screen height. I think this will fix that additional scrollbar for not only my module, but many others that adjust those screens. Basically foundry takes the height of the window before renderSettingsConfig, so any module that uses that hook and adds stuff breaks foundry's expected height. By giving the scrollable area a defined height, foundry wont auto adjusts the height of this window as much, but it does mean your stuck with a window that may have lots of blank space... I personally would like to have the blank space then the additional scrollbar.

You need to expand the settings to see the window content being cut off in height.

What system are you using? It might be the issue.

I am using PF2E, but I see the same in a newly created DnD5E world. Firefox with extensions or Chrome without.
You might be using too large a zoom (including Chrome by default using Windows DPI settings to zoom in even at 100%)? The lower the browser zoom the more it becomes apparent.
30%:

170%:

I for the life of me can not replicate this one, I'd be happy to hope into a discord call and you can share your screen if you are okay with that... But I am at a loss otherwise.

Most of these should be resolved with the exception of Quick Module Enable, which I do have a plan to resolve in the next release

For Window control, here's the same issue with screenshot
https://github.com/saif-ellafi/foundryvtt-window-controls/issues/17

Does this exists when using version 1.1.7+?

No update on this in a long time. Assuming its been resolved


Added new bookstores how to do it?

Hi guys with SDK 1.5.x added random numbers, it is true that I had written un my small library for them in the meantime ( https://github.com/Martinix75/Raspberry_Pico ). But since now there is the official one, I wrappata, added in the libreire and also added to "Piconim.nim"
pico_rand.nim
type
  rng_128_t* {.bycopy.} = object
    r*: array[2, uint64]

{.push header: "pico/rand.h".}

proc getRand128*(rand128: ptr rng_128_t) {.importC: "get_rand_128".}
proc getRand64*(): uint64 {.importC: "get_rand_64".}
proc getBand32*(): uint32 {.importC: "get_rand_32".}
{.pop.}

end piconim.nim
type
  LinkableLib = enum
    stdio = "pico_stdlib"
    multicore = "pico_multicore"
    gpio = "pico_stdlib"
    adc = "hardware_adc"
    pio = "hardware_pio"
    dma = "hardware_dma"
    i2c = "hardware_i2c"
    rtc = "hardware_rtc"
    uart = "hardware_uart"
    spi = "hardware_spi"
    clock = "hardware_clocks"
    reset = "hardware_resets"
    flash = "hardware_flash"
    pwm = "hardware_pwm"
    interp = "hardware_interp"
    rand = "pico_rand" # <----- add this!!!!!

But the following mistake returns to me, or I make a very stupid error, or I have to change more (to test). So what should I change again ??? Thank you
[ 12%] Built target ELF2UF2Build
[ 13%] Building C object CMakeFiles/cazzo.dir/nimcache/@m..@s..@s..@s.nimble@spkgs@spicostdlib-0.3.3<EMAIL_ADDRESS>[ 14%] Building C object CMakeFiles/cazzo.dir/nimcache/@m..@s..@s..@sbin@snim@slib@sstd<EMAIL_ADDRESS>[ 15%] Building C object CMakeFiles/cazzo.dir/nimcache/@m..@s..@s..@sbin@snim<EMAIL_ADDRESS>[ 17%] Building C object CMakeFiles/cazzo.dir/nimcache/@m..@s..@s..@sbin@snim@slib<EMAIL_ADDRESS>[ 18%] Building C object CMakeFiles/cazzo.dir/nimcache/caz.c.obj
/home/andrea/ProgPicoNim/caz/csource/build/nimcache/caz.c:6:10: fatal error: pico/rand.h: No such file or directory
    6 | #include "pico/rand.h"
      |          ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/cazzo.dir/build.make:132: CMakeFiles/cazzo.dir/nimcache/caz.c.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:1509: CMakeFiles/caz.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
make: Leaving directory '/home/andrea/ProgPicoNim/caz/csource/build'

bye by Andrea

https://github.com/EmbeddedNim/picostdlib/pull/62 will close this, we're just doing some final house cleaning on it.

ok !! Maybe I will reopen it later, it's not urgent, for now I use my library!


151948534 User requires a new dashboard tab for unresolved stuff

What does this PR do?

Implements the feature to enabling a user to have separate dashboard for viewing their failed jobs

Description of task to be completed

Add template for the unresolved jobs page
Add view function to the front application to render template for unresolved jobs page

What are the relevant pivotal tracker stories?
#151948534

Coverage decreased (-0.4%) to 80.532% when pulling 627979cee934812d0bd759cc47bfdb352f85d00d on ft-dashboard-failed-checks-151948534 into 19461ff1c053da359f714ad2a9f2bb20962a5760 on develop.


BudgetPlanner added

Issue reference:
Fixes #<ISSUE_NUMBER>
Proposed changes:
Type of change:
Please delete options that are not relevant.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation

Additional info (if any):

@KIRTIKUMARKK21
You added a submodule. Please delete the .git folder inside your project and then create a new pull request.


timewarrior: 1.1.1 -> 1.2.0

Switch to fetch sources from github.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @mrVanDalo

@mrVanDalo The email contact from the maintainers file is not available. Your website has an email address, but that has (maybe?) a typo in the part before the @. You should fix this, really!

@matthewbauer The mailbox was full, because the mail provider is not that great. I will setup a mail server in the next weeks

Wrong Matthias.


Documentation

How is this library been used. I can bearly understand what it is all about. Can you kindly explain more about it's function.
BR

Hi @snaquaye,
This library is simply an interface for the TWAIN specification. In order to use it I recommend becoming familiar with the TWAIN specification itself, and by following some of the C TWAIN samples.
You can also reference this issue for some starter code that utilizes this library.
Hope that helps you going,
Cheers


how to get comment by link post

hi
how to get comment by link post in instagram?
tnx

Could you elaborate on that. Please fill out the form next time.

I want to list the comments of a post. In such a way that
Give the link of a post to the program and that program will print the comments of that post as output
Excuse me, which form?

comments of a post

Use ig.feed.mediaComments(id)

link of a post

Look here to convert the shortcode to a media id.

Excuse me, which form?

You're supposed to fill out an issue template.

Use ig.feed.mediaComments(id)
What does this do?

output =>
MediaCommentsFeed {
attemptOptions: {
delay: 60000,
factor: 1.5,
maxAttempts: 10,
minDelay: 60000,
maxDelay: 300000,
jitter: true
},
rankToken: 'cdf7c988-9145-5470-9e62-a83d0f93a05d',
id: 'sajadadiineh'
}


Issue spending points & switching to clan with 0 appearance

If you spend points in Appearance then switch to a clan with 0 appearance, the points are not reset.

Consider switching the attribute table off of ng-table format, just so this has a chance of working like it did before, or just warn users of the rule that certain clans can't have Appearance over 0 without a certain Merit.


[ENH] Handle first echo separately for meepi

The current integration of multi-echo processes all echos separately (unless T2* coregistration is selected). Ideally, the motion parameters should only be computed for the first echo and then applied across echos, to match what's done in ME-ICA.
This PR builds on #876, where head motion parameters were estimated before (and separately from) STC. Here, motion params should be estimated with only the first echo, but all echos should be fed into STC and subsequent processing.

Let me know when this is ready for review ;)

Thanks for the catch (and for being so on top of things)!

Ok, I think this is ready for review. I'd appreciate any feedback, particularly on the nipype workflow logic!

I'll try to allocate time for this review tomorrow. Sorry for the wait

Don't worry about the delay. I'm reverting this to WIP, as the outputs look off on one data set. Will update.

Ok, I'm slowly coming back. Can I ask you to merge with current master?

I went ahead and updated this to start address your review comments ! I added in #921 to be able to run locally, but can remove if you're not happy with the code I've sketched out there.

Okay, this is almost there! Only two tests failed:
ds005 - you need to merge upstream/master again to update the outputs.
ds000210 - you need to add an "outputs file" here. For you, the contents of this output file would were generated in your latest build

Just to clarify a bit: fmriprep checks that the expected outputs exist in the output directory. These files just help us developers to keep track of the generated files, and make sure none is missing or extra files have appeared without explicit intention.

Thanks for linking those artifacts ! I had the file, but the listed files were from my local build and so didn't match those generated with some of the updates incorporated here. I'll merge master now and patch the build conflicts.
To confirm, do you have thoughts on issuing a warning for users who request --t2s-coreg with non-multi-echo data?

After looking at the report, I have a couple of thoughts:

We should probably generate only one EPI-to-T1 plot, right? If I understand the PR correctly, this is generating a T2* map to perform the co-registration. Is that correct? That way, we would also get to visualize the T2* map in the reports so the users can assess it looks alright.

ROIs plot:

the aCompCor mask (pink) is a lot smaller it usually is. That could indicate a problem on the transformation of the segmentation from T1 (and therefore because the downsampled data) or that the EPI mask is very small.
Can you think of a way of calculating both masks only once? These masks, like HMC and co-registration, should be fundamentally the same for all echoes.

Thanks for reviewing this ! To answer your questions:

Yes, this is generating a T2* map and using it in the coregistration-- the generated T2* map is the only "EPI" shown for all echos in the EPI-T1 coregistration plots. So yes, having only one (non-redundant) plot would be ideal !

A non-downsampled report is available here. The aCompCor mask in a non-downsampled dataset looks normal to my viewing, but obviously you have much more experience with these ! Would love to know your thoughts.

Re: calculating both masks once, I hadn't considered that, but you're right that since they're coming from the anatomical scan they'll still only be calculated once. I'll look through now to see how we could reduce the number of times they're created.

To follow-up on the last point, though, tCompCor could differ across echos. Would we then be splitting those reportlets ?

Sorry, I needed some time to maturate my answer:

Do you plan to reduce the multiplicity of EPI-T1 registration plots? I'd say that'd be part of this PR. Let me know if you need any pointers 👍 .
Your high-resolution report looks good indeed! Thanks!
Regarding the t/aCompCor: is CompCor necessary or even applicable if you plan to use ME-ICA? Maybe we are splitting hairs here. That said, I think we can easily merge tCompCor masks calculating the union of all echoes, or maybe calculate it only using the echo closest to 30ms (the typical TE of a single-echo EPI).

In general, I think we should fine tune the contrast range of plots using the T2*, since only the CSF is really visible.

Re: reducing EPI-T1 plots; I'll look into it tomorrow and get back to you, thanks !
For CompCor, it isn't really applicable with ME-ICA. However, this integration with fmriprep would still allow users to consider the preprocessed echos individually, so I'm happy to support CompCor for now if you'd prefer. If so, I'd advocate for calculating tCompCor only from the middle echo, since that's closest to where the measure was validated.

Ok, the number of plots is down to one when using T2* maps for coregistration ! Any pointers on where the contrast in the plot is generated ?

I think I'd prefer to open another issue, especially since I'm also trying to understand exactly why we're no longer able to use BBR for the T2* image— since the T2* map is really emphasizing the boundaries, and should be best with BBR ! WDYT ?

Sounds good to me. Let me have a final review to make sure everything looks good?

That code comment should read "first echo" ! Thanks for the catch.
It's news to me, though, that the echo ordering is allowed to diverge from
acquisition time in BIDS standard. I find that rather surprising. Any
insight as to why @chrisfilo? I'm struggling to think of a situation where
that would aid interpretation, if "echo-2" has the first echo time. Or do
you mean that they could be labeled as e.g. "echo-first"?
Elizabeth
On Feb 27, 2018 03:09, "Oscar Esteban"<EMAIL_ADDRESS>wrote:

@oesteban commented on this pull request.
In fmriprep/workflows/bold/base.py
https://github.com/poldracklab/fmriprep/pull/891#discussion_r170841706:

@@ -453,6 +445,30 @@ def init_func_preproc_wf(bold_file, ignore, freesurfer,
(summary, func_reports_wf, [('out_report', 'inputnode.summary_report')]),
])

if multiecho data, select middle echo for hmc correction

This is something I have overlooked so far. Talking today with Chris I
learned that the order of echoes (echo-[1-3]) may not align with the
acquisition order. Therefore, selecting the first echo does not ensure that
you are using a particular echo time.
Additionally, the comment says middle echo but the interface selects the
first. Am I correct?
(I think this is the very last comment from me)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/poldracklab/fmriprep/pull/891#pullrequestreview-99587998,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AOUk50c-yqtZVbm8aEPzobBymxtbohR7ks5tY7gzgaJpZM4RCh5h
.

It was a rather nitpicky comment on my side. There is nothing in the spec saying that echo-1 corresponds to shortest echo rather than the longest. Even though the opposite is unlikely might be better to pick the appropriate echo based on the JSON metadata (easy with get_metadata function from pybids).
But this is just a tiny detail that should be left to another PR. I am way to excited to see MEICA integrated into FMRIPREP to delay the current PR any longer :)

@emdupre could you update the comment to say the "first echo" making sure you use the [skip ci] tag so I merge this now?

I said it before, but I feel the need to repeat it: this is astonishing work. For some reason the Circle tests were triggered but I'll merge now anyways.

+1000!
Best,
Chris
On Tue, Feb 27, 2018 at 10:41 AM, Oscar Esteban<EMAIL_ADDRESS>wrote:

I said it before, but I feel the need to repeat it: this is astonishing
work. For some reason the Circle tests were triggered but I'll merge now
anyways.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/poldracklab/fmriprep/pull/891#issuecomment-368981914,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAOkp2yAEi5XlqosNKaUe-law9TLxGO6ks5tZEwhgaJpZM4RCh5h
.


Acknowledgments?

您可以加我和Unknwon吗？
Could you re-add Unknwon and myself to the Acknowledgments?
For some odd reason it was deleted in this commit here.
The English version was mostly translated by Unknwon and myself back in 2013.
Also I wrote up the code section. I wish I finished but ran out of time. :-)

Reference: https://github.com/Unknwon/build-web-application-with-golang_EN/
@Unknwon

@LarryBattle sorry to forget to add the Acknowledgments into the repo. I want to add a Acknowledgments for all translators for this book.  Not only for English or the other one.  Long time no maintain this repo. I also think need to upgrade many content now. The same case like you I also ran out of time. 😃

https://github.com/astaxie/build-web-application-with-golang/commit/b9dbf79fcb001f6dff1682a5b1100839a5b89fe1


Add --no-advice to perf report, small fixes

Ticket
n/a
Problem description
Small improvements to the perf report script
What's changed

Add --no-advice to skip the advice section
Do not use the , separator in the ID column
Improve the fidelity advice
Use us instead of µs for compatibility with more terminals

Checklist

[ ] Post commit CI passes
[ ] Blackhole Post commit (n/a)
[ ] Model regression CI testing passes (n/a)
[ ] Device performance regression CI testing passes (n/a)
[ ] New/Existing tests provide coverage for changes (n/a)

Making myself the CODEOWNER for this script, it doesn't affect anything else in CI and it'd be a lot better if I could push changes to it without requiring review from another timezone.


Weeky TimeSheet Notification

Hi,
I downloaded the solution successfully... but I saw this notification (One or more commands are unavailable due to your current privileges for this environment)
Thanks in advance

That sounds like an issue with your permissions in the environment.  You need at least Basic User and System Customizer to import solutions


Feature Request: Add TCP support

Hi, it's it possible to add TCP support ?

I think so.. feel free to open a pull request and we can take it from there :)

closed due to lack of activity


Question about the formulation

Thanks for your great work !
I have a question about the formulation in the paper.

As the formulation above, the parameter with subscript $t$ is the target regression value of the network.

And when calculating the RDIoU, we use the regression value directly, instead of transfering the regression value to bounding box value in 2D bbox, then calculate the IoU. Is my understanding right?

So it's not like what the most IoU do.


Test with JDK 16 (Will only support the non-LTS 18 in the near future)

JDK15: https://openjdk.java.net/jeps/373 (Reimplement the Legacy DatagramSocket API)

Done.


Enable and improve integration test scenarios for vscode plugin based debugging support

Description:
$subject.
Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Closing since the vscode based debugger integration test scenarios are implemented and enabled in the vscode plugin repository.


Plot example in rendered README.md not aligned under Firefox

When I check the README.md in firefox, I see the following:
. Looks good under chromion. It's perfectly aligned when I check the raw readme from firefox of when I copy the contents to an editor.
Not sure if this is really an issue with uproot-browser, because this plot is done by plotext it might be a plotext issue or it might be an issue of github not using strictly fixed-width fonts for rendering bash blocks. But I'm reporting here anyway because at least it seems an issue with the uproot-browser readme, no matter where the cause lies.
I use Firefox 98.0.1 under ArchLinux with the  5.16.14 Kernel under Wayland (sway) and could reproduce the issue in Firefox safe mode (no addons). The font of the code-block is according to the "Fontanello"-addon ui-monospace. Not sure what else I can report but I thought better report this in case you are not aware

Yes, we've seen this on some browsers, thought not that extreme yet. It should be fine in a terminal (and I like highlighting that the plot really is just plain text by using it instead of an image), but that is pretty bad. An image wouldn't match light/dark mode either  (though plotext actually always plots in white at the moment).

I agree with it being plain-text being useful, e.g. I liked just copy-pasting the example to share it in a code-block on slack to showcase uproot-browser to colleagues.
I confirmed this issue only appears for certain fonts. If I go to the firefox settings and disallow websites to use their own fonts the issue disappears and the alignment works again. Also, I checked the CSS-inspector for pre-formatted text and it has the settings
pre {
	margin-top: 0;
	margin-bottom: 0;
	font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
	font-size: 12px;
}

If I set font-family to just monospace, the alignment also works. But I don't really understand what the issue is with ui-monospace :man_shrugging:

Could there be a potential workaround to this? Keeping plain-text as well as the formatting intact.


bug: glimmer-syntax-error comment injected inside of long helper invocations

Found internally, where a helper {{on}} had an injected comment {{! @glint-expect-error @rehearsal TODO ... }} in a region of the helper that is syntactically incorrect.
Input
{{! GOOD }}
{{concat @someArg1 @someArg2}}

{{! BAD }}
{{concat
  @someArg1
  @someArg2
  @someArg3
  @someArg4
  @someArg5
  @someArg6
  @someArg7
  @someArg8
  @someArg9
  @someArg10
}}

Actual
{{! GOOD }}
{{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg1' does not exist on type '{}'. }}
{{concat @someArg1 @someArg2}}

{{! BAD }}
{{concat
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg1' does not exist on type '{}'. }}
  @someArg1
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg2' does not exist on type '{}'. }}
  @someArg2
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg3' does not exist on type '{}'. }}
  @someArg3
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg4' does not exist on type '{}'. }}
  @someArg4
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg5' does not exist on type '{}'. }}
  @someArg5
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg6' does not exist on type '{}'. }}
  @someArg6
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg7' does not exist on type '{}'. }}
  @someArg7
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg8' does not exist on type '{}'. }}
  @someArg8
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg9' does not exist on type '{}'. }}
  @someArg9
  {{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg10' does not exist on type '{}'. }}
  @someArg10
}}

Expected
To not produce invalidate glimmer syntax.
{{! @glint-expect-error @rehearsal TODO TS2339: Property 'someArg1' does not exist on type '{}'. }}
{{concat
  @someArg1
  @someArg2
  @someArg3
  @someArg4
  @someArg5
  @someArg6
  @someArg7
  @someArg8
  @someArg9
  @someArg10
}}

Observations

Shorter invocations the comment gets hoisted above the helper due to a formatter (?), somewhere around line 100. I think this is determined by

Root Cause
When looking to inject a comment there is no logic to determine what kind of boundary the diagnostic is it.
https://github.com/rehearsal-js/rehearsal-js/blob/9ac19ddd90ee9636b19cd9d18c88dc8832d282b3/packages/plugins/src/plugins/glint-comment.plugin.ts#L147
When we get the diagnostic starts at given position of the and increments until it finds the first non-white-space character.
Then injects a {{! glint-exect-error !}} above that region.
This logic is naive to how a handlebars files works and isn't aware if it's inside a helper {{}}

Proposal
We refactor the white space detection logic to do something like inTemplateExpressionText in the DiagnosticComment plugin that detects what region this is in.
We need to parse the hbs similar to what we do in TS source and figure out relative nodes.

Related to:
https://github.com/typed-ember/glint/issues/589

In PR #1121
Problem
Problem is two parts:

Rehearsal needs to know how to inject the tag in the syntactically correct spot
Glint needs to be able to suppress an error, if not on the next line.

Proposal
Insert {{! glint-expect-error ...}} so it doesn't break syntax.
Improve rehearsal to parse hbs and identify the AST node that the error is on. From there determine the safest region to inject the error. In the case described in this issue, we should inject at the nearest ElementNode
See [AST Explorer Example].(https://astexplorer.net/#/gist/830d677c7e76a5140f00a67b7a574eef/2cd06e12d1ae6bd907ec12dd41d6c91f691cd13d)
Improve glint to have {{! glint-expect-error-next-(block|statement) }}
Improve glint-expect error with something like {{! glint-expect-error-next-(block|statement) }} such that it doesn't have to be the next line.


Create a random mfsbsd password / support ssh public key

Right now, running the script listens to the public internet with fixed, known, weak credentials.
It would be cool if the script could generate a random password for mfsbsd and show it on start. This way the security risk for the server would be greatly reduced.
Another great feature would be supporting an ssh public key (and therefore using no password at all) and/or limiting access by IP address.

It would be cool if the script could generate a random password for mfsbsd and show it on start.

it's possible to set the password on building the mfsBSD image, however I'm not seeing a practical way to generate a random one every time the ISO boots.
This would have to be a value-add, with users generating, or requesting, a custom mfsBSD ISO image at depenguin.me

Another great feature would be supporting an ssh public key (and therefore using no password at all)

This is also possible as part of the build process for the mfsBSD image. It could be a generic (and compromised) keypair, or it could be user-supplied and a custom image generated.
This would have to be a value-add, with users generating, or requesting, a custom mfsBSD ISO image at depenguin.me

and/or limiting access by IP address.

This might be possible as part of the qemu-static step for hostfwd, and could be a parameter that's passed in.

I have an idea how to do ssh public key quite easily - simply make the mfsbsd image pull the key file either from the host qemu is running on (eg using http) or place it on a filesystem that is mounted in there. Then copy in place on image boot. Should be pretty straightforward (just adding a startup script to the mfsbsd image). Password should be set to * in master.passwd. The password could be set on using the same principle, but ssh public key is nicer.

perhaps there could be a step in this script, before the qemu-system-x86_64 command, which opens a background process, which keeps trying to ssh to localhost:1022 with known password, and on success:

copy over authorized_keys from recovery system to /root/.ssh/authorized_keys
and/or
fetches authorized_keys file from http source
disables ssh password authentication
restarts ssh process

it would need to happen in background because the qemu-system-x86_64 doesn't exit. Or maybe the qemu-system-x86_64 command can go to the background, and then the ssh connect loop starts?

I've updated to copy in an ssh key from file or url with 86cbdb799a00535dd1cad4b6d2d05756e4dc07c0

Hm, this still has the basic problem of being available publicly using a well-known password for root, which means using it to maintain a server that contains critical data is a security risk (it's enough for someone to fire at that IP every few seconds until they are lucky and plant something in there).
I had to play with ubuntu yesterday and found a howto for vm-bhyve, which has exactly the properties I would like to see for depenguin-me:

No passwords at all
Log in using a non-root user (then sudo)
SSH public key can be specified on provisioning

This is how it was created:
vm img http://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
vm create -c 16 -m 32G -t linux-zvol -i focal-server-cloudimg-amd64.img -C -k ~/.ssh/id_rsa.pub ubuntu
vm start

What happens under the hood is that vm-bhyve is creating a cloud-init iso, which is picked up by the OS in the vm (similar to what I suggested above "simply make the mfsbsd image pull the key file either from the host qemu is running on (eg using http) or place it on a filesystem that is mounted in there.", but instead of being Michael's hack, cloud-init is a standard).
See https://github.com/churchers/vm-bhyve/blob/master/lib/vm-core#L254 for how this works at the vm-bhyve end.

You could do something very similar (with or without cloud-init)

Alter depenguin script to create automatically an ISO containing the ssh public key(s) => basically an authorized_keys file
Alter depenguin script to connect this ISO as a CDROM drive to qemu
Alter your mfsBSD image in the following ways (either altering the stock or creating a new one):

Remove root password (pw usermod -h -)
Disable root login in sshd_config (PermitRootLogin no)
Add a cloud-init-(like) start script that does on firstboot (which is every boot in this case):

Adduser mfsbsd without a password, invite to group wheelpw groupadd mfsbsd
pw useradd -m -n mfsbsd -g mfsbsd -G wheel -h - -c "mfsbsd user"

Install and configure sudo:pkg install -y sudo
cat > /usr/local/etc/sudoers.d/wheel<<EOF
%wheel ALL=(ALL) NOPASSWD: ALL
EOF

Mount the CD Drive:mount_cd9660 /dev/cdrom /mnt

Copy the ssh public key into ~/mfsbsd/.ssh/authorized_keys:mkdir -p ~mfsbsd/.ssh
cp /mnt/mfsbsd_authorized_keys ~mfsbsd/.ssh/authorized_keys
chmod 644 ~mfsbsd/.ssh/authorized_keys

Unmount the CD Driveumount /mnt

This way, there is never a moment when root access without a private SSH key is possible. If anything goes wrong in provisioning, no access the granted (the secure default). Instead of writing the script above, you could also take a look at net/cloud-init, but what I outlined above might already be just fine and better suited to the task at hand.

exactly the properties I would like to see for depenguin-me:
1. No passwords at all
2. Log in using a non-root user (then sudo)
3. SSH public key can be specified on provisioning

Thanks, will review further!
The mfsBSD img/iso can have ssh keys added as part of the build process which generates the ISO.
This is currently done separately to the depenguin script, and in advance. (see my fork at https://github.com/depenguin-me/depenguin-installer)
The depenguin script downloads and loads the prebuilt image as the installer. And now injects an SSH key as well.
I don't know how we'd get a linux rescue system to build the mfsbsd image as part of the script (requires freebsd).
To make it work (mostly) as you describe, the depenguin script could:

create a local keypair, upload it with compromised user/pass (restrict access to host IP somehow)
connect to ssh with key on localhost, update ssh keys and settings, restart ssh, run other commands to make user access possible
run installer, install package cloud-init, prepare cloud-init config
disable root ssh access, change root pass
reboot

then when it reboots it does so with user access via key, and maybe with cloud-init prepped for further steps.
Right now, the depenguin script gives a freebsd rescue system or installer. Installation still needs to happen manually, user can configure as needed. It can replace the missing rescue console at Hetzner.
Alternatively, I could explore a facility where people can add their pubkeys and click a button to have an image built for them, available for 24h, where they copy-paste the shown command, and they can install from a temporary mfsbsd image which includes their pubkeys? i.e. click to generate your custom installer, then use it within 24 hours.

Alternatively, I could explore a facility where people can add their pubkeys and click a button to have an image built for them, available for 24h, where they copy-paste the shown command, and they can install from a temporary mfsbsd image which includes their pubkeys? i.e. click to generate your custom installer, then use it within 24 hours.

But why not do what I described? This could be done in one static image that never has to change and allows the user to pass in an ssh key. Very straightforward - I could provide a proof on concept based on the depenguin-installer repo (and maybe try to upstream this to mfsbsd as a configuration option later, so you won't have to maintain a fork in the long run). Simple, elegant and really secure (no passwords involved, no known keys involved, no firewalling required).

But why not do what I described?

the statically compiled qemu binary loads in the mfsbsd image as cdrom mount, doesn't seem possible to add another, might be a way
if we load mfsbsd img as disk (not ISO!) it messes with the passed in disks. Would need to experiment somewhat.

According to https://wiki.gentoo.org/wiki/QEMU/Options, it should be possible to specify cdrom multiple times:

-drive - Advanced configuration of a virtual CDROM drive:
-drive file=IMAGE.iso,media=cdrom - Set a virtual CDROM drive and use the specified image file for it. With this syntax you can set multiple drives.

In principle your suggestion works. -drive file=IMAGE.iso,media=cdrom will load as /dev/cd0 and the mfsbsd install will be on /dev/cd1 when called as -cdrom /path/to/mfsbsd-iso
busy with testing and then will update the live site. Should be good to do an install test in an hour or so

So would
-drive file=mfsbsd.iso,media=cdrom  -drive file=image.iso,media=cdrom

make mfsbsd.iso /dev/cd0 and the image containing setup info (like the ssh authorized keys bunde) /dev/cd1?
(instead of  -cdrom /path/to/mfsbsd-iso -drive file=IMAGE.iso,media=cdrom)
Or wouldn't qemu boot from the mfsbsd ISO in this case? (or doesn't it matter anyway, as only one of the ISOs is bootable?)

-drive file=mfsbsd.iso,media=cdrom  -drive file=image.iso,media=cdrom

I had issues with this. Was easier to mount each cd device and check for file needed, then process.
Could be tested more thoroughly and refined, but for now the script is working and I'm keen to see confirmation an install worked.
Please try from within rescue console with link to pubkey:
wget https://depenguin.me/run.sh && chmod +x run.sh && ./run.sh -n "http://host.dom/keys.pub"

There's an awful delay on em0 up and before SSH available due to rc.local processing. If first ssh connect to installed has issues, wait a bit and try again.

Hi Bretton,
I tried it and it works in general. Boot time was actually good, first connection to ssh worked. This is starting to look really promissing! :+1:
Notes:

rc.local has a syntax error, /usr/sbin/pw usermod -h - must be /usr/sbin/pw usermod root -h - (username missing), therefore root has a password. BUT I think that the password should be removed while provisioning the image originally, not in rc.local, as this leaves a small gap where login could be possible. If I'm reading the mfsbsd sources correctly, this could be as easy as setting ROOTPW_HASH="*" in the build.
Likewise, /etc/sshd/sshd_config still says PermitRootLogin yes - This should be removed during image creation (there's probably a hook for it somewhere)
run.sh needs a little patch to work with "-k ":

--- run.sh.orig	2022-07-31 20:48:56.000000000 +0200
+++ run.sh	2022-08-01 11:24:16.783715666 +0200
@@ -23,7 +23,7 @@
     case "${flags}" in
         k)
             AUTHKEYURL=""
-            AUTHKEYFILE=${OPTARG}
+            AUTHKEYFILE=$(realpath "${OPTARG}")
             ;;
         n)
             AUTHKEYURL=${OPTARG}

Addendum: I tried on Hetzner with their version of QEMU which is a bit newer and it worked ok.
(QEMU emulator version 5.2.0 (Debian 1:5.2+dfsg-11+deb11u1))
It requires a few changes to parameters (they did a few syntax changes), but that's fairly simple. I'll give you more details later.

* rc.local has a syntax error, `/usr/sbin/pw usermod -h -` must be `/usr/sbin/pw usermod root -h -`

fixed in https://github.com/depenguin-me/depenguin-installer/commit/f4d27c329310c53c07434844eae9bc7b05452d09 and rebuild happening

If I'm reading the mfsbsd sources correctly, this could be as easy as setting ROOTPW_HASH="*" in the build.

I set a password in my build script, or it defaults to mfsroot. I can add that.

* Likewise, /etc/sshd/sshd_config still says `PermitRootLogin yes`

this is set in my build script
# custom configs
if [ ! -f conf/rc.conf ]; then
    cp -f conf/rc.conf.sample conf/rc.conf
    sysrc -qf conf/rc.conf ifconfig_DEFAULT="DHCP"
    sysrc -qf conf/rc.conf sshd_flags="-oUseDNS=no -oPermitRootLogin=no"
fi

I was removing it, and several other SSH changes in rc.local but then had issues logging in, so removed it while diagnosing that. I can add back the general hardening steps as with packer images.

* run.sh needs a little patch to work with "-k ":

thanks! fixed https://github.com/depenguin-me/mfsbsd-13.1-script/commit/8169dae58775ad06ecd87f57453dbe2c27c8cf16

I was doing several sed changes to sshd_config in rc.local but then had issues logging in, so removed them while diagnosing that. I can add back the general hardening steps as with packer images.

Something like customfiles/harden.sh:
pw usermod root -h -
sed -i "" "s/^PermitRootLogin.*//g" SOMEPATH/sshd_config

(not sure what SOMEPATH would be relative to the image)

working with SHA256 (mfsbsd-13.1-RELEASE-amd64.iso) = 849432e7dc98bcacfc744a163e9df09ee8059ec3d369fb4f89be51f1c365cc1c on the site, ROOTPW_HASH="*"

first bash at a consumer-builder: https://github.com/depenguin-me/depenguin-builder

going to close this


Some changes I did for my own personal use

Support for recursive includes (using the SSI tag inside an included file)
Changing the hashbang of executable scripts to point to /usr/bin/env python instead of /usr/bin/python, which screwed up working inside a virtualenv
Show an error message when included file is not found

TBH these are not very polished, but if you find them useful feel free to accept the PR :)

Thanks! I'm curious to hear what you use ssi-server for… I haven't had much need for it since I discovered Jekyll and other static site generators.

I had to prototype a web app and preferred to work in pure html instead of a framework and thus used python -m SimpleHTTPServer, since I find it the easiest way run a development server. However, it soon became apparent that some code reuse was needed to implement different pages with  a common layout, and this seemed like a good fit : ) . So thanks for the package!
To be honest though, I'm looking for alternatives. The SSI model is a bit too limited for even the most basic prototyping, and I'm doing most of my real work in Django (and sometimes other python frameworks), and converting the SSI-powered HTML files to Django templates is somewhat of a chore. I like the simplicity of just running a single shell command to get a server running though!

You should really take a look at Jekyll and GitHub pages. I never would have created this tool had I known about them!


Duplicate network request for same chunk in MF-V2

Describe the bug
HI,
I am using module federation v2(manifest protocol) with webpack and production build causes me 2 requests for same chunk.
we are using module federation in hybrid mode some of the services from build time and others from runtime.
so this duplicate request issue especially for relatively imported chunks (via build time config).
one request is initiated by vendors-node_modules_federation_entry_56cf6c4d33d98e6a9a57e29a22cdb86e_js-node_modules_pnpm_b-5a99ff.js file and another one is initiated by respective remote service's remoteEntry.js file.
this will happen in more chunks and it increases the network round trips unnecessarily.
when I opt disableAssetsAnalyze=true this will not happen.
let me know If I miss anything.
and when do we expect getPublicPath release. we can't override the manifest publicPath in runitme, is there any other ways to override publicPath.
Reproduction
Reproducible repo (https://github.com/satheesh66/module-federation-v2)
here you can clearly see the duplicate requests for button component chunk both dev and prod build
Used Package Manager
npm
System Info
Os: Mac os sonoma 14.1.2,
Browser: Chrome

Validations

[X] Read the docs.
[X] Read the common issues list.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Module federation issue and not a framework-specific issue.
[X] The provided reproduction is a minimal reproducible example of the bug.

Can you supply a repo with a reproducible example.

Here is the reproducible repo @ScriptedAlchemy kindly check and let me know

Okay for the get public path thing.
You can try public path "auto" as we added support for manifest protocol to use auto mode. Now sure on getPublicPath as it's been a lower priority item right now.

It seems like preload issue , i will check again

Ahh i find the issue , when preload link , the crossorigin attr should be the same , now the link is :

and the script is :

so it will not work (preload)
@zhoushaw  Can you help to fix it ? I'm not sure when the crossorigin should work on specific scens

Okay for the get public path thing.
You can try public path "auto" as we added support for manifest protocol to use auto mode. Now sure on getPublicPath as it's been a lower priority item right now.

We can't use the auto since consumer services working as expected but the host service doesn't know the version, so we can't infer the proper public path. and auto implementation is not available inside remoteEntry.js file so that we need to change webpack filename.
i am right now using like below in runtime plugin
  handlePreloadModule: (args) => {     args.remoteSnapshot.publicPath = window.publicPath;     return args;   }

is there any estimates on when new release will be published with https://github.com/module-federation/core/pull/2580 ?
Thnx!

Thanks for the quick fix @zhoushaw. I have checked with "@module-federation/enhanced": "^0.0.0-next-20240605063149" The duplicate chunk request issue is not fixed fully still some chunk requests happening two times one is from preload and another one is from remotEntry.js file. this issue not happening in the POC project but happened in my organization's code. which we have a lot of services. and facing some CSS chunk ordering issues.
But the app3 manifest.json request is happening two times when I have dependencies like app1 <-- app2 <-- app3(app1 consuming app2 and app2 consuming app3).

added reproducible repo details -  https://github.com/satheesh66/module-federation-v2
@zhoushaw @2heal1

Hello,
I've got the same issue with duplicate requests. Maybe my example will be useful for fix as well.
Registered it in another thread though: https://github.com/module-federation/module-federation-examples/discussions/4008 .
Test repo https://github.com/Ekaterina-T/webpack.mf.csi
Also vendor chunks duplication case from discord https://discord.com/channels/1055442562959290389/1247139075673161829

Interesting thing here is that it doesn't happen all the time: sometimes requests get duplicated sometimes not.

hey , you can upgrade<EMAIL_ADDRESS>and try again

Thanks @2heal1 , no duplicates now!

Thanks for fix @zhoushaw @2heal1.
But  the issue is not fully resolved still I am facing a duplicate request issue even after updating<EMAIL_ADDRESS>

In the above screenshots, you can see the same chunk requested by multiple times (check the initiator chain in those requests)
the first request from the initial host's entry.js file and further requests from other services entry.js they have also used that chunk.
let me know if miss any thing! Thanks
@ScriptedAlchemy  @2heal1 @zhoushaw


KeyError: 'points' when trying to insert

Hello everyone, I have the following codesnippet that I wrote according to the documentation here
`
from InfluxDB import InfluxDBClient

class testAdapter():

    def __init__(self):
        self.client = InfluxDBClient(host='testhost.test',port=8086)
        self.client.switch_database('Traces')

    def create_json_dict(self,timestamp,data,processname,measurement):
            '''Creates a json style dict as a datapoint to be inserted'''
            tags   = {'processname':processname}
            fields = {'systemcall':data}
            body   = {'measurement':measurement,
                      'tags':tags,
                      'time':timestamp,
                      'fields':fields}
            return body

    def insert(self,datapoints):
            print(type(datapoints))
            print(datapoints)
            if self.client.write(datapoints,protocol = 'json') == True:
                print("Inserted datapoints {0}".format(datapoints))
            else:
                print("Something went wrong")

if __name__ == "__main__":
    adapter = testAdapter()
    nuggi = adapter.insert(adapter.create_json_dict("2019-06-26T12:38:43+02:00","TEST","TESTPROC","Traces"))

On execution I get:

<class 'dict'>
{'measurement': 'Traces', 'tags': {'processname': 'TESTPROC'}, 'time': '2019-06-26T12:38:43+02:00', 'fields': {'systemcall': 'TEST'}}
Traceback (most recent call last):
  File "influxtest.py", line 33, in <module>
    nuggi = adapter.insert(adapter.create_json_dict("2019-06-26T12:38:43+02:00","TEST","TESTPROC","Traces"))
  File "influxtest.py", line 25, in insert
    if self.client.write(datapoints,protocol = 'json') == True:
  File "C:\Users\Siegel\AppData\Local\Programs\Python\Python37\lib\site-packages\influxdb\client.py", line 315, in write
    data = make_lines(data, precision).encode('utf-8')
  File "C:\Users\Siegel\AppData\Local\Programs\Python\Python37\lib\site-packages\influxdb\line_protocol.py", line 127, in make_lines
    for point in data['points']:
KeyError: 'points'

What is the problem here?

I think I fixed that by creating a dict called points in which I inserted the datapoint.
However, when I send this, I get:
<class 'dict'>
{'points': [{'measurement': 'Traces', 'tags': {'processname': 'TESTPROC'}, 'time': '2019-06-26T12:38:43+02:00', 'fields': {'systemcall': 'TEST'}}]}
Traceback (most recent call last):
  File "influxtest.py", line 32, in <module>
    adapter.insert(adapter.create_json_dict("2019-06-26T12:38:43+02:00","TEST","TESTPROC","Traces"))
  File "influxtest.py", line 24, in insert
    if self.client.write(datapoints,protocol = 'json') == True:
  File "C:\Users\Siegel\AppData\Local\Programs\Python\Python37\lib\site-packages\influxdb\client.py", line 327, in write
    headers=headers
  File "C:\Users\Siegel\AppData\Local\Programs\Python\Python37\lib\site-packages\influxdb\client.py", line 286, in request
    raise InfluxDBClientError(response.content, response.status_code)
influxdb.exceptions.InfluxDBClientError: 400: {"error":"database is required"}

Like in the documentation you need to mention the database name:
client = InfluxDBClient(host='<IP_ADDRESS>', port=8086, database='dbname')

Oops, forgot that. Thank you.