pipelines: clarify whether it's possible to have more than one pipeline file for a DVC project in the docs

There are some places like content/docs/user-guide/project-structure/pipelines-files.md and content/docs/user-guide/project-structure/index.md that talks about pipeline files while describing dvc.yaml. e.g.

dvc.yaml pipelines files define stages that form the pipeline(s) of a
project. All stage-based features such as dvc params, dvc metrics, and
dvc plots are specified here.

AFAICT there is a single file with multiple pipelines and commands don't receive a pipeline file argument to replace the default dvc.yaml. In these descriptions we may need to clarify that there is a single file where we describe all pipelines. WDYT @jorgeorpinel?

like content/docs/user-guide/project-structure/pipelines-files.md

We already start the dvc.yaml guide with a pretty clear indication about this:

and content/docs/user-guide/project-structure/index.md

"pipelines files define" is plural as well.
It would be good to review most mentions of dvc.yaml throughout docs to double check that at least we don't speak about it in singular terms (except in specific examples where it is just one) but otherwise I'm not sure if there's need to further clarify this. At some point we may specifically explain a project structure pattern with multiple dvc.yaml files (perhaps in a future Best Practices section, see #72).

commands don't receive a pipeline file argument to replace the default dvc.yaml

Actually commands that work with stages accept targets which can be a path to another dvc.yaml file. See for example https://dvc.org/doc/command-reference/repro#options but that's the only ref. where we treat the cmd argument (targets) as an "Option" and explain it in detail. Maybe we should focus on apply that to other refs, instead for this issue? (please change the title and desc here if you agree).

It would be good to review most mentions of dvc.yaml throughout docs to double check that at least we don't speak about it in singular terms (except in specific examples where it is just one) but otherwise I'm not sure if there's need to further clarify this.

I think we need to change dvc.yaml mentions to */dvc.yaml to show that we are talking about possibly multiple files in different dirs where necessary. When a document mentions a particular filename I tend to think it's about a single file for the whole repository, e.g. .dvc is a single dir for the repository and even if you say pipelines files my mind sees a typo there, instead of multiple files in different dirs. 🤦🏼 😄
I'll be more careful about this. Thanks.

For example in https://raw.githubusercontent.com/iterative/dvc.org/master/content/blog/2020-06-22-dvc-1-0-release.md

In DVC 1.0, the DVC metafile format was changed in three big ways. First,
instead of multiple DVC "stage files" (*.dvc), each project has a single
dvc.yaml file. By default, all stages go in this single YAML file.

makes me think there is a single global dvc.yaml file for each project.

Evolution of my understanding can be here :) https://github.com/iterative/dvc.org/commit/a039900ed35d31380e9bd6f7a5ef3738ce24d595?branch=a039900ed35d31380e9bd6f7a5ef3738ce24d595&diff=split
💡

@iesahin looks good to me! let's make a PR for this?

change dvc.yaml mentions to */dvc.yaml

