route_propagation_test.go

Hi,
BGP on Juniper requires network instance type and router-id to be configured.  Script needs to be updated with same.
Example config:
set openconfig-network-instance:network-instances network-instance DEFAULT config type DEFAULT_INSTANCE
set openconfig-network-instance:network-instances network-instance DEFAULT config router-id <lo0_ip_addr>
Thanks.

@yashikakn Can you check now? We have updated the test to not Replace the whole NetworkInstance and only Replace the RouterId for the DEFAULT instance.

Hi @anksaiki, For some reason I’m not able to see your comment in github issues page and not seeing any recent commits either for the script https://github.com/openconfig/featureprofiles/blob/main/feature/bgp/addpath/ate_tests/route_propagation_test/route_propagation_test.go
Could you please clarify if any updates were done?
From: anksaiki @.>
Date: Tuesday, July 19, 2022 at 7:37 AM
To: openconfig/featureprofiles @.>
Cc: Yashika Yashika @.>, Mention @.>
Subject: Re: [openconfig/featureprofiles] route_propagation_test.go (Issue #312)
[External Email. Be cautious of content]
@yashikaknhttps://urldefense.com/v3/__https:/github.com/yashikakn__;!!NEt6yMaO-gk!EEEwOFXwsGxLOuLdcE4YSmkZV2lMtwiM8pad_W_exdv-DEbtLPSII_GOiIqjy63-jrybKSlLZikT82XyKF9NPkgN$ Can you check now? We have updated the test to not Replace the whole NetworkInstance and only Replace the RouterId for the DEFAULT instance.
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/openconfig/featureprofiles/issues/312*issuecomment-1189136362__;Iw!!NEt6yMaO-gk!EEEwOFXwsGxLOuLdcE4YSmkZV2lMtwiM8pad_W_exdv-DEbtLPSII_GOiIqjy63-jrybKSlLZikT82XyKP6Sjh_Z$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AYFO56PUDP6JHT2VAMLGWT3VU24RNANCNFSM53TZAZEA__;!!NEt6yMaO-gk!EEEwOFXwsGxLOuLdcE4YSmkZV2lMtwiM8pad_W_exdv-DEbtLPSII_GOiIqjy63-jrybKSlLZikT82XyKJVs8GxO$.
You are receiving this because you were mentioned.Message ID: @.***>
Juniper Business Use Only

@liulk Could you please share your inputs? Thanks.


Test Issue created at Tue, 08 Jun 2021 08:53:02 GMT

Test issue body  Tue, 08 Jun 2021 08:53:02 GMT

Comment on issue at Tue, 08 Jun 2021 08:53:04 GMT


Remove unnecessary null pointer checks

An extra null pointer check is not needed in functions like the following.

firebird_standard_use_type_backend::clean_up
odbc_vector_into_type_backend::clean_up
postgresql_standard_use_type_backend::clean_up

It's harmless, but feel free to submit a pull request.

How do you think about to use smart pointers at affected source code places instead?


-f, --trim_front1 option gives fewer than expected counts

Thanks for an excellent piece of software - fastp is fast, accurate, and the defaults/options/reports for merging/trimming are perfect for all our needs!
However, assuming I've understood the options correctly, there is possibly a bug:
The SRA run SRR2413286 (for example) has a 20 bp adapter at the front (left) of the read that needs to be trimmed, and a 3' adapter:
I get different counts if I trim with and without the -f 20 option even if I adjust the -l --length_required limit accordingly.
Code to reproduce (using fastp 0.19.4)
wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR241/006/SRR2413286/SRR2413286.fastq.gz
fastp -i SRR2413286.fastq.gz -a GTGTCAGTCACTTCCAGCGG -f 20 -l 18 -n 0 -o SRR2413286.fastp.f20.l18.fq
fastp -i SRR2413286.fastq.gz -a GTGTCAGTCACTTCCAGCGG -l 38 -n 0 -o SRR2413286.fastp.l38.fq

wc -l SRR2413286.fastp*fq
  25822936 SRR2413286.fastp.f20.l18.fq
  26231448 SRR2413286.fastp.l38.fq

Is fastp doing something else that is causing the number of reads in the -f 20 -l 18 case to be lower than the second case -l 38 ?

Can you please try the new version v0.20.0?
Some related changes have been made since v0.19.4.

Thanks for the suggestion. I just tried it with v0.20.0
wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR241/006/SRR2413286/SRR2413286.fastq.gz
fastp -i SRR2413286.fastq.gz -a GTGTCAGTCACTTCCAGCGG -f 20 -l 18 -n 0 -o SRR2413286.fastp.f20.l18.fq
fastp -i SRR2413286.fastq.gz -a GTGTCAGTCACTTCCAGCGG -l 38 -n 0 -o SRR2413286.fastp.l38.fq

wc -l SRR2413286.fastp*fq

  25800360 SRR2413286.fastp.f20.l18.fq
  26231448 SRR2413286.fastp.l38.fq

It's still trimming more reads when using -f 20 -l 18 than when using -l 38


upstream some code?

I was wondering if you have considered upstreaming some drivers to Zephyr mainline.
I'm particularly interested in the CST816 touchscreen driver since I'm working on adding support to the SMA Q3 smartwatch to Zephyr. I already have the display driver working and have an open PR upstream. If you don't want to go through the trouble of upstreaming yourself I can upstream this driver for you, if you think that is OK.

CST816s touch driver has upstreamed


[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)

I could not get the node agent sample working, so decided to try the Python version.
Can't get this working either.
.env.local seems ok, but when running python3 agent.py dev, I get the following error again and again:

2024-12-28 14:29:00,324 - WARNING livekit.agents - failed to connect to livekit, retrying in 0s: Cannot connect to host .livekit.cloud:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)')]

No information in the docs about this.

I created a minimal Python script to test this conneciton:
import requests
import sys

URL = "https://<my-app>.livekit.cloud"

def main():
    try:
        print(f"Attempting to connect to {URL} ...")
        response = requests.get(URL, timeout=10)
        response.raise_for_status()
        print("Success!")
        print("Response body (first 200 chars):")
        print(response.text[:200])
    except requests.exceptions.RequestException as e:
        print("RequestException (including SSLError):", e)
        sys.exit(1)

if __name__ == "__main__":
    main()

The output suggests it can connect ok:

Attempting to connect to https://<my-app>.livekit.cloud ...
Success!
Response body (first 200 chars):
OK

So what might the problem be?

your hostname appear to be dropped in the logs, was that redacted intentionally?
Cannot connect to host .livekit.cloud:443

Yes, intentionally.

how are you running this? this error typically shows up when you don't have CA certs installed on the machine. are you on windows?
perhaps this thread would help: https://stackoverflow.com/questions/51925384/unable-to-get-local-issuer-certificate-when-using-requests

I'm sure you're right, but I am not going to investigate. I only looked at Python because I could not get the node working...


Receive command message

Describe the bug
It appears that the Single Command message C_SC_NA_1 can be configured similarly to the default plugin settings. Testing has shown that the message is received and parsed correctly. However, a warning is triggered afterward, and the corresponding asset for this command cannot be found in the asset list. Below are the operation logs:
Oct 18 09:55:41 538547f2db61 Fledge dispatcher[894654]: ERROR: Failed to send set point operation to service rabbitmq_queue, 400 Bad Request, { "status" : "plugin returned failed status for operation" }

Oct 18 09:55:41 538547f2db61 Fledge rabbitmq_queue[894913]: WARNING: Operation IEC104Command attempted on plugin that does not support control

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 8: 0

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 7:

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 6: 0

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 5: 0

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 4: 0

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 3: 7

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 2: 9

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 1: 111

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Parameter 0: C_SC_NA_1

Oct 18 09:55:41 538547f2db61 Fledge iec104north[894972]: INFO: Control operation IEC104Command with 9 parameters

Please note that Allow Control was ON during the test:

Expected behavior
A new asset configured in the iec104 exchanged_data should be created and display the command value once the Single Command message (C_SC_NA_1) is received and processed.
Desktop (please complete the following information):

OS: Docker image based on Ubuntu20.04
Version :
VERSION_NORTH_IEC104=tags/v1.2.1
FLEDGEVERSION=2.5.0

I figured it out—the command will trigger a control point that cannot be stored as an asset but must instead be propagated to the south plugins.


Update a-tokengroups.md

That is just some possible verbiage to use. Companies (software vendors) are getting confused about this attribute thinking they can simply use it without any thoughts about scaling concerns. We have seen issues with large orgs where an application (Centrify) with tens of thousands of clients will try to resolve tokengroups for sec prins and will bring groups of domain controllers to their knees until they can work through the request load.

@jricha34 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

I think the note version is a good way to go with it.

@alvinashcraft : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Could not find com.android.tools.build:gradle:7.3.1.

This happens after I add a dependency on this project.
For reference my Gradle Plugin Version is 7.3.1

Can you please share a minimum reproducible example? The sample app in this repo also uses 7.3.1.

Closing due to inactivity.


BigtableBufferedMutator should do more work asynchronously.

There are a few changes here.  I could probably move some of the secondary changes into another PR.  Otherwise, PTAL.

Closing this for now.  We're going to put together a design document about the current state and future plans.


Add .gitignore file

Signed-off-by: Jose A. Rivera<EMAIL_ADDRESS>

This change is

LGTM

LGTM.


Plans to enable eager execution from TF 2.0?

Hi there,
Love this package.  It works swimmingly in TensorFlow 1.0 or TensorFlow 2.0 in compatibility mode (tf.compat.v1.disable_eager_execution()).  Are there any plans to upgrade this package to work in TF 2.0 (with eager execution)?
I believe that would primarily mean using tf.GradientTape().
This is on tensorflow==2.3.1,  python==3.7.9, and  keract==4.3.2
I am attempting keract.get_gradients_of_activations() and get this message:
Exception: Disable TF eager mode to use get_gradients.
Add this command at the beginning of your script:
tf.compat.v1.disable_eager_execution()

If I do this, it works, but I would like to avoid this as the rest of my package is written in TF 2.0 (and assumes TF 2.0 capabilities) .

Also, this is on tensorflow==2.3.1

@bburns632 thanks! Really appreciate!
Yes you are right at the moment, the eager mode has to be disabled in order to use this library.
I could make it work some time ago (on some examples) but I faced some problems:

https://github.com/keras-team/keras/issues/14066.

I'd like to give a second look with tensorflow 2.3 but I can't guarantee exactly when.
At the moment, you can always do (I guess but not 100% sure):
tf.compat.v1.disable_eager_execution()
keract.get_gradients_of_activations()
tf.compat.v1.enable_eager_execution()

PR link: https://github.com/philipperemy/keract/pull/123.

I tried a couple of hours but still unsuccessful to move to full eager. Some functionalities like gradients work but gradients of activations and some corner cases such that nested models don't work anymore.

