skip_until and skip_then_retry_until always skip at least one token

This can be an issue when parsing input like let = expr given a rust-like grammar:
let ident = ident().recover_with(skip_until([Equals, Semicolon], |_| Error));

just(Let)
    .then(ident)
    .then(just(Equals))
    .then(expression())

Ideally, this should still be able to parse input like the above, though since skip_until always skips at least one token, we miss the required = for the next rule. As far as I can tell, the only way around this is to remove the skip_until and make the whole ident rule optional which will throw out the error from it being missing entirely.

Hi, thanks for pointing this out. I can see that this happens in skip_until, but I can't find a similar issue in skip_then_retry_until. Could you confirm that this is the case?

I've hopefully improved this in 03e6d4, could you verify that this is fixed?

I can't seem to reproduce it with skip_then_retry_until - I must have made an error when testing that originally. I can verify that skip_until is fixed, thank you!

Great, thanks!


updated manager-role for access to secrets

Description
Fix for #41
Type of change

[ ] Refactor
[ ] New feature
[x] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #
Closes #

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

Testing

Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

/lgtm
/approve


"http://www.fact-bounty.org/" in the project description is not working

Prerequisites

[x] I am running the latest version
[x] I checked to make sure that this issue has not already been filed

Expected Behavior
"http://www.fact-bounty.org/" should directed to the website
Current Behavior
It is showing an error.

I guess website might be down for maintenance.

It isn't working yet, is it down for maintenance?

Yes, it is down currently and will be deployed with latest version soon :smile:


Create ingress per leader

[NOTE THE MERGE BASE]
After fixing ingress v1 and moving it to v2, we now create a new ingress-per-leader interface at v0.
It contains a copy of the ingress v1, modulo some type and variable renames to match the new semantics.

This PR resolves https://github.com/canonical/traefik-k8s-operator/issues/159

decision after cafe yesterday: who needs this functionality can use grafana's approach and use traefik-route for now.
Providing ingress per leader is a separate discussion. Postponed.


call fsyncdata on flush

fix #48

Can you check the performance? I would like to get an idea of the impact of fsync on SSD. In particular, do we want to make it optional in the options?

we definitely wants this optional. When flushing every 16k/256k/4m: bench time is +13600%/+3132.9%/+422.11% (i did not run benches with smaller blocks, they were too slow).
if syncing every 100ms instead of every block of record, the results are less terrible: +92%/+87%/+49%

The code has become a tiny bit too flexible and a bit too confusing. (sync and flush are interverted in places)
Can we call it persist as the generic word, and drop the separate SyncPolicy?
#[derive(Copy, Clone, Debug)]
pub enum PersistAction {
    /// The buffer will be flushed to the OS, but not necessarily to the disk.
    Flush,
    /// The buffer will be flushed to the OS, and the OS will be asked to flush
    /// it to the disk.
    FlushAndFsync,
}

/// We have two type of operations on the mrecordlog.
///
/// Critical records are relatively rare and really need to be persisted:
/// - RecordPosition { queue: &'a str, position: u64 },
/// - DeleteQueue.
///
/// For these operations, we want to always flush and fsync.
///
/// On the other hand,
/// - Truncate
/// - AppendRecords
/// are considered are more frequent and one might want to sacrifice
/// persistence guarantees for performance.
///
/// The `PersistPolicy` defines the trade-off applied for the second kind of
/// operations.
pub enum PersistPolicy {
    DoNothing,
    Always(PersistAction),
    OnDelay(PersistAction),
}

#[derive(Debug)]
enum PersistState {
    OnAppend,
    OnDelay {
        next_sync: Instant,
        interval: Duration,
    },
    OnRequest,
}

Also, we are supposed to fsync the parent directory (yeah it is weird) when we create a new file.
Suggestion: we could always fsync a file when we close it.

superseded by #54


[WIP] Persist template with a document

[x] refactor Store a bit
[x] persist template
[x] basic tests
[x] make TemplateForm a stateless/pure component
[ ] check default document behavior

Fix #79

check default document behavior

as soon as a template is chosen, a personal document is created.


Can't build libpython 2.7.1 for arm64

Actually i can't build libffi and it prevents from building libpython:
here is build logfile: https://gist.github.com/4ntoine/6f1d719083accee1e86b

This is a known problem with libffi - you'll need to replace libffi-3.0.13 with a recent version of libffi's trunk.
I've stopped working on the 2.7 branch; the 3.4 branch is much more robust.

Thank for clarification! Honestly i have lot's of py files in my iOS app and i'm using libpython 2.7.1 and i'm afraid of moving to python 3.4 to have some incompatibilities of hidden errors. Any change you merge changes to 2.7.1 branch? If not, could you please explain in more details how can i replace libffi (just change version in some script?). Thanks

If it was a simple merge, I would; but it isn't. My 3.4 branch is a from-scratch piece of work, and the changes won't just apply. Even the build process is completely different.
My honest suggestion - if you're building for mobile, it's green-fields, new development, so the only big reason to stick with 2.7 (a legacy codebase) doesn't exist. The "Incompatibilities" are resolved for all the big software that is out there. I'd give serious thought to whether it would be better to start with 3.4, rather than 2.7.
I'm not intending to backport what I've done for 3.4 to 2.7. However, I'll certainly merge any patch provided. If someone wants to pay me, that might change my mind as well :-)

Thanks to some funding from the author of Pythonista, I've resolved this in the new Python-Apple-support package, which merges iOS, tvOS and macOS support into a single package.


i2c: remove dead code

There are some macros and struct's that never got used to maintain
I2C data.  Remove them as they aren't a supported interface.
Signed-off-by: Kumar Gala<EMAIL_ADDRESS>

@teburd these look like they got introduced here:
commit 8fed55f640563d358df119c029b6965794b5c7df
Author: Vlad Dogaru<EMAIL_ADDRESS>Date:   Thu Apr 21 17:22:27 2016 +0300
i2c: add device config helpers

But never really used.


fix(userspace/libsinsp): revert to old concatenate_paths helper funtion for perf reasons

What type of PR is this?
/kind bug
Any specific area of the project related to this PR?
/area libsinsp
Does this PR require a change in the driver versions?
What this PR does / why we need it:
This PR embeds a better fix for the issue found in #1530, reverting the new std::filesystem implementation (that was great btw, and much better edge cases coverage; see #1533 ) to the old one with some small fixes on top, for perf reasons. We found that the new impl had like a 7.5x slowdown; since it is used in hot paths, we had to revert.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/cc @LucaGuerra @incertum @leogr

Even if the diff is big, it should be seen as a patch against old code, ie: https://raw.githubusercontent.com/falcosecurity/libs/aa191bab837e9a7ab58bf0547addaad26aa7f05e/userspace/libsinsp/utils.cpp

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, incertum
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,incertum]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.14.2

Adding context to this:

The invalid memory access identified by Melissa in https://github.com/falcosecurity/libs/pull/1530 is not a vulnerability but definitely needs to be fixed, this PR takes care of it
Thanks to @deepskyblue86 we were able to measure performance of all approaches. Considering that this function has very few checks compared to a full fledged path concatenation implementation, better performance are expected

Honestly it's sad to see the cleaner implementation go, but maybe not everything is lost. Surely, this solution works well for this upcoming release. In the process we fuzzed both the old and new implementation and no memory errors were detected in this patch.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, incertum, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,LucaGuerra,incertum]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, incertum, leogr, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,LucaGuerra,incertum,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Just now got to test this a bit more and I noticed a regression for example for a UEK 4.14 kernel e.g. https://yum.oracle.com/repo/OracleLinux/OL7/UEKR5/x86_64/getPackage/
Any one should do kernel-uek-4.14.35-*.el7uek.x86_64.rpm
Logs now don't contain the file names anymore

Just now got to test this a bit more and I noticed a regression for example for a UEK 4.14 kernel e.g. https://yum.oracle.com/repo/OracleLinux/OL7/UEKR5/x86_64/getPackage/ -> any should do e.g. kernel-uek-4.14.35-*.el7uek.x86_64.rpm
Logs now don't contain the file names anymore. Note this issue seems a corner case as I have seen it work on many kernels. Carefully verified that this commit is the root cause (did a cherry-pit on it).
{"container.id":"host","container.name":"host","evt.args":"fd=3(<d>/home/vagrant/<NA>) name=<NA> flags=13489(O_DIRECTORY|O_SYNC|O_EXCL|O_DSYNC|O_RDONLY|O_CLOEXEC|O_TMPFILE) mode=03164 dev=803 ino=68477313 ","evt.time":1706391799055670838,"fd.name":"/home/vagrant/<NA>","fs.path.name":"/home/vagrant/<NA>","proc.cmdline":"cat /etc/shadow","proc.exepath":"/usr/bin/cat","proc.name":"cat","proc.pname":"sudo","proc.sname":"bash","proc.tty":34817,"user.name":"root"}}

I just added a test case:
path1 = "/home/vagrant/";
path2 = "kernel-uek-4.14.35-*.el7uek.x86_64.rpm";
res = sinsp_utils::concatenate_paths(path1, path2);
EXPECT_EQ("/home/vagrant/kernel-uek-4.14.35-*.el7uek.x86_64.rpm", res);

and it is passing fine. Am i missing anything?