I'm not sure. That language is too technical and terminal-like. dvc.yaml is a schema, not a specific file.
I think it's OK to speak about it in singular like "change field xyz in your dvc.yaml" — it doesn't imply there's one only ever. I don't remember many users having this confusion based on support cases either. Same with *.dvc although that one I like a bit more.
For now someone could definitely try to review all dvc.yaml mentions (there's a lot though) to make sure the context doesn't imply that constraint.

.dvc is a single dir for the repository

Good point but that's rarely mentioned and people used to Git and many other tools probably assume there's just one such hidden dir per project. And in its docs we clearly state there's just one.

if you say pipelines files my mind sees a typo

I agree it's a strange term. Maybe it should be "pipeline file(s)" but each dvc.yaml can contain multiple pipelines so that plural is correct. We discussed this back in the day and couldn't come up with a better answer, open to suggestions.

There are over 900 references to dvc.yaml and I read maybe the first few hundred. There is specifically an answered question for this in the blog. I think I can close this as no major reference to a single dvc.yaml seems to be in the docs. Thank you @jorgeorpinel

perhaps in a future Best Practices section

I would have greatly benefited from examples of multiple dvc.yaml files in a best practices section. This thread was what I had to find to get a clue I was going in the right direction, and then I figured it out something that worked through trial and error.

Added a checkbox in #72 🙂

I am assuming that it's not possible to re-use certain stages or that it's possible to use some sort of composition. Let's say the only difference in pipeline A and pipeline B is the how the dataset gets generated. Let's just say, B is more complicated and has therefore more stages than A. However, the way a model gets trained and evaluated is the same. Only the last stage where we evaluate the model is then again differently.
Now.. I think it's okay to duplicate the code and have two YAML files for each pipeline. What I do not really like is the fact that I have to create separate those YAML files on a file-system level as explained here:
Option 1
.
├── main_data_pipeline
│   └── dvc.yaml
└── secondary_data_pipeline
    └── dvc.yaml

Option 2
.
└── main_data_pipeline
    ├── dvc.yaml
    └── secondary_data_pipeline
        └── dvc.yaml

I can't say that this is ideal and I wonder why we can't simply point dvc via file path or maybe even pipe the config to the dvc CLI?
Both options provided by the docs feel rather awkward. Is there a better way to execute different pipelines on the same code-base within the same repository or am I overlooking something?

Just a few notes:

B is more complicated and has therefore more stages than A. However, the way a model gets trained and evaluated is the same

You can consider A and B separate pipelines, but if they share a stage definition, technically it's a single DAG. A single dvc repro would run them both, for example.

I have to create separate those YAML files on a file-system level as explained here

That answer in not complete. You can define multiple pipelines in a single dvc.yaml file too. But they must be actually disconnected i.e. stage name and output file names must be different (even if some of them run the same commands), e.g.
stages:
  # pipeline 1
  1-echo-data:
    cmd: echo data > data1
    outs:
    - data1
  1-print:
    cmd: cat data
    deps:
    - data1

  # pipeline 2
  2-wget-data:
    cmd: wget <some-url> -o data2
    outs:
    - data2
  2-print:
    cmd: cat data2
    deps:
    - data2

Is there a better way to execute different pipelines on the same code-base?

Creating subdirectories is the easiest way rn. Is that a major complication for you?

we can't simply point dvc via file path or maybe even pipe the config

Not a bad idea. Feel free to propose the feature at https://github.com/iterative/dvc/issues/new/choose !

@jorgeorpinel thanks for the response!
As it turns out, separating those pipelines isn't as problematic as I thought. The only thing I saw was that dvc dag e.g. is still treating this as a single dvc.yaml - not an issue, just something I observed.
Putting all in one file is an option as you described it as two disconnected DAGs, but in some cases it could be beneficial to separate the code for readability.
That being said, having the option to point dvc to a particular dvc.yaml, or even pipe the content to it, isn't probably providing a lot of additional functionality although it could be a convenience to some.

@jorgeorpinel Just realized that the params.yaml file cannot be found if I create sub-directories. E.g. if I have
.dvc/
pipelines/
  pipeline-1/
    dvc.yaml
    params.yaml
  pipeline-2/
    dvc.yaml
    params.yaml
src/
  main.py

and I run
(my-env) pipelines/pipeline-1 $ PYTHONPATH=../../src dvc repro

the params file cannot be loaded:
Traceback (most recent call last):
  File "/Users/sfalk/workspaces/git/mnist/pipelines/mnist/../../src/ml/pipeline/train.py", line 120, in <module>
    main(None)
  File "/Users/sfalk/workspaces/git/mnist/pipelines/mnist/../../src/ml/pipeline/train.py", line 115, in main
    train_model(data_dir=args.data_dir, out_dir=args.out_dir, hparam_set=args.hparam_set)
  File "/Users/sfalk/workspaces/git/mnist/pipelines/mnist/../../src/ml/pipeline/train.py", line 52, in train_model
    params = dvc.api.params_show()
  File "/Users/sfalk/miniconda3/envs/mnist/lib/python3.9/site-packages/dvc/api/params.py", line 278, in params_show
    return _postprocess(params)
  File "/Users/sfalk/miniconda3/envs/mnist/lib/python3.9/site-packages/dvc/api/params.py", line 265, in _postprocess
    raise DvcException("No params found")
dvc.exceptions.DvcException: No params found

am I missing something here?

I think params.yaml is expected in the cwd. Please reach out to support at https://dvc.org/chat

please provide proper documentation with examples about multiple pipelines and multiple dvc.yaml files, otherwise its heavily misleading. in that case stick to one pipeline. that's the perspective of me, the user, who tries to like DVC.

We have plans to cover this in more detail (see https://github.com/iterative/dvc.org/issues/2883). For now you can use the more technical spec of dvc.yaml to get the details.

Note that multiplicity is a general feature of DVC's flexibility and doesn't just apply to pipelines and dvc.yaml files (and stages), but also certain fields like cmd (stage commands), params, metrics, plots...

@walternat1ve what's your take, where in the docs a note / comment /quick sample would be enough for you?

otherwise its heavily misleading

could you clarify please, do you see specific parts of the docs that make you think that it's always one file / one pipeline?
(asking these questions since it's good to see unbiased fresh perspective and I hope we can do some quick fixes vs waiting for another iteration on the pipelines since this issue clearly comes up again and again)

could you clarify please, do you see specific parts of the docs that make you think that it's always one file / one pipeline?

@shcheklein all examples point to one file, one pipeline. even though there is a note in one sentence somewhere, there are no examples for theses cases.
additionally a bit off topic: its a good documentation but i had often jump from "user guide" to "user cases" for various topics. maybe there is a way to unify things.

e.g. 3 yaml files: pipeline A depends on pipelines B and C having run first

@nxorable it's a very tricky subject. For example, what you describe is a single pipeline spread among 3 dvc.yaml files. These are the things we have to figure out a way to properly explain and it hasn't been a high priority so far but it's good to get some activity here so that we do prioritize getting back to #2883 so thanks.

i had often jump from "user guide" to "user cases" for various topics.

Thanks for the feedback @walternat1ve . Use Case pages will probably be extracted from the documentation (will look different) soon-ish, so prevent this confusion.

i just add a dvc repro as a stage.


Add column maintenance_options closes #1708

Integration test logs

Logs
No env file present for the current environment:  staging
 Falling back to .env config
No env file present for the current environment:  staging
customEnv TURBOT_TEST_EXPECTED_TIMEOUT undefined

SETUP: tests/aws_ec2_instance []

PRETEST: tests/aws_ec2_instance

TEST: tests/aws_ec2_instance
Running terraform
data.aws_partition.current: Reading...
data.aws_caller_identity.current: Reading...
data.aws_region.primary: Reading...
data.aws_ami.ubuntu: Reading...
data.aws_partition.current: Read complete after 0s [id=aws]
data.aws_region.primary: Read complete after 0s [id=us-east-1]
data.aws_region.alternate: Reading...
data.aws_region.alternate: Read complete after 0s [id=us-east-2]
data.aws_caller_identity.current: Read complete after 2s [id=432504854533]
data.null_data_source.resource: Reading...
data.null_data_source.resource: Read complete after 0s [id=static]
data.aws_ami.ubuntu: Read complete after 2s [id=ami-0c96a2f29d78f9d2f]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # aws_instance.named_test_resource will be created
  + resource "aws_instance" "named_test_resource" {
      + ami                                  = "ami-0c96a2f29d78f9d2f"
      + arn                                  = (known after apply)
      + associate_public_ip_address          = false
      + availability_zone                    = (known after apply)
      + cpu_core_count                       = (known after apply)
      + cpu_threads_per_core                 = (known after apply)
      + disable_api_stop                     = (known after apply)
      + disable_api_termination              = (known after apply)
      + ebs_optimized                        = (known after apply)
      + get_password_data                    = false
      + host_id                              = (known after apply)
      + host_resource_group_arn              = (known after apply)
      + iam_instance_profile                 = (known after apply)
      + id                                   = (known after apply)
      + instance_initiated_shutdown_behavior = (known after apply)
      + instance_state                       = (known after apply)
      + instance_type                        = "t2.micro"
      + ipv6_address_count                   = (known after apply)
      + ipv6_addresses                       = (known after apply)
      + key_name                             = (known after apply)
      + monitoring                           = (known after apply)
      + outpost_arn                          = (known after apply)
      + password_data                        = (known after apply)
      + placement_group                      = (known after apply)
      + placement_partition_number           = (known after apply)
      + primary_network_interface_id         = (known after apply)
      + private_dns                          = (known after apply)
      + private_ip                           = (known after apply)
      + public_dns                           = (known after apply)
      + public_ip                            = (known after apply)
      + secondary_private_ips                = (known after apply)
      + security_groups                      = (known after apply)
      + source_dest_check                    = true
      + subnet_id                            = (known after apply)
      + tags                                 = {
          + "Name" = "turbottest65434"
        }
      + tags_all                             = {
          + "Name" = "turbottest65434"
        }
      + tenancy                              = (known after apply)
      + user_data                            = "ddd424ea1a8baca5cbf4860d0758cfd8cd4fe667"
      + user_data_base64                     = (known after apply)
      + user_data_replace_on_change          = false
      + vpc_security_group_ids               = (known after apply)

      + capacity_reservation_specification {
          + capacity_reservation_preference = (known after apply)

          + capacity_reservation_target {
              + capacity_reservation_id                 = (known after apply)
              + capacity_reservation_resource_group_arn = (known after apply)
            }
        }

      + ebs_block_device {
          + delete_on_termination = (known after apply)
          + device_name           = (known after apply)
          + encrypted             = (known after apply)
          + iops                  = (known after apply)
          + kms_key_id            = (known after apply)
          + snapshot_id           = (known after apply)
          + tags                  = (known after apply)
          + throughput            = (known after apply)
          + volume_id             = (known after apply)
          + volume_size           = (known after apply)
          + volume_type           = (known after apply)
        }

      + enclave_options {
          + enabled = (known after apply)
        }

      + ephemeral_block_device {
          + device_name  = (known after apply)
          + no_device    = (known after apply)
          + virtual_name = (known after apply)
        }

      + maintenance_options {
          + auto_recovery = (known after apply)
        }

      + metadata_options {
          + http_endpoint               = (known after apply)
          + http_put_response_hop_limit = (known after apply)
          + http_tokens                 = (known after apply)
          + instance_metadata_tags      = (known after apply)
        }

      + network_interface {
          + delete_on_termination = (known after apply)
          + device_index          = (known after apply)
          + network_card_index    = (known after apply)
          + network_interface_id  = (known after apply)
        }

      + private_dns_name_options {
          + enable_resource_name_dns_a_record    = (known after apply)
          + enable_resource_name_dns_aaaa_record = (known after apply)
          + hostname_type                        = (known after apply)
        }

      + root_block_device {
          + delete_on_termination = (known after apply)
          + device_name           = (known after apply)
          + encrypted             = (known after apply)
          + iops                  = (known after apply)
          + kms_key_id            = (known after apply)
          + tags                  = (known after apply)
          + throughput            = (known after apply)
          + volume_id             = (known after apply)
          + volume_size           = (known after apply)
          + volume_type           = (known after apply)
        }
    }

  # aws_subnet.named_test_resource will be created
  + resource "aws_subnet" "named_test_resource" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = (known after apply)
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "<IP_ADDRESS>/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "name" = "turbottest65434"
        }
      + tags_all                                       = {
          + "name" = "turbottest65434"
        }
      + vpc_id                                         = (known after apply)
    }

  # aws_vpc.main will be created
  + resource "aws_vpc" "main" {
      + arn                                  = (known after apply)
      + cidr_block                           = "<IP_ADDRESS>/16"
      + default_network_acl_id               = (known after apply)
      + default_route_table_id               = (known after apply)
      + default_security_group_id            = (known after apply)
      + dhcp_options_id                      = (known after apply)
      + enable_classiclink                   = (known after apply)
      + enable_classiclink_dns_support       = (known after apply)
      + enable_dns_hostnames                 = (known after apply)
      + enable_dns_support                   = true
      + enable_network_address_usage_metrics = (known after apply)
      + id                                   = (known after apply)
      + instance_tenancy                     = "default"
      + ipv6_association_id                  = (known after apply)
      + ipv6_cidr_block                      = (known after apply)
      + ipv6_cidr_block_network_border_group = (known after apply)
      + main_route_table_id                  = (known after apply)
      + owner_id                             = (known after apply)
      + tags                                 = {
          + "name" = "turbottest65434"
        }
      + tags_all                             = {
          + "name" = "turbottest65434"
        }
    }

Plan: 3 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + account_id        = "432504854533"
  + availability_zone = (known after apply)
  + aws_partition     = "aws"
  + image_id          = "ami-0c96a2f29d78f9d2f"
  + region_name       = "us-east-1"
  + resource_aka      = (known after apply)
  + resource_id       = (known after apply)
  + resource_name     = "turbottest65434"
  + subnet_id         = (known after apply)
  + vpc_id            = (known after apply)
aws_vpc.main: Creating...
aws_vpc.main: Creation complete after 6s [id=vpc-0df10896bcf9f81fc]
aws_subnet.named_test_resource: Creating...
aws_subnet.named_test_resource: Creation complete after 3s [id=subnet-0cc98bf7cbc405028]
aws_instance.named_test_resource: Creating...
aws_instance.named_test_resource: Still creating... [10s elapsed]
aws_instance.named_test_resource: Still creating... [20s elapsed]
aws_instance.named_test_resource: Still creating... [30s elapsed]
aws_instance.named_test_resource: Creation complete after 37s [id=i-066853c44cd7905ff]

Warning: Deprecated

  with data.null_data_source.resource,
  on variables.tf line 44, in data "null_data_source" "resource":
  44: data "null_data_source" "resource" {

The null_data_source was historically used to construct intermediate values
to re-use elsewhere in configuration, the same can now be achieved using
locals

(and one more similar warning elsewhere)

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

Outputs:

account_id = "432504854533"
availability_zone = "us-east-1a"
aws_partition = "aws"
image_id = "ami-0c96a2f29d78f9d2f"
region_name = "us-east-1"
resource_aka = "arn:aws:ec2:us-east-1:432504854533:instance/i-066853c44cd7905ff"
resource_id = "i-066853c44cd7905ff"
resource_name = "turbottest65434"
subnet_id = "subnet-0cc98bf7cbc405028"
vpc_id = "vpc-0df10896bcf9f81fc"

Running SQL query: query.sql
[
  {
    "image_id": "ami-0c96a2f29d78f9d2f",
    "instance_id": "i-066853c44cd7905ff"
  }
]
✔ PASSED

Running SQL query: test-get-query.sql
[
  {
    "akas": [
      "arn:aws:ec2:us-east-1:432504854533:instance/i-066853c44cd7905ff"
    ],
    "arn": "arn:aws:ec2:us-east-1:432504854533:instance/i-066853c44cd7905ff",
    "cpu_options_core_count": 1,
    "cpu_options_threads_per_core": 1,
    "ebs_optimized": false,
    "hypervisor": "xen",
    "image_id": "ami-0c96a2f29d78f9d2f",
    "instance_id": "i-066853c44cd7905ff",
    "instance_type": "t2.micro",
    "monitoring_state": "disabled",
    "tags_src": [
      {
        "Key": "Name",
        "Value": "turbottest65434"
      }
    ]
  }
]
✔ PASSED

Running SQL query: test-hydrate-query.sql
[
  {
    "akas": [
      "arn:aws:ec2:us-east-1:432504854533:instance/i-066853c44cd7905ff"
    ],
    "disable_api_termination": false,
    "instance_id": "i-066853c44cd7905ff",
    "instance_initiated_shutdown_behavior": "stop",
    "instance_status": {
      "AvailabilityZone": "us-east-1a",
      "Events": null,
      "InstanceId": "i-066853c44cd7905ff",
      "InstanceState": {
        "Code": 16,
        "Name": "running"
      },
      "InstanceStatus": {
        "Details": [
          {
            "ImpairedSince": null,
            "Name": "reachability",
            "Status": "initializing"
          }
        ],
        "Status": "initializing"
      },
      "OutpostArn": null,
      "SystemStatus": {
        "Details": [
          {
            "ImpairedSince": null,
            "Name": "reachability",
            "Status": "initializing"
          }
        ],
        "Status": "initializing"
      }
    },
    "kernel_id": null,
    "ram_disk_id": null,
    "sriov_net_support": "simple",
    "tags": {
      "Name": "turbottest65434"
    },
    "title": "turbottest65434",
    "user_data": "turbot"
  }
]
✔ PASSED

Running SQL query: test-list-query.sql
[
  {
    "image_id": "ami-0c96a2f29d78f9d2f",
    "instance_id": "i-066853c44cd7905ff"
  }
]
✔ PASSED

POSTTEST: tests/aws_ec2_instance

TEARDOWN: tests/aws_ec2_instance

SUMMARY:

1/1 passed.

Example query results

Results
> select
  instance_id,
  instance_state,
  launch_time,
  maintenance_options ->> 'AutoRecovery' as auto_recovery
from
  aws_ec2_instance;
+---------------------+----------------+---------------------------+---------------+
| instance_id         | instance_state | launch_time               | auto_recovery |
+---------------------+----------------+---------------------------+---------------+
| i-0e480f188a15f10d8 | running        | 2023-04-20T10:15:13+05:30 | default       |
+---------------------+----------------+---------------------------+---------------+

@ParthaI could you please add more example queries on the new columns that were added as a part of this PR?


[DO-NOT-MERGE] [WIP] Apply CI on next branch

The goal here is only to be able to trigger (Gitlab) CI on Next, not to merge next in master.

LGTM


When SOAP Body is returned blank soap:body/, there were failures in…

When SOAP Body is returned blank soap:body/, there were failures in processing it.

Coverage increased (+0.007%) to 93.13% when pulling 95769fd9e6d0497fc19fd7f3e43cdd86ed05b380 on vidishdatta:add-check-for-body into 7841b64cedf4ab7ebb35bcfdac5cf8ce8856bd76 on vpulim:master.

Hi @jsdevel , @herom - Requesting your review. Please let me know if I can provide any further info.
Also, how do we usually publish this back to NPM and at what intervals? The current version on NPM is 16.0
Thanks!

Looks good @vidishdatta.  One minor comment then I think we're good to go.

Thanks @vidishdatta !

Coverage increased (+0.007%) to 93.13% when pulling f5c4ef86bad363082205ab353f16c1304a855f25 on vidishdatta:add-check-for-body into 7841b64cedf4ab7ebb35bcfdac5cf8ce8856bd76 on vpulim:master.

Hi @jsdevel , Thanks for accepting changes. This is my first contribution to open source.
Just wanted to understand - When do we usually release it to NPM registry and when do we usually create a release for this repository?
Thanks Again!

We usually get to releases every 2 weeks or so.


feat: add pocket-id lightweight IDP

@cdanis thank you for testing and documenting pocket-id. I've never heard about that but looks good. 👍


Bug fix: Google sign up workflow?

When a user visits the Sign in with Google page and clicks on "Sign In", they are redirected to their Google Account Settings page.  Is this expected behavior?

Is it the "Sign Up" User registration page? or the "Log In" User signs-in page? I found that if a user is already logged in with Google, visits the Registration page to "sign up" it will redirect to the Google Account Settings. Def not desired behavior, but probably indicates that they already have an account through Google. Perhaps we can figure out a way to redirect to the User dashboard or flash an alert that they already have an account.


SHOW CREATE TABLE is unsupported

Hi delta team, I'm trying to run SHOW CREATE TABLE in my local development environment and the error occurs, but the statement works well in Databricks environment.
I'm wondering whether this SHOW CREATE TABLE feature is proprietary for Databricks?
If it's true, is there any possible workaround for the OSS version to support SHOW CREATE TABLE statement?
Thanks.

@yifeng-chen Thanks for raising this issue. We want to support this in OSS Delta as well. Databricks has its own Spark fork and SHOW CREATE TABLE in Databricks is a customized command that supports Delta. However, we cannot push the same code to open source Spark as the Spark community won't accept such customized code. We would need to find an alternative solution that works for OSS Delta + OSS Spark combination. We are currently working on other high priority features and probably will revisit this later. But if you have any idea to make it work, feel free to post your comment or just open an PR 😄

Thanks for raising this issue. This is an oversight in OSS Delta. We will fix it. But if you have free time to work on this, feel free to open an PR.

I'll take this


Compiler incorrectly inlines temporary variable with optional chaining

Interesting issue where the presence of an optional chaining syntax appears to confuse inlining logic. Verified behavior in advanced mode as of version 20210907.0.0
repro input:
function swap(node) {
  const y = node.right;
  const t2 = y?.left;

  y.left = node;
  node.right = t2;

  return node;
}

// Export to make sure we don't get eliminated
module.exports = { swap };

problematic output:
'use strict';module.exports={g:function(a){const b=a.right;b.left=a;a.right=b?.left;return a}};

Notice here that the temporary "t2" variable here has been inlined, resulting in the sequence b.left=a; a.right=b?.left;, which does not correctly represent the original function's behavior. Removing the ?. optional chaining operator and having const t2 = y.left will correct the problem.

Also confirmed the behavior is still broken as of latest release (20240317)
Output looks slightly different, but same problem:
module.exports={g:function(a){const b=a.right;b.left=a;a.right=b?.left;return a}};

Thanks for catching this Tommy! Here's the fix I submitted this morning: https://github.com/google/closure-compiler/commit/9adfeb5f85e80fc32af74156668b5b2083ea22a7


check for resources in chaos namespace, with APP NS as a backup

The operator creates the runner in the same namespace as the engine, so I've added a check based on the engine's namespace.
Also added a fallback check in the APP_NS for backwards compatibility, as that's the check that was running previously. To ensure this check doesn't break anyone's pipelines who are using APP_NS for the runner (if even possible).
For context:
https://kubernetes.slack.com/archives/C018C31N2G0/p1658628918420259

@uditgaurav could you please take a look at this PR?


fix: allow overriding default pagination type

resolves #257

Coverage remained the same at 86.776% when pulling 47237cdcdda80274f3302f9e5169593774813058 on fix/allow-overriding-default-pagination-type into ed9384447974224ab1e1eabcd871e48413e30235 on main.


[To-Do] Missing assets and descriptions of Skills/Const. for Lumine & Aether

todo

fixed in be0bcd608722a201ce9638f34fd53518bfa36dc4.


[Feature Request] Any way to draw different color in a line?

For example, like the picture shows. It's useful when training with udpating different paramaters.
I don't know whether it can be done with current api. If it is possible, how to achieve it?
Thanks a lot.

As far as I can tell, plot.ly currently does not support this type of plot. There is an open issue about it here.
I'm closing this issue here, because it is a feature that needs to be added to plot.ly (rather than to visdom). Please let me know if you have any further questions.


Support jsdoc syntax

upstream: https://github.com/Microsoft/TypeScript/issues/29341

It's very helpful to me


Wrong link to Travis instance and builds

For an instance with "resource": "repo/1002447" the GUI points me to https://travis-ci.org/1002447 when I click on the instance id. That leads to a "We couldn't find the owner 1002447" error page. The actual URL is https://travis-ci.org/github/crs4/pydoop. The repo id to repo slug (1002447 => crs4/pydoop) mapping can be done via the API: get https://api.travis-ci.org/repo/1002447 and look for the "slug" field in the response object. I think the backend is already doing this somewhere, so maybe it's just a matter of retrieving the right metadata bit.

The same goes for links to individual builds in the histogram to the right. For instance:
https://travis-ci.org/1002447/builds/642913559
should be:
https://travis-ci.org/github/crs4/pydoop/builds/642913559

Fixed by crs4/life_monitor#138


Portrait/Landscape

Hello, I have been experiencing portrait/landscape issues when plugging in to CarPlay app will not go into landscape view automatically? Is anyone else experiencing similar issues? Thank you

Device: iPhone 6s, iOS 14.4

Device: iPhone 8 plus, iOS 14.4

1.0.1-1+debug No this bug.

Yup. Bug present on the lastest version. 1.0.1-1+debug works just fine.


Appstudio update test-component-pac-eltx

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-eltx-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
init

✅ Succeeded
21 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
19 seconds
deprecated-base-image-check

✅ Succeeded
17 seconds
sanity-inspect-image

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
2 minutes
clamav-scan

✅ Succeeded
18 seconds
sbom-json-check

✅ Succeeded
9 seconds
sanity-optional-label-check

✅ Succeeded
9 seconds
sanity-label-check

✅ Succeeded
6 seconds
show-summary

Pipelines as Code CI/test-component-pac-eltx-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
init

✅ Succeeded
21 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
19 seconds
deprecated-base-image-check

✅ Succeeded
17 seconds
sanity-inspect-image

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
2 minutes
clamav-scan

✅ Succeeded
18 seconds
sbom-json-check

✅ Succeeded
9 seconds
sanity-label-check

✅ Succeeded
9 seconds
sanity-optional-label-check

✅ Succeeded
6 seconds
show-summary

Pipelines as Code CI/test-component-pac-eltx-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
30 seconds
build-container

✅ Succeeded
17 seconds
sanity-inspect-image

✅ Succeeded
17 seconds
deprecated-base-image-check

✅ Succeeded
7 seconds
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
7 seconds
sbom-json-check

✅ Succeeded
7 seconds
sanity-optional-label-check

✅ Succeeded
7 seconds
sanity-label-check

✅ Succeeded
5 seconds
show-summary

Pipelines as Code CI/test-component-pac-eltx-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
30 seconds
build-container

✅ Succeeded
17 seconds
sanity-inspect-image

✅ Succeeded
17 seconds
deprecated-base-image-check

✅ Succeeded
7 seconds
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
7 seconds
sbom-json-check

✅ Succeeded
7 seconds
sanity-optional-label-check

✅ Succeeded
7 seconds
sanity-label-check

✅ Succeeded
5 seconds
show-summary


acrostiche:0.3.5

I am submitting

[ ] a new package
[x] an update for a package

Description: Fix a regression introduced in the previous update that removed the "s" in the plural short form. Also add some information fields to the toml file.

I have read and followed the submission guidelines and, in particular, I

[x] selected a name that isn't the most obvious or canonical name for what the package does
[x] added a typst.toml file with all required keys
[x] added a README.md with documentation for my package
[x] have chosen a license and added a LICENSE file or linked one in my README.md
[x] tested my package locally on my system and it worked
[x] excluded PDFs or README images, if any, but not the LICENSE

[ ] ensured that my package is licensed such that users can use and distribute the contents of its template directory without restriction, after modifying them through normal use.

Thanks :)


SA1200 does not work for razor/blazor components

I have
@page "/home"

@using MyNamespace.Bbb
@using MyNamespace.Aaa
@using System

in my Index.razor, but I see no SA1200 warnings about incorrect order of namespaces

Hi!
I am not up to speed regarding the technology behind compiling razor pages, but I assume that they are transformed into pure c# and possibly some data files by some other tool before it is handed to the c# compiler and since these rules are written as c# compiler plugins more or less, it is too late for them. They would in that case get an opportunity to analyze the final generated c# code but all these rules are hard-coded to ignore generated code, since generated code rarely follows the expected style.
There seems to be a way of configuring in an .editorconfig file that source files are or are not generated (https://learn.microsoft.com/en-us/visualstudio/code-quality/use-roslyn-analyzers?view=vs-2022#configure-generated-code). Using that to configure the generated razor related c# files as not generated should have the effect that analyzers start analyzing them, but I can't imagine that would be a pleasant experience.
I think this is simply the way it is.


How i get to the Release Deploy Comments field ?

I want to use the comments field that you can specify upon deployment.
I know how to refer to the Release desciption field like e.g Release.ReleaseDescription.
And these are described here: https://docs.microsoft.com/en-us/azure/devops/pipelines/release/variables?view=azure-devops&tabs=batch
However the comments field for the deployment action is not listed here.
Does anybody know this ?

Nobody ?

Hi @MichaelReitsma this repo is mostly for pipeline tasks support - I would suggest to open a ticket on https://developercommunity.visualstudio.com/search?space=21 for Azure DevOps related questions to get right eyes on it.

Closing this as external at the moment - please let us know if you have any other questions.


Change km to look for new env var KM_MGTDIR to config snapshotting.

The new environment variable KM_MGTDIR tells km where it should create its management pipe and where it should place its snapshots when asked to create one.
Management pipes are now created to be unique so that children of the main km process can create pipes whose names will not collide with the names of other pipes.  The pipename is created as follows:
sprintf(pipename, "%s/kmpipe.%s.%d", $KM_MGTDIR,
basename(km_payload_name), getpid());
Snapshots are place in KM_MGTDIR and are named in a similar fashion:
sprintf(snapname, "%s/kmsanp.%s.%d", $KM_MGTDIR,
basename(km_payload_name), getpid());
If the environment variable KM_MGTDIR exists and is non-null km will ignore the --mgtpipe, --snapshot command line flags and the KM_MGTPIPE environment variable.

I think the basic_snapshot failure:
# reply too small, got 0 bytes, expected 4 bytes
# Snapshot via management pipe /tmp/mgtdir.70297/kmpipe.hello_html_test.fedora.dyn.70895 failed, Invalid argument
is because we begin km exit processing before we even send the snapshot complete reply back to km_cli.

That area of the code needs to be rearranged.

Forgot to address the memory scope problems which mgtpipe and the path variable being passed to km_mgt_init()  in main().
Will address next.


no setup.py

python3 -m pip install -e .
ERROR: File "setup.py" or "setup.cfg" not found. Directory cannot be installed in editable mode: /xxx/Documents/nas-bench-x11

Thanks for catching this. We just added setup.py


update docs tutorial section to a single page instead of category

Summary
wtd:summary

Closing this and re-opening for main-docs branch


Request - support R syntax

Hi,
Thanks for the great add-on. Is it possible to also add support for the R language syntax?
It seems to exist in codeMirror: https://github.com/codemirror/codemirror5/tree/master/mode/r
Thanks.

I will try to add it.
Keep pinging me, so I don't forget.

And clojure as well?

R is all I really need for now. Thanks.
בתאריך יום ה׳, 3 באוג׳ 2023, 19:31, מאת Kevin Krouse <
@.***>:

And clojure as well?
—
Reply to this email directly, view it on GitHub
https://github.com/code-syntax-addon/code-syntax/issues/17#issuecomment-1664290450,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBU4FBUMAY6ZQF332XC5Z33XTPG6FANCNFSM6AAAAAA27XDGLU
.
You are receiving this because you authored the thread.Message ID:
@.***>

I have added R, Rust and Clojure.
Still need to release the new version, but that should hopefully not take long.

I pushed a new release.
Might take a bit of time if it needs a review from Google, but my work here is done :)

Awesome, thank you so much for the quick response! I checked my google-doc
and it already has the new version, and the R syntax looks great.
On Fri, Aug 4, 2023 at 11:08 PM Florian Loitsch @.***>
wrote:

I pushed a new release.
Might take a bit of time if it needs a review from Google, but my work
here is done :)
—
Reply to this email directly, view it on GitHub
https://github.com/code-syntax-addon/code-syntax/issues/17#issuecomment-1666119472,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBU4FBTMW7SDPE6TKRH35V3XTVJDHANCNFSM6AAAAAA27XDGLU
.
You are receiving this because you authored the thread.Message ID:
@.***>