But I can release a version without nested models and without the gradients of the activations. I'll see what's the best way to do that.

@bburns632 I pushed a nightly version to PyPi
pip install keract-nightly

Try and tell me how do you like it.

@philipperemy Thank you so much for this very quick accommodation!  A little sheepishly, I need to ask how to import this nightly version. The pip install works fine (keract-nightly==5.1; no keract installed), but import keract and import keract_nightly both seem to fail in script.

No problem! Try:
pip uninstall -y keract
pip install keract-nightly
python

then: import keract. The functions have the same signature!

Thanks.  That's what I tried.  It must have been something odd with my environment.  Starting from a new environment, it works great.  Thanks again!
conda create --name keractN python=3.7 pip tensorflow
conda activate keractN
pip install keract-nightly
python

Already perfect! It's very alpha work so not all the functionalities will work. Good luck!


Prepare for release v2.0.11

/lgtm

Codecov Report

Merging #288 (1f58721) into master (7c70d79) will increase coverage by 0.12%.
The diff coverage is 24.60%.

@@            Coverage Diff             @@
##           master     #288      +/-   ##
==========================================
+ Coverage   30.65%   30.78%   +0.12%
==========================================
  Files          55       55
  Lines        5349     5341       -8
  Branches     1179     1169      -10
==========================================
+ Hits         1640     1644       +4
+ Misses       3608     3597      -11
+ Partials      101      100       -1

Impacted Files
Coverage Δ

elliottlib/cli/__main__.py
0.00% <ø> (ø)

elliottlib/cli/attach_cve_flaws_cli.py
41.50% <0.00%> (-0.40%)
:arrow_down:

elliottlib/cli/verify_attached_bugs_cli.py
0.00% <0.00%> (ø)

elliottlib/openshiftclient.py
0.00% <ø> (-14.64%)
:arrow_down:

elliottlib/cli/find_bugs_cli.py
28.09% <22.66%> (+4.28%)
:arrow_up:

elliottlib/bzutil.py
53.33% <28.94%> (-1.12%)
:arrow_down:

elliottlib/attach_cve_flaws.py
85.71% <100.00%> (ø)

Continue to review full report at Codecov.

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


Fixed Issue #526, #525, #521

#526
I added link roles and rel attribute to Milestones.js as requested

#525
Added aria-label in Socials.js for the back arrow button

#521
Added a label and id for the search box in Users.js and added minimal CSS for the label

Also added my .json user profile

Could you open a separate pr for every issue?

Could you open a separate pr for every issue?

sure


Correction for raw affiliation Laboratoire Grap, université de Picardie-Jules Verne, Amiens, France

Correction needed for raw affiliation Laboratoire Grap, université de Picardie-Jules Verne, Amiens, France
raw_affiliation_name: Laboratoire Grap, université de Picardie-Jules Verne, Amiens, France
new_rors: 01gyxrk03;01c62av11
previous_rors: 01gyxrk03
works_examples: W4367309627
contact: 68cfba825998605a437b8128622416c3:b9ea83edde09c2bd6f4cc89982994afd @ u-picardie.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


is grpc-port= supported?

