Add support for writing SBOMs when the build.Result is oci.Signed*.

This adds functionality that enables the default publisher to
publish SBOMs (and later signatures and attestations) when the
build.Result is an oci.SignedEntity.
This also changes the gobuild logic to start producing
oci.Signed* as its build.Results, so when executed we get an
SBOM for each architecture image.
For example, see the "Published SBOM" lines below:
# KO_DOCKER_REPO=ghcr.io/mattmoor go run . build --platform=linux/amd64,linux/arm64 -B .
2021/11/19 19:24:50 Using base gcr.io/distroless/static:nonroot for github.com/google/ko
2021/11/19 19:24:51 Building github.com/google/ko for linux/amd64
2021/11/19 19:24:52 Building github.com/google/ko for linux/arm64
2021/11/19 19:24:57 Publishing ghcr.io/mattmoor/ko:latest
2021/11/19 19:24:58 existing blob: sha256:c78c74e7bb4a511f7d31061fbf140d55d5549a62d33cdbdf0c57ffe43603bbeb
2021/11/19 19:24:58 existing blob: sha256:4aa59d0bf53d4190174fbbfa3e9b15fdab72e5a95077025abfa8435ccafa2920
2021/11/19 19:24:58 ghcr.io/mattmoor/ko:sha256-d2bc030f5ed083d5e6a30a7969c9a8e599511b8d7a6e20695bf5ea029b6e2c3f.sbom: digest: sha256:c67ec671aaa82902e619883a7ac7486e6f9af36653449e2eb030ba273fe5a022 size: 348
2021/11/19 19:24:58 Published SBOM ghcr.io/mattmoor/ko:sha256-d2bc030f5ed083d5e6a30a7969c9a8e599511b8d7a6e20695bf5ea029b6e2c3f.sbom
2021/11/19 19:24:58 existing blob: sha256:c78c74e7bb4a511f7d31061fbf140d55d5549a62d33cdbdf0c57ffe43603bbeb
2021/11/19 19:24:58 existing blob: sha256:4aa59d0bf53d4190174fbbfa3e9b15fdab72e5a95077025abfa8435ccafa2920
2021/11/19 19:24:59 ghcr.io/mattmoor/ko:sha256-b74c230f20efd94981e5fd823bacc23cbd71055a1b3b6a0893152b398c67743b.sbom: digest: sha256:c67ec671aaa82902e619883a7ac7486e6f9af36653449e2eb030ba273fe5a022 size: 348
2021/11/19 19:24:59 Published SBOM ghcr.io/mattmoor/ko:sha256-b74c230f20efd94981e5fd823bacc23cbd71055a1b3b6a0893152b398c67743b.sbom
2021/11/19 19:24:59 existing blob: sha256:3f7e3c6765a6abc682cd40ea256fbea5c1d4debbc07659efbc0dedc13eee0da6
2021/11/19 19:24:59 existing blob: sha256:250c06f7c38e52dc77e5c7586c3e40280dc7ff9bb9007c396e06d96736cf8542
2021/11/19 19:24:59 existing blob: sha256:e8614d09b7bebabd9d8a450f44e88a8807c98a438a2ddd63146865286b132d1b
2021/11/19 19:24:59 existing blob: sha256:7067b1bc6f9ce59f3a4ed2216946ebbb27a4f7a102f55d96c6af1dc90e77b510
2021/11/19 19:25:00 ghcr.io/mattmoor/ko@sha256:d2bc030f5ed083d5e6a30a7969c9a8e599511b8d7a6e20695bf5ea029b6e2c3f: digest: sha256:d2bc030f5ed083d5e6a30a7969c9a8e599511b8d7a6e20695bf5ea029b6e2c3f size: 751
2021/11/19 19:25:01 existing blob: sha256:250c06f7c38e52dc77e5c7586c3e40280dc7ff9bb9007c396e06d96736cf8542
2021/11/19 19:25:02 pushed blob: sha256:121c637d5c84562b51404a6f71c1f995ad059740293a3911a0dc33eb223e41a4
2021/11/19 19:25:02 pushed blob: sha256:859e03b7461b2a512159493ef1504d2859ed37c05ed1ef781ff98394ea4799b5
2021/11/19 19:25:02 pushed blob: sha256:d1b55c3db0f16b5056776c6d2c279efd16d28dbf1aae3eef1f3f9b7551d1f490
2021/11/19 19:25:03 ghcr.io/mattmoor/ko@sha256:b74c230f20efd94981e5fd823bacc23cbd71055a1b3b6a0893152b398c67743b: digest: sha256:b74c230f20efd94981e5fd823bacc23cbd71055a1b3b6a0893152b398c67743b size: 751
2021/11/19 19:25:03 ghcr.io/mattmoor/ko:latest: digest: sha256:e4466a7dd9be66c7c1b43a8ecc19247041ece232407a14e3d6ea3c51d2561a71 size: 529
2021/11/19 19:25:03 Published ghcr.io/mattmoor/ko@sha256:e4466a7dd9be66c7c1b43a8ecc19247041ece232407a14e3d6ea3c51d2561a71
ghcr.io/mattmoor/ko@sha256:e4466a7dd9be66c7c1b43a8ecc19247041ece232407a14e3d6ea3c51d2561a71

The "SBOM" being attached in this change is the raw output of go version -m,
which we will convert to one of the standard formats in a subsequent change.

TODO list:

[ ] e2e test using cosign download sbom
[ ] unit test coverage for new code paths
[ ] Possibly make the Digest() thing less hideous
[ ] Rebase on @imjasonh SBOM magic ✨

I'll probably knock these off tomorrow, but since it's mostly testing I'd appreciate feedback on the main bits sooner than later.

Non blocking questions:

should a user be able to disable SBOM publishing?
should a user be able to publish an SBOM without signing the image?
should a user be able to publish an unsigned SBOM for a signed image?

I think the way I’d bias the implementation would be to have publishers publish everything that exists, down to just the v1.Image, and toggle what’s “attached” to the oci.Signed* (then we save on computing SBOMs and signatures).
I think my inclination would be:

Opt-out for SBOMs
Opt-in for signing (needs OIDC)
But I do think we need to flag(?) guard both.

I’ll think about how we guard SBOM after I write some tests. 👍

Ok the latest changes should have all of the pieces including --sbom=none to disable, and a media type of application/vnd.go.version-m.

I added one final change: normalizing the binary path printed by go version -m.
Basically prior to this the SBOMs weren't deterministic, so nop builds would churn the SBOM.  With this I get deterministic SBOMs and nothing is written on reruns.

Codecov Report

Merging #506 (a5b89ad) into main (2fbc908) will increase coverage by 0.13%.
The diff coverage is 61.64%.

@@            Coverage Diff             @@
##             main     #506      +/-   ##
==========================================
+ Coverage   51.12%   51.26%   +0.13%
==========================================
  Files          41       41
  Lines        1950     2011      +61
==========================================
+ Hits          997     1031      +34
- Misses        794      808      +14
- Partials      159      172      +13

Impacted Files
Coverage Δ

pkg/commands/resolver.go
31.21% <33.33%> (+0.03%)
:arrow_up:

pkg/publish/default.go
56.86% <40.74%> (-4.98%)
:arrow_down:

pkg/build/gobuild.go
56.91% <71.42%> (+0.08%)
:arrow_up:

pkg/build/options.go
91.42% <100.00%> (+1.77%)
:arrow_up:

pkg/commands/options/build.go
64.17% <100.00%> (+1.10%)
:arrow_up:

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 2fbc908...a5b89ad. Read the comment docs.


Fix: share storage across contracts

Problem: OsSingleStarknetStorage is currently built with a different FFC/storage for each contract. This creates N distinct storage objects while we should use one.
Solution: wrap the storage object inside an Arc<Mutex<_>> to make it shareable.
Issue Number: N/A
Type

[ ] feature
[ ] bugfix
[x] dev (no functional changes, no API changes)
[ ] fmt (formatting, renaming)
[ ] build
[ ] docs
[ ] testing

Description
Breaking changes?

[ ] yes
[x] no

Two parts about this answer.

In Python, every object is an Arc under the hood.
You usually don't need to worry too much about concurrency in Python because of the Global Interpreter Lock (GIL). So the Mutex makes sense to add in our context.

I just wanted to see how long we could live without Arc<Mutex<_>> in our implementation, turns out that if the storage is shared there's not a lot of other solutions. Arc<RefCell<_>> is not enough because the code is async, clippy complains (rightfully so) that holding a mut ref from a refcell across a waiting point will lead to some panicking. So Arc<Mutex<_>> it is until we decide we need something more complex.

I'm still a bit scared about combining a mutex and await. Tokio talks a bit about this here, going so far as to suggest avoiding it if it isn't needed: https://docs.rs/tokio/latest/tokio/sync/struct.Mutex.html
If you've considered this carefully, I'll trust your judgement. I'd otherwise suggest using a normal mutex if you can and avoid holding it across await points.
Edit: in case it isn't clear, there's tokio::sync::Mutex used currently in this PR and there's also std::sync::Mutex.

I understand your concern. I don't see any workaround to holding the resource across waiting points, This PR tries to put it as deep as possible but still the storage methods are asynchronous so you're stuck at some point. Note that this is mostly to make clippy happy: most of the code is async in name only (for now), we perform operations per-contract so there is never any contention on the lock.
Anyway, moving forward we'll probably change the storage into a separate service and use message passing, which seems to be the best pattern available in async Rust.


Add single writer principle note to deployment documentation

Summary
This change addresses the request for documentation on the Single-Writer principle. https://github.com/open-telemetry/opentelemetry.io/issues/4368
Description

add section on multiple collector deployments in deployment/gateway
define single writer principle
provide examples and context