Show only meters that are determined in a widget

Shows 3 meters:

But should be only one:

DSW need to display meters, that are listed in Meters section of the widget:

Example

FE needs meters settings in /MDX2JSON/Dashboard request. Or you can make it so /MDX2JSON/MDX returns only selected meters. up to you

The /MDX2JSON/Dashboard request returns "dataProperties" section with necessary data.
Each meter has own dataset like in example attached, with "dataValue" as a name of Data fields from MDX.
Look at "dataValue":"Avg Test Score"
..."basemdx":"SELECT {[Measures].[%COUNT],[Measures].[Avg Test Score],[MEASURES].[UNIQUE DOCTOR COUNT]} ON 0 FROM [PATIENTS]", 			"controls":[ 			], 			"cube":"Patients", 			"dataProperties":[ { 					"align":"", 					"baseValue":"", 					"dataValue":"Avg Test Score", 					"display":"value", 					"format":"#.##", 					"label":"Avg Test Score", 					"name":"", 					"override":"", 					"rangeLower":50, 					"rangeUpper":100, 					"showAs":"value", 					"style":"", 					"subtype":"", 					"summary":"", 					"summaryValue":"", 					"targetValue":"", 					"thresholdLower":50, 					"thresholdUpper":100, 					"valueColumn":0, 					"width":"" 				} 			], 			"dataSource":"Use in Dashboards\/For Meter Demos.pivot", 			"displayInfo": { 				"colWidth":1,...
In next example I've added the second meter to the widget, and now I have two arrays:

@gnibeda I think DSW should read this property and display only dataValue meters.

This is additional data for data properties, it can be empty if no options are set.
So using it to determine visibility for meter will cause empty meters on widgets without options.

So if this data is not empty rely on it.
On Mon, 30 Jan 2023 at 23:45, Anton Gnibeda @.***>
wrote:

This is additional data for data properties, it can be empty if no options
are set.
So using it to determine visibility for meters will cause empty meters on
widgets without options.
—
Reply to this email directly, view it on GitHub
https://github.com/intersystems-community/DeepSeeWeb/issues/324#issuecomment-1409234867,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVHEP32A25TG5ZN6AKBWRTWVAK65ANCNFSM6AAAAAAUE6A6AQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

@evshvarov, so if the user customized only one meter, and others leave with default settings, he will see only one meter? is this expected?
Also, all meters on existing dashboards will be not visible if there are no custom settings for them, but one(or more) have custom settings

Yes, if only one is customized, show only this one.
On Tue, Jan 31, 2023 at 2:33 PM Anton Gnibeda @.***>
wrote:

Assigned #324
https://github.com/intersystems-community/DeepSeeWeb/issues/324 to
@evshvarov https://github.com/evshvarov.
—
Reply to this email directly, view it on GitHub
https://github.com/intersystems-community/DeepSeeWeb/issues/324#event-8397870604,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVHEP3PXMYUT6U43VQN3NDWVDS6DANCNFSM6AAAAAAUE6A6AQ
.
You are receiving this because you were assigned.Message ID:
@.***
.com>

Why do you spread the behavior of one widget on all the widgets on a
dashboard?
On Tue, Jan 31, 2023 at 2:35 PM Evgeny Shvarov @.***>
wrote:

Yes, if only one is customized, show only this one.
On Tue, Jan 31, 2023 at 2:33 PM Anton Gnibeda @.***>
wrote:

Assigned #324
https://github.com/intersystems-community/DeepSeeWeb/issues/324 to
@evshvarov https://github.com/evshvarov.
—
Reply to this email directly, view it on GitHub
https://github.com/intersystems-community/DeepSeeWeb/issues/324#event-8397870604,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVHEP3PXMYUT6U43VQN3NDWVDS6DANCNFSM6AAAAAAUE6A6AQ
.
You are receiving this because you were assigned.Message ID:
<intersystems-community/DeepSeeWeb/issue/324/issue_event/8397870604@
github.com>

OK, we can simplify this: let's just show only customized meters. If there
are no customized, don't show any.
On Tue, Jan 31, 2023 at 2:35 PM Evgeny Shvarov @.***>
wrote:

Why do you spread the behavior of one widget on all the widgets on a
dashboard?
On Tue, Jan 31, 2023 at 2:35 PM Evgeny Shvarov @.***>
wrote:

Yes, if only one is customized, show only this one.
On Tue, Jan 31, 2023 at 2:33 PM Anton Gnibeda @.***>
wrote:

Assigned #324
https://github.com/intersystems-community/DeepSeeWeb/issues/324 to
@evshvarov https://github.com/evshvarov.
—
Reply to this email directly, view it on GitHub
https://github.com/intersystems-community/DeepSeeWeb/issues/324#event-8397870604,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVHEP3PXMYUT6U43VQN3NDWVDS6DANCNFSM6AAAAAAUE6A6AQ
.
You are receiving this because you were assigned.Message ID:
<intersystems-community/DeepSeeWeb/issue/324/issue_event/8397870604@
github.com>

Done in 3.1.65

It works!

In this case (cannot give online example) it shows 2 meters, but there are 5 setup:

Please check that mdx2json returns data for all 5 meters. Check tuples in cols in /mdx response

Please fix also speedometers: should be one, not 3:
https://pie-chart-bug.demo.community.intersystems.com/dsw/index.html#/IRISAPP/Widget Examples/Meters B.dashboard
Same logic

also @jakcpto  - please check if the array of meters is being delivered from MDX2JSON. It looks like we should deliver this one too, not only data properties

@jakcpto @Frisle - please check, that Meters array comes from MDX2JSON. It looks like they can be different with Data Properties. Anyway, now as @gnibeda says there is not enough info in data-properties, that's why we don't see meters in clients' dashboards.

@evshvarov i found the problem and fix it for this widgets
https://pie-chart-bug.demo.community.intersystems.com/dsw/index.html#/IRISAPP/Widget Examples/Meters B.dashboard
But i do not have any other widgets examples to test it so i am not sure this hack will work for any other text meter

The dimension property is now displayed

Great! can you make a PR?
On Wed, Feb 15, 2023 at 1:03 PM Dmitrij Vladimirov @.***>
wrote:

@evshvarov https://github.com/evshvarov i found the problem and fix it
for this widgets
https://pie-chart-bug.demo.community.intersystems.com/dsw/index.html#/IRISAPP/Widget Examples/Meters B.dashboard
But i do not have any other widgets examples to test it so i am not sure
this hack will work for any other text meter
[image: Postman_zUlDNk7hJj]
https://user-images.githubusercontent.com/47441164/218981954-3dc1dc78-dc61-4009-8f50-d9f96c78c3b6.png
The dimension property is now displayed
—
Reply to this email directly, view it on GitHub
https://github.com/intersystems-community/DeepSeeWeb/issues/324#issuecomment-1430976723,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVHEP6LIT7DWD3FYTVMZFTWXSLXVANCNFSM6AAAAAAUE6A6AQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Yes already sent

new issue is opened


Add test cases to check if projects are generated

Fixed with https://github.com/docker-science/cookiecutter-docker-science/pull/30


PSR 4

This actually does #11 too, so you can either have code style fixes & PSR-4 or just code style fixes.

Travis build fails because the PR is not compatible with PHP 5.3, please fix and I will merge :+1: Thanks!

That'll be the short-array syntax.
Out of interest, what are you supporting 5.3 for - I'm curious.

I see no real reason to drop 5.3 support, since none of the features of greater versions are used in this library. Also, PHP 5.3 is still strong: http://blog.pascal-martin.fr/post/php-versions-stats-2014-10-en.html


Add option to skip repository initialization

fixes #188
In addition to fixing the issue I added a docker-compose.dev.yml for development using local directoies.
If you do not like this, i can remove the commit

Merged in eb9b2901fee6ea6968227f9acf3ee89d056ff007. Thanks!


Tempest Remap bug on cluster

Describe the bug
As of Wed May 24, buildkite runs passed on the cluster
E.g.: https://buildkite.com/clima/climalsm-ci/builds/1118
Possibly relevant: ClimaComms v0.4.2, ClimaCore 10.35, ClimaCoreTempestRemap v0.3.8
Today, it does not run (this is a different PR, but same versions of the above three)
https://buildkite.com/clima/climalsm-ci/builds/1123
Stacktrace
https://buildkite.com/clima/climalsm-ci/builds/1123#0188541e-f5e7-45e7-bf6a-d87ce6269b1b/144-157
The same test passes locally and on github actions (it is included in our unit test suite). But it fails on the cluster in buildkite.
This may be due to an incompatibility between TempestRemap_jll and HDF5_jll.jl introduced in a recent HDF5_jll.jl update. This issue will hopefully be fixed by https://github.com/JuliaPackaging/Yggdrasil/pull/6798.

To be clear, I believe the issue was a HDF5_jll.jl update, not the HDF5.jl update.

Should have been fixed by https://github.com/JuliaRegistries/General/pull/84258 already.

#84258 fixed it - thank you!


Type definition directory structure

No idea about js but with POSIXish unices we can go:
src/a.c
b.c
bin/a
b
lib/project.a
project.so
include/projectname/a.h
b.h
So one sees: src/ lib/ include/ and when ran from the build directory it is like cc -I./include stuff.
also has some makefile magic possibilities
Installing the project and it's headers for use on a linux or whatever become:
cp -r src bin lib include ${PREFIX}/
PREFIX is generally defined by someone other than the original programmers. like: PREFIX=/home/me/work/ make install
is a nice one line method and is the convention that drives package managers
if what is currently used is more the convention for JS then that is cool but might otherwise want to use this struture and if JS is supported by make I can write an implicit makefile for the project. i guess it's not compiled but the makefile can work with configure to give the project a way for future programmers to use and install it withut changing their build strategy
cd cubo-goi ; make && make run OR make install.
up to you all if you want to follow this prehistoric convention i am good at implicit parallel make

why old people use makefiles. idk
I found this ttps://www.yieldcode.blog/post/why-you-should-adpot-makefile-in-all-of-your-projects/
lots a nice automagic in make. usually ends up needing to be GNU make. and that is gmake in the BSDs and hypothetically mac


Viewing the unfinished Kata of another user

Currently, when I view the profile of another user, the UI allows me to select and view his / her "Completed" and "Authored" Kata, e.g. this is what I see when I view my own profile when logged out:

However, outside of the UI, I can view the "Unfinished" Kata of another user, e.g. https://www.codewars.com/users/donaldsebleung/unfinished/ .
Since the UI does not make this option available when I am not logged in as that user, I suppose the "Unfinished" tab is intended to be kept private to the user; therefore, the server should check whether the user is logged in (as himself / herself) before displaying the content on every access. Alternatively, if the "Unfinished" tab is intended to be publicly viewable then it should be reflected in the UI as well.

Fixed. Thanks for Reporting.


Status of the project?

Hi there,
just wanted to know what the status is for the project. We're getting ready to make some adjustments to the plugins.json file, and would love to know who's taking care of Sketch Toolbox to coordinate our changes : )
Thanks in advance!