Hi,
Still very noob so please ignore any mistake i make here. But it seems the way the GRPC API is now enabled is with either supplying --grpc-port= to lightningd, or adding grpc-port= to the config file.
This has been tried by modifying the config file, or hacking 03-lightning-setup.sh however things seem to break (no certs, and cl-rest seems to break).
Can this be supported? Also happy to flesh out some example projects [#10]. I've got the REST api to work with workbench, and the GRPC API to work on what is soon to be my main node. But not vice-versa.

It just occurred to me the cargo deps are required for this to work.

Honestly I haven't played around with gRPC for core lightning, and I haven't seen much documentation on it. Do you have any good resources?

Not really besides reading the contents of node_pb2.py and node_pb2_grpc.py (the generated .py from .proto files). also https://github.com/ElementsProject/lightning/blob/master/contrib/pyln-testing/pyln/testing/grpc.py

For the record, adding cargo to clightning.dockerfile was fine, however rustfmt needs debian bookworm, which had a missing pubkey error so docker refused to install packages.
I'm seeing that the GRPC API is quite behind, while the REST API especially due to the /rpc endpoint has no limitations. Might be a matter of waiting for the GRPC APi to mature some.


Context provided inside suspense doesn't reach Outlet

Describe the bug
Trying to implement recommended approach we were discussing, providing context inside suspend doesn't seem to work.
Tested in the counter_isomorphic example.
Leptos Dependencies
Git
To Reproduce
#[derive(Debug, Default, Clone)]
struct CtxTopLevel;

#[derive(Debug, Default, Clone)]
struct CtxOutsideSuspense;

#[derive(Debug, Default, Clone)]
struct CtxInsideSuspense;

#[component]
pub fn Counters() -> impl IntoView {
    provide_context(CtxTopLevel);
    view! {

            <Router>
                <Routes fallback={|| {}}>
                    <ParentRoute
                        path={path!("/")}
                        view={AuthProvider}
                    >
                        <Route
                            path={path!("/")}
                            view={|| {
                                expect_context::<CtxTopLevel>();
                                expect_context::<CtxOutsideSuspense>();
                                expect_context::<CtxInsideSuspense>();
                                view! {
HOME
 }
                            }}
                        />
                    </ParentRoute>
                </Routes>
            </Router>

    }
}

#[component]
pub fn AuthProvider() -> impl IntoView {
    let r_auth_state = Resource::new_blocking(
        || {},
        |_| {
            // AuthManager::refresh_token()
            async { "user_details...".to_string() }
        },
    );

    provide_context(CtxOutsideSuspense);

    let inner_view = move || Suspend::new(async move {
        let _ = r_auth_state.await;
        provide_context(CtxInsideSuspense);
        view! { <Outlet /> }
    });
    view! { <Suspense>{inner_view}</Suspense> }
}

listening on http://<IP_ADDRESS>:3000
thread 'actix-rt|system:0|arbiter:1' panicked at /Users/zak/z/code/leptos/reactive_graph/src/owner/context.rs:265:9:
Location { file: "src/counters.rs", line: 54, col: 33 } expected context of type "counter_isomorphic::counters::CtxInsideSuspense" to be present
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

The example I gave in the other issue (#3038) does work, though, which is odd. Maybe worth investigating what the difference is between those two cases?
#[component]
pub fn App() -> impl IntoView {
    view! {
        <Router>
            <Routes fallback=|| {
                view! {
404
 }
            }>
                <ParentRoute path=path!("/") view=AuthCheck>

                    <Route path=path!("/") view=Home/>
                    <Route path=path!("/other") view=Other/>
                </ParentRoute>
            </Routes>
        </Router>
    }
}

#[component]
fn AuthCheck() -> impl IntoView {
    let resource = Resource::new_blocking(
        || (),
        move |_| async move {
            #[cfg(feature = "hydrate")]
            send_wrapper::SendWrapper::new(
                gloo_timers::future::TimeoutFuture::new(1000),
            )
            .await;
            #[cfg(feature = "ssr")]
            tokio::time::sleep(tokio::time::Duration::from_millis(1000)).await;

            Some("user_info...".to_string())
        },
    );

    let inner_view = Suspend::new(async move {
        let user_info = resource.await;
        provide_context(user_info.clone());
        (
            if user_info.is_some() {
                Either::Left(view! {

"Logged in!"

                })
            } else {
                Either::Right(view! {
"Logged out!"
 })
            },
            Outlet(),
        )
    });
    view! { <Suspense>{inner_view}</Suspense> }
}

#[component]
fn Home() -> impl IntoView {
    let user_info = expect_context::<Option<String>>();
    format!("{user_info:?}")
}

#[component]
fn Other() -> impl IntoView {
    "Other Page"
}

Hey @gbj , the difference is I have move || Suspend(...) in this repro, in yours you forgot to make Suspend reactive (it's reactive in any other 0.7 example i've seen), which works in the limited repro you gave, but breaks in a bunch of other ways.
If nonreactive Suspend is actually meant to work, I can open a separate issue as to how it doesn't work.
But yeah if you change Suspend -> move || Suspend in your repro from the last issue, you hit this error too.

Ah okay, I see.
So, here's the problem:
Currently, an Outlet's view is slotted into the ownership tree as the child of the parent route's view, not as the child of the location where it's used. So the move || and the Outlet are actually siblings in the ownership graph. (This may be confusing; I'm happy to expand on it if it's helpful.)
A workaround is pretty straightforward, and consists of providing the context in the parent Owner:
    let outer_owner = Owner::current().unwrap();

    let inner_view = move || {
        Suspend::new({
            let outer_owner = outer_owner.clone();
            async move {
                let auth_state = r_auth_state.await;
                provide_context(CtxInsideSuspense);
                Outlet()
            }
        })
    };
    view! { <Suspense>{inner_view}</Suspense> }

I think it is possible to fix this, but setting the ownership/context relationships between nested routes is relatively tricky so it will take a bit more time than I have at the moment.

Got it, the workaround seems to work for now thank you.
It might be worth editing your workaround snippet with outer_owner.with(|| provide_context(...)) which I think you missed, to help anyone else reading this before it's fixed.

so it will take a bit more time than I have at the moment

Totally understand, thanks for putting up with my tsunami of issues this week! At the very least I hope I helped push towards a stable 0.7.


Patch 2016-09-07

Fixes & Additions

Hey @PhentomPT, thanks for the PR. The client wallet payouts is not a public feature (yet), and your changes are missing the client bank account creation functionality, with which the client wallet payouts works. But either way, it is not something that we wish to add to SDKs at this time.


--onefile Unable to carry resource file, application of exe file icon failed，It works normally in dist folder.

Nuitka version, full Python version, flavor, OS, etc. as output by this
command.

python -m nuitka --version
1.2.6
Commercial: None
Python: 3.10.7 (tags/v3.10.7:6cc6b13, Sep  5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)]
Flavor: Unknown
Executable: D:\Multifarious\code\pythonProject1\Scripts\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: 10

How did you install Nuitka and Python

Python is installed through the official website installation package. Nuitka is installed through pycharm. Install to the virtualenv environment.

The specific PyPI names and versions

python -m pip freeze
Nuitka==1.2.6
PySide6==6.4.1
PySide6-Addons==6.4.1
PySide6-Essentials==6.4.1
shiboken6==6.4.1

Also supply a Short, Self Contained, Correct, Example

 #Window icon
from PySide6 import QtGui
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("icon/关机.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.setWindowIcon(icon)

Provide in your issue the Nuitka options used
Nuitka Options in the code

nuitka --mingw64 --standalone --windows-disable-console --show-progress --show-memory --output-dir=out --enable-plugin=pyside6 --windows-icon-from-ico='关机.ico' --include-data-dir=./icon=./icon  --onefile windows定时关机工具.py

Working normally under dist folder, with icon

Generate single file exe without icon

You need to read the user manual on how to find files in standalone and onefile mode. The "icon/" style path is not working unless the file is in your current directory, which for onefile it is never, and for standalone only if you launch it through explorer, but e.g. not a changed directory.

One of the things Qt does, is to not give you a filenotfound error. Instead it will just not load things, obscuring your mistake.

您需要阅读用户手册，了解如何在独立和单一文件模式下查找文件。"icon/" 样式路径不起作用，除非该文件位于您的当前目录中，对于 onefile 它永远不会，并且仅当您通过资源管理器启动它时才用于独立，但例如不是更改目录。
Okay, thank you for your answer


BUG: master and worker nodes fail to run Ignition after installation of CoreOS

When running ansible (ansible-playbook -e @vars-powervm.yaml playbooks/main.yaml), the playbook stops after appr. one hour saying it couldn't connect to master and worker nodes.
I ran ansible again with -vvvv to get verbose output, which will be attached here.
I started a HVC console on one of the missing master LPARs. It shows that CoreOS itself has been installed, but now it fails to fetch the ignition file(s) from the helper:
[ 1784.746250] ignition[1248]: GET error: Get "https://api-int.bignumbers-01.saphana.example.com:22623/config/master": EOF
[    **] A start job is running for Ignition (fetch) (29min 46s / no limit)[ 1789.746774] ignition[1248]: GET https://api-int.bignumbers-01.saphana.example.com:22623/config/master: attempt #361
[ 1789.748464] ignition[1248]: GET error: Get "https://api-int.bignumbers-01.saphana.example.com:22623/config/master": EOF
[  *** ] A start job is running for Ignition (fetch) (29min 51s / no limit)[ 1794.749031] ignition[1248]: GET https://api-int.bignumbers-01.saphana.example.com:22623/config/master: attempt #362
ansible_vars-powervm.log
We tried to get further information about that by fetching the resource directly from within the helper node:
`[root@bignumbers-01 ocp4-upi-powervm-hmc]# curl -kv https://api-int.bignumbers-01.saphana.example.com:22623/config/master

Trying <IP_ADDRESS>...
TCP_NODELAY set
Connected to api-int.bignumbers-01.saphana.example.com (<IP_ADDRESS>) port 22623 (#0)
ALPN, offering h2
ALPN, offering http/1.1
successfully set certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
TLSv1.3 (OUT), TLS handshake, Client hello (1):
OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api-int.bignumbers-01.saphana.example.com:22623
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api-int.bignumbers-01.saphana.example.com:22623`

ansible_vars-powervm.log

Does rhcos nodes get the network address from the DHCP server? Could you attach full boot log?

I see you are using ocp4-upi-powervm-hmc repo? That one is internal IBM project Please connect with @cs-zhang

I found the root cause of this issue - it's because we're using an unusal network configuration.
We have configured to ibmveth VLANs - one is attached to a a SEA and extends the lab network, the other one (configured with a private IP range) is isolated. We created a LPAR which has two ibmveth adapters for each VLAN configured and we use this machine as a router.  Unfortunately, if TCP packages are routed through ibmveth adapters, the RX and TX checksums are broken. So TCP connections cannot be established between the two networks. This can be mitigated by running the "ethtool -K  rx off tx off" command - it switches off checksum creation and TCP works fine.
But we did not find a way to automate this when we install CoreOS - so we're able to set up the bootstrap machine, but than bootstrap fails to fetch all arbitrary data - like docker files etc. The other nodes (master and workers) will receive empty data instead from the bootstrap node:
1784.746250] ignition[1248]: GET error: Get "https://api-int.bignumbers-01.saphana.example.com:22623/config/master": EOF
[ **] A start job is running for Ignition (fetch) (29min 46s / no limit)[ 1789.746774] ignition[1248]: GET https://api-int.bignumbers-01.saphana.example.com:22623/config/master: attempt #361
Closing this as a bug - maybe there is a chance to set up CoreOS with such special device settings, but i didn't found any description how to do this.


laird: set datarate based off spreading factor

In the channels plans the datarate is unspecified however spreading
factor is. We take the SF and map it to the DR bit mask.
Note that 'datarate' is not the raw data rate to use but a bit field.
Bug #72

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

Thanks for your debug pull request! It looks very good to me - could you rebase the branch against the develop branch, that holds the latest changes - and then change the PR so that it merges to develop? Thanks!

@dotpy3 There we go, I think that is all done correctly.

Thank you for your pull request!


Precondition tableExists crashes on H2 with objectQuotingStrategy=LEGACY, if a camelCaseView already exists.

Environment
Liquibase Version: 4.9.0
Liquibase Integration & Version: CLI
Liquibase Extension(s) & Version:  -
Database Vendor & Version: H2 Database, 2.1.210
Operating System Type & Version: Microsoft Windows [Version 10.0.19044.1586]
Description
Preconditions (e.g. tableExists) crash on H2 database, if the db schema already contains a view, whose name uses camelCase (i.e. it was created with objectQuotingStrategy="QUOTE_ALL_OBJECTS" before), but the changeSet that contains the precondition (or the complete changelog file) uses objectQuotingStrategy="LEGACY".
Here comes the example changelog.xml:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                                       http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.9.xsd"
                   objectQuotingStrategy="LEGACY">

    <changeSet id="1 Create MyView" author="mamue" objectQuotingStrategy="QUOTE_ALL_OBJECTS">
        <createView  viewName="MyView" replaceIfExists="true">select 1</createView>
    </changeSet>

    <changeSet id="2 Drop NOT_EXISTENT_TABLE" author="mamue">
        <preConditions onFail="MARK_RAN"><tableExists tableName="NOT_EXISTENT_TABLE"/></preConditions>
        <dropTable tableName="NOT_EXISTENT_TABLE"/>
    </changeSet>

</databaseChangeLog>

The first changeSet is executed without problems.
The evaluation of the precondition of the second changeSet crashes with this error message: Unexpected error running Liquibase: Expected single row from liquibase.statement.core.GetViewDefinitionStatement@9255c05 but got 0
I used the following liquibase.properties file:
changeLogFile: changelog.xml
driver: org.h2.Driver
url: jdbc:h2:mem:
username: sa
password:
liquibase.secureParsing: false

Steps To Reproduce

Download liquibase-4.9.0.zip and extract it to a new folder.
Place the changelog.xml and liquibase.properties files mentioned above in the root folder of the extracted archive.
Start the liquibase.bat with the argument update.
Watch the output. It should be something like this:

Running Changeset: changelog.xml::1 Create MyView::mamue
Running Changeset: changelog.xml::2 Drop NOT_EXISTENT_TABLE::mamue
Unexpected error running Liquibase: Expected single row from liquibase.statement.core.GetViewDefinitionStatement@9255c05 but got 0
For more information, please use the --log-level flag

Actual Behavior
The evaluation of the precondition of the second changeSet of the example changelog.xml runs into the already mentioned error. The execution of the changelog.xml is stopped prematurely.
Expected/Desired Behavior
The execution of the precondition of the second changeSet detects that the table  NOT_EXISTENT_TABLE  does not exist and therefore skips the execution of the action of the second changeSet and marks that changeSet RUN in the table DATABASECHANGELOG. The execution of the changelog.xml finishes without error.
Additional Context
I found that also other preconditions fail, that check for the existence of some database object. The error message was the same. The error also happens with file based H2 databases.

I reproduce the issue with the steps provided. If on the second changset exists or the second changeset uses objectQuotingStrategy="QUOTE_ALL_OBJECTS" it run succesfully.


Document gunicorn loglevel setting

resolves #1373

Codecov Report

Merging #1396 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1396   +/-   ##
=======================================
  Coverage   98.22%   98.22%
=======================================
  Files          54       54
  Lines        2472     2472
=======================================
  Hits         2428     2428
  Misses         44       44

Continue to review full report at Codecov.

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


feat: add OCI registry support for adhoc dependencies

It seems that helmfile doesn't support Helm chart hosted on OCI registry as adhoc dependencies.
helmfile.yaml:
releases:
- name: nginx
  namespace: default
  chart: oci://asia-docker.pkg.dev/gcp-sample/helm-repo/nginx
  version: 0.1.0
  values:
  - raw:
      resources:
      - apiVersion: v1
        kind: ConfigMap
        metadata:
          name: extra-env
        data:
          FOO: bar
  dependencies:
  # same functionality as incubator/raw
  # https://github.com/helm/charts/tree/master/incubator/raw
  - chart: oci://asia-docker.pkg.dev/gcp-sample/helm-repo/raw
    version: 0.1.0

I run into the problem while running helmfile template and got the following error:
❯ helmfile version
helmfile version v0.144.0

❯ helm repo list
NAME      	URL
bitnami   	https://charts.bitnami.com/bitnami

❯ helmfile --file test/oci/helmfile.yaml template
in test/oci/helmfile.yaml: [failed reading adhoc dependencies: unexpected format of `helm repo list` at line 2 "" in:
NAME      	URL
bitnami   	https://charts.bitnami.com/bitnami
]

That error originated from chartify.go#L502 and chartify checked that the repository already registered or not by using search API (helm repo list).
However, OCI registry doesn't support search API at the moment. (See https://github.com/helm/helm/issues/9983)
This PR contains three commits:

Add unit test to verify existing functionalities for ReadAdhocDependencies function
Add failing test for OCI registry support
Add logic to skip helm repo list when having OCI registry prefix on adhoc dependency name

@mumoshu
Sorry to ping you, but how can I proceed this?

Thanks for your quick response!

It would be great if you could submit a PR to helmfile/helmfile to bump the chartify version and add a short guide in the documentation for how to use the new feature 🙏

Yeah, I will do that.

FYI, charitfy v0.10.0 has been released with your addition. Thanks again for contributing!


Query by field in Preloaded entity

here's my code
readings := []m.Reading{}
query.Preload("Station", "name = ?","Station 001").Order("id desc").Find(&readings)

where name is field in Station entity and when i check the logs i don't understand why i'm getting this query
SELECT  * FROM stations  WHERE (stations.deleted_at IS NULL OR stations.deleted_at <= '0001-01-02') AND ((id IN ('26','26','26','26','26','26','26','26','26','26')) AND (name = 'Station 001'))
I don't where ((id IN ('26','26','26','26','26','26','26','26','26','26')) was coming from?

It is the anwer for the reason Why do you use Preload ?
((id IN ('26','26','26','26','26','26','26','26','26','26'))  it is ids of Station have relationship with each Reading.


fix: Add missing pod selector in opentelemetry-collector NetworkPolicy

The NetworkPolicy was missing its pod selector, and was therefore applying to all pods.

This change is

Combining this with https://github.com/world-federation-of-advertisers/cross-media-measurement/pull/1768 as the changes are tightly coupled.


Improve tileLoadFunction docs

I found that I could not use a custom tileLoadFunction without looking in the sources. I think this pull request makes things more clear.
I also found that we still have a TileVectorLoadFunction type in the docs, which we do not use any more. So I removed it.

goog.provide('ol.TileVectorLoadFunctionType'); in src/ol/tileloadfunction.jscan be removed

LGTM, thanks

Ok, done. Waiting for Travis before merging, just to be sure.


Format in DatePickerField

I need the date to be displayed as dd/MM/yyyy, I use the following code, but it always shows me the date as MM/dd/yyyy. How can I make it display in the format I need?
The code is :
<material:DatePickerField Title="Seleccione Dia"
MinimumDate="1/1/2000"
Icon="calendario.png"
Format="dd/MM/yyyy">
Thanks

The format does not work in Mac, in IOS and Android works correctly shows the date in dd/MM/yyyy

Format also doesn't work correctly on Windows. Using the format of dd. MM. yyyy works correctly on Android, but doesn't show the periods on Windows
Android:

Windows:

Slashes work but very weirdly:


Remove the jquery dependency

Hi,
Great work on this repo, I really like the idea.
As I don't want to use jQuery and keep things even more lightweight and simple, I worked on a pure Javascript solution by implementing my own toggleClass, fadeIn and fadeOut functions. I thought it could interest you.
I used these fadeIn and fadeOut functions. It may introduce some browser compatibility issues, but the IE < 10 compatibility is not my priority. When I'll have more time and if you are interested I could improve the compatibility.

Wow. Thank you so much. It performs equally if not better with your solution. And I was also able to remove the velocity.js dependency too.
Your code is now implemented to the master branch.


move message 'This catalog is used in ... projects.'

Rationale / Begründung
In the Management>Questions (or /questions/catalogs/id) page, a value for projects_count is shown at the bottom of the sidebar.
It would be helpful if this text "This catalog is used in ... projects." is better visible and always shown.
Affected
Managers
Minimal functionality

move the text "This catalog is used in ... projects."  to top of page, e.g under "all Sites" in the catalog element.
always show, even when 0

Nice-to-have functionality

add a link to a page with an overview of all projects using this catalog. eg. #459

References / Verweise

https://github.com/rdmorganiser/rdmo/blob/dbdcc1f2eb6e033e377898a8bf198282f82813c1/rdmo/questions/templates/questions/catalogs_sidebar.html#L144

it's in the top, closed by 2.0.0


Connection rate limiting

Problem
A client can be abusive and create the connections too fast to over load the server. Even we have per connection limit, it involves more heavy operations like taking lock in the connection table and evicting other connections. Also, a lot of different clients can collectively create too many connections too fast to overwhelm the server. This is observed especially in around the the time when the node becomes a leader.
Summary of Changes
Introduce connection rate limiter.
Limit connection rates from a single IP to 8/minutes
Limit the global connection rate to 2500/second -- 2500 is estimated from the default connection cache table size which is generous.
Fixes #

Codecov Report
Attention: Patch coverage is 70.73171% with 12 lines in your changes are missing coverage. Please review.

Project coverage is 81.8%. Comparing base (8d4f2e6) to head (49f441a).

Additional details and impacted files
@@            Coverage Diff            @@
##           master     #948     +/-   ##
=========================================
- Coverage    81.9%    81.8%   -0.1%
=========================================
  Files         853      854      +1
  Lines      231816   231882     +66
=========================================
+ Hits       189874   189899     +25
- Misses      41942    41983     +41

LGTM. I can approve if comments from @t-nelson have been addressed.

@t-nelson @pgarg66 @ryleung-solana  Need your help to get this moving forward.


Smarter error handling for loading lua module

#57 may have highlighted a problem with loading the lua module in that any error that occurs related to require(...) will trigger the prompt. In the case of other failures that are not a missing file, this will mask the error and show the prompt instead.
We need some way to be a little smarter. One option would be to use fs_stat to check for the existence of the file rather than doing a require, but this means we would be enforcing a specific location for the file rather than anywhere within package.cpath. Another option is to remove the call to require and use package.searchers directly as described over at stackoverflow: https://stackoverflow.com/questions/15429236/how-to-check-if-a-module-exists-in-lua

Resolved by https://github.com/chipsenkbeil/distant.nvim/commit/1d798b3746709ee5b1a2209d63248800cea82f09.


Release REX-Ray 0.4.2

This patch marks the release of REX-Ray 0.4.2.

[Current coverage][cc-pull] is 44.32%

Merging [#503][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master       #503   diff @@
==========================================
  Files             2          2
  Lines           194        194
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits             86         86
  Misses          108        108
  Partials          0          0

[][cc-pull]

Powered by Codecov. Last updated by [8c3feec...a6191e6][cc-compare]
[cc-base-branch]: https://codecov.io/gh/emccode/rexray/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/emccode/rexray/compare/8c3feecd074c0f55b46ad6ca006bf538a81b044e...a6191e65691258a929521170fb218d2df31027ae?src=pr
[cc-pull]: https://codecov.io/gh/emccode/rexray/pull/503?src=pr


Manually filling in dynamic column name based on joined model

OK, so I have a situation where an Article has_many Tags, and a Tag has_many Articles, through a join table that belongs_to both of them. That's where this code is:
class ArticlesTag < ActiveRecord::Base
  belongs_to :article
  belongs_to :tag

  counter_culture :tag, column_name: "articles_count"
  counter_culture :tag, column_name: Proc.new{ |model| model.article.recent? ? 'recent_articles_count' : nil }

As you can see, I'm trying to store both the number of articles associated with a tag, and the number of "recent" articles. The problem here comes up when I try to populate the count columns in the Tag table using counter_culture_fix_counts:
Must provide :column_names option for relation [:tag] when :column_name is a Proc; you may skip this relation with :skip_unsupported => true

But I can't figure out how to properly configure that option. The condition that makes an article recent is on the article table itself, not the join table where all the counter_cache code is going. If I add an option like:
column_names: {
  ["articles.created_at > ?", 30.days.ago] => 'recent_articles_count'
}

I just get an error that there is no such column 'articles.created_at', since the articles table isn't being joined in when it tries to run the counter_culture_fix_counts command.

I would like to contribute and add an option for joins. Would that be a good thought ?
I know it wont be efficient in terms of space and time but it would be an option eventually.
counter_culture :tag,
   column_name: Proc.new{ |model| model.article.recent? ? 'recent_articles_count' : nil },
   joins: ["articles"],
   column_names: { ["articles.recent = ?", true] => 'recent_articles_count' }

@swapnilabnave I'm not sure I understand how that would work. I'm open to adding some sort of support here going forward, but I'd need some more details to know whether that makes sense.

@magnusvk
Ok. So here's real case scenario, which I was trying to achieve using counter_culture.
class Conversation < ActiveRecord::Base
  attr_accessible :name, :guest_count

  has_many   :conversation_members
  has_many   :guest_users, through: :conversation_members, source: :user, conditions: ["users.user_type = ?", 'G']
end

class ConversationMember < ActiveRecord::Base
  attr_accessible :conversation_id, :user_id

  belongs_to :conversation
  belongs_to :user

  counter_culture :conversation,
  	column_name: proc {|conv_member| conv_member.user.is_guest? ? 'guest_count' : nil },
  	column_names: {
		  ["users.user_type = ?", 'G'] => 'guest_count' ## I need to check the condition on `users` table instead of `conversation_members` table
		}
end

I want to count the guest_users for each conversation, this would require a join of users and conversation_members.
So I am basically trying to form a query which looks likes this. It gives me the guest_count as expected.
SELECT
    conversations.id,
    COUNT(conversation_members.id) AS count,
    conversations.guest_count
FROM
    `conversations`
        LEFT JOIN
    conversation_members AS conversation_members ON conversations.id = conversation_members.conversation_id
        LEFT JOIN
    users ON users.id = conversation_members.user_id
WHERE
    users.user_type = 'G'
GROUP BY `conversations`.`id`
ORDER BY count DESC
LIMIT 1000;

With that said, if I add a joins option in counter_culture method case can be solved.
  counter_culture :conversation,
  	column_name: proc {|conv_member| conv_member.user.is_guest? ? 'guest_count' : nil },
  	joins: ['users']
  	column_names: {
		  ["users.user_type = ?", 'G'] => 'guest_count' ## I need to check the condition on `users` table instead of `conversation_members` table
		}

but I'd need some more details to know whether that makes sense

Does that makes sense ? Or am I just over doing it which might not be really necessary ?
--
Btw. I solved the problem without counter_culture though, using traditional ActiveRecord#after_save callback.

Got you, that makes sense.
I think it's perfectly reasonable to use counter_culture for this with a custom fix_counts method you build, right? You wouldn't need to make all the actual counting work, the gem would do that, you'd just write a single method to fix counts. Seems easier than extending the gem. :)
That being said, if you added something here I'd be happy to look at a pull request.

I encountered a similar scenario as @swapab, I was wondering if the joins option is already included in the gem?

No, unfortunately #138 was abandoned before it was ready to merge.


Can't see public timeline

After logging in i cannot see a public timeline, only my own tweets.

By default you are redirected to ur own timeline(Which is empty because you follow noone) you have to manually navigate to public timeline. I just made a new user and i see the timeline without issues? Can you let me know if im doing something differently from what ur doing?


Bug: Non pareto-optimal solution

To reproduce the issue, run the service with GTFS_STATIC_URI=https://opentransportdata.swiss/en/dataset/timetable-2024-gtfs2020/permalink.
Source: http://localhost:8080/schedule/stops/Parent8516161
{
  "id": "Parent8516161",
  "name": "Bern Wankdorf",
  "coordinates": {
    "latitude": 46.96782578,
    "longitude": 7.46547612
  }
}

Target: http://localhost:8080/schedule/stops/Parent8503000
{
  "id": "Parent8503000",
  "name": "Zürich HB",
  "coordinates": {
    "latitude": 47.3781762,
    "longitude": 8.54021154
  }
}

Connection: http://localhost:8080/routing/connections?sourceStopId=Parent8516161&targetStopId=Parent8503000&dateTime=2024-10-21T10:47:00
[
  {
    "legs": [
      {
        "type": "ROUTE",
        "from": {
          "latitude": 46.96776448,
          "longitude": 7.46572765
        },
        "to": {
          "latitude": 46.94785604,
          "longitude": 7.4350412
        },
        "fromStop": {
          "id": "8516161:0:5",
          "name": "Bern Wankdorf",
          "coordinates": {
            "latitude": 46.96776448,
            "longitude": 7.46572765
          }
        },
        "toStop": {
          "id": "8507000:0:1A-D",
          "name": "Bern",
          "coordinates": {
            "latitude": 46.94785604,
            "longitude": 7.4350412
          }
        },
        "departureTime": "2024-10-21T10:54:00",
        "arrivalTime": "2024-10-21T11:00:00",
        "trip": {
          "headSign": "Belp",
          "route": {
            "id": "91-3-F-j24-1",
            "name": "",
            "shortName": "S3",
            "transportMode": "RAIL",
            "transportModeDescription": "Suburban Railway"
          },
          "stopTimes": [
            {
              "stop": {
                "id": "8504300:0:9",
                "name": "Biel/Bienne",
                "coordinates": {
                  "latitude": 47.13174632,
                  "longitude": 7.24430191
                }
              },
              "arrivalTime": "2024-10-21T10:24:00",
              "departureTime": "2024-10-21T10:24:00"
            },
            {
              "stop": {
                "id": "8504416:0:2",
                "name": "Brügg BE",
                "coordinates": {
                  "latitude": 47.12309803,
                  "longitude": 7.27911163
                }
              },
              "arrivalTime": "2024-10-21T10:27:00",
              "departureTime": "2024-10-21T10:27:00"
            },
            {
              "stop": {
                "id": "8504441:0:2",
                "name": "Studen BE",
                "coordinates": {
                  "latitude": 47.11071293,
                  "longitude": 7.30150663
                }
              },
              "arrivalTime": "2024-10-21T10:29:00",
              "departureTime": "2024-10-21T10:29:00"
            },
            {
              "stop": {
                "id": "8504415:0:2",
                "name": "Busswil BE",
                "coordinates": {
                  "latitude": 47.09793969,
                  "longitude": 7.31799072
                }
              },
              "arrivalTime": "2024-10-21T10:32:00",
              "departureTime": "2024-10-21T10:32:00"
            },
            {
              "stop": {
                "id": "8504414:0:3",
                "name": "Lyss",
                "coordinates": {
                  "latitude": 47.07527785,
                  "longitude": 7.30704924
                }
              },
              "arrivalTime": "2024-10-21T10:36:00",
              "departureTime": "2024-10-21T10:37:00"
            },
            {
              "stop": {
                "id": "8504413:0:4",
                "name": "Suberg-Grossaffoltern",
                "coordinates": {
                  "latitude": 47.05723323,
                  "longitude": 7.33961316
                }
              },
              "arrivalTime": "2024-10-21T10:39:00",
              "departureTime": "2024-10-21T10:39:00"
            },
            {
              "stop": {
                "id": "8504412:0:2",
                "name": "Schüpfen",
                "coordinates": {
                  "latitude": 47.04153942,
                  "longitude": 7.38736761
                }
              },
              "arrivalTime": "2024-10-21T10:43:00",
              "departureTime": "2024-10-21T10:43:00"
            },
            {
              "stop": {
                "id": "8504411:0:2",
                "name": "Münchenbuchsee",
                "coordinates": {
                  "latitude": 47.02094807,
                  "longitude": 7.45334886
                }
              },
              "arrivalTime": "2024-10-21T10:47:00",
              "departureTime": "2024-10-21T10:47:00"
            },
            {
              "stop": {
                "id": "8504410:0:3",
                "name": "Zollikofen",
                "coordinates": {
                  "latitude": 47.00292182,
                  "longitude": 7.4637244
                }
              },
              "arrivalTime": "2024-10-21T10:51:00",
              "departureTime": "2024-10-21T10:51:00"
            },
            {
              "stop": {
                "id": "8516161:0:5",
                "name": "Bern Wankdorf",
                "coordinates": {
                  "latitude": 46.96776448,
                  "longitude": 7.46572765
                }
              },
              "arrivalTime": "2024-10-21T10:54:00",
              "departureTime": "2024-10-21T10:54:00"
            },
            {
              "stop": {
                "id": "8507000:0:1A-D",
                "name": "Bern",
                "coordinates": {
                  "latitude": 46.94785604,
                  "longitude": 7.4350412
                }
              },
              "arrivalTime": "2024-10-21T11:00:00",
              "departureTime": "2024-10-21T11:02:00"
            },
            {
              "stop": {
                "id": "8507082:0:1",
                "name": "Bern  Europaplatz",
                "coordinates": {
                  "latitude": 46.94385139,
                  "longitude": 7.40722936
                }
              },
              "arrivalTime": "2024-10-21T11:06:00",
              "departureTime": "2024-10-21T11:06:00"
            },
            {
              "stop": {
                "id": "8507079:0:1",
                "name": "Bern Weissenbühl",
                "coordinates": {
                  "latitude": 46.93594546,
                  "longitude": 7.42978605
                }
              },
              "arrivalTime": "2024-10-21T11:08:00",
              "departureTime": "2024-10-21T11:08:00"
            },
            {
              "stop": {
                "id": "8507078:0:1",
                "name": "Wabern bei Bern",
                "coordinates": {
                  "latitude": 46.92878679,
                  "longitude": 7.44498555
                }
              },
              "arrivalTime": "2024-10-21T11:11:00",
              "departureTime": "2024-10-21T11:11:00"
            },
            {
              "stop": {
                "id": "8507093:0:1",
                "name": "Kehrsatz Nord",
                "coordinates": {
                  "latitude": 46.91576133,
                  "longitude": 7.46620375
                }
              },
              "arrivalTime": "2024-10-21T11:13:00",
              "departureTime": "2024-10-21T11:13:00"
            },
            {
              "stop": {
                "id": "8507077:0:1",
                "name": "Kehrsatz",
                "coordinates": {
                  "latitude": 46.90883931,
                  "longitude": 7.47219552
                }
              },
              "arrivalTime": "2024-10-21T11:15:00",
              "departureTime": "2024-10-21T11:15:00"
            },
            {
              "stop": {
                "id": "8507092:0:1",
                "name": "Belp Steinbach",
                "coordinates": {
                  "latitude": 46.89513377,
                  "longitude": 7.49318915
                }
              },
              "arrivalTime": "2024-10-21T11:18:00",
              "departureTime": "2024-10-21T11:18:00"
            },
            {
              "stop": {
                "id": "8507076:0:2",
                "name": "Belp",
                "coordinates": {
                  "latitude": 46.88887826,
                  "longitude": 7.49851616
                }
              },
              "arrivalTime": "2024-10-21T11:21:00",
              "departureTime": "2024-10-21T11:21:00"
            }
          ],
          "bikesAllowed": false,
          "wheelchairAccessible": false
        }
      },
      {
        "type": "WALK",
        "from": {
          "latitude": 46.94785604,
          "longitude": 7.4350412
        },
        "to": {
          "latitude": 46.94908252,
          "longitude": 7.43911955
        },
        "fromStop": {
          "id": "8507000:0:1A-D",
          "name": "Bern",
          "coordinates": {
            "latitude": 46.94785604,
            "longitude": 7.4350412
          }
        },
        "toStop": {
          "id": "8507000:0:3",
          "name": "Bern",
          "coordinates": {
            "latitude": 46.94908252,
            "longitude": 7.43911955
          }
        },
        "departureTime": "2024-10-21T11:00:00",
        "arrivalTime": "2024-10-21T11:06:00",
        "trip": null
      },
      {
        "type": "ROUTE",
        "from": {
          "latitude": 46.94908252,
          "longitude": 7.43911955
        },
        "to": {
          "latitude": 47.37851077,
          "longitude": 8.537301
        },
        "fromStop": {
          "id": "8507000:0:3",
          "name": "Bern",
          "coordinates": {
            "latitude": 46.94908252,
            "longitude": 7.43911955
          }
        },
        "toStop": {
          "id": "8503000:0:34",
          "name": "Zürich HB",
          "coordinates": {
            "latitude": 47.37851077,
            "longitude": 8.537301
          }
        },
        "departureTime": "2024-10-21T11:31:00",
        "arrivalTime": "2024-10-21T12:28:00",
        "trip": {
          "headSign": "St. Gallen",
          "route": {
            "id": "91-1-D-j24-1",
            "name": "",
            "shortName": "IC1",
            "transportMode": "RAIL",
            "transportModeDescription": "Long Distance Trains"
          },
          "stopTimes": [
            {
              "stop": {
                "id": "8501026:0:4",
                "name": "Genève-Aéroport",
                "coordinates": {
                  "latitude": 46.23125029,
                  "longitude": 6.11034955
                }
              },
              "arrivalTime": "2024-10-21T09:32:00",
              "departureTime": "2024-10-21T09:32:00"
            },
            {
              "stop": {
                "id": "8501008:0:4",
                "name": "Genève",
                "coordinates": {
                  "latitude": 46.21215728,
                  "longitude": 6.14389264
                }
              },
              "arrivalTime": "2024-10-21T09:39:00",
              "departureTime": "2024-10-21T09:42:00"
            },
            {
              "stop": {
                "id": "8501120:0:1",
                "name": "Lausanne",
                "coordinates": {
                  "latitude": 46.51677456,
                  "longitude": 6.6295129
                }
              },
              "arrivalTime": "2024-10-21T10:17:00",
              "departureTime": "2024-10-21T10:20:00"
            },
            {
              "stop": {
                "id": "8504100:0:3",
                "name": "Fribourg/Freiburg",
                "coordinates": {
                  "latitude": 46.80101548,
                  "longitude": 7.14917931
                }
              },
              "arrivalTime": "2024-10-21T11:03:00",
              "departureTime": "2024-10-21T11:04:00"
            },
            {
              "stop": {
                "id": "8507000:0:3",
                "name": "Bern",
                "coordinates": {
                  "latitude": 46.94908252,
                  "longitude": 7.43911955
                }
              },
              "arrivalTime": "2024-10-21T11:26:00",
              "departureTime": "2024-10-21T11:31:00"
            },
            {
              "stop": {
                "id": "8503000:0:34",
                "name": "Zürich HB",
                "coordinates": {
                  "latitude": 47.37851077,
                  "longitude": 8.537301
                }
              },
              "arrivalTime": "2024-10-21T12:28:00",
              "departureTime": "2024-10-21T12:39:00"
            },
            {
              "stop": {
                "id": "8503006:0:5",
                "name": "Zürich Oerlikon",
                "coordinates": {
                  "latitude": 47.41089866,
                  "longitude": 8.54173868
                }
              },
              "arrivalTime": "2024-10-21T12:45:00",
              "departureTime": "2024-10-21T12:46:00"
            },
            {
              "stop": {
                "id": "8503016:0:1",
                "name": "Zürich Flughafen",
                "coordinates": {
                  "latitude": 47.44827868,
                  "longitude": 8.55988465
                }
              },
              "arrivalTime": "2024-10-21T12:51:00",
              "departureTime": "2024-10-21T12:53:00"
            },
            {
              "stop": {
                "id": "8506000:0:5",
                "name": "Winterthur",
                "coordinates": {
                  "latitude": 47.49883403,
                  "longitude": 8.722327
                }
              },
              "arrivalTime": "2024-10-21T13:06:00",
              "departureTime": "2024-10-21T13:08:00"
            },
            {
              "stop": {
                "id": "8506206:0:1",
                "name": "Wil SG",
                "coordinates": {
                  "latitude": 47.46167822,
                  "longitude": 9.04357353
                }
              },
              "arrivalTime": "2024-10-21T13:25:00",
              "departureTime": "2024-10-21T13:26:00"
            },
            {
              "stop": {
                "id": "8506208:0:4",
                "name": "Uzwil",
                "coordinates": {
                  "latitude": 47.43546514,
                  "longitude": 9.13091672
                }
              },
              "arrivalTime": "2024-10-21T13:33:00",
              "departureTime": "2024-10-21T13:34:00"
            },
            {
              "stop": {
                "id": "8506209:0:2",
                "name": "Flawil",
                "coordinates": {
                  "latitude": 47.41500805,
                  "longitude": 9.19025943
                }
              },
              "arrivalTime": "2024-10-21T13:39:00",
              "departureTime": "2024-10-21T13:39:00"
            },
            {
              "stop": {
                "id": "8506210:0:3",
                "name": "Gossau SG",
                "coordinates": {
                  "latitude": 47.41170719,
                  "longitude": 9.25689646
                }
              },
              "arrivalTime": "2024-10-21T13:44:00",
              "departureTime": "2024-10-21T13:45:00"
            },
            {
              "stop": {
                "id": "8506302:0:1",
                "name": "St. Gallen",
                "coordinates": {
                  "latitude": 47.42452651,
                  "longitude": 9.37104538
                }
              },
              "arrivalTime": "2024-10-21T13:52:00",
              "departureTime": "2024-10-21T13:52:00"
            }
          ],
          "bikesAllowed": false,
          "wheelchairAccessible": false
        }
      }
    ]
  }
]

Access using Python client:
import datetime
from public_transit_client.client import PublicTransitClient

NAVIQORE_SERVICE_URL = "http://localhost:8080"

client = PublicTransitClient(NAVIQORE_SERVICE_URL)
connections = client.get_connections(source="Parent8516161", target="Parent8503000", time=datetime.datetime(2024, 10, 21, 10, 47))

for connection in connections:
    print(f"Connection: {connection.first_stop.name} - {connection.last_stop.name}")
    for leg in connection.legs:
        if leg.is_walk:
            print(f"  - {leg.type.name} - {leg.departure_time}: {leg.from_coordinate.latitude, leg.from_coordinate.longitude} -> {leg.arrival_time}: {leg.to_coordinate.latitude, leg.to_coordinate.longitude}")
        else:
            print(f"  - {leg.trip.route.transport_mode.name} - {leg.departure_time}: {leg.from_stop.name} -> {leg.arrival_time}: {leg.to_stop.name}")

Connection: Bern Wankdorf - Zürich HB
  - RAIL - 2024-10-21 11:13:00: Bern Wankdorf -> 2024-10-21 11:18:00: Bern
  - WALK - 2024-10-21 11:18:00: (46.94785604, 7.4350412) -> 2024-10-21 11:24:00: (46.94908252, 7.43911955)
  - RAIL - 2024-10-21 11:31:00: Bern -> 2024-10-21 12:28:00: Zürich HB
Connection: Bern Wankdorf - Zürich HB
  - RAIL - 2024-10-21 10:53:00: Bern Wankdorf -> 2024-10-21 11:08:00: Burgdorf
  - WALK - 2024-10-21 11:08:00: (47.06082551, 7.62354368) -> 2024-10-21 11:11:00: (47.06072148, 7.6240108)
  - RAIL - 2024-10-21 11:21:00: Burgdorf -> 2024-10-21 11:54:00: Olten
  - WALK - 2024-10-21 11:54:00: (47.3545202, 7.9086959) -> 2024-10-21 11:59:00: (47.35387511, 7.90800419)
  - RAIL - 2024-10-21 11:59:00: Olten -> 2024-10-21 12:30:00: Zürich HB

@munterfi: Seems like you have to fix this :)
Was feeling like a debugging session, but when I tried reproducing your error, I wasn't able to. Not sure how to proceed on my side. This is very weird.

Found the issue, the problem was only present in range raptor configurations and can be considered somewhat edge case.
In this exact case the problem was that there are many departures from Wankdorf and therefore a raptor routing request was made in 6 minute increments starting from the latest time (in my case range 1800s) --> 12:15 (when query time was set at 11:45). At 12:15 (or 12:09, 12:03, 11:57) the optimal earliest arrival time was found with 3 rounds and since the same bestLabelsPerRound data structure is used for all, there was a label set in round 3. And then even if the earliest arrival time is then later found with a 2 round connection, this label will never be removed, thus will be returned without post processing. This post processing / filtering is now done in ch.naviqore.raptor.router.LabelPostprocessor.reconstructParetoOptimalSolutions (commit: 48fb7c3).
A further minor bug (with no big effect) was also found in the process, the method ch.naviqore.raptor.router.QueryState.getActualBestTime did actually not return the actual best time, as it was looking for the highest round label which was not null for a given stop. Again for range raptor the highest round might not always be the actual best time and thus it's better to check all possible times to determine the best. Fix implemented in (d3895b1).
I haven't implemented any tests, as coming up with a dummy schedule to cover this in the raptor tests is currently beyond my mental capacity. And this seems to niche to justify using reflections to do real unit tests on underlying methods.


Checking isHeadless from DisplayDevice

Quick Fix for #3021
Fetches the context from CoreRegistry.get() (since @In wasn't working, maybe because it is not a registered system). Finds the DisplayDevice from the context and uses the built in method isHeadless to check if it is headless.

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Looks good to me, especially with the super critical optimization added in :D
@GabrielXia: general question - how do you think something like this would impact aggregated data? Imagine if we're trying to make a pie chart for video cards. For normal client runs you get a valid video card. For a headless run you get nothing now. And could a user selectively exclude stuff at some point? Probably there are better examples than video card for that.
Would we have something like:

Total number of systems that have submitted metrics
Number of systems with video card x (and y, z, etc)
Number of systems that excluded this metric
Number of systems that ran headless

That would make a chart pretty easily. But would the lack of a metric get in the way, or would setting a different metric be better? Or instead of skipping them like this PR does should we just set those keys to an artificial value to indicate headless?

Tested and working locally, thanks and LGTM :+1:

Merged - thanks! :-)


Subfolders with pika CDN

Can Pika CDN query a subfolder? e.g. how to use preact/hooks?
Expanding on the above, what's the recommended method for library creators?
import pkg from 'pkg'; // ES5
import pkg from 'pkg/modern'; // ES2019+

Should ES5 be the default (no transpiling node_modules), and allow users to opt-in to modern syntax by specifying the subfolder in the path (with its own package.json) that they can transpile themselves, rather than the other way around?

This is a great question that I'm thinking through now myself. There's no agreed upon path forward yet, but from talking to different people I'm starting to see some rough alignment forming around:

Create React App and others are now compiling node_modules, so package authors are starting to feel comfortable publishing latest ES2019 spec at the "module" entrypoint. Package consumers can then compile as needed.
Importing from within packages by file name (import x from "pkg/lib/some/path/to/file.js";) works in some scenarios but not all, especially when a package has multiple distributions ("main", "module", etc.) Not to mention, files can move around packages internally without being considered a breaking change by authors.
What @developit has started doing, which I tend to like, is using nested packages. So:

preact is a folder with a package.json manifest
preact contains a ./hooks sub-folder with it's own package.json manifest
import via preact/hooks, and you can still allow the bundler/Node to resolve to the correct file.

This feels more friendly to my personally but is also great the CDN, because it means that tooling gets an explicit idea of what a packages entrypoints are (all non-test sub-folders with a package.json manifest). A problem with "any file is potentially an entrypoint" is that it would be impossible for the CDN to support this reliably, since we try to bundle packages into as few files as possible.
/cc @developit @MylesBorins

is it possible that the pika cdn could generate bundles for any .js file as an entrypoint?

Also htm/preact from @developit


Max Daily Temperature broken

Version of home_assistant
2024.5.3
Version of the custom_component
2.1.2
Describe the bug
The following code was working last year (you suggested this, many thanks again), it does not work anymore though:
  - trigger:
    - platform: time
      at: "00:02:00"
    - platform: homeassistant
      event: start
    - platform: event
      event_type: event_template_reloaded
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.dwd_station_redacted
        response_variable: weather_data
    sensor:
      - name: "Max temp today"
        unique_id: max_temp_today
        state: >-
          {{ weather_data['weather.dwd_station_redacted'].forecast[0].temperature }}
        unit_of_measurement: "°C"
      - name: "Min temp today"
        unique_id: min_temp_today
        state: >-
          {{ weather_data['weather.dwd_station_redacted'].forecast[0].templow }}
        unit_of_measurement: "°C"

The entity sensor.max_temp_today seems to show the minimum daily temperature now, instead of the maximum. It feels like the data structure has changed. If there is a place where I can look this up, please point me in the right direction. I went to the DWD OpenData page but it does not seem there is a description of the data format.
"Force hourly data update" is enabled for me, but I notice that data type is set to "daily" in this yaml, I wonder if there is a conflict.
Debug log
There are no errors in the logs, as far as I can tell.

I feel I need to create a second sensor, same DWD station, but left in "daily data update" mode. I will try this.

Hi, sorry for my late reply. There hasn't been changed regarding this data structure. The temperature attribute is still the same, so the max temp should still be the maximum temperature of the day. Can you please provide some details about your suspected error in the data?

Hi, no problem.
For example, currently sensor.max_temp_today is 16°C. 16°C is the minimum today though...
Will the below really get the daily minimum? Or is 0 the first hour of the day? (my service is set to collect hourly data)
weather_data['weather.dwd_station_redacted'].forecast[0].temperature

It's weird, it seems to work at first when I reload Home Assistant, then it goes wrong and sensor.max_temp_today is even lower than the daily max I see in the forecast card for weather.dwd_station_redacted...

Then I reload HA and it's correct again.

@Qhilm Do you have the daily update enabled?

So the yaml above says "daily" but the device is set to "hourly". I'm not entirely clear on how the two interacts.

I tried creating an new integration entry set to "daily", that didn't help.
There are two symptoms:

Restart Home Assistant always temporarily fixes the issue. The next day it's wrong again.
When sensor.max_temp_today is wrong the value is way too low, it's sometime lower than the daily minimum, I have really no idea what this temperature is supposed to represent.

It's like weather.get_forecasts is broken and pulling some garbled data and when HA restarts it does something else, not weather.get_forecasts...

Update: the history of sensor.max_temp_today shows that it is indeed fetching something at 2am, the trigger seems to be working.
It seems that the trigger triggers it does something that is different than what happens when restarting HA.

I am quite busy right now, so I currently have no time for assisting you. I am sorry, but I promise I will look into this after I find some time!

I need the same values too. Maybe you can add them as entity in the next version?

@SeriousPat Yes, I will do this. I'll see when I find time for this.

@Qhilm I am currently trying to understand how this issue can arise. Can you please change the update time to something later:
`trigger:
- platform: time
at: "04:02:00"
..
`
And please tell me if anything changes. I suspect that there might be some time issues.

@FL550, unfortunately it did not work, I changed it yesterday:

Starting point: Max temp is wrong, showing 17°C while it's 22°C according to the weather forecast card.
change time for update from "02:00:00" to "04:02:00" in configuration.yaml
restart Home assistant, max temperature is now 22°C as expected. (Restarting Home Assistant has always temporarily fixed the issue)
Wait until the next morning: max temperature is wrong again, back to 17°C, while today it should be 23°C.

I have a historical graph of the daily max temperature also, and I can clearly see it's 22°C until 4:02, then it's wrong, hence it's clearly the update in the night which somehow fails, while restarting home assistant works every time.

@Qhilm Hm, so there is something wrong with the data this is based on. I'll try debug this further, however I need to set up a testing environment which can run for a few days. I'll keep you updated.

And sorry for this taking so long. I moved to a new city and I'm quite busy working so I don't find much free time for troubleshooting.

I think I found the issue. Implementation will however need some more days.

I released a new version which hopefully fixes this.
Moreover I will implement some form of caching, so that the max and min values are not overwritten as new data is loaded. This however will need some more time. I'll keep you posted.

I released a new version which hopefully fixes this.
Moreover I will implement some form of caching, so that the max and min values are not overwritten as new data is loaded. This however will need some more time. I'll keep you posted.

It works for me now, many many thanks!


Bad names for MQTT variables.

Will need to change variable names otherwise Home Assistant does not write data to them.
Basal Metabolism -> Basal_Metabolism
Visceral_Fat -> Visceral_Fat

I'm confused. Home assistant should not write back to MQTT, it should only get the information from MQTT to then display as a sensor.

Sorry, this is my mistake... It's work perfectly, thanks.

Thanks. That said It would make sense to follow json standards of snake case, so will look at this in a future release.


This package requires thadafinser/package-info but does not appear to use it.

This package requires thadafinser/package-info but does not appear to use it. Am I missing something?

@unstoppablecarl its used indirectly. During installation it extracts the versions of the installed packages.
That information is then used here:
https://github.com/ThaDafinser/UserAgentParser/blob/master/src/Provider/AbstractProvider.php#L123-L132


Feature/jen cal fs

Fixing issues in the component discovered during v4s implementation code review.
Critical Changes
Changes
Issues Closed

@davidhabib I've made the changes to npsp component from the comments in the v4s which is also updated with these changes.


Auto-batch proof-of-concept

Q: What is a "batch request"?
A: FHIR includes "batch" support which allows you to make multiple FHIR API calls in a single HTTP request.  This can be a performance improvement for both the client and the server.
Q: What's an example of a "batch request"?
A: Imagine visiting the a Patient page.  To render the page, we need to load:

The resource
The resource history
Potentially the resource type schema StructureDefinition
Related resources such as Communication, ServiceRequest, DiagnosticReport, etc

The Medplum app packages all of those together into a batch request.
Q: What is "auto batching"?
Before, if a developer wanted to make a batch request, they had to create the batch request manually.  The semantics are subtly different between "make a request" and "make a request as part of a batch", so this had some cognitive overhead.  Also, you had to organize all of the requests in a single place, which made it difficult to successfully batch requests in separate React components.
With auto batching, all of that happens seamlessly behind the scenes.  MedplumClient adds a small delay (i.e., ~20 ms) to every FHIR request.  At the end of the delay, it groups together all of the requests into a batch request.  After executing the batch, MedplumClient returns the results as if the requests were made independently.
Q: Is auto batching required?
A: No, not at all.  It is off by default.  It is opt in.
Q: Are there other benefits?
A: I'm so glad that you asked.
Auto batching also works better for resource caching.  Consider the previous example of visiting a Patient page.  Consider that 1+ of those requests is already in the cache.  Before, with manual batching, we would not take advantage of preexisting cache values.  With auto batching, MedplumClient only makes the requests that it needs to make.

Coverage decreased (-0.2%) to 93.57% when pulling d63acfe1a3460a41230f529f8d810dd80d9e2e18 on cody-auto-batch into eedb930f692a4867c358c9c432b2e21fe481453d on main.


Adding branch coverage support and reporting.

After support gcov will include the branches calculation (the .info file will contain the branch misses):
Overall coverage rate:
  lines......: 94.9% (169 of 178 lines)
  functions..: 100.0% (8 of 8 functions)
  branches...: 63.9% (106 of 166 branches)

HTML reports will also include the new information:

How do you run this? I am assuming this is only for running locally, because CI already has branch coverage:

How do you run this?

@ahsonkhan like documented here: https://github.com/Azure/azure-sdk-for-c/blob/master/CONTRIBUTING.md#code-coverage-reports

/check-enforcer evaluate

/check-enforcer reset

/check-enforcer evaluate


Another language

Hi. I have a question about another language on my Azure map. How I can change the language on the map from eng to german??

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 804e96c1-f08a-1d2e-9465-d157d38274e7
Version Independent ID: 1d84f4aa-cc3a-3dd1-ea7d-8cce1f512ecd
Content: Localization support with Microsoft Azure Maps
Content Source: articles/azure-maps/supported-languages.md
Service: azure-maps
GitHub Login: @stevemunk
Microsoft Alias: v-munksteve

@pan9killer
I have assigned the issue to the content author for further review.
Please also do visit Microsoft Q&A the home for technical questions and answers at Microsoft.

@pan9killer Have you looked at the Azure Maps Samples? The sample titled Map Localization may help.


Added 'Next-Postgres-With-Typescript' project starter

Thank you @brandontle this is a great example how to port an existing JS app to Typescript


App Archive and Clean Up - Check Approvals and Archive Flow

After approval, when this flow triggers, I (and another admin) get an error on the "Parse JSON - Archive Approval Item" action: InvalidTemplate. Unable to process template language expressions in action 'Parse_JSON-Archive_Approval_Item' inputs at line '1' and column '10746': 'Required property 'content' expects a value but got null. Path ''.'.
The output of the previous action "Filter Archive Approval to get current item" returns an empty object. Looks like there's a mismatch when the Approval Response entity is updated. Somehow the actual approval response does not update the "Approval Response" entity.
https://make.powerapps.com/environments/c568f516-5ea0-488d-a543-daad946c028c/logicflows

Apologies for the delay in response. Could you confirm that this issue still persists? I'm happy to investigate what might be causing the error/null value if so.

Closing out old issues without existing action. Please let us know if you have issues in the future!


Add https://github.com/al1-ce/just.nvim in Code runner

https://github.com/al1-ce/just.nvim is a task runner for https://github.com/casey/just

the PR doesn't conform to the template. please follow https://github.com/rockerBOO/awesome-neovim/blob/main/CONTRIBUTING.md

Oh, sorry. I'll change it a bit later

Made a PR #1213


Add an app icon to the application.

Add a creative app icon to the application

Hey @aniketsen123
I want to work on this issue under JWOC

I want to work on this issue please assign me this issue.

Sure @tusharsh21

@Aniket-011 your time is up

Please assign me this issue.


os: Environ is corrupted on windows

What version of Go are you using (go version)?

$ go version
go version go1.21.0 windows/arm64

Does this issue reproduce with the latest release?
This is the latest release at this time, so yes.go
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
set GO111MODULE=
set GOARCH=arm64
set GOBIN=
set GOCACHE=C:\Users\me\AppData\Local\go-build
set GOENV=C:\Users\me\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=arm64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\me\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\me\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_arm64
set GOVCS=
set GOVERSION=go1.21.0
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=C:\Users\me\Code\go-rauc\go.mod
set GOWORK=C:\Users\me\Code\go.work
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\me\AppData\Local\Temp\go-build1324737207=/tmp/go-build -gno-record-gcc-switches

What did you do?

I called os.Environ on a vanilla installation of Windows on aarch64 aka arm64:
package main

import (
	"log"
	"os"
)

func main() {
	for i, env := range os.Environ() {
		log.Printf("os.Environ()[%d] = %q", i, env)
	}
}

What did you expect to see?
Normal set of key=value pairs.
What did you see instead?
The first few entries seem malformed (each printed string is from fmt with %q)
C:\Users\me\Code\go-issue>go-issue.exe
2023/08/11 23:11:40 os.Environ()[0] = "=C:=C:\\Users\\me\\Code\\go-issue"
2023/08/11 23:11:40 os.Environ()[1] = "=ExitCode=00000000"
2023/08/11 23:11:40 os.Environ()[2] = "ALLUSERSPROFILE=C:\\ProgramData"
2023/08/11 23:11:40 os.Environ()[3] = "APPDATA=C:\\Users\\me\\AppData\\Roaming"
2023/08/11 23:11:40 os.Environ()[4] = "CommonProgramFiles=C:\\Program Files\\Common Files"
2023/08/11 23:11:40 os.Environ()[5] = "CommonProgramFiles(Arm)=C:\\Program Files (Arm)\\Common Files"
2023/08/11 23:11:40 os.Environ()[6] = "CommonProgramFiles(x86)=C:\\Program Files (x86)\\Common Files"
2023/08/11 23:11:40 os.Environ()[7] = "CommonProgramW6432=C:\\Program Files\\Common Files"
...

The same program executed from powershell:
PS C:\Users\me\Code\go-issue> .\go-issue.exe
2023/08/11 23:12:35 os.Environ()[0] = "ALLUSERSPROFILE=C:\\ProgramData"
2023/08/11 23:12:35 os.Environ()[1] = "APPDATA=C:\\Users\\me\\AppData\\Roaming"
2023/08/11 23:12:35 os.Environ()[2] = "CommonProgramFiles=C:\\Program Files\\Common Files"
2023/08/11 23:12:35 os.Environ()[3] = "CommonProgramFiles(Arm)=C:\\Program Files (Arm)\\Common Files"
2023/08/11 23:12:35 os.Environ()[4] = "CommonProgramFiles(x86)=C:\\Program Files (x86)\\Common Files"
2023/08/11 23:12:35 os.Environ()[5] = "CommonProgramW6432=C:\\Program Files\\Common Files"
...

I've since verified the same behavior exists on Windows 11 amd64.

Thanks for reporting. I can reproduce a similar issue in windows/amd64 with go1.20 using PowerShell too:
PS C:\Users\qmuntaldiaz\code\gotest> go run .
2023/08/11 16:20:09 os.Environ()[0] = "=::=::\\"
...

Found this excellent article from Raymond Chen, titled What are these strange =C: environment variables?: https://devblogs.microsoft.com/oldnewthing/20100506-00/?p=14133.
TLDR: Go is not inventing nor misprocessing environment variables, =C:=C: and friends are returned by the OS.
We could filter out variables starting with =, but I'm not sure it worth doing, someone could be expecting them. Quoting Raymon:

What should you do about these variables, then?

Nothing. Just let them be and do their jobs. I’m just mentioning them here so you won’t freak out when you see them.

I don't mind having them but I think there are some things that ought to be done about os.Clearenv and os.Setenv, as one cannot set them or clear and restore them.
Perhaps we should have a way to snapshot and restore environment, including weird things like that, reliably, without having to do it through the key=value interface?

Thinking about this some more and looking at https://github.com/golang/go/blob/8870b8d2817dc90da96ce6cfb767034d12965252/src/syscall/env_windows.go#L61 I would argue that os.Clearenv should probably not clear them (perhaps there ought to be a Clearenv2 with this different semantics to retain compatibility). This is in line with the intent of the feature and should retain the simple semantics of key=value pairs that is cross-platform.

See previously:

#49886
#52436

Note in particular that the deduplication logic for os/exec.Cmd was changed to handle these keys more correctly in https://go.dev/cl/401339.

I think there are some things that ought to be done about os.Clearenv and os.Setenv, as one cannot set them or clear and restore them.

Could you give some more detail on that?
The test I added in https://go.dev/cl/367850 does attempt to verify that os.Setenv works for those keys (or at least does not error out for them), and it looks like Clearenv is handling them correctly to.

@bcmills apologies, I misunderstood how to work with the leading-'=' variables:
For anyone in the future looking at this, the entry is still ought to be a key-value pair, just that the key has a leading equals sign.
With this clarification all the stdlib functions work correctly:

package main

import (
	"log"
	"os"
	"strings"
)

func main() {
	before := os.Environ()
	os.Clearenv()
	for _, ent := range before {
		idx := strings.IndexByte(ent, '=')
		bias := 0
		if idx == 0 {
			idx = strings.IndexByte(ent[1:], '=')
			bias = 1 // ----------------^
		}
		if idx < 0 {
			log.Fatalf("Environment entry %q is missing an =", ent)
		}
		idx += bias
		k, v := ent[:idx], ent[idx+1:]
		log.Printf("Setting environment variable %q to %q", k, v)
		if err := os.Setenv(k, v); err != nil {
			log.Fatalf("Cannot set environment variable %q to %q: %v", k, v, err)
		}
	}
	after := os.Environ()
	if len(before) != len(after) {
		log.Fatalf("Environment size differs %d != %d", len(before), len(after))
	}
	for i := range before {
		if before[i] != after[i] {
			log.Fatalf("Environment entry %d differs: %q != %q", i, before[i], after[i])
		}
	}
}

This leaves me with only one suggestion, perhaps there ought to be an os.SplitEnv that knows how to correctly split a key=value pair with leading =
One small remark about the test added in https://go-review.googlesource.com/c/go/+/367850 -- I think it handles missing, non-leading = incorrectly and would fail to report an error on environment with an entry like =foo, because it unconditionally adds one to the index once the leading = was skipped over.

For reference, my implementation of splitEnv: https://gitlab.com/zygoon/go-cmdr/-/merge_requests/63/diffs

perhaps there ought to be an os.SplitEnv that knows how to correctly split a key=value pair with leading =.

That sounds reasonable to me. Want to file a separate proposal?

Duplicate of #49886


fix outputs

Did you want me to merge or are you still working on this? Looks like it having an issue with documentation building

Still working on it. Documentation compiles locally, but opens the qt/napari window. Seems to fail when I build on git, I'm guessing bc it can't open the gui?
Will look into it next week, unless you know off the top of your head how to fix it :-)
On 21 February 2021 18:52:23 Henry Pinkard<EMAIL_ADDRESS>wrote:
Did you want me to merge or are you still working on this? Looks like it having an issue with documentation building
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://github.com/micro-manager/pycro-manager/pull/247#issuecomment-782896853, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANS7UC4OGLVXEA334RP3HFLTAFB5LANCNFSM4XYAYQ6Q.

Sounds reasonable, but I'm not sure


parameter details on new lines aren't being recognized by doxygen

doxygen only parses the parameter description on the same line as the parameter role

Parameter details were on outdated interface (the issue hasn't necessarily been fixed)

for return details: doxygen parses them as @details and brings them to the top with the description
this is somewhat unwanted: details should ideally appear where they are in the inline documentation


[ON HOLD] Add source param to the gxa request url

Description:
This PR fixes the broken Expression Atlas widget for Fruit Fly (also other species?). The issue was with the missing 'source' param in the request that gets sent to gxa
Sandbox URLs:
Works fine for Humans and Fruit fly:
http://wp-np2-1d.ebi.ac.uk:42229/Homo_sapiens/Gene/ExpressionAtlas?g=ENSG00000139618;r=13:32315086-32400268
http://wp-np2-1d.ebi.ac.uk:42229/Drosophila_melanogaster/Gene/ExpressionAtlas?db=core;g=FBgn0004513;r=3L:6240500-6245746;t=FBtr0077011
Still breaks for Zebrafish:
http://wp-np2-1d.ebi.ac.uk:42229/Danio_rerio/Gene/ExpressionAtlas?g=ENSDARG00000024771;r=18:5213338-5227420;t=ENSDART00000033574
Related JIRA ticket:
https://www.ebi.ac.uk/panda/jira/browse/ENSWEB-4932

I'm afraid this breaks human:
http://ves-hx2-76.ebi.ac.uk:42228/Homo_sapiens/Gene/ExpressionAtlas?g=ENSG00000139618;r=13:32315086-32400266

Since this has been hanging around for over six months, would it be acceptable to add an if block so that we pass different parameters when the species is human? Hacky, I know, but it seems a shame to omit GXA for species where this info is available.

Looking at the attached JIRA, it seems they should have an API by now to check this. I remembered doing another check (i think it was the widget availability), probably good to check with them again if they have the API, if not they might be able to help with another link to check.

Closing this PR as we do not have a clear solution or a workaround for this yet. We can create a different PR when we have a solution instead of keeping this one.


Speed up tests execution

Session-scoped fixtures
The fake_dists fixture is one of the most time-consuming fixtures, so it makes sense to make it and all related fixtures session-scoped.
Finetune tests distribution over the run
Initially, tests are distributed evenly across all worker processes. But during the execution of tests, some processes may finish running tests faster than others. In these cases, the --dist=worksteal option allows these "free" workers to "steal" tests from the queue of other, still working, processes.
This is particularly useful if the run times of different tests vary greatly, as this distribution method ensures more efficient resource usage, improving the performance of testing.
Refactored slow tests
test_generate_hashes_with_split_style_annotations and test_generate_hashes_with_line_style_annotations were utilizing too many external packages. We should always prefer local packages as they are faster and pip-compile doesn't need network to compile them.
Stats
Locally, it increases speed by about 30%. Here are CI runs:

@theryanwalker https://github.com/jazzband/pip-tools/pull/1967 should fix failing CI.

@atugushev one other thing I used to do in the past, was splitting the tests across multiple CI jobs so that it adds parallelism in an extra dimension. We could consider doing the same here.

one other thing I used to do in the past, was splitting the tests across multiple CI jobs so that it adds parallelism in an extra dimension. We could consider doing the same here.

@webknjaz, that's an interesting idea. Do you have any suggestions in mind regarding pip-tools?

Just a thought. It can be implemented as a pytest option in a few lines of code. But it might be not worth it, depending on the overhead of spawning more VMs. This really needs testing to see if it makes things better or worse.


Make it possible to programmatically yank a release

What's the problem this feature will solve?

It doesn't seem possible to yank/unyank a release from outside of the pypi.org website's UI.  For instance, it would be nice to do it from command line or from code.
Describe the solution you'd like

I would like to be able to make an http request that is the same as the one pypi makes when I click the yank release option in the dropdown menu on pypi.org's page for my package.  Right now, the blockers to that are related to origin, referrer, and CSRF.
Additional context

I wrote this up as a question to find out if it's possible to programmatically yank my release: https://github.com/pypa/packaging-problems/issues/633  A day of trying different options seems to suggest it's not possible.  Attempting to curl from the command line gave:

400 Bad CSRF Origin

400 Bad CSRF Origin
  Access is denied. This server can not verify that the origin or referrer of your request matches the current site. Either your browser supplied the wrong Origin or Referrer or it did not supply one at all.
Origin checking failed - missing Origin or Referer.

%
This happened no matter the combination of other factors I changed from attempt to attempt, including obtaining the CSRF token using a GET operation and supplying both that and the cookie to the POST operation.

This would be great for testing purposes! Has there been any consideration of implementing this? Are there major blockers?


Cleaned up deprecated warnings. Source parameter added.

Added source value so all html data, require('html_file') and url can be loaded

The changes in this PR were split up into or superseded by a few other PRs.
View cleanup after unmount: #11 (merged)
Cleaned up deprecated warnings: #17 (merged)
Injected javascript: #19 (merged)
Added source value: #20 (merged)
Removed postinstall because of windows: see #13 and https://github.com/jordansexton/react-native-webview-crosswalk/issues/14#issuecomment-223778367
Thanks for your work, and sorry I didn't get to merge this! It's much easier and safer for me to review and include your contributions quickly if you can open separate PRs for each discrete feature.

That's ok, i understand your position. Separate PR much better and i would act in same way, it's just lack of time.


⚠ Bofrost.be has degraded performance

In 4909ca1, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1288 ms

Resolved: Bofrost.be performance has improved in 89458ea after 19 minutes.


steam not being opened by .exe

i should also mention after restarting my pc the .exe is beign automatically removed by windows defender. is this a normal behaviour?

i should also mention after restarting my pc the .exe is beign automatically removed by windows defender. is this a normal behaviour?

yeah? it thinks it's a virus


Exception due to window already destroyed

In my case I get 'will-navigate' and a 'did-get-redirect-request' which means onCallback is called a second time. Resolving a promise a second time does not harm, but the window is already close on the first callback and therefore an exception is raised when trying to access it or close it again.
Another minor issue is that opts.additionalTokenRequestData throws an exception if no options object is passed in.
I will create a pull request.

Thanks for the PR, I'll review it soon and hopefully merge it (I'm new at helping maintain this repo, so it might take a little bit).


chore: merge dev into master

Coverage remained the same at 79.448% when pulling 43546f9b07ecf47b15518b58f835b4b6406b05d8 on dev into c633da98be97cb8bd995227b1bd3bf0130e6ce6c on master.


Write ATS for TG requirement 53

INSPIRE Metadata for the Download Service shall EITHER be linked to via an <inspire_common:MetadataURL> in an extended capabilities section, OR the extended capabilities section shall contain all the INSPIRE Metadata for the Download Service in accordance with Table 4 and the inspire_dls:ExtendedCapabilities schema.

Should the ATS validate the Metadata document referenced by the MetadataURL or not? And if so, to what level? Should it be schema validation and/or should some specific elements for the service be validated, like the Resource Locator?