Hi @michael2893. Thanks for sticking with this. A couple of the Collector maintainers reviewed the earlier PR (#4433), so I'm going to ask them to take a look here and make sure their earlier comments were addressed. @jpkrohling, @mx-psi, PTAL. Thanks!

@open-telemetry/collector-approvers PTAL!

@open-telemetry/collector-approvers PTAL!


Bug bounty test - PLEASE DO NOT APPROVE. kyoqse

Bug bounty test - PLEASE DO NOT APPROVE. kyoqse

 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.


Fix broken e2e

upgraded playwright version to 1.22
made required changes in code for version 1.22
this should fix playwright random errors as per thread discussion.


Tools: add fpgainfo phy  link status up/down

add fpga Ethernet ports link status
HSSI Link status CSR offset 0x818:
reserved (63:48) -- Reserved
rxpcsready (47:32) -- bit0 for port0
txlanestable (31:16) -- bit0 for port0
txplllocked (15:00) – bit0 for port0
if TX PLL locked, RX PCS ready and TX lanes are set   means links Status UP
if TX PLL locked, RX PCS ready and TX lanes are not set   means links Status DOWN

sudo ./bin/fpgainfo  phy
Intel N6000 Acceleration Development Platform
Board Management Controller, MAX10 NIOS FW version: 1.4.0
Board Management Controller, MAX10 Build version: 1.4.0
//****** PHY //
Object Id                        : 0xEF00000
PCIe s:b:d.f                     : 0000:B1:00.0
Device Id                        : 0xBCCE
Socket Id                        : 0x00
Ports Num                        : 01
Bitstream Id                     : 0x501020283CF60D7
Bitstream Version                : 5.0.1
Pr Interface Id                  : 43c10034-ed73-5816-8ed9-67944c5b53c0
// HSSI information ******//
HSSI version                     : 1.0
Number of ports                  : 8
Port0                            :25GbE        UP
Port1                            :25GbE        UP
Port2                            :25GbE        UP
Port3                            :25GbE        UP
Port4                            :25GbE        UP
Port5                            :25GbE        UP
Port6                            :25GbE        UP
Port7                            :25GbE        UP
Signed-off-by: anandaravuri<EMAIL_ADDRESS>

Coverage decreased (-0.05%) to 61.416% when pulling d9c4d31c0045f460e95ca55d67daba78a23191a7 on aravuri/fpgainfo_phy_linkstatus into 27fff2913a85d8fba56bd10e5054f47c054b1e91 on master.


resolvePlaceholder functionality incorrect and inconsistent when serving alternative formats

I am seeing problems with the resolvePlaceholder functionality in Spring Cloud Config Server.  A set of examples is best.  First here is an example yml file I have in my git repo....
jsk:
  servlet:
    healthcheck:
      dirToWatch: '${catalina.home:.}/conf/_health'

When I call the server using the path used by the Spring Client the correct results are returned with the ${catalina.home:.} placeholder not being resolved.
_http://localhost:8888/sp_boot_sample/foo/ryan_test_
{
  "name": "sp_boot_sample",
  "profiles": [
    "foo"
  ],
  "label": "ryan_test",
  "version": "ed19d558ff52e08aeb72a517e46685a344389fd1",
  "propertySources": [
    {
      "name": "https://github.intuit.com/java-service-kit/sp-boot-sample-config/application.yml",
      "source": {
        "jsk.servlet.healthcheck.dirToWatch": "${catalina.home:.}/conf/_health"
      }
    }
  ]
}

It also behaives correctly when I request the configuration as properties with the resolvePlaceholder=false
_http://localhost:8888/ryan_test/sp_boot_sample-foo.properties?resolvePlaceholders=false_
jsk.servlet.healthcheck.dirToWatch: ${catalina.home:.}/conf/_health

YML and JSON is where we have problems since it is trying to replace the placeholder.
_http://localhost:8888/ryan_test/sp_boot_sample-foo.json?resolvePlaceholders=false_
{
  "jsk": {
    "servlet": {
      "healthcheck": {
        "dirToWatch": "./conf/_health"
      }
    }
  }
}

_http://localhost:8888/ryan_test/sp_boot_sample-foo.yml?resolvePlaceholders=false_
jsk:
  servlet:
    healthcheck:
      dirToWatch: ./conf/_health

The issue gets more problematic when you remove the resolvePlaceholders as the behavior becomes inconsistent.
YML
_http://localhost:8888/ryan_test/sp_boot_sample-foo.yml_
jsk:
  servlet:
    healthcheck:
      dirToWatch: ./conf/_health

JSON
_http://localhost:8888/ryan_test/sp_boot_sample-foo.json_
{
  "jsk": {
    "servlet": {
      "healthcheck": {
        "dirToWatch": "./conf/_health"
      }
    }
  }
}

Properties
_http://localhost:8888/ryan_test/sp_boot_sample-foo.properties_
jsk.servlet.healthcheck.dirToWatch: /private/var/folders/5g/0hmbzds942318msw3jxvvbp0nw22jg/T/tomcat.1297932675264632683.8888/conf/_health

To be honest I am not sure which one is correct.  If the properties version is the correct one then it exposes a dangerous security vulnerability since any client could start examining the server's environment variables.

I THINK this is a bug, I am able to reproduce the problem, but i am unfamiliar with the code.  I also dont see any tests that test this specific scenario.  I will check with the team next week and provide more info.

Looking at the code this seems to be centralized to the EnvironmentController class.  For the labelledProperties() method return there is a convertToProperties function which simply converts the environment to a map of properties but does not alter the value of the properties.  For json and yml (labeledYaml() and labeledJson()) there is a convertToMap function which along with converting the structure of the environment to a nested map it also alters the property values....
		PropertiesConfigurationFactory<Map<String, Object>> factory = new PropertiesConfigurationFactory<>(
		//.... some structuring code....
		factory.setPropertySources(propertySources);
		factory.bindPropertiesToTarget();
		//... other stuff....

Its during the bindPropertiesToTarget that the placeholder resolution occurs regardless of if the resolvePlaceholders value is true or false.  Because the convertToMap function alters the value of the properties and the convertToProperties function does not you get the inconsistant behavior.  What I haven't determined is if there is a valid reason the convertToMap tries to alter the property values for a use case I am not thinking of.
I was going to look into this myself but I am having trouble running the unit tests as I am getting weird errors from Mockito.

One last comment.  It concerns me that we don't have the ability to completely eliminate place holder resolution on the server side.  As it stands right now a malicious hacker could probe the server and potentially use it to retrieve any environment property set on the config server regardless of its relevance for outside configurations.  This seems like a huge security vulnerability.

That is my analysis as well, hopefully I will have more information for you soon.

I think "huge security vulnerability" is a bit of an exaggeration (the config server should be secure in any reasonable environment, so only its authenticated clients can probe it, and only the ones that can write to its backend), but we can certainly correct this because it is not the intended behaviour. See f8fc4e19.


Adding new plugin

This pull request is for adding a new plugin for accessing gmail by using plugins inside onlyoffice as linux desktops need to have a supported email client installed in order to use the email plugin that comes pre-installed with onlyoffice

 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.


Simplify how we detect fips in chef-config

Use the same code we use in ohai.
Signed-off-by: Tim Smith<EMAIL_ADDRESS>

In order to go down this route we're going to need to do some fips testing on real boxes. Ideally this is 1:1 compatible, but faster than the old method, but who knows in FIPS-land.


fix mysql serverspec to avoid gcache.page by:

no serverspec scan for gcache related files
no serverspec scan for mysql log configuration

Can one of the admins verify this patch?

"ok to test" to accept this pull request for testing
"test this please" for a one time test run
"add to whitelist" to add the author to the whitelist

Can one of the admins verify this patch?

"ok to test" to accept this pull request for testing
"test this please" for a one time test run
"add to whitelist" to add the author to the whitelist

ok to test


Clean up of the Base Resource Pack Updater

(Apologies for all the recent PRs)
This PR doesn't really “fix” any major issue that exists, just some cleanup to make things more readable. The following changes are made:

getJarFile is more generalized for searching. Instead of checking specific paths, getJarFile now performs a recursive search of JAR files in general, in the directory it's given.
Cleaned up launcher checks in updateBaseResourcePack. Rather than basing checks on whether the versions list is empty, it now bases checks on what file paths exist, making control flow cleaner overall.

In my tests (running MiEx on Arch Linux with a specific path to a PrismLauncher install passed through -multimcRootDir), nothing breaks in version searching or resource pack updating.

Thank you for sending in the PR, but unfortunately I'm going to have to close it. Your code is more readable than mine, but logic wise it's not what it needs to be.
getJarFile: versionFolder can contain multiple jar files, but the recursive search just grabs the first jar file it exists. There is no guarantee that it's the Minecraft jar file.
'updateBaseResourcePack': A launcher could be installed but have no valid versions. Let's say that you have the Technic launcher installed but not yet any mod packs, and MiEx sees the technic launcher. In this case, it won't check the Modrinth launcher. If you have the official Minecraft launcher installed, but no versions downloaded, then it won't even check any of the alternative launchers. This was why I had it check if the versions folder is empty.
When going through your PR and checking it with the original code, I did end up noticing a bug in mine in getJarFile.
if(!(new File(versionFolder)).exists())
    versionFolder = versionFolder + "/" + versionName;

If the versionFolder doesn't exist, then it tries a subfolder of versionFolder, but since versionFolder doesn't exist the subfolder will by definition also not exist. So I need to change it to a check if the subfolder exists instead.
I am also planning on rewriting the version gathering code in updateBaseResourcePack to allow it to have versions from multiple launchers at the same time. This should also help clean up that code as well.
In my opinion the original code has the needed logic, and so I'm opting to keep the original code.


Question about COCO, SBU, CC3M datasets

Hi, @LiJunnan1992
Thanks for your great work and make it public.
I have followed the link in DATA.md to downlaod MS-COCO 2014 train images, 2014 val images, and karpathy split.
The number of images and captions I can access is 123,287 and 646,767, respectively, which is different from that reported in the paper, as 113K and 567K, respectively.
May I ask what's the reason for the difference?
Besides, If one can access the whole SBU and CC3M datasets, do you think it is a good idea to use all image-text pairs within them?
Thanks in advance

Hi, thanks for your questions.
The Karpathy split is different from the 2014 split.
Yes it is good to use the entire SBU and CC3M images if you have access.


[codegen] WIP  - Add multiple operands and function support when using fp16 compilation

Thanks for contributing to TVM!   Please refer to guideline https://docs.tvm.ai/contribute/ for useful information and tips. After the pull request is submitted, please request code reviews from Reviewers.
As discussed in https://discuss.tvm.ai/t/error-cuda-compilation-error/3816 and https://discuss.tvm.ai/t/relay-automatic-fp16-downcasting/3952/3?u=xyzhou
The cuda fp16 computing uses “cuda_fp16.h”, It does not support operations with volatile keywords. Also, max function I refered to this PR, but it is not updating for a month, I add the min function support as well.
I also edit the test_op_level1.py to enable fp16 test case. I will edit more test_op file but I would like to gather some feedback.

I'm not sure what caused the error on CI.
Instead of adding these functions, directly overriding CUDA codegen rules for half might be preferred since we also want to deal with half2 and avoid repetition

The error might be caused by incorrect arch setting. You can use
https://github.com/dmlc/tvm/blob/cffb4fba03ea582417e2630bd163bca773756af6/python/tvm/contrib/nvcc.py#L218-L238
to conditionally skip the test on ci.
Instead of adding these functions, directly overriding CUDA codegen rules for half might be preferred since we also want to deal with half2 and avoid repetition

Thanks for your information! I will try to use have_fp16 to skip the test on CI.  I will also start to investiagte how to override the codegen rules

I am similar to what you added, but there were some errors when I load resnet-18-fp16.onnx model on RTX2080.
cuda-got-error-cuda-error-launch-out-of-resources

@zxy844288792 @vinx13 please followup on this

@vinx13 Can we get this PR merged with the current changes? We can take look at half and half2 in a separate PR after we have more clarity.

@tqchen fp16 tests on ci are skipped now, any chances to get ci support for fp16 type?

We will need to look into it, because most of the gpu workers we have do not yet have fp16 support. So we have to rely on manual check for now. I will see if we can get a fp16 enabled worker setup

Thanks @zxy844288792 this is now merged


Power BI and xampp

Hi,I'm working with xampp and I want to import my database to powerBI,so I had installed power bi desktop but when I'm trying to import my database Ihad this error.
Détails : MySQL: Sorry ... we could not find a database provider with the invariant name "MySql.Data.MySqlClient".
help please!!

@arijmachfar Did you install mysql-connector-net-6.6.5.msi ?

yes I do but it doesn't work I had this error "Détails : « MySQL : Unable to connect to any of the specified MySQL hosts. »"


operator cert-manager (1.10.0-rc1)

Signed-off-by: Richard Wall<EMAIL_ADDRESS>

/merge possible

/retest

Startup failure in openebs-operator causes  cert-manager tests to fail
Wait for the operator openebs-operator pod to start up
...
Operator startup                          [FAIL]

Full error report

{  "deploy-operator-on-openshift" pod "deploy-operator-on-openshift-deploy-operator" failed: the pod ci-op-0927kssp/deploy-operator-on-openshift-deploy-operator failed after 27m44s (failed containers: test): ContainerFailed one or more containers exited

Container test exited with code 1, reason Error
---
ce.
    See 'Wait for the operator openebs-operator pod to start up' step above.
    Also check, that the operator is not listed in running containers in 'Check all containers' step.
    In some cases step 'Output debug - catalog operator' can be helpful. Also check other debug outputs.
    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

TASK [deploy_olm_operator_openshift_upstream : Report short prow summary] ******
ok: [localhost] =>
  prow_summary:
  - Catalog source is up and READY            [OK]
  - Operatorgroup is present                  [OK]
  - Subscribed                                [OK]
  - Operator is in packagemanifests           [OK]
  - Operator startup                          [FAIL]

TASK [deploy_olm_operator_openshift_upstream : Debug] **************************
ok: [localhost] =>
  operator_upgrade_testing_disabled: 'VARIABLE IS NOT DEFINED!: ''operator_upgrade_testing_disabled'' is undefined'

TASK [deploy_olm_operator_openshift_upstream : Debug] **************************
ok: [localhost] =>
  operator_upgrade_testing_on_openshift_disabled: 'true'

TASK [deploy_olm_operator_openshift_upstream : Fail when Operator deployment with OLM failed] ***
fatal: [localhost]: FAILED! => changed=false
  msg: Operator deployment with OLM failed, expand log and check logs from the bottom to the top ^

PLAY RECAP *********************************************************************
localhost                  : ok=175  changed=82   unreachable=0    failed=1    skipped=90   rescued=0    ignored=9

Reporting ...
Variable summary:
OP_NAME=cert-manager
OP_VER=1.10.0-rc1
Ansible failed, see output above
{"component":"entrypoint","error":"wrapped process failed: exit status 1","file":"k8s.io/test-infra/prow/entrypoint/run.go:79","func":"k8s.io/test-infra/prow/entrypoint.Options.Run","level":"error","msg":"Error executing test process","severity":"error","time":"2022-10-25T12:43:19Z"}
error: failed to execute wrapped command: exit status 1
---
Link to step on registry info site: https://steps.ci.openshift.org/reference/deploy-operator
Link to job on registry info site: https://steps.ci.openshift.org/job?org=redhat-openshift-ecosystem&repo=community-operators-prod&branch=main&test=deploy-operator-on-openshift&variant=4.9}

-- https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/redhat-openshift-ecosystem_community-operators-prod/1777/pull-ci-redhat-openshift-ecosystem-community-operators-prod-main-4.9-deploy-operator-on-openshift/1584872808293339136

/retest

/merge possible

@wallrj please bear in mind that the operator works only for v4.6 (which we stop testing as of today) and v4.11. You can fix  operator for failing clusters or set label to release only on v4.11+.

@wallrj did you tested cert-manager on Openshift v4.10? I have no problem with openebs-operator on v4.10. So issue seems to be with cert-manager then.

@wallrj did you tested cert-manager on Openshift v4.10? I have no problem with openebs-operator on v4.10. So issue seems to be with cert-manager then.

I must admit that I haven't tested on on OpenShift v4.10.
I pointed the finger at openebs-operator because it appears at the top of the test failure log:

-- https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/redhat-openshift-ecosystem_community-operators-prod/1777/pull-ci-redhat-openshift-ecosystem-community-operators-prod-main-4.10-deploy-operator-on-openshift/1585182368203804672
I don't know how to interpret the test failure logs.
...
Reporting ...
Variable summary:
OP_NAME=cert-manager
OP_VER=1.10.0-rc1
Ansible failed, see output above
{"component":"entrypoint","error":"wrapped process failed: exit status 1","file":"k8s.io/test-infra/prow/entrypoint/run.go:79","func":"k8s.io/test-infra/prow/entrypoint.Options.Run","level":"error","msg":"Error executing test process","severity":"error","time":"2022-10-26T09:13:52Z"}
error: failed to execute wrapped command: exit status 1
}

What do you make of that?
Can you see what the problem might be when you look at the test logs?
I  don't understand why the tests should succeed for OpenShift v4.6 and v4.11 but not for the versions in between.

@wallrj there is no openebs operator involved. It is just text hint, which should contain variable with the name of your operator. I will fix it.
On the other hand, you can try your operator on v4.10 and debug the reason it is failing. Then you have 2 options. Either fix it or just don't release on versions which are not working by applying label com.redhat.openshift.versions: "v4.11" like there.

Ah, I've found some build logs with some evidence that the cert-manager Pods are failing to start
/origin-ci-test/pr-logs/pull/redhat-openshift-ecosystem_community-operators-prod/1777/pull-ci-redhat-openshift-ecosystem-community-operators-prod-main-4.10-deploy-operator-on-openshift/1585182368203804672/artifacts/deploy-operator-on-openshift/deploy-operator/
FAILED - RETRYING: [localhost]: Wait for the operator cert-manager pod to start up (1 retries left).

TASK [deploy_olm_operator_openshift_upstream : Wait for the operator cert-manager pod to start up] ***
fatal: [localhost]: FAILED! => changed=true
  attempts: 90
  cmd: /tmp/oc-YRgbAInGLE9uPyoVKk63/bin/oc get pods -n test-operators| grep cert-manager | grep Running
  delta: '0:00:00.257421'
  end: '2022-10-26 09:13:13.026604'
  msg: non-zero return code
  rc: 1
  start: '2022-10-26 09:13:12.769183'
  stderr: No resources found in test-operators namespace.
  stderr_lines: <omitted>
  stdout: ''
  stdout_lines: <omitted>
...ignoring

TASK [deploy_olm_operator_openshift_upstream : Get deployments] ****************
changed: [localhost] => changed=true
  cmd: /tmp/oc-YRgbAInGLE9uPyoVKk63/bin/oc get deployments -n test-operators | grep cert-manager | cut -f1 -d' '| xargs -I{} /tmp/oc-YRgbAInGLE9uPyoVKk63/bin/oc describe deployment {} -n test-operators
  delta: '0:00:01.837420'
  end: '2022-10-26 09:13:20.173051'
  msg: ''
  rc: 0
  start: '2022-10-26 09:13:18.335631'
  stderr: ''
  stderr_lines: <omitted>
  stdout: |-
    Name:                   cert-manager
    Namespace:              test-operators
...
                        support: The cert-manager maintainers
      Service Account:  cert-manager
      Containers:
       cert-manager-controller:
        Image:      quay.io/jetstack/cert-manager-controller:v1.10.0
        Port:       9402/TCP
        Host Port:  0/TCP
        Args:
          --v=2
          --cluster-resource-namespace=$(POD_NAMESPACE)
          --leader-election-namespace=kube-system
        Environment:
          POD_NAMESPACE:             (v1:metadata.namespace)
          OPERATOR_CONDITION_NAME:  cert-manager.v1.10.0-rc1
        Mounts:                     <none>
      Volumes:                      <none>
    Conditions:
      Type             Status  Reason
      ----             ------  ------
      Available        False   MinimumReplicasUnavailable
      ReplicaFailure   True    FailedCreate
      Progressing      False   ProgressDeadlineExceeded
    OldReplicaSets:    <none>
    NewReplicaSet:     cert-manager-84bbb97445 (0/1 replicas created)
    Events:
      Type    Reason             Age   From                   Message
      ----    ------             ----  ----                   -------
      Normal  ScalingReplicaSet  15m   deployment-controller  Scaled up replica set cert-manager-84bbb97445 to 1

I can't find any logs among the prow artifacts that show why the Pods might be failing to start.
I'll try and test this manually on OpenShift v4.10.

Literally it is failing to create the first replica in the namespace. So no logs from non existing pod. ReplicaFailure True FailedCreate

Sure. But I was looking for a log of all the Kubernetes Events.
Or something else to say why it failed to create the Pod.

I created a crc cluster and installed cert-manager using the static manifests and found that the deployments were failing due to a security context constraint.
I guess this is was caused by the following PR which changed the security contexts of the cert-manager pods

https://github.com/cert-manager/cert-manager/pull/5259

[crc@crc-4-9 ~]$ oc apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.10.0/cert-manager.yaml

[crc@crc-4-9 ~]$ oc -n cert-manager get deploy cert-manager -o yaml
apiVersion: apps/v1
kind: Deployment
...
spec:
...
  template:
    metadata:
      annotations:
        prometheus.io/path: /metrics
        prometheus.io/port: "9402"
        prometheus.io/scrape: "true"
      creationTimestamp: null
      labels:
        app: cert-manager
        app.kubernetes.io/component: controller
        app.kubernetes.io/instance: cert-manager
        app.kubernetes.io/name: cert-manager
        app.kubernetes.io/version: v1.10.0
...
status:
  conditions:
...
  - lastTransitionTime: "2022-11-01T09:41:41Z"
    lastUpdateTime: "2022-11-01T09:41:41Z"
    message: 'pods "cert-manager-84bc577876-qzbnf" is forbidden: unable to validate
      against any security context constraint: [pod.metadata.annotations.seccomp.security.alpha.kubernetes.io/pod:
      Forbidden: seccomp may not be set pod.metadata.annotations.container.seccomp.security.alpha.kubernetes.io/cert-manager-controller:
      Forbidden: seccomp may not be set provider "anyuid": Forbidden: not usable by
      user or serviceaccount provider "nonroot": Forbidden: not usable by user or
      serviceaccount provider "hostmount-anyuid": Forbidden: not usable by user or
      serviceaccount provider "machine-api-termination-handler": Forbidden: not usable
      by user or serviceaccount provider "hostnetwork": Forbidden: not usable by user
      or serviceaccount provider "hostaccess": Forbidden: not usable by user or serviceaccount
      provider "privileged": Forbidden: not usable by user or serviceaccount]'
    reason: FailedCreate
    status: "True"
    type: ReplicaFailure
...

/merge possible

/merge possible

/merge possible


Set up tab navigation for main provider-related pages

Related to #527.

The provider page currently contains several distinct chunks of stream-related information that would benefit from being more clearly distinguished from each other, so the user can focus on the chunk of information most relevant to their current task.
The goal is to create a tabbed navigation to enable the user to see these distinct chunks of stream-related information and easily move between them.

[ ] The tabs container should be horizontally-centered on the page, below the new container with the stream file and record counts.
[ ] We can experiment with styling, though I'd suggest trying .nav-pills to start.
[ ] The order and label of the tabs is: Files, Normalized data, Processing status, and Profile.
[ ] "Files" is the default tab/page when the user selects links elsewhere on the site for a specific Provider's page.
[ ] The "Processing status" tab should not be displayed to a user who is an org member or org admin and is looking at the provider page of an organization not their own. (A user acting as a superuser should see all tabs regardless of their organization affiliation.) Example: I'm a Stanford user looking at Duke's provider page:

Examples
I'm not sure if we need a separate ticket for this, but for reference these are the chunks of information that go with each tabbed page:
Files
The current stream files table, but without the totals row:

Normalized data
The normalized data section of the current provider page (we might reformat the table differently, but that would be a separate issue):

Processing status
Just the processing status info. There is an existing ticket about displaying this in a new way.

Profile
This is the content of the page (/streams/[name]/profile) you currently get to by selecting the magnifying glass icon in the files totals row (first row of the table):

Would like "Files" tab to read "Uploaded files" to distinguish it from Normalized data which is also a list of files.
Would like "Profile" tab to be "MARC analysis" (or "MARC profile") to distinguish it from Profile as used elsewhere in the site (where it refers to Org profile).

@marlo-longley We discussed this in the design walkthrough for Harvard meeting and agreed with @cbaksik's suggestions. I won't try to update the mockups in the ticket but the changes would be:

Files tab label becomes Uploaded files
Profile tab label becomes MARC analysis


User api keys don't work in 3.0

Link to reproduction
No response
Payload Version
3.0.0-beta.82
Node Version
v20.12.2
Next.js Version
15.0.0-canary.104
Describe the Bug

fetch("http://localhost:3000/api/users", {
  headers: {
    Authorization: `users API-key 995f9aff-042d-4f4b-9890-088d2ca3517a`,
  },
});

result
{"errors":[{"message":"You are not allowed to perform this action."}]}

looks like it was working in may 1st by @fardeem. https://github.com/payloadcms/payload/issues/6130
Now I cant make it work
my Users collection
import type { CollectionConfig } from 'payload'

import { authenticated } from '../../access/authenticated'

const Users: CollectionConfig = {
  slug: 'users',
  access: {
    admin: authenticated,
    create: authenticated,
    delete: authenticated,
    read: authenticated,
    update: authenticated,
  },
  admin: {
    defaultColumns: ['name', 'email'],
    useAsTitle: 'name',
  },
  // auth: true,
  auth: {
    useAPIKey: true,
    // disableLocalStrategy: true,
  },
  fields: [
    {
      name: 'name',
      type: 'text',
    },
  ],
  timestamps: true,
}

export default Users

Reproduction Steps
npx create-payload-app@latest
pnpm dev
Adapters and Plugins
No response

I am also getting this issue. I am unable to add/update user name.
I am also not able to update anything on the collection. I have deployed it on vercel. Only getting issue there. Things work fine locally.

The header appears to be case-sensitive at the moment, can you try API-Key with a capital K and see if that changes behavior?

@denolfe This does indeed solve the problem, thank you 🙌

curl http://localhost:3000/api/users \
  -H 'Authorization': users API-Key 995f9aff-042d-4f4b-9890-088d2ca3517a

Hey @matart15 you likely have another issue if you are indeed formatting your API-Key header correctly.
At this point, this is not an issue with Payload and is only an issue with your implementation. I will convert this to a discussion and we're happy to continue helping!


Open file limit problem

Environment

VerneMQ Version: 1.3.0
OS: Ubuntu 16.04.3 LTS Xenial
Erlang/OTP version (if building from source): 20.2.2

Problem
According to source, I configured system open file limits.
To be more precise;
/etc/security/limits.conf:
vernemq soft nofile 4096
vernemq hard nofile 65536
root soft nofile 4096
root hard nofile 65536
* soft nofile 4096
* hard nofile 65536

/etc/default/vernemq:
ulimit -n 65536
/etc/pam.d/common-session
session	[default=1]			pam_permit.so
session	requisite			pam_deny.so
session	required			pam_permit.so
session optional			pam_umask.so
session	required	pam_unix.so
session	optional	pam_systemd.so
session required	pam_limits.so

/etc/pam.d/common-session-noninteractive
session	[default=1]			pam_permit.so
session	requisite			pam_deny.so
session	required			pam_permit.so
session optional			pam_umask.so
session	required	pam_unix.so
session required	pam_limits.so

cat /etc/ssh/sshd_config | grep UseLogin
UseLogin yes
ulimit -a | grep "open files"
open files                      (-n) 4096
After configuration, When I started the server with sudo service vernemq start, and check status with sudo service vernemq status, I got these:
● vernemq.service - VerneMQ is a MQTT message broker
   Loaded: loaded (/lib/systemd/system/vernemq.service; disabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-02-23 13:11:54 +03; 46s ago
  Process: 1526 ExecStart=/usr/sbin/vernemq start (code=exited, status=0/SUCCESS)
 Main PID: 1610 (beam.smp)
    Tasks: 177
   Memory: 82.4M
      CPU: 5.289s
   CGroup: /system.slice/vernemq.service
           ├─1600 /usr/lib/vernemq/erts-<IP_ADDRESS>/bin/epmd -daemon
           ├─1608 /usr/lib/vernemq/erts-<IP_ADDRESS>/bin/run_erl -daemon /tmp/vernemq// /var/log/vernemq exec /usr/sbin/vernemq console
           ├─1610 /usr/lib/vernemq/erts-<IP_ADDRESS>/bin/beam.smp -P 256000 -A 64 -K true -W w -- -root /usr/lib/vernemq -progname vernemq -- -h
           ├─1866 erl_child_setup 1024
           ├─1886 sh -s disksup
           ├─1888 /usr/lib/vernemq/lib/os_mon-2.4.2/priv/bin/memsup
           └─1889 /usr/lib/vernemq/lib/os_mon-2.4.2/priv/bin/cpu_sup

Feb 23 13:11:49 mqtt systemd[1]: Starting VerneMQ is a MQTT message broker...
Feb 23 13:11:49 mqtt vernemq[1526]: /usr/sbin/vernemq: 1: ulimit: error setting limit (Operation not permitted)
Feb 23 13:11:50 mqtt vernemq[1526]: !!!!
Feb 23 13:11:50 mqtt vernemq[1526]: !!!! WARNING: ulimit -n is 1024; 65536 is the recommended minimum.
Feb 23 13:11:50 mqtt vernemq[1526]: !!!!
Feb 23 13:11:54 mqtt systemd[1]: vernemq.service: Supervising process 1610 which is not our child. We'll most likely not notice when it exi
Feb 23 13:11:54 mqtt systemd[1]: Started VerneMQ is a MQTT message broker.

cat /proc/1610/limits | grep "open files"
Max open files            1024                 4096                 files
When I try to connect to broker with source, after changing allow_anonymous = on in /etc/vernemq/vernemq.conf, program yields Unable to connect (14). I came up with this issue and decide to investigate 'open file limit' problem.
What can be the problem about open file limits of vernemq process?

@eckucukoglu thanks for opening the issue!
It's possible that Xenials systemd is not reading the /etc/default/vernemq correctly or something similar.
It could even be that our doc is false, at least related to 'pre-systemd' distros. I'll test that later.
What you can do is set the appropriate (= higher) soft and hard limits in limits.conf directly for the vernemq user.

@eckucukoglu Maybe comparing to this helps?
https://github.com/erlio/vernemq/wiki/Running-VerneMQ-as-a-systemd-service
Note the LimitNOFILE setting in the vernemq.service

Thank you @ioolkos,
Actually, if I start the vernemq with sudo vernemq start (not with sudo service vernemq start), I can get the limits that is configured for vernemq user in file 'limits.conf'.
And my other issue is actually related with listener.tcp configuration. To reach the broker from external instances, I managed it to <IP_ADDRESS>:1883.
Thank you again.

@eckucukoglu Have you found a solution for this or is it still an issue for you?

As I stated in previous message;

if I start the vernemq with sudo vernemq start (not with sudo service vernemq start), I can get the limits that is configured for vernemq user in file 'limits.conf'.


Update apt cache as for prerequisites as well

The task kubernetes/preinstall : Install packages requirements
shall not fail
Signed-off-by: Bogdan Dobrelya<EMAIL_ADDRESS>

@mattymo

WIP


SeqPrep installation problem

Hi
I am trying to install SeqPrep but after make command this error appears and I am not figuring it out
Do you have any suggestions to overcome it? (I am using Linux mint maya 64bit)
cc  SeqPrep.o utils.o stdaln.o -lz -lm -o SeqPrep
SeqPrep.o: In function main': /home/pedro/Soft/SeqPrep-master/SeqPrep.c:350: undefined reference to update_spinner'
collect2: ld returned 1 exit status
make: *** [SeqPrep] Error 1
kind regards,
Pedro Castro

Interesting. Which version of a c compiler are you using? If you have a specific version of gcc you use, you can compile with make CC=gcc-4.X for example.

On Mar 30, 2015, at 5:33 PM, pcastro88<EMAIL_ADDRESS>wrote:
Hi
I am trying to install SeqPrep but after make command this error appears and I am not figuring it out
Do you have any suggestions to overcome it? (I am using Linux mint maya 64bit)
cc SeqPrep.o utils.o stdaln.o -lz -lm -o SeqPrep
SeqPrep.o: In function main':
/home/pedro/Soft/SeqPrep-master/SeqPrep.c:350: undefined reference toupdate_spinner'
collect2: ld returned 1 exit status
make: *** [SeqPrep] Error 1
kind regards,
Pedro Castro
—
Reply to this email directly or view it on GitHub https://github.com/jstjohn/SeqPrep/issues/24.

thanks for you reply
im using gcc 4:4.6.3
I tried you suggestion but didn't make it (command not found)

Hi John,
I'm the having same issue.
My cluster details:
gcc version 4.7.0 (GCC)
Thread model: posix
This https://github.com/jstjohn/SeqPrep/issues/22 mentions to remove extern
This however, worked, and I'm having binary of the tool.
Could you please confirm if this would have any downstream impact while joining paired end reads?
Thanks.
--Sariya

Yea it will probably be a fairly easy fix if someone gets time. It will likely be to just remove extern and inline modifiers from function definitions in both .h and .c files. Newer compilers seem to have problems with this. I doubt it will be much of a change in performance, and it will be closer to standard C syntax that is likely more portable.

On May 8, 2015, at 6:40 AM, Sanjeev<EMAIL_ADDRESS>wrote:
Hi John,
I'm the having same issue.
My cluster details:
gcc version 4.7.0 (GCC)
Thread model: posix
This #22 https://github.com/jstjohn/SeqPrep/issues/22 mentions to remove extern
This however, worked, and I'm having binary of the tool.
Could you please confirm if this would have any downstream impact while joining paired end reads?
Thanks.
--Sariya
—
Reply to this email directly or view it on GitHub https://github.com/jstjohn/SeqPrep/issues/24#issuecomment-100236903.

@jstjohn Thanks for confirming.
I'm using this tool with QIIME joining paired ends.
Merci,
--Sariya

#33 Specifying the C standard in the makefile resolves this build issue.


taxonomy term index links (and files) are not generated correctly for next/previous page

I have a site with tags and categories, which have a lot of posts assigned to them.
I don't see any info in sculpin documentation regarding configuration of taxonomy generator url's == i couldn't break it, and i think it's a bug.
setup:

you use sculpin skeleton theme https://github.com/sculpin/sculpin-blog-skeleton
you have a tag "foobar"
you have >10 posts assigned to this tag
tag template is located in _source/blog/tags/tag.html
we don't touch pagination.max_per_page (defaults to 10)

steps to reproduce:

generate this site
open in browser: localhost:8000/tags/foobar
click on next page link (generated by {{ page.pagination.previous_page.url }})

error:

you'll be redirected to http://localhost:8000/blog/tags/2 (browser downloads file named "2" which contains correct html)
file for this page is generated as /output_dev/blog/tags/2 <- "2" is a name of the file.

how should it work:

you should be redirected to http://localhost:8000/blog/tags/foobar/2_/_
file should be generated in /output_dev/tags/foobar/2/index.html

additional note
keep in mind, that this can't be easily fixed by changing previous/next page url by adding tag name by hand, because {{ page.pagination.previous_page.url }} actually prints /tag/2 so you'd have to replace "/tag" by "tag/{{ page.tag }}" and of course it wouldn't work since there is no file in correct path.
after digging through sculpin sources i've found that i actually can construct correct urls like so:
        {% set real_next_page_number = page.pagination.page + 1 %}
        {% set real_previous_page_number = page.pagination.page - 1 %}
        {% set real_previous_page = page.permalink ~ real_previous_page_number %}
        {% set real_next_page = page.permalink ~ real_next_page_number %}

because page.permalink == /tags/foobar/ and page.pagination.page == 1 (while on first page - only one working).
but this doesn't change anything since these urls won't work anyway.
Looking at PaginationGenerator.php i don't understand, why there is a separate logic for datasources and other stuff, since for posts logic works fine and (probably) could work for taxonomies.

#272 is not fixing this.

As a workaround, I'm using the following oneliner to rewrite files such as /<path>/<taxonomy>/page/2.html to /<path>/<taxonomy>/page/2/index.html:
for file in output_prod/<path>/<taxonomy>/page/*html; do name="$(basename "$file" .html)"; mkdir -p output_prod/<path>/<taxonomy>/page/"$name"; mv "$file" "output_prod/<path>/<taxonomy>/page/"$name"/index.html"; done

I'm also using the trim filter to clean up the URL: page.pagination.previous_page.url|trim('.html') resulting in URLs such as /<path>/<taxonomy>/page/2

I think this is fixed in Sculpin 3.0RC1, but leaving issue open because I'm not 100% sure yet.


Shell task not working in workspace file

Issue Type: Bug
i set a task for luaunch gdb server, in 1.65 version ,it works well,but recent days, i download 1.66.2 update,after that,it never works,even i set the "preLaunchTask" to a unexist task name, it just start debug without execute the task first.
my task define is:
{
"type": "process",
"label": "LuaunchDebugServer",
"command": "DebugServerConsole.exe",
"args": [
"-ddc"
],
"options": {
"cwd": "D:/C-Sky/CSkyDebugServer/bin"
},
"isBackground": true,
"presentation": {
"echo": false,
"reveal": "never",
"panel": "dedicated"
},
"problemMatcher": []
}
and launch configuration is:
{
"name": "C-SKY v2",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/main.elf",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}/build",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:/C-Sky/CDS/MinGW/csky-elfabiv2-tools/bin/csky-elfabiv2-gdb.exe",
"miDebuggerServerAddress": "<IP_ADDRESS>:1025",
"targetArchitecture": "arm",
"preLaunchTask": "LuaunchDebugServer",
"hardwareBreakpoints": {
"limit": 9,
"require": true
},
"launchCompleteCommand": "None",
}
VS Code version: Code 1.66.2 (dfd34e8260c270da74b5c2d86d61aee4b6d56977, 2022-04-11T07:46:01.075Z)
OS version: Windows_NT x64 6.1.7601
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz (4 x 3192)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
7.91GB (3.72GB free)

Screen Reader
no

VM
0%

Extensions (31)

Extension
Author (truncated)
Version

better-comments
aar
3.0.0

path-intellisense
chr
2.8.0

doxdocgen
csc
1.4.0

arm
dan
1.7.4

yash
dao
0.2.9

vscode-markdownlint
Dav
0.47.0

vscode-eslint
dba
2.2.2

githistory
don
0.6.19

graphviz-preview
EFa
1.5.0

CppSnippets
har
0.0.15

plantuml
jeb
2.17.2

vscode-regexp-preivew
Lul
1.0.0

markdown-formatter
mer
0.9.7

git-graph
mhu
1.30.0

vscode-language-pack-zh-hans
MS-
1.66.3

python
ms-
2022.4.1

vscode-pylance
ms-
2022.4.2

cmake-tools
ms-
1.10.5

cpptools
ms-
1.10.0

hexeditor
ms-
1.9.6

devicetree
plo
0.1.1

vscode-st
Ser
1.11.23

git-merger
sha
0.4.1

markdown-preview-enhanced
shd
0.6.2

ninja
sur
0.0.1

gnu-mapfiles
tro
1.1.0

cmake
twx
0.0.17

markdown-pdf
yza
1.4.4

markdown-all-in-one
yzh
3.4.3

material-theme
zhu
3.13.24

linkerscript
Zix
1.0.2

I cannot reproduce your problem: when setting preLaunchTask to a non-existing task name, I see this error dialog:

i try more tests. i find if you use vscode open a folder, and write your "task" and "launch" configuration in ".vscode" sub-folder, it will work correct. but if you use "*.code-workspace" file to configure a workspace with same setting, the problem will happen, i test this problem on two different computers, they have different OS (win7 and win11), but the problem is same.
then i disable all the extensions, keep C/C++ extension active , the problem still exists

/duplicate #93149

She mentioned "shell" and "process" tasks work in code-workspace files, and my task type is "shell" ,so i didn`t think my problem is the same as https://github.com/microsoft/vscode/issues/93149

I can repro, but only when both the task and the launch config are in the .code-workspace file.

Actually, I can't repro this at all.  In your screenshot you have a note that "this setting is wrong". Can you confirm whether the prelaunch task runs when you update that to be "echo"?

I try it again, set prelaunchTask to "echo" cant run task "echo".  And set it to a non-exist task doesnt have any error message when you start debug, both of them are different than using .vscode sub-folder
I commit my new test code, this the link: https://github.com/ZZH-Finzlize/vscode-test
This testcase have two tasks, the "build" task is correct, another one named "error_cmd" is incorrect. Normally, if you set preLaunchTask to "build", you can see it execute "gcc -o main.exe main.c" command in terminal when you start debug, and there will be a new file named main.exe, but i didn`t see the command or the new file. And another test is set preLaunchTask to "error_cmd", this task using a incorrect command, so if you start debug, you shuold see a error message in terminal, but in my test, the terminal has no respond, both of these test result means it not execute the preLaunchTask before debug session actually start.
If you put those setting to .vscode sub-folder, everything is fine.
My vscode information

I have found that I can repro if tasks have already been fetched once during the session.
@ZZH-Finzlize as a work around, you can reload your window after setting preLaunchTask and then debug.

Im afraid this doesn't work, because I found this problem in my project workspace firstly, Im working on it every day.I will open the vscode window at least one time every day, but every time preLaunchTask will not work.
Actually, before the version 1.66.2, it works very well, and i didnt change anything in my .code-workspace file, until recent days i found my workspace debug action doesn't same than before, and i found postDebugTaskworks well. This is strange, shouldn'tpostDebugTaskandpreLaunchTask` follow the same logic?

Anyway, thanks for your help, and i`m expecting the next update.

with this in my workspace configuration, the preLaunchTask is working for me

https://user-images.githubusercontent.com/29464607/168696337-374d9077-809a-4c52-8cf6-7b1c87ab3962.mov

@meganrogge This is beacause of your debug configuration type is not cppdbg
https://user-images.githubusercontent.com/33342565/168713586-038e7fbc-2ff1-4a0b-93bc-5aca23bebecf.mp4

@meganrogge This is beacause of your debug configuration type is not cppdbg
https://user-images.githubusercontent.com/33342565/168714189-90d0b100-677f-4cee-b801-663e9be9c919.mov

in the DebugService createSession call, the config is passed in with the correct preLaunchTask.

DebugConfigurationManager resolves the config via resolveConfigurationByProviders
the cppdbg provider here strips the preLaunchTask from config here such that it's missing from the result object that gets returned

Thus, I believe this is an issue with the provider associated with the C++ extension likely somewhere around this code
https://github.com/microsoft/vscode-cpptools/blob/04eeb03292f94c80f56ccb7521f363e09b5a6016/Extension/src/Debugger/configurationProvider.ts#L178-L187

You should create an issue in that repo
fyi @sean-mcmanus

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines.
Happy Coding!

Just realized you said this does work if you define the task in the vscode sub folder instead of workspace config file, so will look into that tomorrow - although that surprises me based upon what I'm seeing.

Thanks for your help, I'm already commit an issue to c-cpp-extension, and i'm also think this should be same in sub-folder and workspace. It's weird.

When launching from the vscode folder, it works and the difference is that here the provider returns the result with the preLaunchTask it started with

So I'm back to thinking this is definitely an issue with the c++ extension's provider @sean-mcmanus

@meganrogge You're right, i rewrite those code in my local file, and the problem is solved.

This is my debug log

Your answer is really helpful

Is there an issue tracking this at https://github.com/microsoft/vscode-cpptools/issues?

https://github.com/microsoft/vscode-cpptools/issues/9319


Evaluate viability of reducing input buffer requirements

Existing input buffers
The input parameter to every Glaze function that parses input from a range, as opposed to iterators, requires the input buffer to be a contiguous range (example). These functions dispatch other glaze functions that parse input from iterators, which therefore expect these iterators to lie within a single contiguous buffer, too.
The majority of operations on the input iterator would be satisfied by a multi-pass iterator, and sometimes even forward iterators.
Nevertheless, for iterators meeting only these concepts, various parsing operations would be much slower. For example, the use of std::distance(), including to construct glz::parse_errors' location index.
Limitations
With this premise, there seem to be two limitations:

The entire input buffer must be available in memory before parsing
i. this is a regular limitation of DOM-based parsers instead of streaming parsers, like SAX parsers.
The entire input must be in a contiguous buffer for parsing.

Now, from the outset, it may seem like a niche case to not have the entire input in a contiguous buffer.  However, it's extraordinarily common in networking to receive data in smaller chunks. In certain cases, clients aren't aware of the total response size, and read data one chunk at a time (streaming). Even when the response body is of a known size, reading the body from IO buffers is invariably accomplished through a series of smaller reads using buffer(s) of known size. The results of these reads can be either handled as they're received to reuse a single buffer, or buffered until all the smaller reads are done. The latter case is commonly buffered into a (non-contiguous buffer, since reallocating the entire buffer and copying the data is slow. asio's coins buffers of this style "buffer sequences", but this isn't exclusive to asio.
The technique of reading huge/unsized blobs one buffer/page at a time is a technique that extends to any IO operation, including reading files. With files, there are more utilities for the operating system to abstract the paging behind system calls, but that disappears with asynchronous IO.
Consideration
So, this ticket is simply to evaluate the viability of reducing Glaze's requirements on input buffers. Maybe certain pieces of the library may need to be changed, possibly changing glz::parse_error::location to an iterator, but maybe not.
Given C++'s concepts around iterators and ranges, should the input buffer requirements be weakened, both of the above limitations can be lifted, as smart input iterators can be used to satisfy the input requirements of Glaze while actually performing complex retrieval under the hood. An example of what I'm trying to describe without any actual networking:
#include <forward_list>
#include <iostream>
#include <ranges>
#include <string>

using Linked_buffer = std::forward_list<std::string>;

template <std::ranges::input_range Input_buffer>
void parse_like_glaze(Input_buffer&& buffer) {
    // universal reference to buffer necessary because:
    // - r-value input ranges are acceptable
    // - input ranges mutate lazily -> no const& buffer
    for (const auto parse_char : buffer) {
        std::cout << "parsing JSON char '" << parse_char << "'\n";
    }
    std::cout << std::endl;
}

int main() {
    // 1. current situation, where all data is stored contiguously
    const std::string_view contiguous_data{
        R"({
            "name": "bob",
            "values": [123,456, 789]
        })"};

    // 2. limitation 1, where all data is stored, but in a linked buffer
    const Linked_buffer buffered_data{{R"( { "name": "bob )"},
                                      {R"( ", "values": [123,4 )"},
                                      {R"( "56, 789 ] )"},
                                      {R"( } )"}};

    // 3. limitation 2, where data is handled 1 chunk at a time, not stored
    Linked_buffer pretend_this_is_network_data{{R"( { "name": "bob )"},
                                               {R"( ", "values": [123,4 )"},
                                               {R"( "56, 789 ] )"},
                                               {R"( } )"}};

    auto buffer_chunk = [current_buffer = std::string{},
                         next_buffer =
                             std::string{}](auto&& chunk_from_wire) mutable {
        // await
        std::swap(current_buffer, next_buffer);
        next_buffer = std::move(chunk_from_wire);  // spawn
        return current_buffer;
    };

    auto chunked_data = pretend_this_is_network_data |
                        std::views::transform(buffer_chunk) | std::views::join;

    // ranges satisfy Glaze's input requirements equaly
    // smart input iterators easily formed with C++20 ranges
    parse_like_glaze(contiguous_data);
    parse_like_glaze(std::views::join(buffered_data));
    parse_like_glaze(chunked_data);
}

Case 3, where the input isn't stored in memory in its entirety, would cause code like this to fail. Swapping buffers invalidates any iterators, and the start iterator in that snippet may be in a separate buffer from the closing quote.
This extends to any code that doesn't handle characters as they're parsed since any previous character could be removed at any time. This includes parsing to string views.

And, an example of current code that requires contiguous input buffers: https://github.com/stephenberry/glaze/blob/main/include/glaze/json/read.hpp#L374
In fact, parsing to a string view from above is another example.

@justend29 do you know whether it is possible to write a concept to detect if iterator is pointing to contiguous buffer or non contiguous buffer?

@jbbjarnason there are iterator traits, where there's a contiguous tag that can  be detected from the iterator_categery trait.

In terms of implementation, I think the following would solve this at compile time:
struct glz::meta<std::string_view> {
  static constexpr auto requires_contiguous_buffer{ true };
  // ...
};

And comparing the requires_contiguous_buffer with the contiguous tag.
But I think this tag is unnecessary, but it is explicit.

To restrict parsing string_views, the concept  std::contiguous_iterator could just be employed on the input iterators of the from_json<string_view_t> specialization. String_views don't go through the meta system to generate from_json. There is instead a specialization of from_json directly for string views.
Nevertheless, there is commonly reused code like this that returns a string_view peering into the input buffer. Simply omitting it when the input isn't contiguous would essentially render no parsing ability.
As you say, parsing directly to a string_view would have to be omitted without contiguous input, but for functions like the above, maybe there's a way to abstract the result away from a contiguous view. This could be reused throughout. The result could then be dependent on the iterator categories provided to the function: a string_view when contiguous, an allocated buffer otherwise, and maybe a different type-specific view when possible.
Realistically, though, allocating may be slower than just copying the non-contiguous buffer to a contiguous one before parsing. In such a case, would it be reasonable for Glaze to offer a specific buffer type targeted only for a common case, like #2?

Thanks for this helpful discussion on streaming buffers. It's definitely something that should be added, but has a number of complexities, which you have noted.
I will note that in a lot of contexts, reading the entire message into a contiguous buffer and then parsing is faster than the streaming solution.  But, as you point out, there are many networking situations where only a chunk is received at a time. This chunk is often contiguous, but only part of the full message. I think if we focus on a performant solution, it should be reading these chunks of contiguous data, like you've suggested above.
I think using concepts like std::contiguous_iterator is a good way to go. But, like you pointed out, it's probably best to just use contiguous chunks of data and not support streaming directly. The problem is that we don't want to have to check for chunk boundaries everywhere. We don't want to have to be checking if we need to switch buffers within an algorithm to parse a number.
Can we stop our parsing at reasonable delimiters, like commas? If we require buffer chunks to be delimited at commas (,), then we can know that we are contiguous within parsing algorithms like numbers. This will significantly simplify the code and improve performance.
I think we will want a set of supported chunk terminating characters, e.g. , " ] and }. We can quickly verify that our buffer chunks end with one of these characters and error if otherwise.
For massive strings I think we could just require that specific chunk to support the entire string. So, this would only be a limitation if a single string in the JSON were gigabytes in size, but that is not a common use case. It's much more common for gigabyte JSON files to have many smaller values.
With this approach we can provide some chunk separation code for the general streaming case, where we will have to do some copying to get the chunks to terminate at the supported delimiters (, " ] and }), but for users who are writing their own network code and using libraries like asio, they can write logic that will use these terminating characters and get very high performance.
Those are my initial thoughts. I'll continue to mull over this and consider how to best start tackling streaming.

Adding my comments from a pull request to this discussion:
I often look at assembly with compiler explorer and benchmark using quick bench. Typically using std::memcpy is the fastest approach (especially with known sizes), because you tell the compiler to just consider the raw bytes and have to handle the distances precisely and don't require a check on each iteration. std::memcmp, std::memset, and std::memmove are also very hard to beat. In this case, I moved to std::memmove because we have no need to increment the buffer iterator, which would be necessary in the old for loop. This lets the compiler drop some instructions.
For low-level string handling I've found these significantly faster than standard algorithms, because standard algorithms work on characters at a time and we can often use chunks of memory. For larger types, like integers or floats, or for structs, the standard algorithms are fantastic and hard to beat.
As this applies to non-contiguous buffers, I don't see a problem, because I intend to require local contiguous chunks to work on. It is terrible for performance if you have to check each byte individually for things like key parsing, number parsing, etc.
I had posted on the streaming issue that I intend to use JSON separators to delineate contiguous chunks. We can just stream into a small buffer until we hit one of these separators (e.g. ,, :...). Our only restriction is then to limit the max length of strings that we support. But, most JSON documents don't contain a single string that is gigabytes in size. Typically the combined document is gigabytes with various objects and values.
So, to sum things up, we want to dump the stream into a small local buffer and parse that, and we just parse the next chunk when we reach a separator that would delineate values like numbers, strings, etc.

I believe the null termination requirements of glaze would require every chunk to be null-terminated.

I think we want to parse from a contiguous buffer anyway, so I don't think the null-termination requirement will be an issue. But, good to note.

Seems relevant to this discussion: C++23: The rise of new streams


Allow "no sorted" Icons & add class for sorted columns & allows to cancel unfinished request

There are three useful changes, hope you can join them to the next version or at least use as an idea:

Allow "no sorted" Icons
Allows to optional add a "no sorted" icon, im not sure what icon library u use but in my case i add a double (up and down) chevron icon when the column is not sorted so its more clear for the user that they can sort by clicking the title

Add class for sorted columns
Useful to add some kind of class for sorted columns so you can add styles for "sorted" columns and make more clear that the content is ordered by this columns

Cancel unfinished request when new request was sended (My favorite, please add this)
If the user quickly order a row many times, and have an unfinished request sometimes multiple "loadData" request was sended, this use much memory and in some cases the oldest request finish last so the current data is innacurate, this is more problematic with custom filters like a search input where the user type and the data was live refreshed. With this changes if the loadData funcion has a previous unfinished request it cancel it so you only have one request at a time.

PD: Sorry for the "testing" commit

@alfonsobries Thanks for the PR. It's really appreciated.

The "no sorted" icon is actually been submitted in this PR #192 as defaultSortIcon and has been merged to the develop branch as sortableIcon.

Class for sorted columns is not need as you can use sortable class to style it the way you added sorted class, so it's redundant.

The cancel request is ok, but please make a separate PR based on the develop branch and re-submit again.


Multi-bindings with inheritance report conflicting bindings error if injected in sub-component via List<? extends T> type.

The code to triger this is as follows:
import com.yandex.yatagan.*
import javax.inject.*

@Module object RootModule {
    @[Provides IntoList] fun two(): Number = 2.0
}

@Module object SubModule {
    @[Provides IntoList] fun four(): Number = 4L
}

@Component(modules = [RootModule::class])
interface RootComponent {
    fun createSub(): SubComponent
    fun numbers(): List<Number>
}

@Component(isRoot = false, modules = [SubModule::class])
interface SubComponent {
    val consumer: Consumer
}

class Consumer @Inject constructor(val numbers: List<Number>)

The code is valid, however Conflicting bindings error is issued.

However if the Consumer is written like this class Consumer @Inject constructor(val numbers: List<@JvmSuppressWildcards Number>) everything is okay.


[easy] Dependency cleanup

Do not merge, the large # of commits is not in its final form.
This will incidentally help with an upcoming workaround in #3567

Gah, misclicked => closing, as I really wanted to open this as draft only


[Feature] Hope the gf CLI tool can support go install

目前安装 gf CLI 工具只能通过请求 github release 的方式安装，如果对于外网不友好的网络，这根本很难下载，没法使用 go proxy 的好处，我尝试使用 go install 的方式安装，但因为 go.mod 有替换依赖无法进行安装
#╰─○ go install github.com/gogf/gf/cmd/gf/v2@latest
go: github.com/gogf/gf/cmd/gf/v2@latest (in github.com/gogf/gf/cmd/gf/v2@v2.0.0-20230818015725-cf299273c499):
	The go.mod file for the module providing named packages contains one or
	more replace directives. It must not contain directives that would cause
	it to be interpreted differently than if it were the main module.

如果可以直接 go install 进行安装命令行工具，那对于国内用户可真太有好了。。。
1. What version of Go and system type/arch are you using?

2. What version of GoFrame are you using?

3. Can this issue be re-produced with the latest release?
4. What did you do?

5. What did you expect to see?
6. What did you see instead?

more detailed #2888

请不要提交重复的 issue


Make conditional exceptions more discoverable

Refs https://github.com/microsoft/vscode/issues/111227
This is a super cool feature and is actually the behavior I want 90% of the time when I tick either of the break-on-exception checkboxes, but it's not very discoverable right now. I think adding a ✏ or equivalent icon in the right of the tree view item would make it easier to find.

@isidorn this seems to be duplicate of #113805 ?

@isidorn this seems to be duplicate of #113805 ?

@connor4312 my mistake, I created a duplicate of this issue this morninig.
I will close this one since the other one has more comments https://github.com/microsoft/vscode/issues/113805

@connor4312 my mistake, I created a duplicate of this issue this morninig.
I will close this one since the other one has more comments https://github.com/microsoft/vscode/issues/113805


[CSL-26] Ensure presence of our shares in our block

@gromak
See CSL-15. It's already done for commitments/openings.

@gromak
After recent changes (part of CSL-97, CSL-104) this issue is not needed anymore (our shares are put into our block).


Apollo Router + Federation Support

The goal of this PR is to enable Federation 2 support in GQLGen w/ the FeedEvent type as a guinea pig for the Entity Spec
Callouts

I worked w/ @jarrel-b this morning to get this thing deployed and all is good but...

We still don't have a nice DNS record setup yet
We have an empty secrets yaml file since we don't have any environment variables CC @radazen for help here.

Entities
The entity system in Apollo land is analogous to the Node system we already have for Relay. It lets Apollo look up an arbitrary type by it's key field. This is particularly useful for @defer support.
Consider the following query

You can imagine, if we want to defer the SubEventFragment, the Apollo Router can break the query into two.

Get all the ids of the items in the paginated list
Fetch the deferred data on each of those items

Meanwhile, all of this data is getting streamed to the client as the data resolves.
Adoption Plan
My plan is to adopt this as we're developing the mobile app to battle test it before we roll it out to web.
Here's a list of things we still need to verify

Is deferred resolution of entities getting batched properly?
How does all of this work with APQ?

It seems like Apollo Router does some handling of APQ so we might be able to just drop it from GQLGen

CORS support on GQLGen long term will be able to disappear. Our internal graph does not have to be publicly accessible

Retool might be the exception to this but we'll see if that's overcome by some other event.

really excited about this terence, you're seriously a beast for getting this up and running so quickly 🙏
high-level questions:

is @defer support dependent on the use of an apollo federated supergraph? curious as to why and how these are linked
the point of a supergraph seems to be that it can stitch together multiple subgraphs. in this case, we only have a single subgraph that links to our main schema, making it a pretty simple proxy. this simple act provides support for @defer?
in the future, is the idea to create another subgraph for the mobile client?

Yes. GQLGen does not support defer.  This works because GQLGen does support the Federation spec. See excalidraw in original description on how splitting up queries works
Yes, this simple act provides support for @defer
Absolutely not. Unless Ezra feels like getting all microservicy in the future, we'll have one graph for a long time

Absolutely not. Unless Ezra feels like getting all microservicy in the future, we'll have one graph for a long time

I definitely do not.


I can't burn the Porteus ISO on an external HD

Etcher version: 1.1.1
Operating system and architecture: macOS Sierra 10.12.6 64bits
Image flashed: Porteus.iso
Do you see any meaningful error information in the DevTools? No

 Nothing
Etcher doesn't detect the external HDs to burn the ISO of Porteus. I do not want to burn the ISO of Porteus on a SD card or USB driver for being very small than an external HD, because I want to run a portable OS on any computer.
Here is Porteus site: http://www.porteus.org/

@gusbemacbe have you tried enabling unsafe mode in the settings?

From reading http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/114-official-porteus-installation-guide.html#Hard Drive and http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/114-official-porteus-installation-guide.html#USB-linux it sounds like even if you did use Etcher to write the Porteus ISO to your USB HD, it still wouldn't work anyway, as it involves running custom extra steps. Seems like the Porteus ISO is a 'real' ISO and not a 'hybrid ISO' like Ubuntu uses, and thus Porteus can't be extracted directly to a USB device.
As @jhermsmeier has already said, Etcher doesn't detect HardDrives by default (to prevent them being accidentally overwritten), unless you enable Etcher's "unsafe mode".
I'm closing this issue for now, but please add additional comments if you're still having problems and we'll re-open it.


Cabal-2.0.x makes PackageName an opaque type

Just FYI, if anyone runs in to problems with PackageName not being visible, it's because Cabal-<IP_ADDRESS> is being pulled in, a temporary fix is to pin the Cabal version to something < 2.0 in the mafia lock file.
The alternative is to update the Setup.hs with this change, but that's not really practical to apply across our whole ecosystem at once.
! @nhibberd @charleso @novemberkilo
/jury approved @charleso

👍
I'm assuming this is backwards/forwards compatible?

It's backwards compatible, the new Cabal did a breaking change where they hid the PackageName constructor so you can't pattern match on it any more

💯
Ran into this on tabloid-krux when I brought in hedgehog 0.5 - @jystic helped debug ...

:+1:

👍


Renamed Folder (case change)

Product and Version [VS/VSCode]:
OS Version [macOS/Windows/Linux]:
Live Share Extension Version:
Target Platform or Language [e.g. Node.js]:
What were you doing when you encountered the desync?
Another developer changed a folder name from Clip to clip. I could see his screen share and he was typing, but on the live share it wasn't doing anything. I disconnected and closed VS Code. When I attempted to reconnect, it said I needed to install the Live Share extension. That happened 2 more times until I manually started VS Code and then joined. At that moment, there were 2 versions of the file created in the clip folder, one in Clip, and one in clip. Both looked identical. I just closed Clip without saving.
How often have you encountered desyncs?

Thanks for the report! It sounds like you might actually have a repro, which is incredibly rare and incredibly useful! Could you try out these steps in a new Live Share session and see if this happens for you again?

Hi @damarken601, thanks for reaching out to Live Share. We are tracking this desync issue in #3736. I am closing as duplicate, please add your comments and logs in #3736 and join the conversation there! You can access your logs via the Live Share: Export Logs command in the command palette.


withAITracking parameters out of date

It looks like this version of withAITracking is out of date - there is a mismatch in parameters between this and https://github.com/Azure-Samples/application-insights-react-demo/tree/master/src (which looks like the latest version)

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

ID: dff1e826-0fac-07ef-7dc4-af24f045f349
Version Independent ID: eb036a11-6cdb-463f-de2f-2adc4055b737
Content: React plugin for Application Insights JavaScript SDK - Azure Monitor
Content Source: articles/azure-monitor/app/javascript-react-plugin.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @lgayhardt
Microsoft Alias: lagayhar

@seanbecker15 Thanks a lot for bringing this to our notice , we will review it and update the document accordingly.

@seanbecker15 Thanks again for bringing this to our attention, I had a chat with our document author @lgayhardt and she will further help to review this ask and validate with engineering team and see if we need to have a backlog item to update this not only for this document but where ever its applicable. So assigning the issue to her.
Thanks a lot @lgayhardt  for helping on this thread.

Hi @seanbecker15 thanks for bring this to our attention.
The doc update will go live soon.
WithAITracking takes in 4 parameters( reactPlugin, Component, ComponentName, className) first two are required and the other two are optional.
The doc will be update to show the required parameters withwithAITracking(reactPlugin, MyComponent); in the example.

Hi @seanbecker15 thanks for bring this to our attention.
The doc update will go live soon.
WithAITracking takes in 4 parameters( reactPlugin, Component, ComponentName, className) first two are required and the other two are optional.
The doc will be update to show the required parameters withwithAITracking(reactPlugin, MyComponent); in the example.

#please-close

#please-close

Hi @seanbecker15 thanks for bring this to our attention.
The doc update will go live soon.
WithAITracking takes in 4 parameters( reactPlugin, Component, ComponentName, className) first two are required and the other two are optional.
The doc will be update to show the required parameters withwithAITracking(reactPlugin, MyComponent); in the example.

Awesome! Glad that is being fixed!

Hi @seanbecker15 thanks for bring this to our attention.
The doc update will go live soon.
WithAITracking takes in 4 parameters( reactPlugin, Component, ComponentName, className) first two are required and the other two are optional.
The doc will be update to show the required parameters withwithAITracking(reactPlugin, MyComponent); in the example.

Awesome! Glad that is being fixed!


source selector refinement

This is related to #427 #425
I'll use this PR for further refinement of the source selector feature. Here is the current default look:

Next up is to:

[ ] make sure that it resizes along with the window resize
[ ] handle external sources
[ ] fix glitches with clicking when there are multiple trees open.
[ ] add color to icons?
[ ] add "context", showing the current parent node when it scrolls off visible window

Winbar with show_scrolled_off_node_parent_node = true after scrolling down:

This is to provide context and replaces the selector buttons after scrolling down. The next step is to rename things to reflect that this functionality is not purely about source selectors anymore.
Also, the button labels belong in the source configs. This will be more appropriate for external sources.


Error with install.sh if branch not specified

There is an error in install.sh if the branch ($1) is not specified. Fix is on the way...
Impacts: beta, alpha

Fixed


proposal: Go 2:  support memory pool in context or thread for real request. just like ngx_pool_cleanup_t，ngx_pool_t in nginx. it can  reduce gc and avoid lock

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

$ go version 2

Does this issue reproduce with the latest release?
no
What operating system and processor architecture are you using (go env)?
go env Output
$ go env

What did you do?

What did you expect to see?
What did you see instead?

This is something that can be done outside of the Go standard library.  Let's do it there first, and then see if it is useful.  Closing this proposal.
Note that memory is already allocated from a per-thread cache.  I don't see why using a pool would avoid locks.  I agree that in some cases it might avoid a GC, but only with considerable care in management of the memory allocated from the pool.


python311Packages.json-schema-for-humans: 0.45.2 -> 0.46

Diff: https://github.com/coveooss/json-schema-for-humans/compare/refs/tags/v0.45.2...v0.46
Changelog: https://github.com/coveooss/json-schema-for-humans/releases/tag/v0.46
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 257926 run on x86_64-linux 1

4 packages built:

json-schema-for-humans (python310Packages.json-schema-for-humans)
json-schema-for-humans.dist (python310Packages.json-schema-for-humans.dist)
python311Packages.json-schema-for-humans
python311Packages.json-schema-for-humans.dist


Use .js or .jsx file extension

Adds the option to use .js or .jsx as the file extension. The .jsx extension works better in some text editors.
Related: #670

Thanks! I actually just did this in my own project.


Basic remote DOM

FYI: @developit wrote a pretty complete DOM facade a few weeks back https://github.com/Shopify/remote-dom-experiment/blob/main/src/runtime/dom.ts


Roadmap

This is a somewhat detailed roadmap for the development of this crate and its predecessor jsonschema-rs. I haven't been very active with jsonschema-rs recently, but I have a desire to work on it together with the community towards 1.0.
Here I describe the vision for 1.0, how I see the path there, and how to make it actually happen.
This project has been a lot of fun for me over the years, I learned a lot building it and it was useful for me in other projects as well. I hope that it could serve the same purpose for others too.
Therefore I invite YOU to participate, especially if you have the use case for a fast JSON Schema validator and want to shape the development process. Feel free to open new issues/discussions and tag me there or ask any questions here (I want to make a discord chat eventually) or invite people who might be interested. A contributing guide will be added soon, but briefly, the contribution should be aligned with the goals described below.
I also plan to record the progress in a series of blog posts (monthly or so) in detail and share it here (and in the possible Discord channel / Twitter).
Please, let me know what you think!
:heart:
Goals
I am dissatisfied with the number of decisions I made in the original implementation, and now I want to properly address them during the design phase.

Support all recent JSON Schema drafts (starting from Draft 4, including all output formats)
Better performance (less memory fragmentation, no intermediate allocations, real lazy validation)
Async ref resolving
Easier customization (custom keywords, format checks for Python)
More flexibility (in API, in the error type, generic JSON input, arbitrary number precision)
Simpler implementation (current boxing-everything and "combined" keywords drive me nuts)
Reusable components (I want to have a crate as a building block for JSON Schema canonicalization)
Feature parity in Python bindings. TBH, I'd like to have it as a drop-in replacement for jsonschema (or, at least, have near-feature parity)
Better project structure (workspace, extracting CLI and some other components into sub-crates),

Non-goals

Backward compatibility. Reaching the goals WILL break the compatibility, especially around errors (it should not be bound to validation input) and FFI (e.g format check functions aren't usable outside Rust)
Macro-based validator compilation. For a long time, I wanted to try code generation like Python's fastjsonschema does, so this crate can just build a big function and avoid all the state machine transitions, but I'd put it for later.
WASM. Great to have, and keep the new version compatible, but don't do anything specific.
Bindings for other languages. While desirable, I'd put it for later.
nostd. I think it could be possible to store validator internals in the provided block of memory, but it is complex and definitely could be done later on.

Core ideas behind the vision
Vec-backed tree
The first idea is to store all keyword implementations in a single Vec, and work with them as an ID-tree or more generally.
This should reduce the memory fragmentation (I tried this approach in css-inline and it worked great) and therefore, improve performance.
Iterating over such a structure also helps to make the iteration over errors actually lazy. The current implementation collects validation results from subtrees into heap-allocated memory.

Any other thoughts on using state machines are welcome, not sure if this approach would be the most appropriate here

Independent storage
Then, store all the keyword data in a format that is independent of the input, i.e. avoid the dependency on serde_json.
This will remove overhead in Python bindings (which is often >70%), as there will be no need for direct serialization/deserialization (though there could be some intermediate costs anyway). Users will be able to implement it for their types, i.e. for some FFI wrappers, and use this library with C/C++ codebases.
Resolve external references upfront
Resolving all reachable external references upfront makes it possible to build a state machine that will properly address recursive references. Currently, resolving happens in runtime and there is RWLock which adds a sensible overhead.
This also isolates resolving as a separate step, making it easier to provide blocking/non-blocking interface to it.
Plan
On the high level, I think that the progress towards 1.0 could be split into a few phases:

Updating the current repo
Refine the API design
Reference resolving
State machine builder
State machine transitions
Implementing vocabularies (validation, applicators, etc)
Extensions
Bindings
Migration

There is a description for each of them below. Over time I am going to expand each phase into a separate issue with more details.
Update jsonschema-rs repo
Fixing issues that need immediate attention + updating the README to reflect the plans.
There are a few issues I want to address in the main repo before diving into this one, specifically:

Make the tests work

https://github.com/Stranger6667/jsonschema-rs/issues/443
https://github.com/Stranger6667/jsonschema-rs/issues/450

Add Python 3.12 support

https://github.com/Stranger6667/jsonschema-rs/issues/439

API design
Here I think there are still some unclear corners around custom validators, format checkers, and the validation output. I.e. I want to be sure that the API design is ergonomic, and feasible to implement.
Reference resolving
This phase will require implementing a more or less draft-agnostic reference resolving (in a separate crate), which will be pluggable into the main crate.
I took a lot of inspiration from Python's referencing and implemented some similar logic, but it is incomplete. I am also not sure if it should be that generic as referencing, because the scope here is only JSON Schema.
The implementation should be built around a generic JSON access interface, which is more or less done in the jsonlike crate.
It is great that there is a referencing test suite, so it can be verified :)
State machine compiler & execution
This part takes the input document, and all resolved resources and builds a state machine where each transition leads to another validation state and the next step performs some action. I.e. validation keywords can transition either to an "error" state or "pass" state, applicators are more complicated but I believe feasible to implement too.
Probably worth taking some inspiration here - however, I am leaning more towards DFA
Vocabularies
Each keyword implements some aspect of JSON Schema validation and should be reflected in the state machine execution.
Extensions
At this point, the overall structure should be clear and it is time to implement extensions like custom keywords, format checkers, etc. I am thinking about the approach taken in minijinja, i.e. it is a boxed function (Arc<dyn Fn>)
Bindings
After the API of the main crate is ready, the Python bindings will be updated. Generally, I don't see many issues here, but need to ensure that all types in the main crate are compatible with making the Python bindings flexible enough.
Migration
Replace all content in the jsonschema-rs repo with the new one, write the migration guide + rename the repo to jsonschema avoiding the -rs suffix.

https://github.com/Stranger6667/jsonschema/blob/d6b19381a7f38ac560d842ece5aad6f4892a4320/src/compiler/mod.rs#L5-L11
May I ask here, is this Graph struct part of the plan? I focus on the iterability of the JSON result (if you remember me.). I saw this Graph is still used as some vector, maybe it's wip. I'm curious to ask.
Still, glad to see you still working on this project. I'll be following this repo if I can help in some part.

Yes, Graph is a part of the plan and it will be a vector akin to this one in css-inline. After some experiments, I found that this kind of layout with a vector and generational IDs is more performant than e.g. Rc-based or Box<dyn T>-based ones, assumingly because of the better locality.
It is still WIP though. At this point, I think I am mostly done with the public API, tested some ideas in jsonschema-rs (custom keyword API is there and works nicely as far as I can tell).
Now I am finishing an article about some jsonschema-rs details (re optimizations, will be out this week) and will work on:

Adjusting jsonschema-rs for its future API. I think migration could be smoother than I originally thought.
Will release a new version that includes some perf optimizations covered in the article + custom keyword implementation.
Collect some more feedback on the API and possible use cases, specifically around reference resolving like dynamicAnchor which I think requires more work. Some of the ref resolving will happen in runtime which may affect the graph structure, but not severely.
Implement spec-agnostic resolving before building the graph.

On the iteration side of things, my current idea is that there will be a trait that represents the way the graph is traversed. With this approach is_valid, validate & evaluate will have different traversal algorithms which will allow them to skip/fast-forward certain nodes for performance reasons. So, implementors of such a trait will receive this graph and will iterate nodes their own way + maybe it could be a customization point for some more exotic use cases like tracking statistics during iteration or something like this (I actually need it to produce coverage maps of a schema)
Hopefully, my answer sheds some light on the current progress and the next steps. I appreciate your questions and feedback, so, if you'd like to be involved we can proceed in discussing any topics you'd like to be more involved to, so we can find a way to collaborate.
P.S. Yes, I remember you :)

I'll be free after 10th May, looking forward to read your article then~🎉


The demo result is downgraded.

Hi,
Thank you for your awesome work.
I run 3D character generation using the sample image you provided as input.
But, unlike the results you extracted, the results were downgraded overall, especially blurred results on the face.
How can I fix this?

Your results : [link]

You can try several sets of random seeds and set the timestep to a larger value to get a more consistent result in 2D stage(very important). Then when generating in 3D, you need to turn on back projection and set the smooth iter to a reasonable range(like 5) to get a good geometric effect.


Fix condition typo and indentation of case clause

Pull Request Test Coverage Report for Build 413

7 of 11 (63.64%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 61.111%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Action.ts
7
11
63.64%

Totals

Change from base Build 411:
0.0%

Covered Lines:
469

Relevant Lines:
682

💛  - Coveralls


Experimental: Users can provide extra processors via the procs key in settings.ini

Add a space-separated list of import paths to your settings.ini using the same format as for console_scripts but without the name. For example:
procs = nbdev_extensions.codenotes:NoteExportProc

cc @muellerzr

Interesting!
Is the CI failure due to some Quarto issue?

Is the CI failure due to some Quarto issue?

Seems so. We have some cells with both #| echo and show_doc. The clean_show_docs processor then adds another #| echo: false leading to the quarto error: ERROR: YAMLException: duplicated mapping key.
I don't think we changed anything here so I guess quarto added stricter parsing. Should we make clean_show_doc only add #| echo: false if it isn't already set?

Yes I think we should


issue in installing r-bridge-install

ArcGIS 10.5 and R-3.4.3, but the r-bridge-install cannot be installed. the page I getted:

Hello @hongfzh, could you copy and paste the full text from the error message? Thanks!

Hello @scw, the full textr of the error message is
"Executing: InstallBindings true 3.4.3
Start Time: Wed Feb 07 09:55:55 2018
Running script InstallBindings...
Updating default R to 3.4.3
Saving URL to 'c:\users\hfz\appdata\local\temp\tmpftr7xf\arcgisbinding_<IP_ADDRESS>.zip'
Unable to locate requested R command: D:\Program Files (x86)\R\R-3.4.3\bin\i386\Rcmd.exe
Unable to locate requested R command: D:\Program Files (x86)\R\R-3.4.3\bin\i386\Rscript.exe
Fallback installation method failed.
Completed script InstallBindings...
Failed to execute (InstallBindings).
Failed at Wed Feb 07 09:56:31 2018 (Elapsed Time: 35.60 seconds)"
Thanks!

Hello @swc, I reinstalled R software, and the "r-bridge-install" installed successfully. Thank you for the reminder!

Great! Let us know if you have any further issues.


[#68] Integrate with real data on the surveys list & pagination

Closes #68
What happened 👀
Binding the data to the list, display the Surveys info (not yet for the list indicator)
Insight 📝

Bind the data for the Surveys; exposing data from Controller (ViewModel) to the View.
Add a listener to update/fetch more when the users landing on nearly the end of the current survey's list.
Adding indicator updates.

Proof Of Work 📹
All the surveys can be fetched now until the end:
https://user-images.githubusercontent.com/13435717/123775924-0064e280-d8f9-11eb-8e45-88f408b145cb.mov

all updated @manh-t 🙇  added a small code part for the indicator as well;


Refactor Helm charts

We need to refactor our Helm charts.

THIS IS A PLACEHOLDER ISSUE, DETAILED DESCRIPTION TO FOLLOW

Hi,
just as a reminder in case you might not know it already. Some of the URLs found in the comments in the helm chart templates lead to 404 pages.
Example