Will have news this month on an update. Can you let me know the timeline for your adjustments?

Days : )

Alright! Do you have a version of the new plugins.json I can reference?

This is the preliminary spec I'm working with for a Plugin's metadata:
{
  "author" : "Ale Muñoz", // This is the Author's real name, as it will appear on our site at http://sketchapp.com/extensions/ and http://sketchapp.com/extensions/plugins/
  "authorEmail"<EMAIL_ADDRESS>  "name" : "Plugin Name",
  "version" : "1.3",
  "description" : "Here's the description for your plugin.",
  "homepage": "http://foobar.com/plugins/",
  "downloadURL": "http://foobar.com/plugins/plugin.zip",
  /* These are unused at the moment:
  "updateURL": "https://github.com/downloads/example/sketchplugins/sketchplugins.json",
  "compatibleVersion": 3.5,
  "lastUpdated": 2016-02-16,
  "githubStars": 1,
  "numberOfDownloads": 1,
  "avatarURL": "http://xxx.xyz/image.png", // Avatar URL (for all Plugins on http://sketchapp.com/extensions/plugins/)
  "thumbnailURL": "http://xxx.xyz/image.png" // Thumbnail URL (for featured Plugins on http://sketchapp.com/extensions/)
  */
}

This is a dead project. I suggest you https://sketchpacks.com/