Also, i don't see how an userspace (small) patch could be affected by the running kernel.
Are you able to test on the same setup with the 0.13.0 version (ie: the original algorithm we used before #1533)?

We have had unpredictable behavior based in userspace based on distro, GLIBC and other factors before. Best debugging recommendation I could give is spinning up such a UEK VM, see https://github.com/falcosecurity/libs/pull/1645#issuecomment-1913376396 -> I'll prioritize debugging on my side.

Am i missing anything?

I was missing the actual bug :laughing:

@FedeDP de-escalating. I destroyed everything and kicked off new CI builds for both versions as well and now the gremlins disappeared. Sorry about that, but figured we are so close to the release I should at least share this observation as it was very unexpected and weird to me.


PhoneNumberOfflineGeocoder issue (USA Areacode 747)

Country/region affected : US
Example number(s) affected :<PHONE_NUMBER>
The phone number range(s) to which the issue applies : 747-XXX-XXXX
The type of the number(s) : ALL
The cost, if applicable : N/A
Supporting evidence
http://libphonenumber.appspot.com/phonenumberparser?number=7472201111&country=US
Why it display "United States" for PhoneNumberOfflineGeocoder Results
I know 747 area code is for California.

Fixed in release 7.4.5 : http://libphonenumber.appspot.com/phonenumberparser?number=7472201111&country=US


use sqlite_master to determine whether a table exists

Hey @wf2030, this is a great idea. If we're going to make this change, do you mind deleting the commented out code and updating this PR?

@whoshuu i've commented out the code, and open another pr with the same title, close this one.


[openssl] update to 3.2.0

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[ ] The "supports" clause reflects platforms that may be fixed by this new version
[ ] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

jkqtplotter: baseline regression.
Downstream issues on windows: Maybe https://github.com/openssl/openssl/pull/22813/files.
freerdp: tls_free (now?) defined in openssl and in freerdp.
/usr/bin/ld: /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libssl.a(libssl-lib-tls_common.o): in function `tls_free':
/mnt/vcpkg-ci/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.2.0-de65d72060.clean/ssl/record/methods/tls_common.c:1444: multiple definition of `tls_free'; libfreerdp/libfreerdp2.a(tls.c.o):/mnt/vcpkg-ci/buildtrees/freerdp/src/2.11.2-882d1e3a25.clean/libfreerdp/crypto/tls.c:1777: first defined here

arm64-windows: openssl regression.
ecp_sm2p256-armv8.S
crypto\ec\ecp_sm2p256-armv8.S(27): fatal error C1021: invalid preprocessor command 'Load'
NMAKE : fatal error U1077: '"cl" /EP -D__ASSEMBLER__  /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MDd -nologo -DWIN32 -D_WINDOWS -W3 -utf-8 -MP  -D_DEBUG -MDd -Z7 -Ob0 -Od -RTC1 -I"crypto" -I"." -I"include" -I"providers\common\include" -I"providers\implementations\include" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSLDIR=\"D:\\packages\\openssl_arm64-windows\\debug\"" -D"ENGINESDIR=\"D:\\packages\\openssl_arm64-windows\\debug\\lib\\engines-3\"" -D"MODULESDIR=\"D:\\packages\\openssl_arm64-windows\\debug\\bin\"" -D"OPENSSL_BUILDING_OPENSSL" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG" -D"_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE" -D"OPENSSL_SYS_WIN_CORE"   -DBSAES_ASM -DECP_NISTZ256_ASM -DECP_SM2P256_ASM -DKECCAK1600_ASM -DMD5_ASM -DOPENSSL_BN_ASM_MONT -DOPENSSL_CPUID_OBJ -DOPENSSL_SM3_ASM -DPOLY1305_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DSM4_ASM -DVPAES_ASM -DVPSM4_ASM "crypto\ec\ecp_sm2p256-armv8.S" > crypto\ec\libcrypto-shlib-ecp_sm2p256-armv8.obj.asm' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.37.32822\bin\Hostx64\arm64\nmake.exe" /LU                 _build_libs' : return code '0x2'

jkqtplotter: only on osx, I have no access to it
freerdp: issue reported https://github.com/FreeRDP/FreeRDP/issues/9590
arm64-windows: pass no-sm2-precomp to configure

jkqtplotter: https://github.com/microsoft/vcpkg/pull/35319

arm64-windows: still failing

arm64-windows: still failing

Set no-asm for arm64-windows then. asm is already off/broken for uwp and for arm32 android.

A freerdp maintainer says that my patch will break ABI/API, and suggests either to update to their RC release or stick with openssl 3.1.4
https://github.com/FreeRDP/FreeRDP/issues/9590

A freerdp maintainer says that my patch will break ABI/API, and suggests either to update to their RC release or stick with openssl 3.1.4 FreeRDP/FreeRDP#9590

We probably don't need to be concerned about the ABI breakage, given that vcpkg is for building from source. But we cannot keep the API.
Instead of the official patch, could we use public plain old macros to rename the few conflicting functions in freerdp (maybe scoped to building with OpenSSL 3.2) ?


Rework error naming

What should be done?
Change the names of the errors so that the essence of the error is clear only by name.
Change grouping of the errors so that their finding will be easier and faster.
How should it be done?
The names of the constants representing the error codes should be changed both in the .rs and  .masm files.
Error codes constants in the miden-tx/src/error.rs file should be divided into groups.
When is this task done?
The task is done when error constants have the proper easy to understand names listed by groups.
Additional context
Original comment: https://github.com/0xPolygonMiden/miden-base/pull/634#pullrequestreview-2039071655

I mentioned on Discord that it should be possible to extract the error constants and their associated error message automatically in a build.rs file from the kernel masm files.
For a given masm file, we extract the comment before the constants definition as the error message, e.g.
# Asset burn can not exceed the existing supply
const.ERR_FAUCET_BURN_OVER_ISSUANCE=0x00020023

would turn into
pub const ERR_FAUCET_BURN_OVER_ISSUANCE: u32 = 0x00020023;

and
pub const KERNEL_ERRORS: [(u32, &str); _] = [
    (ERR_FAUCET_BURN_OVER_ISSUANCE, "Asset burn can not exceed the existing supply"),
];

so the same as now, just automatically.
The reworked error names from #712 could still be used, but using the error message from the comment allows for a better error, since one can elaborate more in an error message than in a constant's name, one can give better context and generally make the error read more like a natural sentence.
With error messages we can give context from where the error originated like "transaction prologue: new account vault must be empty" whereas in the constant ERR_PROLOGUE_NEW_ACCOUNT_VAULT_MUST_BE_EMPTY it's included, but much more implicit for users that are less familiar with it.
Alternative
The error names are already much better and quite self-sufficient with #712, so if the above is somehow not possible or desirable then I would propose to still use a build.rs script and extract only the constants, and rewrite the constant names to nicer strings, e.g. ERR_PROLOGUE_NEW_ACCOUNT_VAULT_MUST_BE_EMPTY -> "prologue: new account vault must be empty". Here the ERR_ could be ignored, and the second part of the constant could be used as the context and postfixed with a :. But it likely won't always be possible to express the context in a single word or some developers might not be aware of this implicit constraint and then it'll cause some weird error messages. Overall, I would be in favor of the "comment extraction" approach due to its greater flexibility.

For a given masm file, we extract the comment before the constants definition as the error message, e.g.
# Asset burn can not exceed the existing supply
const.ERR_FAUCET_BURN_OVER_ISSUANCE=0x00020023

would turn into
pub const ERR_FAUCET_BURN_OVER_ISSUANCE: u32 = 0x00020023;

and
pub const KERNEL_ERRORS: [(u32, &str); _] = [
    (ERR_FAUCET_BURN_OVER_ISSUANCE, "Asset burn can not exceed the existing supply"),
];

I like this! Let's do this and then this will supersede #712. I'll assign this issue to you.

@PhilippGackstatter Awesome idea! This approach will make the error maintenance a lot more easy.
But some renaming for the error constant is still needed: while updating the errors I noticed that some of them have mistaken or inaccurate names and comments, so ideally we should update them. Probably you can use my renamed errors to spot ones which should be updated.

But some renaming for the error constant is still needed: while updating the errors I noticed that some of them have mistaken or inaccurate names and comments, so ideally we should update them. Probably you can use my renamed errors to spot ones which should be updated.

Thanks for the hint! I'll build on top of your work then :+1:

Superseded by the work done in #906.


[WIP] Fix CodeCov Report Issue

Description
LEARNER-XXXX

In this PR try to fix uploading of CodeCov Report Issue.

CodeCov Report is now properly generating coverage reports on each PR.


Add M-577 Rhino Armored Personel Carrier from Kerbal Stuff

This pull request was automatically generated by Kerbal Stuff on behalf of LuizChacon, to add M-577 Rhino Armored Personel Carrier to CKAN.
Please direct questions about this pull request to LuizChacon.

Blocked by the same issue as #1613

Closing to consolidate 4 PRs into 1 issue: #1860


Limit scope of API Keys

Fixes #984
Disallow the following APIs when invoked via API Key:

item act
create withdrawal
create withdrawl
unlink auth method
link unverified email
send to LN Address

I looked into blocking adding other auth methods, but as far as I could tell, that wasn't doable via API Key as it relies upon having a pre-existing session, and we only load sessions via API Key at the /api/graphql endpoint, not any others, like /api/auth.
To test this, I:

created a user user1 via ./sndev login user1
enabled API keys via ./sndev psql and update users set "apiKeyEnabled" = TRUE where name = 'user1';
Generated the API Key via the user settings page
Stuck the key in the following scripts and ran via node test

const apiKey = '<API KEY HERE>'

const linkUnverifiedEmailBody = JSON.stringify({
  operationName: 'linkUnverifiedEmail',
  variables: {
    email<EMAIL_ADDRESS>  },
  query: `
  mutation linkUnverifiedEmail($email: String!) {
    linkUnverifiedEmail(email: $email)
  }`
})

const unlinkAuthBody = JSON.stringify({
  operationName: 'unlinkAuth',
  variables: {
    authType: 'lightning'
  },
  query: `
  mutation unlinkAuth($authType: String!) {
    unlinkAuth(authType: $authType) {
      lightning
      email
      twitter
      github
      nostr
    }
  }`
})

const actBody = JSON.stringify({
  operationName: 'act',
  variables: {
    id: 1,
    sats: 1
  },
  query: `
  mutation act($id: ID!, $sats: Int!, $act: String, $hash: String, $hmac: String) {
    act(id: $id, sats: $sats, act: $act, hash: $hash, hmac: $hmac) {
      id
      sats
      path
      act
    }
  }`
})

const createWithdrawalBody = JSON.stringify({
  operationName: 'createWith',
  variables: {},
  query: `
  mutation createWith {
    createWith {
      k1
      encodedUrl
    }
  }`
})

const walletCreateWithdrawalBody = JSON.stringify({
  operationName: 'createWithdrawl',
  variables: {
    invoice: 'asdf',
    maxFee: 1
  },
  query: `
  mutation createWithdrawl($invoice: String!, $maxFee: Int!) {
    createWithdrawl(invoice: $invoice, maxFee: $maxFee) {
      id
    }
}`
})

const walletSendToLnAddrBody = JSON.stringify({
  operationName: 'sendToLnAddr',
  variables: {
    addr<EMAIL_ADDRESS>    amount: 100,
    maxFee: 1
  },
  query: `
  mutation sendToLnAddr($addr: String!, $amount: Int!, $maxFee: Int!, $comment: String, $identifier: Boolean, $name: String, $email: String) {
    sendToLnAddr(addr: $addr, amount: $amount, maxFee: $maxFee, comment: $comment, identifier: $identifier, name: $name, email: $email) {
      id
    }
}`
})

const bodies = [linkUnverifiedEmailBody, unlinkAuthBody, actBody, createWithdrawalBody, walletSendToLnAddrBody, walletCreateWithdrawalBody]

const main = async () => {
  const results = await Promise.allSettled(bodies.map(body => fetch('http://localhost:3000/api/graphql', {
    method: 'POST',
    headers: {
      'content-type': 'application/json',
      'X-API-KEY': apiKey
    },
    body
  })))
  results.map(result => result.value.json())
    .forEach(async value => console.log(JSON.stringify(await value, null, 2)))
}

main()

Summary by CodeRabbit

New Features

Enhanced security by ensuring certain operations cannot be performed via an API Key, improving overall application integrity.

Bug Fixes

Implemented checks to prevent unauthorized API key usage in critical functionalities.

Quick update: I think I have most of this done. I am trying to dig into how to prevent adding new auth methods via API Key now.

@ekzyis I think this is ready for review now!

Going to review today because I didn't yesterday

Thank you for the detailed feedback! It's clear that there are some features that I haven't explored, so I didn't think to block them with this PR. I'll push some updates!

OK, I updated the PR to incorporate your feedback!
I think you can see it in the commit history on the PR, but I did actually have createAuth included in one of my original commits, but I later changed my mind and undid it, because there was no usage of me in the createAuth resolver prior to my change, so I figured it was safe to not add the API Key assertion because it seemed that there was no association between the created auth challenge and any known user. I did include that change in my latest commit, just to cover our bases as you suggested. But I thought I'd at least explain my prior rationale.
Also, I shared a test script in the PR description. I have that just floating around in my local git repo. I know there isn't an existing pattern for tests in the repo right now, but I was wondering if there is any value in checking something like that in, even if it just serves as a reference? No worries either way, but I figured I'd ask.

Oh, you are right, I did not notice that (your previous commit and that it didn't use me) 👀 In that case, I don't really mind it anymore. Sorry for requesting a change regarding this! You can remove it or keep it now.

No worries! I'll keep it in.

The test script was helpful and I used it but I don't think we need to check it in :)

Sounds good!


Images: Update map detail page to have "save" icons

Currently there is no way to save a property in the property detail page
Please add the icon in the top right hand of the property detail card, on the same line as the "back" link. Include the default and active state as a part of this ticket

When user clicks this new icon, all properties with this "save" flag will appear. It's another filtering mechanism.

See Figma file for details:
https://www.figma.com/proto/NAFkgq34abW6uJ0R7PW24T/Prototype---Clean-%26-Green-Philly?type=design&node-id=2592-30687&t=sdhkPVHItWMM3Xnn-0&scaling=min-zoom&page-id=187%3A12602&starting-point-node-id=2592%3A30019

@thansidwell @brandonfcohen1 this may be something we'd want to discuss further, as this is more involved then just creating a button — as there is no currently concept of a 'user', I believe the most we can do to "save a location" is to add the location_id (or similar) to the user's browser's localStorage, but that may lead to unexpected UX (a user browsing on DuckDuckGo or Firefox's temporaryContainers would have their localStorage deleted every session, or a user clearing their browsers cache/cookies unexpectedly deletes their saved selections, etc.). The more robust option would be to create user logins and store the selections to a database, but that would require cost/platform choice discussions.

Yeah, @nlebovits and I had talked about this from the start- to just use localStorage. I think that's fine as a first step honestly, and anyone using DuckDuckGo/incognito likely knows that would happen anyway

Hello, I'd like to tackle this ticket. Can someone assign this to me? Thank you!

@CodeWritingCow  Hi is this complete?

@CodeWritingCow Hi is this complete?

Hi @Moylena I'm working on this ticket. I've added the "Save" button to the property detail card UI as shown in Figma. I plan to submit a PR this week.
I do have a couple questions about this requirement:

"When user clicks this new icon, all properties with this "save" flag will appear. It's another filtering mechanism."

As a user, how would I save properties in the dashboard? And how do I then filter them?
Figma shows each property's detail card UI as having a "Save" button in its upper right corner. Originally, I assumed that when users click the button, that saves or "unsaves" the property to their Web browser's localStorage. However, the requirement describes the button as a filtering mechanism to show saved properties (and hide "unsaved" ones).
Am I misunderstanding the button's purpose?

@CodeWritingCow did you review the previous comments? I think they outline the technical expectations

@Moylena Yes, I did review the comments about saving a property's location ID to the browser'slocalStorage. I do understand and can implement that. However, before I submit a PR, I'd like to verify with you the Save button's expected behavior. ... When a user clicks the Save button, will that add a property to a list of saved properties, and also filter out properties that are not saved?
(Yesterday's standup would have been a great opportunity to discuss this. However, I thought of it only today as I went over my work in progress.)

Got it. @thansidwell can you confirm please? I understood it to be a way to mark a given property and later have the ability to filter by "saved".

@CodeWritingCow @Moylena Hey! Here's a video walk through of what I was envisioning.
https://github.com/CodeForPhilly/vacant-lots-proj/assets/1965986/26030404-d5c9-48cd-be99-af5c9f44bf8e
So in summary

When a user clicks the "Save" button,

the text switches to "Saved"
the button to it selected state
the property is saved in the user's browser's local storage

When the user goes back to the list there's a new "Saved" button
When a user clicks on it

the button changes to the selected state
the list filters to properties that are saved.

Hi @thansidwell and @Moylena, thanks for following up on my question and the thorough walkthrough! The video and the step-by-step UX explanation are really helpful. I'll update my work accordingly and then submit a PR this week. Thanks again!

@CodeWritingCow I realized there's one bit of details that I left out. Here's a video explaining it.

When there are no properties saved in the user's browser's storage, hide the "Saved" button on the list of property controls.

https://github.com/CodeForPhilly/vacant-lots-proj/assets/1965986/8276a5e4-237a-4432-8089-3c88660557a9

@all-contributors please add @CodeWritingCow for code!

Confirmed live


Unknown prop now on  tag

Hi @nmn  ,
Just you need to remove now props when the Komponent is time since time is a built-in and does not have an attribute called now.
Otherwise, the browser will fire the following error:

I will create PR if I got time. OK ?

+1, as I'm also experiencing this issue.
<TimeAgo date={timestamp} />

React: v15.5.0
react-timeago: v3.3.0

@albertogasparin  : I created a PR #86 for that  . I hope to be merged soon .

+1 - getting this issue too

Please, get that merged asap. It breaks server side rendering for me.

Guys! if this issue will not be resolved , I highly recommend to use quick alternative which is "moment" , and it can be  the following:
import moment from 'moment';
// to change the language
 moment.locale(this.props.lang); // i.e:  moment.locale('ar');

// get time ago
moment(this.props.date).fromNow(); // .i.e: moment(new Date()).fromNow()

//render
<time title={this.props.date} >
     {moment(this.props.date).fromNow(); }
</time>

Here is a fix for this issue. See https://github.com/nmn/react-timeago/issues/81#issuecomment-305004642.

@nmn Hi Naman, any chance to get this merged soon?

I've just included the moment library and used it directly. Works fine.

The moment library fix does not provide live updating which I need. Can you please publish a release so we can have the fix from #86 ?

Just a warning to everyone, Moment.js is huge. Best solution seems to be downgrading react-time-ago.

@scf4 actually the fix is already there, but the /lib folder was not rebuilt a published to npm. The latest code works, it's just not in npm. :(

Any idea when this will be published to npm?

@primaryobjects Previously (ie. in other projects) I've been able to do an npm install from a git repo with a specific commit, but this doesn't work in this case; when I point package.json at the fix commit for this issue, I get all sorts of missing files - basically, the module doesn't seem to have installed correctly. Is there an extra step needed when installing straight from the repo?

If you've already got Moment in your project (as mentioned above, it's not a small dependency), here's a minimal drop-in replacement with live-updating:
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import moment from 'moment';

const makeRelative = (dateMoment) => {
  if (!dateMoment.isValid()) { return ''; }
  return dateMoment.fromNow();
};
const DELAY = 60000; // 1 minute

export default class TimeAgo extends PureComponent {
  static propTypes = {
    date: PropTypes.oneOfType([
      PropTypes.string,
      PropTypes.instanceOf(Date),
    ]).isRequired,
  }

  constructor(props) {
    super(props);

    const { date } = props;
    const dateMoment = moment(date);
    const relative = makeRelative(dateMoment);
    this.state = {
      dateMoment,
      relative,
    };
  }

  componentDidMount() {
    const { dateMoment } = this.state;
    if (dateMoment && dateMoment.isSame(moment(), 'day')) {
      // Only start recalculating if it's a recent date (sometime today)
      this.startUpdating();
    }
  }

  componentWillReceiveProps(nextProps) {
    const { date } = this.props;
    const { date: newDate } = nextProps;

    if (newDate !== date) {
      const dateMoment = moment(newDate);
      if (dateMoment.isSame(moment(), 'day')) {
        // This is a recent date (sometime today)
        this.startUpdating();
      } else {
        // This date is old enough that it doesn't need updating
        this.stopUpdating();
      }
      const relative = makeRelative(dateMoment);
      this.setState({
        dateMoment,
        relative,
      });
    }
  }

  componentWillUnmount() {
    this.stopUpdating();
  }

  recalculate = () => {
    const { dateMoment, relative } = this.state;
    const newRelative = makeRelative(dateMoment);
    if (newRelative !== relative) {
      this.setState({ relative: newRelative });
    }
  }

  startUpdating = () => {
    if (this.interval == null) {
      this.interval = setInterval(this.recalculate, DELAY);
    }
  }

  stopUpdating = () => {
    if (this.interval != null) {
      clearInterval(this.interval);
      this.interval = null;
    }
  }

  render() {
    const { relative } = this.state;

    return (
      <span>{relative}</span>
    );
  }
}

This change has still not been published to NPM @nmn

Yeah, damn, I've been terrible lately. I'll get on it.

Thanks, looking forward to it @nmn

Really appreciate it thanks!

@nmn Any idea when the npm package will be updated with this patch?

Someone has a fork on NPM. I'm on mobile but they posted it as a comment on a PR

done.


Add docs for macOS 12 private preview

Description
Currently, macOS 12 is available in private preview. Let's put its docs to repo
Related issue:
Check list

[ ] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

Is there a way to be a part of this private preview? Do we know when macOS 12 will be generally available?

@SaintNicholas we have no ETA for now. Please drop a message in the issue that you would like to have access to the private preview (note — it's for GH only at the moment) https://github.com/actions/virtual-environments/issues/3649

Adding my vote to hopefully get this made available public soon! Sorry, I hadn't seen this earlier when I started a separate discussion about it.  When you say the private preview is for GH only at the moment, I'm assuming that means I cannot use the private preview within Azure Pipelines?


implement conversion function for LLA to ECI state vector

In order to use the Vinti6 orbit propagator, GPS data (latitude, longitude, & altitude) need to be converted to ECI state vector.

blocked on #6

@G5STER Will this require converting Gregorian time to J2000?

@capsulecorplab Yes, but it is handled through the SOFA library. All we need is the UTC time and we should be good to go


Unable to get preview mode

Hello, I'm trying to use the preview mode, I've create an endpoint "pages/api/preview"
I' am also using the app dir that is inside the src folder
import { NextApiRequest, NextApiResponse } from 'next';

export default async function preview(req: NextApiRequest, res: NextApiResponse) {
  res.setPreviewData({});
  res.writeHead(307, { Location: '/' });
  res.end();
}

I've notice that the cookies are set but once I'm on the homepage '/' after the redirect nextjs clear these cookies.
I found this:
_ Next.js clears cookies with the _prerender_bypass prefix during the rendering process to prevent potential security risks. This means that when Next.js does the server-side rendering (SSR) or static site generation (SSG) for the page that follows the res.setPreviewData() call, the prerender_bypass cookies will be cleared before the page is served to the user's browser. This is done to ensure that any sensitive data, such as authentication tokens or other private information, set via cookies in preview mode is not leaked or accessible to end users.
Which is the workaround?
Many thanks

Hi, sounds like this is a NextJS issue, not a next-sanity one?

Yes, probably; I end up moving back to the pages folder, I'll wait the major release of Next 🥲

Hi, I was having the same problem as you, didn't find a solution but now on Next JS 13.4 is working with some changes, you need to configure draft mode https://nextjs.org/docs/app/building-your-application/configuring/draft-mode
Move your api folder inside app/ directory and it will work as follow:
/app/api/preview/route.ts:
import { draftMode } from 'next/headers'

export async function GET(request: Request) {
  draftMode().enable()
  return new Response('Draft mode is enabled', {
    status: 307,
    headers: { Location: '/' }
  })
}

/app/page.tsx:
// ...

if (draftMode().isEnabled) {
    return (
      <PreviewSuspense
        fallback={

Loading Preview Data...

        }>
        <PreviewBlogList query={query} />
      </PreviewSuspense>
    )
  }

// ...

Hope this helps, cheers!

Hi, I was having the same problem as you, didn't find a solution but now on Next JS 13.4 is working with some changes, you need to configure draft mode https://nextjs.org/docs/app/building-your-application/configuring/draft-mode
Move your api folder inside app/ directory and it will work as follow: /app/api/preview/route.ts:
import { draftMode } from 'next/headers'

export async function GET(request: Request) {
  draftMode().enable()
  return new Response('Draft mode is enabled', {
    status: 307,
    headers: { Location: '/' }
  })
}

/app/page.tsx:
// ...

if (draftMode().isEnabled) {
    return (
      <PreviewSuspense
        fallback={

Loading Preview Data...

        }>
        <PreviewBlogList query={query} />
      </PreviewSuspense>
    )
  }

// ...

Hope this helps, cheers!

Thanks! I'll try when have to migrate this project or for the next one! :)

Hi, I was having the same problem as you, didn't find a solution but now on Next JS 13.4 is working with some changes, you need to configure draft mode https://nextjs.org/docs/app/building-your-application/configuring/draft-mode
Move your api folder inside app/ directory and it will work as follow: /app/api/preview/route.ts:
import { draftMode } from 'next/headers'

export async function GET(request: Request) {
  draftMode().enable()
  return new Response('Draft mode is enabled', {
    status: 307,
    headers: { Location: '/' }
  })
}

/app/page.tsx:
// ...

if (draftMode().isEnabled) {
    return (
      <PreviewSuspense
        fallback={

Loading Preview Data...

        }>
        <PreviewBlogList query={query} />
      </PreviewSuspense>
    )
  }

// ...

Hope this helps, cheers!

Thankss work for me 😍

Hi, I was having the same problem as you, didn't find a solution but now on Next JS 13.4 is working with some changes, you need to configure draft mode https://nextjs.org/docs/app/building-your-application/configuring/draft-mode
Move your api folder inside app/ directory and it will work as follow: /app/api/preview/route.ts:
import { draftMode } from 'next/headers'

export async function GET(request: Request) {
  draftMode().enable()
  return new Response('Draft mode is enabled', {
    status: 307,
    headers: { Location: '/' }
  })
}

/app/page.tsx:
// ...

if (draftMode().isEnabled) {
    return (
      <PreviewSuspense
        fallback={

Loading Preview Data...

        }>
        <PreviewBlogList query={query} />
      </PreviewSuspense>
    )
  }

// ...

Hope this helps, cheers!

Sorry, I have same issue. I don't understand what I need to do. I have preview.ts inside pages/api. I need to move this folder inside app? or just create new folder preview inside app/api with route.ts? Can I you explain please)))

We recently published v5 of next-sanity and it includes a new guide for how to use the draftMode Next.js API, tailored to pages-router or app-router.

Closing this due to inactivity. If it's still a problem please create a new issue and we'll help you out :) draftMode has been working well for us in both App and Pages router.


App role name env fix

Description of changes: Fixes error where the name of the role being used for the lambda is inserted in the env "APP_ROLE_NAME" instead of the actual app role name
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

My biggest confusion about this change is that in several places we're passing in:
...
                props.applicationRole,
                props.applicationRole.roleName,
...

So we're already passing in the role object, and then we're passing in the role object's roleName property as well - why can't we just use the roleName property of the Role object inside the function, why do we need an additional parameter?


Confidence of rule

Description
Please include a summary of the change and which is fixed.

Add confidence for rule which may be used in Candidate
Fix url password detection in sources with quotes

How has this been tested?
Please describe the tests that you ran to verify your changes.

[x] UnitTest
[x] Benchmark

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (4ef5209) 90.44% compared to head (5207593) 90.48%.

Files
Patch %
Lines

credsweeper/rules/rule.py
85.71%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #500      +/-   ##
==========================================
+ Coverage   90.44%   90.48%   +0.03%
==========================================
  Files         127      127
  Lines        4335     4361      +26
  Branches      695      700       +5
==========================================
+ Hits         3921     3946      +25
- Misses        273      274       +1
  Partials      141      141

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

Please add confidence level to all rules on rules/config.yaml file.


4.0 TextureRect Stretch Tile Render mode error

Godot version:
4.0
OS/device including version:
win10
Issue description:
4.0 TextureRect Stretch Tile Render mode error

project  godottest.zip

@cjmxp Please upload a minimal reproduction project to make this easier to troubleshoot.

Closing as duplicate of #40011.


Introduce pollingInterval to JMS consumers

This PR solves problem of high idle CPU consumption by adding pollingInterval to consumer loop. If this PR is fine, I will also open a backport PR into 0.0.x series, since I highly interested in CE2-compatible artifact

LGTM.
Assigning this to @r-tomassetti and @faustin0 since they're still using this..

@faustin0 thank You!


Selenium2Driver maximize window capability

I was wondering whether there was a possibility to get selenium to maximize browser windows using the capabilities configuration parameter in behat.yml?
I've been looking at the Extension.php file which doesn't define any such capability, while selenium does. See http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.maximize_window
Or is there any other way to get selenium to maximize my browser windows should they (for whatever reason) choose not to start fully maximized?

@stof I have problem now with selenium 3.6.0 and google chrome version 62.X
Webdriver http error: 404, payload :unknown command: session/a7da7718cb5f9dc317dd29c29dd5c4f8/window/maximize (WebDriver\Exception\CurlExec)
Can you help for this?

@sakonachhoeurng try to update chromedriver to version 2.33

@spolischook, I already update to latest chromedriver 2.33, I think the main problem come from selenium version 3.6.0

@sakonachhoeurng you can skip selenium at all, as recent version chromedriver implement selenium api and can work alone without selenium


experimental particle implemented via Worker + WASM

What is the source for main.wasm?

I was afraid somebody would ask me that ... I built the .wasm using AssemblyStudio and I may have lost track of the C source. I built it off of the "Hello World in C" example, it may work against that I'll have to test it.
This whole thing was a dirty cut-n-paste job I did in a couple of hours, but I didn't want to lose it anyway. I probably should have just kept it as a branch and not made a PR.


Redirect from /docs/tutorial/termination to /docs/tutorial/chat-termination

Why are these changes needed?

Related issue number

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 35.48%. Comparing base (33e42c4) to head (0bd124e).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1991      +/-   ##
==========================================
- Coverage   37.55%   35.48%   -2.07%
==========================================
  Files          65       65
  Lines        6910     6910
  Branches     1520     1520
==========================================
- Hits         2595     2452     -143
- Misses       4090     4245     +155
+ Partials      225      213      -12

Flag
Coverage Δ

unittests
35.48% <ø> (-2.07%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Hibernation: Fix setting unsupported condition when no condition is present

Fixes https://issues.redhat.com/browse/CO-1095

/close
superseded by #1082


[Feature Request] Do you want me to add GitHub actions?

Sorry for not following the issue template
If you want, I can add some advanced CI to your repo in a PR. Let me know if you want that.

Do you want to enable auto-formatting?
Do you want packaged or independent (I recommend packaged because I can send updates)?

I was planning to change the formatting.yaml to the following:
name: Validate with hassfest

on:
  push:
  pull_request: ~

jobs:
  formatting:
    name: Formatting Check
    runs-on: "ubuntu-latest"
    steps:
      - uses: "actions/checkout@v2"
      - uses: "actions/setup-python@v1"
        with:
          python-version: "3.x"
      - run: python3 -m pip install black
      - run: black .

  validate:
    name: Validate component
    runs-on: "ubuntu-latest"
    steps:
      - uses: "actions/checkout@v2"

      - name: HACS validation
        uses: "hacs/integration/action@master"
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CATEGORY: "integration"

      - name: Hassfest validation
        uses: "home-assistant/actions/hassfest@master"

I just haven't gotten to it yet, but feel free to send a PR :)

Got it! I have an all-in-one action that does black+isort+hacs+hassfest+flake8. Would you mind if I switched over the actions to use that?

Feel free man, I'd like to use it in another project as well.

Thanks! 😃 PR incoming.


Add an EmitUnpopulatedPrimitiveFields option

The problem I am facing:
I have a gRPC-protobuf service which follows Google's resource oriented design (https://cloud.google.com/apis/design/resources).
In some resources I want to be able to specify sub-messages that are INPUT_ONLY:
message Resource {
  string id = 1;

  message CreateParams {
    int32 hello = 1;
  };

  CreateParams params = 2 [(google.api.field_behavior) = INPUT_ONLY];
}

I want to params to be specified on input, but when I invoke Get/List endpoints on that resource, I want to params to be omitted.
In addition I want to support GRPC-transcoding to JSON, both with envoy (cpp) and with grpc-gateway (Golang)
When I look at Google's APIs I notice the following behavior in transcoding: empty strings, zero numbers, false booleans are a part of the response, but empty sub-messages are not.
So for the given example with the following input:
id := ""
params := null
I get the following json:
{
  "id": ""
}

And I suspect its due to the following flag in the cpp json transcoding in envoy:
always_print_primitive_fields

Which always emits primitive fields, but does not emit empty messages.
When I transcode using grpc-gateway which uses protojson I get:
{
  "id": "",
  "params": null
}

And I assume this is due to the EmitUnpopulated option in protojson:

which is set to true.
If I set it to false I would get
{}

So it seems that it is not possible to have the same json transcoding in cpp and Golang in regards to "unpopulated/default" field values.
Adding EmitUnpopulatedPrimitiveFields might give the option to have the same transcoding to other tools like grpc-gateway
	// EmitUnpopulatedPrimitiveFields specifies whether to emit unpopulated fields. It does not
	// emit unpopulated oneof fields or unpopulated extension fields.
	// The JSON value emitted for unpopulated fields are as follows:
	//  ╔═══════╤════════════════════════════╗
	//  ║ JSON  │ Protobuf field             ║
	//  ╠═══════╪════════════════════════════╣
	//  ║ false │ proto3 boolean fields      ║
	//  ║ 0     │ proto3 numeric fields      ║
	//  ║ ""    │ proto3 string/bytes fields ║
	//  ║ null  │ proto2 scalar fields       ║
	//  ║ []    │ list fields                ║
	//  ║ {}    │ map fields                 ║
	//  ╚═══════╧════════════════════════════╝
	EmitUnpopulatedPrimitiveFields bool

Since message, map, and repeated fields don't have default values, I think you could interpret "default values" in the proto3 JSON specification as referring to the zero values of primitive fields such as int.
A protojson marshal option that matches the behavior of the existing C++ always_print_primitive_fields seems fairly reasonable to me.

Are you sure that message and repeated fields do not have default values?

For message fields, the field is not set. Its exact value is language-dependent.
The default value for repeated fields is empty (generally an empty list in the appropriate language).

And through transitive properties, maps should as well:

Map fields are just a shorthand for a special kind of repeated field.

I'm not talking about maps and repeated fields - I actually do want to emit them.
I just don't want to emit unset submessages as "key": null in json.
Actually from this:

For message fields, the field is not set. Its exact value is language-dependent.

The exact value is language-dependent, but is not set.
There are two ways to "not set" a value in json, either no key, or "null" value, I would say that both fall into the spec.
To be honest there is a way to get what I want but I think it pollutes the .proto file and it is to set the message as optional - it is a bit funny since from the spec in proto3 submessages are optional and have an IsSet function, but I guess that by making it optional it actually makes this a oneof behind the scenes - which forces protojson to omit the key - which otherwise can mistakenly be used as a selector - but it makes the proto file worse, take a look at this:
message Resource {
  string id = 1;

  message CreateParams {
    int32 hello = 1;
  };

  optional CreateParams params = 2 [(google.api.field_behavior) = INPUT_ONLY; (google.api.field_behavior) = REQUIRED];
}

optional at the beginning to avoid getting this on output since this is CreateParams.
REQUIRED in field_behavior since when I'm generating documentation, I want the specs to require this to be present when creating the resource.
This is how my journey began, and to my surprise, when looking at responses from Google APIs, I noticed that optional is not required on the protobuf message.

Notice that there are 3 states:

{
  'id': 0,
  'params': null
}

{
  'id': 0
}

{
  'id': 0,
  'params': {}
}

Obviously I agree that 3 is not even an option here, it's a totally different message.
I think that both 1 and 2 are the same and both are valid and EmitUnpopulatedPrimitiveFields can give a way to choose which flavor I want. 1 is Golang style, 2 is cpp style.

While there are three versions of outputs possible, it is also true that both state 1, and state 2 that you present should compose into semantically the same data-structure in Go. That is, it should be Params == nil in both.

I agree, so I'm not sure if I convinced you that it's fine to add such option or not :-)
(Of course naming is pending, can also have the flag be an additional flag to EmitUnpopulated such as NoEmitUnpopulatedMessaged - default is to Emit)

🤷♀ I suppose the only thing left is to make a Gerrit change request.

Ok, I'll create one

https://go-review.googlesource.com/c/protobuf/+/521215


Masthead text can extend off-screen

In the masthead component, sometimes a title is too long and can extend off-screen on smaller screens. See https://www.lonelyplanet.com/nepal/solukhumbu for example.

Closed with #345


add compiled dist

hello,
can we have a precompiled css, instead of having to compile less in our apps ?
thanks

i propose making a cds plan that will test/lint the code and automatically generate the dist/css on the master branch

NPM script "prepublish" can be used to execute the CSS compilation just before publishing the package on NPM.
IMHO, dist should never be commited. In addition, if the package is installed directly from GitHub URL, maybe a script "postinstall" can also compile the CSS...


feat: add vsocde settings eslint.validate

添加更多的 eslint.validate 支持格式化更多文件
  "eslint.validate": [
    "javascript",
    "typescript",
    "javascriptreact",
    "typescriptreact",
    "vue",
    "html",
    "json",
    "jsonc",
    "json5",
    "markdown"
  ],

I think we did not add this configuration and the formatting was successful.

Added.


Introduce OnReapAccount

When writing a FRAME pallet, I found myself wanting access to an OnReapAccount trait which signals to my module when an account is fully reaped from the system.
I could imagine that such a trait could be regularly used by other pallets (maybe even our own) to ensure that when an account is reaped, all possible storage items for that account are cleaned up.
The only main change here besides the introduction of this new trait is actually using it for cleaning up the AccountNonce in the system module. Before, we were removing AccountNonce within the balances pallet, but now we will actually clean it up properly using this trait. This may beniefit other pallet creators who want to create alternatives to our balances module.
Open to feedback about why this is a good or bad idea.

Companion PR for Polkadot: https://github.com/paritytech/polkadot/pull/748


Remove some unnecessary stuff from the engine

tool for event tracking is only relevant for testing -> main
unnecessary enable_raw_mode call
we don't enable mouse mode yet
clippy suggested removals of overspecified type and clone

@sholderbach - I landed the completer first, since it was the larger change. Would you mind rebasing? The fixes look good


Handle builder errors

Fixes #3 by just manually checking the values before they get to the builder. This was easier than handling the panics explicitly. Also moves some code around, creating a single entry point function for both detection options.

Pull Request Test Coverage Report for Build 9e8194a6abe112ad899c8fdabd40011630416946-PR-6

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

Totals

Change from base Build ef13a734d1e4405b8511c267e591119713a83ba2:
0.0%

Covered Lines:
20

Relevant Lines:
23

💛  - Coveralls


Add raft_stereo weights

Adding weights for raft stereo models

The CI breakage is unrelated, and the PR pass the prototype test which should be good enough.


get rid of make in eBPF code

Description
Instead of using make and bpftool to create/load/attach eBPF objects use the Cillium eBPF go library.

#76 will remove all these as with libBPF co-re we will also the loader.


New version: AMD.OCAT version 1.6.3

Pull request has been created with WinGet Automation 🪟📦🤖
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

2024-01-15T15:11:16.2803588Z ##[error] Manifest Error: DisplayVersion declared in the manifest has overlap with existing DisplayVersion range in the index. Existing DisplayVersion range in index:  [ [<IP_ADDRESS>778, <IP_ADDRESS>778]]

(Automated response - build 570.)


Add PUMA_CLOUDWATCH_AWS_REGION

I'm working on an app that has resources in both us-east-1 and us-east-2. I'd like to use puma-cloudwatch, but I don't want to set AWS_REGION since we have different functions of the app accessing different regions.
This PR allows users of puma-cloudwatch to set region in an ENV var that will only be used by puma-cloudwatch. Using
PUMA_CLOUDWATCH_AWS_REGION instead of AWS_REGION means that other calls to Aws libraries within the same process can rely on AWS_REGION
being set to another value (ex: us-east-1 instead of us-east-2)

@kbaribeau Thanks for the contribution! 😄 Released in 0.4.6 🎉


Missing Supported cloud providers

Steps to reproduce (least amount of steps as possible):

visit https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/cloud-providers/
look at the sentence under the first paragraph:"Supported cloud providers are:"
compare the cloud provider listed on this page and those listed in the catalog, you can see that "Amazon" and "Azure" are listed on the catalog and in the page. But Google Compute Engine is missing on the page.

Result:
Google Compute Engine is missing on the page.
Other details that may be helpful:
url: https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/cloud-providers/
fix recommendation: add a bullet point under "Amazon" and "Azure" would fix it.

Closing this issue because it is addressed in this commit https://github.com/rancher/docs/commit/978e1ed3143672c0bf79b936598735ad53033416


Fix error formatting based on best practices from Code Review Comments

Use CodeLingo to automatically fix function comments following the
Code Review Comments guidelines in your contributor doc.
This patch was generated by running the CodeLingo Rewrite Flow over the "go-error-fmt" Tenet. Note: the same Tenet can be used to automate PR reviews and generate contributor docs.
Install CodeLingo to drive Continuous Higher Standards
Learn about CodeLingo

 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, but I think we should keep Captials at the begining of an error description.

I agree @tobya, and since many of those are header names, capitalization need to be kept for those. I'll close this.

Hi @tobya and @francislavoie,
Shane from CodeLingo here. We stuffed up, sorry.
We made an error when writing a Tenet that was used on your repository that resulted in incorrect changes to your code in some edge cases. We've fixed the bug and improved our internal process to prevent this happening again.
We're keen to learn how we can best help dev teams without getting in your way. Your feedback would really help us, my email's<EMAIL_ADDRESS>Thanks,
Shane & the CodeLingo Team


More "realistic" application

Addressing reviewer critiques such as, "This paper lacks performance evaluations for more realistic applications that requires service discovery and allocation on dynamic edge networks, such as i) application that requires (distributed) big data processing, ii) real-time steaming service, and iii) service for heavy computation with specific processing power."
Planning to deploy edge "sensors", which stream CPU utilization data to some data aggregators/processing service, which send that data to some app doing machine learning training on the data to predict what the future CPU utilization would be. Time permitting, could do things like create one app for ML training, another just for doing inference. Could process other data like memory utilization. Currently not too concerned with how accurate the machine learning model is or what exactly it is predicting, point being we have an app requiring heavy processing power, but could invest time into making sure it is accurate and useful.

I believe I'm on track to have this functional by Wednesday night. What I've currently checked in is already the bare minimum I think, where "training" the model is actually just taking the average of the last few data points to make a prediction, so if all else fails we have that.
@t-lin how much time would you need to run and document your experiments? Or, I guess really what I'm wondering is if I continue improving this till Thursday or Friday would you still have enough time at that point?
That said, I did just have an idea where I could easily re-use everything I'm done so far but make things much more interesting, which is instead of streaming CPU usage, we could pretend our edge devices are cameras, and stream images. There are tons of ML datasets with thousands or millions of images. I just replace streaming CPU metrics with streaming randomly selected images. Images should take up more bandwidth on the network. The "data aggregator/processing service" I mentioned above could do some actually useful data cleaning and processing tasks (eg. images from different cameras are different sizes, so it can crop image before sending them to the ML training service). ML training for images will be a heavier computation, and I'd say sounds more interesting. I think I could swap CPU with images for Wednesday night. The data cleaning stuff, well that depends.

@hivanco It doesn't have to be overly complicated, so don't worry about improving models too much. I think by Thursday/early Friday should be okay... I just finished a preliminary copy of my magazine paper and I'll switch track to this project tomorrow (today). I'll probably spend Wednesday cutting down the existing paper and editing it. If the images thing won't take too long, and you know how to set it up, then go for it.
Do you have a setup to simulate the streaming data and aggregation? Or is that still a todo item?

Yeah data streaming and aggregation is done.
Also have a modified version of that Fibonacci bubble sorting program for stressing the CPU which I'm using to make the measured CPU utilization look more interesting. I'm not sure how realistic it is, but if you look at cpu-usage/predictor/raw_cpu_usage.txt you can see an example of the CPU data it results in.

It seems to be generally cyclic tasks... so I'd say it can be a good stand-in for some type of periodic computation tasks, through the periodicity does seem to vary between 5-10s. Here's the first 5 mins plotted:

More or less done, but having problem testing the predictor because the image is so large (thanks PyTorch). It's failing somewhere in the registry-cli build flow, looks like when it calls the function to save a docker image and get its hash, running out of memory. Might have to hack it for now to bypass the hashing and use a hardcoded ID. Will test properly tomorrow. Individual components tested by curling works.

I assume you're referring to the predictor? If so, then yeah a fake ID should work for now, and it can probably be manually run.
Right now my planned deployment setup (I have to finish this) is relatively static except for the aggregator which gets deleted/created (i.e. the "bus" that moves" out of range, comes into range).

@hivanco I'm working on a setup right now... Just to verify, the proxy for the sensors should be run in client mode right? Not in service mode like in the hello-world example?

It'll work in either mode. Of course, there's no reason for the sensor to expect an incoming request. However, I did make it start its own http server and respond to all request with "OK", so you can query its alive or if you want to use the system to automatically place sensors.

I did add a --content-id  option to registry-cli add, and successfully built and pushed the predictor, and seen it allocate automatically. Kind of hard to test because everything dies within 60 seconds, but I am testing it right now and updating the readme with instructions on how everything works. If working properly, once you start the sensors, everything else should happen automatically.

Kind of hard to test because everything dies within 60 seconds

Michael should be working on a fix for that right about now. You can check out an earlier version before the 60s thing and use that proxy & allocator (that's what I did).
I saw the README, thanks for that. I'm almost ready to test... I'm setting up a deployment with 100 sensors (could be more). Will let you know if I run into any issues or have questions.

Jesus the predictor is a huge image lol, I thought it was frozen... nope, just downloading.
What's the cause for the huge size?

I blame pytorch; the python ML library.
You can find the images I've built here: https://hub.docker.com/u/hivanco. Says the compressed size is 1GB lol.

I think I've updated the readme with all the info you need to run everything. I haven't actually tested with the old allocator yet, so I've only seen that after starting a sensor, aggregator and predictor come up automatically, and die. The new proxies should still work with the old allocator so shouldn't need to supply the old proxy when building the services.
@michaelweiyuzhao  what's the newest allocator that would work with the latest proxy, but not have the bug?

Any version before 7f9cd9ee8bdon't have the change and should work, it's just that without the changes your services won't be culled.

@hivanco Do you have time for a quick zoom chat?

Yeah, just eating dinner, maybe 7:45?

Yeah, just eating dinner, maybe 7:45?

That's fine, no rush. E-mail me when you're done.

Some updates:

Paper got another two week extension (seen from the submission portal). Not that I'm going to wait until then (I've got a thesis to start writing), but it means I can debug and run this experiment a bit more carefully.
I've verified that when an allocator comes "back into range" (or online), the sensors flood it, and tons of aggregators get created in a short amount of time. One of my nodes almost completely froze up from the lack of memory. I've modified the code a bit so the POST to the aggregator is part of the main loop, and not in a goroutine.
I'm also facing another odd issues with the DHT not being able to find aggregators even after they boot up, so in that time the sensors (even if I use a single sensor) keep creating new aggregators. Not sure how to solve this one other than restarting the bootstrap and allocators every once in a while... seems like an issue in the libp2p DHT implementation, or perhaps there're some optimization configurations we're missing.

Closing this issue. The app pipeline is good, and it allowed us to do some interesting experiments to emulate mobile edge environment.


Change alignment of the label on y axis

Hi,
I want to display an yAxis inside chart area (on the right hand side of Y axis). I can achieve this by setting  chartSettings.leading to e.g. -5
But the problem is that by default label text is aligned to right because it's displayed on the left of Y axis.
The responsible for this is ChartAxisYLowLayerDefault class and func labelsX(offset offset: CGFloat, labelWidth: CGFloat) -> CGFloat which sets label x to labelsXRight - labelWidth.
The solution would be to return just labelsXRight.
Do you see any other (better) solution? If not do you mind a pull request with an alignment configuration on the ChartLabelSettings?
Best,
Marcin

I will have to create another layer based on ChartCoordsSpaceRightBottomSingleAxis and it will work.
What is the best way to set margin? Is it only labelsToAxisSpacingY on ChartSettings ?

And how to get rid of leading margin for the entire chart (in ChartCoordsSpaceLeftBottomSingleAxis mode). I'm setting leading = -37 on ChartSettings however this is a magic number that depends on many other things (like label font)  - I need my chart to take entire view it's added to (left and right margins equal to 0).

I was thinking about an axis offset setting, but just noticed this is not complete. ChartAxisSettings has e.g. screenLeading but it's not used, and also it's initialised with the leading setting from the chart settings which is not what we need... so this would have to be implemented. With this offset setting you would be able to move the complete axis to the left (it could also be used to move axes a bit outside, for example). Or you can implement the label alignment setting, both are useful and welcome as pull request.
The leading margin disappears if chart leading is 0 and there's no left axis, if there's left axis it will be max label width + related axis settings. To remove the axis space ideally you would use the axis width (-xAxis.rect.width) to set leading but the chart settings are used to calculate the axes rects so this is not possible. But I think you can also offset the innerFrame calculated by coords space by this value. This is off the top of my head, if it doesn't work glad to dig further. This is a bit finicky and could be improved by e.g. implementing a setting to not reserve space for the axis content.


Trigger staging bundle release for v0.13.1

Issue #, if available:
Description of changes:
Trigger staging bundle release for 0.13.1
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm


[bug] musical chairs after virtual desktop switch

v 0.13
Version	10.0.18363 Build 18363
Mind that this is not related to #420 or #215.
The workaround described fails to work around. (see second video)
Turning off Settings>Display>Simplify and personalize Windows>Show animations in Windows does not help either.
https://www.loom.com/share/2904909ab6044537881ed94f03f6845d
with flash-disabled:
https://www.loom.com/share/5bbcef2aacee452dbca27795f927a22e
Let me know if I should go ahead and buy a Bandicam license to record this in 144Hz (please, I really need an excuse for doing that).

I'm seeing quirky behavior without it but felt consistant between PT 0.13 and 0.14 running versus without it running.
Looks like the VD is "rehydrating" for me no matter what.

what app is on your right and what order from back to front are the apps?  I tried a Windows explorer window in multiple spots (front, middle, back) on a window stack and didn't notice a difference

@crutkas
The app itself is TheBrain 11. Itself Beta-software that might have a Multimonitor/Workplace-switching issue. I wasn't aware of this when I posted.
https://forums.thebrain.com/post/crash-multimonitor-setup-and-workspaces-10368704?pid=1310210551
Close for now, till someone can replicate it with more reliable programs.

Can't replicate this anymore on 0.14 and TheBrain 11 seems to handle itself better, too now.

good to know!  Firm believer to over-communicate and lets figure stuff out.


Improve Docs: contact part

将JavaScript代码替换为python代码
将文档翻译为中文
小幅度修改了文档结构

 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.

Your improvement is great. Are you interested in writing documentation for other modules? If so, it will be a great thing.

Sure, that will be my pleasure, I will request a new pr after I complete

I’m very glad to hear that. Our document and code need a lot of improvements which are opened for developers.  So there are many challenging improvements on docs and codes.
Back to the point, you can put all changes at here and modify the title of pr. We are looking forward to your future great works. Please go head and feel free to discuss with us at here.

OK, I will change this PR title, and try to improve the references dir in recent days~ Cheers

Almost done, but I am not yet familiar with the methods and attributes in  wechaty.md and Friendship.md , so think I should just leave it here, hope someone can improve it in the future

Wechaty Contributors Nomination
Link to https://github.com/wechaty/PMC/issues/16

Yea, I think you are right, it should be like Coroutine kind of things, and also for the contact_self, I will take a look at those issues and modify the commit,

I was trying to find the description of using Coroutine as return type on the python docs, but in the end, I still didn't understand how to use it. So I decided to keep the return type the same as the source code,  hope this is acceptable lol

ping @GaryDu0123  Looking forward to your new commit to fix the above issue.

ping @GaryDu0123 Looking forward to your new commit to fix the above issue.

coooool

@huan Can I join Wechaty Contributor Program?

Of course, and thank you very much for your contribution!
You are welcome to join Wechaty Contributor Program
1. Join Wechaty Organization

You've invited Gary Du to Wechaty! They'll be receiving an email shortly. They can also visit https://github.com/wechaty to accept the invitation.

I have invited you to join our Wechaty GitHub Organization, please accept it by following the above message. (See also: wechaty/PMC#16)
2. Update Your Wechaty Contributor Profile

Please open Contributor Hall of Fame and add yourself to the end of the list, so that other contributors will know you better!
Please add yourself to our Website Contributors by creating a PR and refer to this PR link as well.

3. Join The Contributor Only WeChat Room
We also have a WeChat room for contributors only which can discuss Wechaty at a deeper level, you are welcome to join and if you are interested.
Please add @lijiarui wechat: ruirui_0914 and send her this pr link. She will invite you into Wechaty Contributor Room
Cheers!

thanks


List workflow outputs

TL;DR
This previously didn't work
    @task
    def t1(a: int) -> int:
        a = a + 5
        return a

    @workflow
    def list_output_wf() -> typing.List[int]:
        v = []
        for i in range(2):
            v.append(t1(a=i))
        return v

What was happening was that Promise objects were getting wrapped twice.  Coming out of the workflow function call, it was already a list of Promises.  What the workflow function should return is a LiteralCollection rather than attempting to rewrap. The end result was that type(result.val.collection.literals[0].scalar.primitive.integer) was again a Promise rather than a proper Python integer. (result here is the output of _local_execute)
Type

[x] Bug Fix
[x] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[x] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description

Removed the _workflow_fn_outputs_to_promise function.  I never understood why this function existed.
Changed the promise.translate_inputs_to_literals function to just accept one side of an interface, either inputs or outputs.
Then translate_inputs_to_literals can be used on the outputs of a workflow as well.
Changed the string template for promises to say "Resolved" instead of "Var".

Tracking Issue
NA
Follow-up issue
NA

Codecov Report

Merging #388 (70fc777) into master (bc84920) will decrease coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #388      +/-   ##
==========================================
- Coverage   96.00%   95.94%   -0.06%
==========================================
  Files           2        2
  Lines          75       74       -1
  Branches        8        8
==========================================
- Hits           72       71       -1
  Misses          1        1
  Partials        2        2

Impacted Files
Coverage Δ

tests/scripts/test_flytekit_sagemaker_runner.py
100.00% <0.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 bc84920...70fc777. Read the comment docs.


Add keybind viewer in the about menu

Description
It would be nice to have some kind of table to show all the different keybinds available in the about menu, maybe by adding a new section
Priority
Low (Nice-to-have)

Can we read out shortcuts from the hooks, instead of storing them manually?

Can we read out shortcuts from the hooks, instead of storing them manually?

No but I don’t think it’s necessary because they should also be documented on the docs


#6: add indexing to BodyOfTheLastResponse.

This PR adds __getitem__ handling for BodyOfTheLastResponse, which does two things:

Adds the requested index to the list of body_parts (sorry i couldn't help myself).
Returns self.

This means further indexing will be kept track of in the body_parts list. As the question is answered, BodyOfTheLastResponse checks if it has any body_parts, and will travel down the list for the user while answering the Question.
One thing for discussion—should a KeyError or IndexError just be let to bubble up, or should we catch that and tell the user what went wrong?

Looks good!  Only have one last suggestion: add a slice example to  test_stores_index_path


Write documentation for C++ APIs

@jasongin should this issue be considered completed?

No. Neither API docs nor conceptual docs are anywhere near complete.

@mhdawson could we close this issue now?

Yes, closing.


Use tabula-py to build DeviceModel information. Closes #141

Currently getting 404 errors for the sourceforge website http://ngspice.sourceforge.net/docs/ngspice-31-manual.pdf . It might be nice to store this PDF locally/ provide a path to the pdf file via cli arguments.


TypeError: Object of type 'proxy' is not JSON serializable

drf-openapi==1.0.0
Python 3.6.1
Django==1.11.5
MacOSX

Description
Using ugettext_lazy inside Models break the Open API.
Traceback
Internal Server Error: /api/v1.0/docs/
Traceback (most recent call last):
  File "/Users/.../lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/Users/.../lib/python3.6/site-packages/django/core/handlers/base.py", line 217, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/Users/.../lib/python3.6/site-packages/django/core/handlers/base.py", line 215, in _get_response
    response = response.render()
  File "/Users/.../lib/python3.6/site-packages/django/template/response.py", line 107, in render
    self.content = self.rendered_content
  File "/Users/.../lib/python3.6/site-packages/rest_framework/response.py", line 72, in rendered_content
    ret = renderer.render(self.data, accepted_media_type, context)
  File "/Users/.../lib/python3.6/site-packages/drf_openapi/codec.py", line 113, in render
    return OpenAPICodec().encode(data, extra=extra)
  File "/Users/.../lib/python3.6/site-packages/drf_openapi/codec.py", line 103, in encode
    return force_bytes(json.dumps(data))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", line 180, in default
    o.__class__.__name__)
TypeError: Object of type '__proxy__' is not JSON serializable

What I Did
Inside all my Models, i have set i18n strings using ugettext_lazy functional to translate it. If i use the ugettext instead of the lazy version, everything works fine.
from django.utils.translation import ugettext_lazy as _
from django.db import models

class MyModel(models.Model):
    title = models.CharField(
        verbose_name=_('Title'),
        max_length=200, blank=False, null=False,
        help_text=_('A string describing the MyModel title.'))

cc @fernandolins

@luanfonceca I don't think this is a drf_openapi issue. It looks like you're trying to serialize a lazy translation object instead of a string.
Django recommends passing the translation object to str() to generate a string in the current locale: https://docs.djangoproject.com/en/dev/ref/unicode/#translated-strings

Thats also happen if we use the User models.

Hi @werwty for me, that process of evaluating a string should happen inside the drf_openapi. Its the python json module that doesn't handle lazy objects very well, but inside this module, we need to evaluate it, the entire django models is designed to work with lazy translations in their verbose_name, help_text and etc.
Can you help me out on what can i do in order to make that work?
For instance, if i want to create a user serializer, using the default django user's models, what should i do?!

@luanfonceca I did a quick test of drf_openapi serialization with ugettext_lazy and it looks like it's not breaking drf_openapi.
https://github.com/werwty/rest-framework-tutorial/commits/ugettext_lazy-test
I'd be happy to take another look if you submit a PR against my fork with breaking changes.

Hi @werwty, when i upgraded to the tip version of drf, it came back to work.
Sorry for that.


Broken link to PIFF specifications

The link "Protected Interoperable File Format (PIFF) specification" (https://go.microsoft.com/?linkid=9682897) gives a 404 error on this page:
https://docs.microsoft.com/en-us/iis/media/smooth-streaming/protected-interoperable-file-format

@shirhatti Can you please take a look at this?

https://github.com/user-attachments/files/16292256/Protected.Interoperable.File.Format.PIFF.1.1.pdf


imdb_list new list interface plugin

It seems that the documentation for imdb_list plugin updated for the introduction of list interface plugins does not reflect the actual state of the plugin in 1.2.497.
"login" and "password" keys are indeed not valid during schema interpretation.

Yeah, I may have jumped the gun with the wiki update, I was pretty confident that the new feature will be ready by now.
I'll see how soon the feature can be added and revert the wiki if it takes too long

wiki has been updated and new imdb_list is out. There is a bug though, #1020. Closing this one.

I still get the same error :
[/tasks/checkIMDBlist/imdb_list] The keys 'login', 'password' are not valid here.


:8545 is queried for RPC

POST http://localhost:8545/ net::ERR_CONNECTION_REFUSED
EthereumConnectionCheck.tsx
By default, Bee expects a local node at http://localhost:8545. To use a provider instead, simply change
the swap-endpoint in your configuration file.

Root cause:
Settings.tsx
rpcProvider: new providers.JsonRpcProvider('')

Not a bug, but an annoyance when looking at dev console


Inconsistent Style Application for Placeholder in Select Trigger Component

Describe the bug
The Select Trigger component currently uses the placeholder:text-muted-foreground style which is not being applied correctly. As per defaults, it should look gray when applied. The issue stems from the :placeholder pseudo-element not being associated with buttons but rather with specific input controls.
Proposed Fix
To resolve this issue, it is suggested to modify the CSS selector to [&>span[data-placeholder]]:text-muted-foreground. This approach is consistent with the existing [&>span]:line-clamp-1 style. It is important to note that in our library, the data-placeholder attribute is applied to the value component rather than the trigger, which differs from the original library's implementation.
Additional Information
This styling inconsistency is also present in the select component maintained by @shadcn. The fix for his component may differ slightly due to the implementation variations. I encourage any contributor to verify if a similar issue exists in his repository and report it if it isn't.
Reproduction
Simply see the example component in our Select docs or @shadcn's Select docs and observe that placeholder styles aren't being applied.
Logs
No response
System Info
N/A

Severity
annoyance

Closed by #1125


chore(ci): split builder image

WIP

Codecov Report
Patch and project coverage have no change.

Comparison is base (55efce0) 17.87% compared to head (10c2764) 17.87%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #653   +/-   ##
========================================
  Coverage    17.87%   17.87%
========================================
  Files           53       53
  Lines         5080     5080
========================================
  Hits           908      908
  Misses        4145     4145
  Partials        27       27

see 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


demo

Hello , Is there any demo available for Diffiner or Diffiner+ ? before and after

Thanks for your attention. You can easily run Diffiner/Diffiner+ by just executing run_example.sh. After that, the results before/after applying Diffiner will be stored in your local directory, you can compare them.


command traefik error: field not found, node: elastic

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you do?
I updated my traefik container setup from v3.0.0-beta5 to v3.0.0-rc1, started to get the following error:
 ✔ Container traefik  Started                                                                                0.0s
traefik  | {"level":"error","error":"command traefik error: field not found, node: elastic","time":"2024-02-21T13:07:52Z","message":"Command error"}
traefik exited with code 0

this is the section of my traefik.toml file that is causing the error
[tracing]
  serviceName = "<redacted>"
  [tracing.elastic]
   serverURL = "<redacted>"
   serviceEnvironment = "<redacted>"
   secretToken = "<redacted>"

I have commented out the tracing configuration, traefik runs, but no tracing
What did you see instead?
command traefik error: field not found, node: elastic
What version of Traefik are you using?
v3.0.0-rc1
What is your environment & configuration?
[tracing]
  serviceName = "<redacted>"
  [tracing.elastic]
   serverURL = "<redacted>"
   serviceEnvironment = "<redacted>"
   secretToken = "<redacted>"

docker on RHEL 9
If applicable, please paste the log output in DEBUG level
✔ Container traefik  Started                                                                                0.0s
traefik  | {"level":"error","error":"command traefik error: field not found, node: elastic","time":"2024-02-21T13:07:52Z","message":"Command error"}
traefik exited with code 0

I can read from the v3 documentation that OpenTelemetry is the (only one?) way to go now, will learn how to configure it for my elastic APM server. I am closing this issue.


[nuxt] Persistence/hydration won't happen if store is called in a Nuxt plugin

Describe the bug
When a Nuxt 3 plugin call the useStore at start, the persist fail. No message or warning is shown.
This can cause loss of time, and headaches without knowing why it is not working and losing many hours of work  (as it happened to me).
It would be advisable (if possible) to recognize this type of situation and send a warning message to the user so that they do not initialize the store prematurely.
// file /composables/failingstore.js:
import { defineStore } from "pinia";

export const useFailingStore = defineStore("failPersistStore", {
  state: () => {
    return {
      counter: 0,
    };
  },
  persist: true,
});

// file /plugins/anyplugin.js:
export default defineNuxtPlugin((nuxtApp) => {

   // using here will generate fail in persisting
  const store = useFailingStore();

  const getCounter = () => {

    // using here will run ok
    // const store = useFailingStore();

    return store.counter;
  };

  return {
    provide: {
        getCounter,
    },
  };
});

Regardless, I really appreciate this pinia plugin. Thank you!
Reproduction
https://github.com/msoler75/pinia-persist-fail-when-plugin
System Info
System:
    OS: Windows 10 10.0.19044
    CPU: (8) x64 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
    Memory: 5.02 GB / 15.84 GB
  Binaries:
    Node: 16.16.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 8.11.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 109.0.5414.75
    Edge: Spartan (44.19041.1266.0), Chromium (108.0.1462.76)
    Internet Explorer: 11.0.19041.1566

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible of the bug.

I started looking into it and it's really bizarre. it's very interesting, because just declaring const store = useStore() in a plugin, and nothing else, just makes it so the persistence plugin doesnt exist at all. I'll debug that when i get some more time to try to udnerstand

also, why are you declaring the plugin in the nuxt.config.ts ?

You shouldn't be adding them yourself, as the documentation suggests (https://nuxt.com/docs/guide/directory-structure/plugins).
When I remove it, the persistence and everything works perfectly fine 🤔

Yes, the Nuxt 2 habit betrayed me. For me it was unpredictable that this effect would be generated. Thanks!

Closing as solved :)


Got an internal exception while accessing a iterator getter inside an extension

Dart SDK version: 2.13.1 (stable) (Fri May 21 12:45:36 2021 +0200) on "macos_x64"
OS: Macos BigSur
Browser: Chrome 90

Problem:
The list was not null and getting the iterator outside of the extension is fine but inside the extension threw this exception.
The first exception:
[ +698 ms] Error: Expected a value of type 'String', but got one of type 'Null'
               at Object.throw_ [as throw] (http://localhost:61387/dart_sdk.js:5041:11)
               at Object.castError (http://localhost:61387/dart_sdk.js:5014:15)
               at Object.cast [as as] (http://localhost:61387/dart_sdk.js:5323:17)
               at Function.as (http://localhost:61387/dart_sdk.js:42780:19)
               at ArrayIterator.new.get current [as current] (http://localhost:61387/dart_sdk.js:15947:18)
               at Object.GenericReduce$124genericReduce [as GenericReduce|genericReduce]
               at Common.RecordedCodeSelectionRange.new.toSelection
               at Open.RecordedCodeOpenAction.new.applyChanges
               at WhereIterable.new.forEach (http://localhost:61387/dart_sdk.js:20094:11)
               at RecordedCodeActions.RecordedCodeActionRoot.fromJson.apply
               at http://localhost:61387/packages/[package_name]/main.dart.lib.js:354:16
               at http://localhost:61387/dart_sdk.js:24284:9

Another exception:
Then I tried to get the iterator and see what happend, and it threw another exception.
this.iterator
[+15337 ms] Internal error: RangeError (offset): Invalid value: Not in inclusive range 0..14: 480:#0      RangeError.checkValueInInterval (dart:core/errors.dart:277:7)
[        ] #1      Source.getLocation (package:kernel/ast.dart:13082:16)
[        ] #2      getLocation (package:front_end/src/fasta/messages.dart:19:52)
[        ] #3      ProcessedOptions.format (package:front_end/src/base/processed_options.dart:219:47)
[        ] #4      ProcessedOptions.format (package:front_end/src/base/processed_options.dart:227:31)
[        ] #5      ProcessedOptions.report (package:front_end/src/base/processed_options.dart:245:9)
[        ] #6      CompilerContext.report (package:front_end/src/fasta/compiler_context.dart:69:13)
[        ] #7      Loader.addMessage (package:front_end/src/fasta/loader.dart:362:20)
[        ] #8      Loader.addProblem (package:front_end/src/fasta/loader.dart:322:12)
[        ] #9      LibraryBuilderImpl.addProblem (package:front_end/src/fasta/builder/library_builder.dart:253:19)
[        ] #10     SourceLibraryBuilder.addProblem (package:front_end/src/fasta/source/source_library_builder.dart:1500:47)
[        ] #11     BodyBuilder.addProblem (package:front_end/src/fasta/kernel/body_builder.dart:6477:20)
[        ] #12     BodyBuilder.reportDuplicatedDeclaration (package:front_end/src/fasta/kernel/body_builder.dart:6520:5)
[        ] #13     BodyBuilder.enterFunctionTypeScope (package:front_end/src/fasta/kernel/body_builder.dart:3433:11)
[        ] #14     BodyBuilder.parseSingleExpression (package:front_end/src/fasta/kernel/body_builder.dart:1443:5)
[        ] #15     SourceLoader.buildExpression (package:front_end/src/fasta/source/source_loader.dart:539:21)
[        ] <asynchronous suspension>
[        ] #16     IncrementalCompiler.compileExpression.<anonymous closure> (package:front_end/src/fasta/incremental_compiler.dart:1946:39)
[        ] <asynchronous suspension>
[        ] #17     IncrementalCompiler.compileExpression (package:front_end/src/fasta/incremental_compiler.dart:1844:12)
[        ] <asynchronous suspension>
[        ] #18     ExpressionCompiler._compileExpression (package:dev_compiler/src/kernel/expression_compiler.dart:441:21)
[        ] <asynchronous suspension>
[        ] #19     ExpressionCompiler.compileExpressionToJs (package:dev_compiler/src/kernel/expression_compiler.dart:349:26)
[        ] <asynchronous suspension>
[        ] #20     FrontendCompiler.compileExpressionToJs (package:frontend_server/frontend_server.dart:862:23)
[        ] <asynchronous suspension>
CompilationError: Internal error: RangeError (offset): Invalid value: Not in inclusive range 0..14: 480:#0      RangeError.checkValueInInterval (dart:core/errors.dart:277:7)
#1      Source.getLocation (package:kernel/ast.dart:13082:16)
#2      getLocation (package:front_end/src/fasta/messages.dart:19:52)
#3      ProcessedOptions.format (package:front_end/src/base/processed_options.dart:219:47)
#4      ProcessedOptions.format (package:front_end/src/base/processed_options.dart:227:31)
#5      ProcessedOptions.report (package:front_end/src/base/processed_options.dart:245:9)

The code
extension GenericReduce<E> on List<E> {
  /// a reduce function that allows you to change type
  /// pass in a callback(T? value, E element, int index) => T?
  /// if a null value is returned, the function stops and
  /// return the last value you returned
  T? genericReduce<T>(T? Function(T?, E, int) callback) {
    if (this.isEmpty) {
      return null;
    }
    T? current;
    int index = 0;
    while (this.iterator.moveNext()) {
      var tmp = callback(current, this.iterator.current, index);
      if (tmp == null) {
        return current;
      } else {
        current = tmp;
      }
      index++;
    }
    return current;
 }

The error occurs because you are using the iterator incorrectly.
You do this.iterator.moveNext() followed by this.iterator.current. However, each use of this.iterator creates a new iterator, so the this.iterator.current is asking for the current element of an iterator which hasn't moved to its first element yet.
It tries to return null (because that's what it would do pre null-safety), but with null safety the iterator element type doesn't allow null, and therefore it throws.
Instead do:
...
var iterator = this.iterator;
while (iterator.moveNext()) {
  var tmp = callback(current, iterator.current, index);
...

Ohhhhhhhh
I see....
Sorry for my carelessness
Thanks a lot


Use latest scalprum core in federated modules

Synced with Karel. There is currently an error on ephemeral envs where plugin store is initialized twice. This should resolve that issue (aligning the version with what chrome uses). Since our staging environment is currently down we will not be able to test on console.dev.redhat.com just yet but we will follow up on ephemeral.

/lgtm