⚠ Samsung has degraded performance

In aa87b6e, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2875 ms

Resolved: Samsung performance has improved in b617b4a.


Chromecasts not working

Hi, i created this account so i could contribute at least a bit. Im no dev though, this is my first post on github.
Latest windows build (55.0.2883.87-1_windows, both x64 x86) seems to have broken the ability to detect chromecasts.
I managed to get casting to work relativelly well (but rather inconsistent) on previous build (53.0.2785.116).
On a sidenote, i can confirm that this comment is still true. Therefore,

netflix now gives the "M7121" error code
and the big buck bunny video says "DRM:widevine update, XHR status is "Precondition Failed" (412), expected to be 200. readyState is 4"

Thanks for this project,

most likely it's a similar issue to the other platforms like in the issue #73. I replaced the widevincdm with the one from my Chrome install and big buck bunny streaming worked.

good, so that might be a easy fix then! I only use firefox for browsing and chromium (UGC) for streaming and webapps so i dont have a chrome install, but let me know if i can be of any help

I am fairly confident that casting requires communication with Google servers to work. Correct me if I'm wrong.
Regarding Widevine, what @nopjmp said is correct.

Chromecasts are just browsers hooked up to your TV. It runs a stripped down version of Android with WebView. It loads a page that the website choices to load and runs content. If you are wanting this seamless integration, you may want to stick with a less paranoid chromium patchset.

@nopjmp So I'm guessing Chromecasts need Google servers to work?

afaik they don't need google's servers to work, but I haven't looking into them in great detail.

Well if someone wants to look into this, go ahead.

I'll drop this comment to give back some attention to this topic.
What exactly is the issue with the chromecast functionality? Does it require proprietary libraries from google?
@nopjmp @Eloston Chromecast v1 works via ssdp and CC v2 via mdns and websockets using the ipc and 'casts'-protocol. It doesn't require connecting to google servers.
The receiver part is quite complicated and not really documented, as google want's to give their technology only to certified device manufacturers. Whereas the sender part is quite well documented and widely implemented (see e.g. Node Cast v2)
@Eloston Would you mind referencing the concerning sections of the code here? I'm very busy at the moment but i'd like to take a look

@leso-kn Thank you for your insights. I don't know anything about Chromecasts; My previous comment was pure speculation.
If mDNS is all that is needed to make Chromecasts function, then I think ungoogled-chromium needs to consider re-enabling mDNS and Service Discovery (via patches/ungoogled-chromium/fix-building-without-mdns-and-service-discovery.patch and the flags in config_bundles/common/gn_flags.map). However, I am not knowledgeable of mDNS and Service Discovery. For example, what kinds of security and privacy implications are there for simply enabling both? What other components within Chromium use mDNS and Service Discovery?

@Eloston I don't think there's any real privacy issue :) Service discovery could only be a privacy issue if information about discovered devices is sent somewhere, which it of cause wouldn't be in case of ungoogled-chromium.
Enabling the features would i guess bring back chromecast functionality, as, as far as i can see, all other components required for it to work are present

Chromecast is made specifically to be an open device that can be easily be used by anyone on the network. Hence ... No privacy
👉 https://www.reddit.com/r/Chromecast/comments/79bk34/i_know_pretty_much_nothing_about_chromecasts/dp0nsot/

Yes, but that goes for the receiver only. The sender only sends an mDNS request and connects to found devices via websockets to provide the cast functionality. I don't concider this a privacy issue

If I'm not mistaken, mDNS or Service Discovery sends broadcast packets. This is not acceptable for users who don't use these services and don't want traffic to leak out. Perhaps a flag could block these broadcasts?

That's a good idea! Do you think there's a way to sort of switch the no-mDNS patch on and off via a command line arg or config flag?

It will probably be too difficult ot switch the entire patch on and off since the patch assumes the GN flag is always off. The easiest place to implement this toggle may be for the code that sends the broadcast packet. But I'd prefer to have the toggle at a higher level, such as for the code that loads mDNS or Service Discovery facilities, if possible.

Arround Christmas i might actually find time to have a look at the code. I'll try to figure out a useful place for the switch to put at.
Unfortunately i didn't manage to compile chromium myself, i tried jt serval times.
Maybe you could release a test build with mDNS enabled to see if enabling it is already sufficient for chromecast?
I'd be up for testing it, my television supports chromecast

Arround Christmas i might actually find time to have a look at the code. I'll try to figure out a useful place for the switch to put at.

Sounds good. Feel free to submit a PR whenever you are ready.

Maybe you could release a test build with mDNS enabled to see if enabling it is already sufficient for chromecast?

What platform do you use?

Short answer: Linux
Long answer: My main machine is currently still on Ubuntu 16.04. But any debian compatible package is fine, i guess for testing i'd prefer the linux portable build

And sure! I'll submit a PR with a patch file if i get this far :)

Alright, merry chistmas afterwards!
Today i had a look at the concerning code. I went for a very basic approach now, wrapping all mDNS and service discovery related code into if conditions, that i control via a flag.
Please note, that as i mentioned earlier i didn't have the opportunity to test the changes myself. Thus i will not commit a PR yet, but attached to this post you'll find a concerning patch file.
patch.zip
Please note, that this patch replaces the prevous patch 'fix-building-without-mdns-and-service-discovery.patch' inside /patches/ungoogled-chromium, so you'll need to delete that one.
I'd be glad if you could test it @Eloston :) If it works i'll submit a PR containing the patch file and removal of the old patch

Thanks for writing a patch @leso-kn. Several comments/questions:

Does the flag toggle broadcasts in #436? If I'm not mistaken, these broadcasts are related to the features being enabled/disabled by this flag.
I'm not too familiar with the code in this area. How is DnsSdDeviceLister used in Chromium? How will Chromium's behavior change with the flag toggled on and off? (Specific files would be great, but a description will work too)
What code is affected by the GN flags for mDNS and Service Discovery? How will the current patch address any privacy/security concerns related to code that will be enabled? (Like Question 2, a description will work too)
In line 42 of the patch file, you define a function inside another function. This is not valid C++. In addition, you assign this function to a boolean variable in line 47, which also isn't valid C++. Also, will the command line flag be guarenteed to be read (in ::Discover()) before any other function is invoked in DnsSdDeviceLister?
Instead of creating a global variable discoveryEnabled, you could define a new instance variable in the constructor of DnsSdDeviceLister (if you still decide it is appropriate to read the flag in this class). Once you compile the code, global variables get stored in a separate region of memory. I don't know enough about C++ to say if this can become an issue once the code is compiled, but it is still conventional in Chromium code to use instance variables for scenarios like these.

Hope this helps. Let me know if you need clarifications.

The patch will probably bring back the mentioned every two minute broadcasts, though i don't think it's used for anything more than printer and chromecast discovery.

Will it only bring it back if the flag is enabled?

I don't know if i got the question right; the patch doesn't add a GN flag, it adds a chrome://flags flag and a command line argument for chromium.

Yes, but the patch should address any other code changes that result from changing the GN flags for mDNS and Service Discovery back to their default values (i.e. enabled).

As i just said, i don't think there are any privacy issues with browsing the local network

If the flag is disabled, broadcasts are not acceptable for more cautious users, such as those who want to harden their system. It is not about the payload of the broadcast; it is the act of broadcasting itself that is the issue.

The only other methods related code is invoked in are callbacks resulting from the discovery and a reset method related to discovery. Everything happens inside a single, nicely assessable file and the patch only enables code that had been disabled by a single patch before.

I don't think I'm understanding you correctly. This addresses code within DnsSdDeviceLister, but how about the users of DnsSdDeviceLister (e.g. the code that creates an instance of DnsSdDeviceLister)? Are they guarenteed to call ::Discover() first? For example, is it possible for one of the callback functions to be invoked if a device is already paired before ::Discover() is invoked?
Regarding the new patch:

You cannot change a command-line flag during a browser session; They are only read during startup. So, the scenario you described in the code comment is not possible.
On line 57, you are still assigning a function to a boolean variable. This is still not valid C++.
On line 24, you do not need to add ShouldEnableDiscovery to the header file. Instead, you can move the whole function definition to the unnamed namespace near the top of the .cc file.

Will it only bring it back if the flag is enabled?

Yes, as discovery can only be done if the flag is enabled

Yes, but the patch should address any other code changes that result from changing the GN flags for mDNS and Service Discovery back to their default values (i.e. enabled)

Oh! I think there was a missunderstanding from my side. I didn't know there's also GN flags, sorry about that! Of cause we'll have to include those in the patch and check whether it enables any unwanted behaviour.

it is the act of broadcasting itself that is the issue

okay. Then we'll have to make sure there's really no broadcasting if the flag's disabled. I think the easiest solution may be to prepare a prototype patch, compile it and check if any broadcasting is happening.

Are [users of DnsSdDeviceLister] guarenteed to call ::Discover() first?

As i said, i'm sure that it is. If you want we can also adjust the patch to call ShouldEnableDiscovery every time. I was going to put the cache variable in order to keep the performance at best level, but in that case there's practically not really a situation where that plays a major role.
About the new patch:

the scenario you described in the code comment is not possible.

okay, that's right. Even better then! Then technically we may even put the function call in the constructor of DnsSdDeviceLister.

On line 57 […] This is still not valid C++

Yep, sorry about that, i forgot the brackets. As i said, i didn't compile it

On line 24, you do not need to add ShouldEnableDiscovery to the header file.

If you prefer so, sure! I think it's a preference thing but yep, definitely possible.

Facing the future of this issue: Do you want me to write a propper patch, or would you prefer writing the final version yourself?
As i said, it's only been a little time arround christmas and work will start again soon, so it may take me some time till i can continue (in a more propper way than before, sorry about all those small mistakes).
I'd still be up for sitting down at some point, checking out the whole chromium sourcecode (till now i only checked out the files i needed) and having a propper overview about what's going on and what needs to be done for writing a clean patch.

Facing the future of this issue: Do you want me to write a propper patch, or would you prefer writing the final version yourself?
As i said, it's only been a little time arround christmas and work will start again soon, so it may take me some time till i can continue (in a more propper way than before, sorry about all those small mistakes).

If I write this patch, it will not help ungoogled-chromium, its contributors, or myself significantly in the long-term. I'd rather spend time on contributors like yourself, and ensuring we can reach a satisfactory solution.
I am in no rush to complete this feature. You can take as much time as you need.

@leso-kn any progress on this? Waiting soooo patiently! :)

I got chromecast working with the "ungoogled" build by first using chrlauncher to download a "stable-codecs-sync" version of chromium.
I then opened the program and changed the chrome flag load-media-router-component, restarted chromium and then clicked on "cast" menu item to generate the profile folder and auto download the needed cast extension "Chrome Media Router".
Casting should be now working with the standard version of chromium.  Once this is verified, I deleted the Chromium "bin" folder containing the program files while keeping the "Profile" folder that was created.
I changed the  chrlauncher.ini file in order for it to now download and install the ungoogled-chromium version while still using the same profile folder for this build.
You should now find the "cast" menu item still working correctly.
Therefore one can assume that some specific chrome flags are causing the issue of it not working rather than the ungoogled build binary files.
Once I pinpoint the flags that need changing then a wiki page can be made rather than having any code changes.  You can also then keep 2 profiles. One for casting and one as your standard ungoogled profile.

@bigmudcake That sounds very interesting! I'll try this out within the next days if i find the time.
@ethanpil I'm very busy lately, so i didn't find the time to investigate, sorry. State of things is still: I created a patch mentioned in ^21, but it's still untested.
If someone has the full repo compiling feel free to check it out and see if it works, i'd be happy to investigating if there are any issues!

It appears the latest builds of chromium no longer needs to use any extensions in order to successfully cast to chromecast devices via an experimental flag.  Therefore ungoogled -chromium should also be able to cast to chromecast devices.
I got chromecast working with the "ungoogled" build by first using chrlauncher to download the "ungoogled-chromium" version of chromium.
I then opened the URL chrome://flags/#cast-media-route-provider  and changed setting to "Enabled".  This enables using the native Cast Media Route Provider implementation and no longer needs to download the cast extension "Chrome Media Router".
You should now find the "cast" menu item now works correctly.
My Chromium version that this was tested on was Version 83.0.4103.116 (Official Build) (64-bit)
Therefore if others can verify this works then this issue should now be closed.

@bigmudcake That sounds very interesting! I will try it out

My Chromium version that this was tested on was Version 83.0.4103.116 (Official Build) (64-bit)

That cannot be a standard build of ungoogled-chromium for Windows, because the latest version at the time of writing is 81.0.4044.138-1.1. It might be a chromium.woolyss.com build without the Safe Browsing patches. You should confirm with chrlauncher.

My Chromium version that this was tested on was Version 83.0.4103.116 (Official Build) (64-bit)

That cannot be a standard build of ungoogled-chromium for Windows, because the latest version at the time of writing is 81.0.4044.138-1.1. It might be a chromium.woolyss.com build without the Safe Browsing patches. You should confirm with chrlauncher.

Yes,  looking at it further its a "modified" build of ungoogled-chromium according to Chrlauncher INI file it states:
ungoogled-chromium
Unofficial builds without Google integration and enhanced privacy (based on Eloston project)
"github.com/macchrome/winchrome/releases" (32/64 bit)
"github.com/Eloston/ungoogled-chromium"
Therefore it uses the realease built at "github.com/macchrome/winchrome" which in the release notes state:
Standard build of Eloston's ungoogled-chromium. All patches applied apart from "Safe Browser"
and "Add flag for internal PDF viewer plugin name"
I will try a pure build and see if the "safe browser" patches make a difference.

I have now tested Version 81.0.4044.138 (Developer Build) (64-bit) as supplied via https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/windows/64bit/81.0.4044.138-1.1
It seems that after changing flag chrome://flags/#cast-media-route-provider to "Enabled" chromecasting also works.

@bigmudcake I finally took the time to test this. Can confirm, it works for me too!
Perhaps for now it's sufficient to have this as an optional feature? We could document the flag in the wiki and close this issue @Eloston
If at some point the flag is being removed or it stops working for some other reason, a new issue could be opened.

@leso-kn I agree. Closing.


reorg solution file

This renames
.\vsintegration\src\Deployment.sln --> .\VisualFSharp.sln
Salsa.dll --> VisualFSharp.Salsa.dll
Unittests.dll --> VisualFSharp.Unittests.dll

It also

adds a couple of virtual folders to VisualFSharp.dln (was called Deployment.sln)
removes a couple of test files that weren't being referenced anywhere

The aim is to make it easier to contribute to the Visual F# Tools by improving the organization of things. The visual appearance of VisualFSharp.sln is shown below

maybe we can also show a clean cut between FSharp.Core (a library) and the compiler,

OK done, please see below

Wow this way looks so much better! :+1:

Fine for me

Pulling after discussing with @KevinRansom.  Microsoft still has an internal build process used to package the Visual F# Tools which is separate to the process used here, and this PR might affect that because the test DLLs are being renamed.  But we think that the test DLLs no longer need to be built as part of that.
In any case a big thanks to @KevinRansom in advance for dealing with any fallout of this w.r.t. the internal Microsoft build process (a pain point we hope will go away by moving to purely external build process eventually)

@dsyme some test file are deleted, it's intentional (duplicated) or an error?

Yes, intentional, see comments above, thanks for checking!

I just wanted to mention that I found the VisualFSharp.sln file much easier to work with this evening - I could actually find the necessary code and the appropriate unit tests! :)


Modify first h1/p just like npm does

Part of #4148.

I'm going to stop the scheduled job and reprocess already-processed readmes before starting it up again.

Let's get a sense of how long it will take to reprocess readmes ...

Looks like scheduler tasks are not in heroku ps. I'm not sure how to kill it.

Maybe if we remove and then re-add the addon?

Hmm ... heroku logs --tail | grep scheduler isn't turning up anything. Is the process already dead?

watch -n5 "heroku pg:psql -c 'select count(*) from packages where readme_raw is not null'"

/me watches for a minute to see if the number changes ...

It's not changing. I'm going to run a short scheduled job to see if it shows up in heroku ps normally.

Yes, scheduler processes show up in heroku ps. 👍

Alright, so I'm thinking we should split readme fetching and processing into two separate processes. We can use readme=null to signal a need to process, just as we are using readme_raw=null to signal the need to refetch. We just need to make sure that readme=null shows up in the UI in a sane way. Then we can run both processes as scheduled jobs.

Actually, let's keep readme as the one we read from and display to the user, and add a readme_processed that is set to NULL after fetching.

Alright, ready for review. cc: @rohitpaulk @aandis @nobodxbodon @kaguillera et al.

What's up with this marky-markdown failure at Travis? Looks like its installing 9.0.1, which is also what I have locally. The tests pass for me locally.

Drat. Does 9edf5b8518df5281a91fa3233a07d16b556bb70e fail in the same way?

No!

Hmm ... now marky-markdown is spitting out markup that I think I saw before, but then switched away from because I thought I saw marky-markdown spitting out different markup ...

Hmm ... might actually be a type discrepancy, Markup vs unicode?

Ah, yeah, at some point this weird inline SVG snuck.

Oh! This is over in test_markdown, not in test_npm_sync ...

Here we go, let's try 9ec8a8bca49f7f68e7745df99fed2f875f825054 ...

Yesssssss. 👍
Gonna clean up a few more things here ...

Okay! I think this is ready to go. What are the next steps once this is merged and deployed? What's our current state and how do we get to a database full of properly-rendered readmes to back #4151?

gratipay::MAROON=> select count(*) from packages where readme != '';
┌────────┐
│ count  │
├────────┤
│ 133331 │
└────────┘
(1 row)

Heh. :)
I started update packages set readme='' but it takes a while and locks the db(? site was slow to load), so I killed it. I guess it's fine to leave the crap that's in there in there and let it be overwritten by the new processor.
Okay! So I think the thing to do is to:

Merge and deploy this.
Schedule a fetcher process.
Schedule a processing process.

branch.sql sets readme_needs_to_be_processed to true for all records, so even though some readmes are already processed, all should be processed again.
What about refetching? How do we schedule that?

Oh right! upsert is supposed to reset readme_raw to null. Hmm ... maybe another PR? Let's get the first round of readmes in there.

Here we go!


Vertex Colors are not imported

The vertex colors are properly parsed from the LWO file, but they are not assigned anywhere to the generated mesh.
See construct_mesh.py line 243 and 244 :
the vertex color are converted, the color map is created into the mesh... but the colors are not assigned to the color map.

Change merged, but also code enhanced to use an enumerate for the loop:
#3707e2aff2bada9697f79294849248fec5379cd3

Thanks ! I was about to suggest this upgrade ;)


Error "some streams did not close gracefully" after Ansible playbook run

I ran an Ansible playbook against a fairly large number of hosts (1800+) and while it seems to have worked successfully, after the play summary it displayed the following:
ERROR! [pid 28660] 13:37:23.291616 E mitogen: Broker(0x7f2b5ec18690): some streams did not close gracefully. The most likely cause for this is one or more child processes still connected to our stdout/stderr pipes.
ERROR! [pid 28660] 13:37:23.292507 E mitogen: _broker_main() force disconnecting <Side of mitogen.parent.Stream(u'local.28682') fd 122>
ERROR! [pid 28660] 13:37:23.298060 E mitogen: _broker_main() force disconnecting <Side of mitogen.ssh.Stream(u'ssh.<IP_ADDRESS>') fd 2730>
ERROR! [pid 28660] 13:37:23.303111 E mitogen: _broker_main() force disconnecting <Side of mitogen.ssh.Stream(u'ssh.<IP_ADDRESS>') fd 2742>
... etc ...

Also followed by a bunch of these:
ERROR! [pid 28660] 13:37:28.924827 E mitogen: Router(Broker(0x7f2b5ec18690)): cant delete route to 1762792: no such stream
ERROR! [pid 28660] 13:37:28.924916 E mitogen: Router(Broker(0x7f2b5ec18690)): cant delete route to 1762793: no such stream
ERROR! [pid 28660] 13:37:28.924978 E mitogen: Router(Broker(0x7f2b5ec18690)): cant delete route to 1742770: no such stream
ERROR! [pid 28660] 13:37:28.925035 E mitogen: Router(Broker(0x7f2b5ec18690)): cant delete route to 1771794: no such stream
... etc ...

This is running on Ansible 2.5.3 and mitogen 0.2.2.
Any ideas?

In both cases:

are you seeing a large number of such errors? e.g. does the number of force disconnects consistently correspond roughly to the number of hosts, or some %age of hosts

If this is during a huge run, it is possibly because shutdown is taking longer than the simplistic hard timeout that currently exists. We could simply bump the timeout, but perhaps using a timeout for this is wrong altogether.
The idea is that we want to send a SHUTDOWN message to all targets, giving them a final chance to finish flushing any buffered messages (like debug logs), but not to delay shutdown completely if the connection to some targets has hung.
One option may be to make the timeout dynamic, say, adding 250ms per existent stream at shutdown up to some limit. But I'm not sure if that approach is any better than simply bumping the timeout
Another option may be to hide the error, since it is essentially non-fatal and only really useful for a developer. In Ansible's case I think the worst possible outcome would possibly be some missing -vvv logs when the error occurs

Hi @dw !

are you seeing a large number of such errors? e.g. does the number of force disconnects consistently correspond roughly to the number of hosts, or some %age of hosts

Hard to say. The Ansible run targeted 1800 hosts and there were a lot of such errors, but I'm not sure if it lines up with the number of hosts.
I'm not sure what the right solution is. As you said, hiding the error message is cleaner on the output but at the same time some debug output may be missed (non-fatal, but potentially annoying for anyone trying to do some troubleshooting). I assume that hard timeout is for all hosts to finish up? Bumping it might be worth a try.

If you are comfortable bumping it yourself and checking to see if the problem abates, that would be helpful :) Literally it just requires tweaking that one assignment.
This would be a valuable data point, but it wouldn't be a conclusive solution. There should be some better approach that allows fast shutdown even when a remote has hung, but without messing with an apparently healthy shutdown like it seems you have here.
Another possibility is that some Ansible code running in the target process is somehow messing up shutdown, but I'm really not sure how that is possible yet. Is your playbook small enough that you could share the list of modules being run? Don't waste time on it :) But such a list could prove helpful, especially if it includes some rare module I haven't seen before


[Add]Index close days before in article/node

Coverage decreased (-0.007%) to 83.042% when pulling b835447b0444f7a5e5993e6144843fd126cd335a on ShinjiTanimoto:before into 5326e377d71db21ae7aa40684d94de379ad496fb on shirasagi:master.


Wrong ReadMe instructions for exact answer extraction

Hi! Really nice code to work with.
I think the instruction in the Readme for extracting exact answers is wrong. Instead of
extract_exact_answer.py --model [model name] --source_file [greedy output file] --destination_file [name for exact answers file]
it should be
extract_exact_answer.py --model [model name] --dataset [dataset name]

Thank you! this was like that because of an older version of the code. I'll fix it.


Update docker-kubectl image in Cluster API apps

Update docker-kubectl image that we use in Cluster API apps to install CRDs.
According to kubectl version skew policy:

kubectl is supported within one minor version (older or newer) of kube-apiserver.

Which kubectl version we need?

Vintage MCs are currently on Kubernetes v1.24.x.
Also, ideally, for the new CAPI clusters we can go with the latest Kubernetes version, but we still have some CAPI cloud MCs on v1.23.x, and onprem MCs on even older v1.22.x.

Therefore, in order to respect the kubectl version skew policy, the latest docker-kubectl image that we can use is different for every app:

[x] Update docker-kubectl image in cluster-api-app to the latest v1.23.x (one minor older than vintage MCs, same as cloud CAPI MCs, one minor newer than onprem CAPI MCs)
[x] Update docker-kubectl image in cluster-api-provider-azure-app to the latest v1.25.x (one minor newer than vintage Azure MCs, one minor newer than CAPZ MCs)
[x] Update docker-kubectl image in cluster-api-provider-aws-app to the latest v1.24.x (same as vintage AWS MCs, one minor newer than CAPA MCs)
[x] Update docker-kubectl image in cluster-api-provider-gcp-app to the latest v1.24.x (one minor newer than CAPG MCs)
[x] Update docker-kubectl image in cluster-api-provider-openstack-app to the latest v1.23.x (one minor newer than CAPO MCs)
[x] Update docker-kubectl image in cluster-api-provider-cloud-director-app to the latest v1.23.x (one minor newer than CAPVCD MCs)

Closing with created follow up issues (see links above)

@nprokopic wont do it for OpenStack anymore but will check for vsphere (CAPV) as we just picked up CAPV work again

Yeah I figured that OpenStack will not be done probably. I think I checked some time ago CAPV and I didn't see that it was using docker-kubectl image for installing CRDs, so I didn't put it to the list here.

yeah, we stopped to work on CAPV like a year ago and just start to update all the repos again. will have a look :)


how to split a table?

I'm trying to split one table into two smaller ones, but I cannot find anything like table.split().
Is there any way to break table object and have free space for standard paragraph between two tables?
Maybe you know hack or workaround for it.
In MS Word's VBA it's just
Sub Test()
Selection.SplitTable
End Sub

How to obtain the same effect in Python 3.x?

Did you ever found a solution do do that?


use the user model with get_user_model

If you write a custom user model and inherit from django.contrib.auth.admin.UserAdmin overwriting some fields, then the custom user model will not be displayed on the admin site

although no, this fix is purely for refactoring

Thanks for this patch :+1: However it's documented that you need to register a custom user model in the app’s admin.py. If you're having trouble understanding how Django works, see TicketClosingReasons/UseSupportChannels for ways to get help.


Add Mooncake to Lux benchmarking suite

For more comprehensive benchmarking, let's add Mooncake to the Lux's benchmarking set:

results: https://lux.csail.mit.edu/benchmarks/
code: https://github.com/LuxDL/Lux.jl/tree/main/benchmarks

Cc @avik-pal, who might be able to provide pointers on what is needed.
(this issue is copied from https://github.com/compintell/Mooncake.jl/issues/361#issuecomment-2503395688)

Yes, let's do this. I need to cleanup the benchmarks on Lux end (the benchmarks are somewhat broken since the monorepo setup). I will update here once that is done


User is not prompted to change password when mustChangePassword is enabled

create/edit a user and set Ask user to change their password on first login

user gains mustChangePassword: true

log out and then log in as changed user
user is logged straight in and not prompted to change password

logging in via manager shows prompt

This was working at one point - https://github.com/rancher/dashboard/issues/2524

Reproduced on e756276, fix works fine on master-head (cf5a75f)


Document openssl thread-safety

Now that we have a man7, it's about time that OpenSSL had a manpage like this :)
Could be backported to 1.1.1

The CI failure is relevant.

The PR now seems to include commits that are already on master branch. Could you please do a clean rebase so there are only the relevant commits included?

The PR now seems to include commits that are already on master branch. Could you please do a clean rebase so there are only the relevant commits included?

please do a clean rebase

better now?

please do a clean rebase

better now?

There are still the commits from PR #13742 included.

There are still the commits from PR #13742 included.

"This time for sure."

"This time for sure."

Since there was a duplication of effort in the run-once manpage, I squashed and rebased.  Thanks all for the feedback.
@t8m no changes to openssl-threads page.

Since there was a duplication of effort in the run-once manpage, I squashed and rebased.  Thanks all for the feedback.
@t8m no changes to openssl-threads page.

This pull request is ready to merge

This pull request is ready to merge

Merged to master. Thank you for the contribution!

Merged to master. Thank you for the contribution!


Add Romana to Network Policy Getting Started and kubeadm install pages

Added Romana to Network Policy Getting Started Guide and kubeadm installation pages.

This change is

@caseydavenport had to pull in some recent changes to the kubeadm starting-guide page, which needed some add-on network rework. Not 100% sure what I said about kubenet networks is true. Please review.


Fix incorrect documentation about the token input to the Actions.

This documentation is currently misleading as it implies you can use any token here. In reality, this Action calls API endpoints that only accept tokens from the GitHub Actions app, so you should basically never override it.
I believe all the other Actions in this repository will work with an arbitrary token if one needs to be provided for cross-repository access, but these two call the SARIF upload endpoint which requires an Actions token.

I wonder if we should also include the guidance that it's best to avoid using this input and so the workflow falls back to using the actions-provided token.

That might make sense, though I'm not sure how exactly to phrase it. There are some pretty specific situations where it is useful to be able to set these inputs, but in general they probably shouldn't be used.

What do you think of this?

Most of the time it is advisable to avoid specifying this input so that the workflow falls back to using the default value.

If you need to specify the input, you will be an advanced user anyway, so I don't think this would be confusing.

This is very confusing since the underlying api clearly says it's possible:
https://docs.github.com/en/rest/code-scanning/code-scanning?apiVersion=2022-11-28#upload-an-analysis-as-sarif-data--fine-grained-access-tokens
Oh well, at least the documentation now warns that this doesn't work.
I'd almost suggest that the description should say:

If you think you want to use a custom token you should probably talk to the endpoint directly instead of using this action.

For analyze/action.yml that would mean with: { "upload": "never" } followed by a manual call to the endpoint.
For upload-sarif/action.yml which is the one I actually use, I have no idea what to do since I'm pretty sure that the action is actually rewriting my sarif file with some extra hints, and I guess I'd need to find a way to ask code like that to do that rewrite and then manually call the endpoint directly.


Quick Tips Feature Flag

Description
Sets FTUE quick tips up as a feature flag so we can separate code into multiple PRs
Acceptance Criteria

Feature flag
Please include the name of the flag here so that it's easier to test in QA

Flag is labeled Quick Tips

Flag is labeled Quick Tips


bug fix on design-system example

Description

add preview-storybook task to turbo.json and it's script in the root's package.json
improvement on clean script
changed the tsup config of @acme/ui package not to make source map files in order to match the content of ui/dist directory stated in README of root
bug fix of README file. Replaced acme-core and other names that  meant to point to packages/ui with @acme/ui

Testing Instructions
Running npx create-turbo@latest -e design-system and then pnpm dev should work and start storybook in dev mode. README.md file in the root should be fine too.

Allow CI Workflow Run

[ ] approve CI run for commit: 664a4a95cf4991936d3ac3c791e5ccafaae053ef

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

@anthonyshew I'm just making sure in case you've missed this PR. Thank you in advance for your review!

A lot of the examples are broken. I applied this PR changes over npx create-turbo@latest -e design-system and worked like a charm. Thank you @zsh77 !

A lot of the examples are broken. I applied this PR changes over npx create-turbo@latest -e design-system and worked like a charm. Thank you @zsh77 !

Happy it helped you @du5rte !


MESH OPTIMIZATION

Check this:
Grouping each model mesh according to its material and vertex type.
This improves performance because fewer calls to the Draw API were made, but calculated volumes are larger and less efficient, because of containing more similar geometry.

Another point: model content indexation

Done! a012b54ab56899d45da0fdc086421bf1ede6c946


Wrong file permissions of release binary tarballs

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
I downloaded 7.4.3 binary tarball of Linux x64. I found the executable file pwsh and DLLs is not executable in file permissions. But the permissions of 7.4.2's tarball is correct.
Expected behavior
$ ls -l pwsh
-rwxr-xr-x 1 user users 72520 Apr 10 06:45 pwsh

Actual behavior
$ ls -l pwsh
-rwx---r-- 1 user users 72520 Apr 10 06:45 pwsh

Error details
No response
Environment data
It is a problem of release tarballs.

Visuals
No response

This is not an new issue. I am always do this after unpacking:
chmod -x *.dll
chmod +x pwsh
setcap cap_net_raw=eip pwsh

Duplicate of:

#23968


cast column to a type that is appropriate for the adapter being used

fixes #1043

@revgum can you update your commit message to tell us about the bug you fixed?
How about "cast column to a type that is recognized by MySQL"

@jcoyne This update is tested against mysql and postgres, and seems like a reasonable solution that defaults to "integer" but works for mysql.

Looks like we need this merged first https://github.com/projecthydra-labs/hyrax/pull/1055


Draft should be specific to post type

Currently we are able to update posts and save to local storage, but the value is overriding the templates. The draft should be unique to the feed type selected, and the feed type should show the correct template at first load.
For example notice how even though I am toggling post type which should change template, it is still showing the same draft and template:

A page should load with the draft specific to the feed key, this can be managed with Storage API, privateGet and privateSet:
https://docs.near.org/bos/api/storage
Basic example for one compose, but no template: https://near.social/mob.near/widget/WidgetSource?src=mob.near/widget/MainPage.N.Compose

Fixed in https://github.com/NEARBuilders/gateway/commit/e507a51923afb06de7dd96fe6e45fe885aeb0c3a


[10.x] Add support to pass models class path as tables to Schema

Currently, I pass table name to schema like this:

I wish laravel would have supported (hence encouraged) this syntax:

@nunomaduro Could you please review the docblock and tell me the correct way?
Thanks.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


[TextField] Fix broken isDirty logic

@kybarg Following this PR #6566.

[x] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

Why defaultValue should affect SSR only?

Because isDirty is also used with a HTMLInputElement.

I think that we can do a release now :).


Opening a new terminal tab requires tabbing away and back before ready to be used

Lapce Version
0.2.8
System information
macOS Monterrey
Describe the bug
If you are in the terminal panel and hit the + to open a second terminal tab, the new tab stays blank until you tab away and back. Then it has the standard terminal text (Last login, username@pwd % stuff)

Duplicate of https://github.com/lapce/lapce/issues/2156


[imgui] update to 1.84.2

Describe the pull request

What does your PR fix?

update imgui to 1.84.2

Which triplets are supported/not supported?  They did not merge the master to the docking branch for the 1.84.2, so the only way to get it would be from this merge commit, which would also bring some wip changes from the 1.85, which is not desirable.

Thanks for the hint. Thought I used the correct one. Will fix later today

(https://github.com/ocornut/imgui/commit/dedb381c510cc0b87164e16b9e7ef6bf50ffccec) happened after the 1.84.2

I would use this commit.

and using it would also bring some changes from the 1.85 wip which is not desirable.

In my opinion it is not desirable to not update a port because a experimental feature is some steps ahead. Have build a example application with docking and it works and build.
So IMHO the focus should be the stable release version and not the docking branch. I know that a lot of people using it, but if you experience some malfunctioning inside the experimental-docking feature, you could also pinpoint the version to 1.84.1.
The regression fix in 1.84.2 is important.

I actually agree that it is better to update it in this case, but I would like to clarify that the docking branch is not experimental, it is in beta, which I think is very different. I don't know with the port feature it was named like this and it is an error in my opinion.
From the Imgui changelog :

The docking (#2109) and multi-viewports (#1542) features are available in the docking branch, they are in beta but actively maintained and being used by many teams already. Your continuous feedback is always appreciated.

@RT222 yeah. agree with thats beta. I think the wording experimental is indeed a bit ambiguous and open to interpretation. But in the end we have to agree to some policy that the docking is not the offical release. Therefore it should be the version guidance. However there are then two possible ways to handle docking if the commit is newer or older than the release version.

Use the latest minor version since merge
Use the last merge after release

In my opinion the second point is the way to go. (If there aren't to many differences between release and latest merge)

@mathisloge , This pr is ready for review?

From my point of view - yes

Have you tested the feature locally?

Have you tested the feature locally?

docking-experimental with sdl2 and opengl


New convention for Consume project

Followup to https://github.com/SimonCropp/Polyfill/pull/211#issuecomment-2323583387.
I have made a new convention for API usages in Consume project, added it to contributing.md and modified Consume.cs according to the new convention.
Generally speaking, because Consume project is there only to check API compiles in old runtimes (net461 ect.), I think shorter code is preferable. The PR therefore puts method calls to method-per-type in a class (e.g. Span_Methods or  Int_Methods). I am using suffix to avoid naming issues where method and type have same name.

looks great. thanks