[BUG] inconsistent s3 protocol in spark lineage

OpenLineage integration/client
Spark integration
OpenLineage version
1.19.0
Technology and package versions
Spark 3.5.1
Environment configuration
spark = SparkSession.builder. \
    master("local"). \
    config('spark.jars.packages', 'org.apache.hadoop:hadoop-aws:3.3.4,io.openlineage:openlineage-spark_2.12:1.19.1,org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.6.0,org.alluxio:alluxio-shaded-client:2.7.3').\
    config('spark.extraListeners', 'io.openlineage.spark.agent.OpenLineageSparkListener').\
    config('spark.sql.catalog.spark_catalog.warehouse', 'warehousetst').\
    config('spark.openlineage.transport.type', 'http').\
    config('spark.openlineage.namespace', 'test_om').\
    config('spark.openlineage.parentJobName', f'lineage-test-{ts}').\
    config('spark.openlineage.parentRunId', myuuid).\
    enableHiveSupport().\
    getOrCreate()

Deployment details
No response
Problem details

input dataset has s3 namespace with s3:// protocol
output dataset column lineage entries are referencing input dataset with s3a:// protocol in namespace

What you think should happen instead
same s3 protocol used throughout whole event
How to reproduce

create spark session
run job create table X as select * from table Y - both tables should ber registered in hive metastore with location = s3 bucket

Additional details
output event:
{
  "eventTime" : "2024-08-14T15:10:02.973Z",
  "producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
  "schemaURL" : "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent",
  "eventType" : "COMPLETE",
  "run" : {
    "runId" : "01915170-38d3-7dcc-ad27-06e8b54b0ae8",
    "facets" : {
      "parent" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-0-1/ParentRunFacet.json#/$defs/ParentRunFacet",
        "run" : {
          "runId" : "01915170-1453-7784-8423-afd592bfd0d9"
        },
        "job" : {
          "namespace" : "test_om",
          "name" : "user_spark"
        }
      },
      "spark_properties" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunFacet",
        "properties" : {
          "spark.master" : "local",
          "spark.app.name" : "user-spark"
        }
      },
      "processing_engine" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-1-1/ProcessingEngineRunFacet.json#/$defs/ProcessingEngineRunFacet",
        "version" : "3.5.1",
        "name" : "spark",
        "openlineageAdapterVersion" : "1.19.0"
      },
      "environment-properties" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunFacet",
        "environment-properties" : { }
      }
    }
  },
  "job" : {
    "namespace" : "test_om",
    "name" : "user_spark.adaptive_spark_plan.lineage_test_case_src_7",
    "facets" : {
      "jobType" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/2-0-3/JobTypeJobFacet.json#/$defs/JobTypeJobFacet",
        "processingType" : "BATCH",
        "integration" : "SPARK",
        "jobType" : "SQL_JOB"
      }
    }
  },
  "inputs" : [ {
    "namespace" : "s3://datacatalog-db",
    "name" : "lineage_test_case_src",
    "facets" : {
      "dataSource" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet",
        "name" : "s3://datacatalog-db",
        "uri" : "s3://datacatalog-db"
      },
      "schema" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-1-1/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet",
        "fields" : [ {
          "name" : "c1",
          "type" : "string"
        }, {
          "name" : "c2",
          "type" : "string"
        }, {
          "name" : "c3",
          "type" : "string"
        }, {
          "name" : "c4",
          "type" : "string"
        } ]
      },
      "symlinks" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-0-1/SymlinksDatasetFacet.json#/$defs/SymlinksDatasetFacet",
        "identifiers" : [ {
          "namespace" : "hive://hive-metastore.hive.svc.cluster.local:9083",
          "name" : "datacatalog.lineage_test_case_src",
          "type" : "TABLE"
        } ]
      }
    },
    "inputFacets" : { }
  } ],
  "outputs" : [ {
    "namespace" : "s3://datacatalog-db",
    "name" : "lineage_test_case_src_7",
    "facets" : {
      "dataSource" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet",
        "name" : "s3://datacatalog-db",
        "uri" : "s3://datacatalog-db"
      },
      "schema" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-1-1/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet",
        "fields" : [ {
          "name" : "c1",
          "type" : "string"
        } ]
      },
      "columnLineage" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-1-0/ColumnLineageDatasetFacet.json#/$defs/ColumnLineageDatasetFacet",
        "fields" : {
          "c1" : {
            "inputFields" : [ {
              "namespace" : "s3a://datacatalog-db",
              "name" : "/lineage_test_case_src",
              "field" : "c1",
              "transformations" : [ {
                "type" : "DIRECT",
                "subtype" : "IDENTITY",
                "description" : "",
                "masking" : false
              } ]
            } ]
          }
        }
      },
      "lifecycleStateChange" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-0-1/LifecycleStateChangeDatasetFacet.json#/$defs/LifecycleStateChangeDatasetFacet",
        "lifecycleStateChange" : "OVERWRITE"
      }
    },
    "outputFacets" : {
      "outputStatistics" : {
        "_producer" : "https://github.com/OpenLineage/OpenLineage/tree/1.19.0/integration/spark",
        "_schemaURL" : "https://openlineage.io/spec/facets/1-0-2/OutputStatisticsOutputDatasetFacet.json#/$defs/OutputStatisticsOutputDatasetFacet",
        "rowCount" : 10,
        "size" : 982
      }
    }
  } ]
}

Do you plan to make this contribution yourself?

[ ] I am interested in doing this work

cc @dolfinus

This is probably caused by InputFieldsCollector not using PlanUtils.fromPath / PathUtils.fromURI which performs namespace normalization:
https://github.com/OpenLineage/OpenLineage/blob/main/integration/spark/spark3/src/main/java/io/openlineage/spark3/agent/lifecycle/plan/column/InputFieldsCollector.java#L102
It also does not call NamespaceResolver, so if OL config contains hostname resolver like [my-host1, my-host2] -> my-cluster, it will be applied to dataset namespace, but not to namespace in the columnLineage facet.
I can add both of these calls to InputFieldsCollector, but I'm not sure if this fix all the issues, as there are a lot of places dataset namespace is formed or checked.
For example,
https://github.com/OpenLineage/OpenLineage/blob/main/integration/spark/spark3/src/main/java/io/openlineage/spark3/agent/lifecycle/plan/column/JdbcColumnLineageCollector.java#L64

I think the main problem is that column level lineage tries to extract dataset identifier from a leaf node via different code that other input dataset builders, although it tries to compute same thing that's already computed elsewhere as leaf logical nodes are already parsed to extract input datasets information. However reusing this is tricky, as we don't want to run all the input visitors and dataset builders again and those interfaces don't allow extracting dataset identifier only.
As a result, InputFieldsCollector is chasing the rabbit. Changing this looks like a substantial refactor like (1) include method in dataset builders to get only DatasetIdentifier from plan (2) implement it for all dataset builders (3) reuse in column level lineage (4) get rid of the if-else-chain
Refactoring here would be great, but fixing this only would also work.


Job needs template.metadata.labels for monitoring metrics (currently only put on Pod)

The jobTemplate.spec.template.metadata.labels in the steps of a Workflow manifest only become metadata.labels for the Pods that are created, not for the Jobs. When the same jobTemplate is used for a CronJob, they appear for both Pods and the Jobs.
The CronJob behavior seems correct to me. Having the labels appear on both Pods and Jobs is very useful for monitoring tools. I would like to use an app label on my Workflow steps to filter monitoring metrics in tools such as Prometheus (or DataDog, etc). It is possible to drill down to Pod metrics by the app label, since kube-state-metrics creates a kube_pod_labels that can be joined to metrics such as kube_pod_status_ready (matching by the pod and/or namespace name). It is not currently possible to drill down to Job metrics with my app label: although there is a kube_job_labels that can be joined to metrics such as kube_job_status_active, there is no label_app field for Workflow because there is no app label on the Job. (On the other hand, this does work for CronJob).
It's possible that the controller_util.go source file intended to do what I need in its func getJobLabelsSet. There is a loop to copy range template.Labels into the desiredLabels for the Job, but the code seems to be a no-op (a silent failure). I don't think that template.Labels is parsed from the Workflow manifest by low-level code.
(1) I don't see it in the spec.
(2) I've tried jobTemplate.labels, jobTemplate.spec.labels, jobTemplate.spec.template.labels, and jobTemplate.spec.template.metadata.labels in my Workflow manifests. None appear on the Jobs.
The latter (jobTemplate.spec.template.metadata.labels) do appear as Pod labels with both Workflow and CronJob, but they only appear as Job labels with CronJob. If func getJobLabelsSet were to use a different variable reference (perhaps range template.template.metadata.labels), I believe it would do what I need - apply the labels to Jobs as well as Pods. If you are interested in this enhancement, I can send a pull request when I get it to work.

SGTM too, happy to review a PR or to fix it. Thanks!

Pull request #68 contains my implementation.

Close this issue since pull request #68 has been merged.


Additional no match cases for EmptyCatch

Description of the problem / feature request:
EmptyCatch will skip matching when either (1) a comment or (2) a junit test is detected. It would be nice to extend this to a few more common patterns.
Feature requests: what underlying problem are you trying to solve with this feature?

If the exception is named ignored or expected. I believe this used to be part of the old Google Java style, which can be seen in Guava's JUnit tests. This would also match the behavior of PMD's EmptyCatchBlock rule.
Include detection of TestNG as skippable.

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
// Static initializer fallback from Unsafe => MethodHandles => ThreadLocal
StripedBuffer.java:290: warning: [EmptyCatch] Caught exceptions should not be ignored
      } catch (Throwable ignored) {}

// TestNG unit test, e.g. assert NPE is thrown
CaffeineTest.java:133: warning: [EmptyCatch] Caught exceptions should not be ignored
    } catch (NullPointerException expected) {}

What version of Error Prone are you using?
2.4.0

Looking at the style guide : https://google.github.io/styleguide/javaguide.html#s6.2-caught-exceptions
either the empty catch block should've comments with "exception" being test code where the exception name ok/expected/ignored etc are ok.
EmptyCatch check (at HEAD/master as of July 2020) doesn't not flag JUnit test code.
So for feature requests :

such code should've comments
I think check should be extended for TestNG.

#1730 should fix this issue

Thanks!


Citizens Jenkins doesnt work

[17:29:03 INFO]: [AutoUpdatePlugins] [STDOUT] Failed to download plugin from jenkins, https://ci.citizensnpcs.co/job/Citizens2/lastBuild/ , are you sure link is correct and in right format?https://ci.citizensnpcs.co/job/Citizens2/lastBuild/lastSuccessfulBuild/api/json

Hey @RyuguDev, try putting in this link https://ci.citizensnpcs.co/job/Citizens2/ instead of https://ci.citizensnpcs.co/job/Citizens2/lastBuild/

[08:05:21 INFO]: [AutoUpdatePlugins] [STDOUT] Citizens ---- https://ci.citizensnpcs.co/job/Citizens2/
[08:05:22 INFO]: [AutoUpdatePlugins] [STDOUT] Failed to download plugin from jenkins, https://ci.citizensnpcs.co/job/Citizens2/ , are you sure link is correct and in right format?https://ci.citizensnpcs.co/job/Citizens2/lastSuccessfulBuild/api/json

Hey @RyuguDev, I see what you are talking about now. So, it looks like the citizens Jenkins is structured differently than most other Ci Jenkins builds of other plugins; therefore, simply putting that link won't work. However, most other Jenkins of other plugins should work fine, such as Essentials, Authmereloaded, Luckperms, etc.. I will try to see if I can implement something for citizens in my free time, but I am not quite sure.

(TODO) Also add support for protocollib jenkins

@RyuguDev Sorry for taking so long, try this build out and let me know if it works as intended!

Almost all jenkins should work now.

Thanks, the build you Provided isnt downloadable btw. And: polymart isnt working too and the offical polymart Updater is overriding your plugin

Hey there, I have released the new version with this feature implemented. Please let me know if any issues arise.
Also, you are right about Polymart, there is currently no support for it, partly because there already exists the Polymart updater as you mentioned. However, I might consider adding support for it in the future!


Option to filter movies ListView could have been a great feature

Hi,
I just tried adding SearchBar control and filter the movies, I guess that could be a great feature if you can add.
N Baua

Hi @nbaua, this project has plenty of room for improvement for sure. Please, note that it's a port from a UWP project to Xamarin.Forms just for educational purposes. I've tried just to mimic the starting project, reusing code as most as possible. Please, feel free to make a fork and start doing your own improvements. Thanks for your suggestion.


Add config option to use accessible colors

Hi,
Your package is really great, thanks for making it. But, as a colorblind, one feature that I really like on the caniuse website is the possibility to switch the table colors to a more accessibles variants, which I can see with my eyes.
So I've added this feature in your package via a new setting, allowing your users to choose between the original colors (by default), and the accessible variant from the caniuse website, as in the screenshot below.

Hope you'll like (and merge) it, its a really useful feature for people like me :)
Regards,

Thats awesome!

Thank you!

You're welcome. The fun fact was that I was planning to make a caniuse package for Atom yesterday, then finding your package and thinking "ok, it's already done, I will use this... oops. colors." :smile:
Glad I can help. :+1:


Looping over tf.data.Dataset very slow compared to that of Numpy Array

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): N/A. Can be replicated in Google Colab
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): N/A
TensorFlow version (use command below): 2.2 and tf-nightly
Python version: 3.6.7 (Google Colab)
Bazel version (if compiling from source): N/A
GCC/Compiler version (if compiling from source): N/A
CUDA/cuDNN version: N/A
GPU model and memory: N/A

Describe the current behavior: For-Loop over samples of a tf.data.Dataset is much slower (almost 500 times) than looping over the corresponding numpy array.
Describe the expected behavior: Looping over tf.data.Dataset shouldn't take so long.
Standalone code to reproduce the issue: This is the Colab link to reproduce the issue.
import numpy as np
import tensorflow as tf
import time

print(tf.__version__)

a = np.ones(100000, dtype=np.float32)

start_time = time.time()
for x in a:
    pass
print(time.time() - start_time)

start_time = time.time()
for x in tf.data.Dataset.from_tensor_slices(a):
    pass
print(time.time() - start_time)

Hi @rakeshmothukuru1, try wrapping your code in a @tf.function and the time should be almost the same for both loops. @tf.function will use autograph to transform your Python Eager code into graph-compatible TensorFlow ops.

@rakeshmothukuru1
As @nikitamaia suggested try wrapping your code in @tf.function and you will see better performance or almost same performance with tf.data.Dataset than Numpy array.Please, find the gist here.Please, verify once and close this issue if you feel your query has been answered.Thanks!

if that print inside of the function is only executed during tracing, is it really measuring the time spend in the loop? or is it just measuring the time it takes to construct a part of the graph?

This code addresses different ways (not too different though) to check the performance, they all return similar times
https://colab.research.google.com/drive/1NGQ-_f75s-8KG8elNZrGYqjtnyUsOfV4#scrollTo=1MZTQH_IumI7


Simplifying commit/reset information retrieval in RowMerger.

There was a duplicate check in RowMerger to confirm that the RowStatus is the right type.  That check happens in the java proto object already.

LGTM


UX: Some frontend changes

Hey :hand:
Me again :smile: I changed some stuff on the frontend, so it looks more clear from my point of view.
Changes I did:

////////////

////////////

Also pinned the footer to the bottom now so the page is always 100% height of the screen.

Awesome! Also approved and deploying right now.


Proposed API JSON response format

Success
{"status": "success", "data": { ... }}

Error
Instead of:
echo '{"block_num_or_id": 9999}' | curl http://<IP_ADDRESS>:8888/v1/chain/get_block -d @-
unknown block

Return valid JSON:
Example 1
echo '{"block_num_or_id": 9999}' | curl http://<IP_ADDRESS>:8888/v1/chain/get_block -d @-
{"status": "error", "message": "unknown block"}

Example 2
If a per-field error is desirable, this is another format:
echo '{"block_num_or_id": 9999}' | curl http://<IP_ADDRESS>:8888/v1/chain/get_block -d @-
{"status": "fail", "data": {"block_num_or_id": "unknown block"}}

From: https://stackoverflow.com/questions/12806386/standard-json-api-response-format
See JSend: http://labs.omniti.com/labs/jsend#Sohowsitwork

Instead I can work with the existing code.  I believe this should work: if I see a response status code within response.status >= 200 && response.status < 300 I'll parse it as a successful JSON reply.  Otherwise I'll treat the string as an error.


update proptypes

Coverage remained the same at 100.0% when pulling 8c55dc1fd28f3f35d9c6a93356805ed11a3ee92a on pre-build into b51c79fe3200f52c935d1aa5bc4be2377972c760 on master.

Coverage remained the same at 100.0% when pulling 8c55dc1fd28f3f35d9c6a93356805ed11a3ee92a on pre-build into b51c79fe3200f52c935d1aa5bc4be2377972c760 on master.

Coverage remained the same at 100.0% when pulling 8c55dc1fd28f3f35d9c6a93356805ed11a3ee92a on pre-build into b51c79fe3200f52c935d1aa5bc4be2377972c760 on master.


update devlab hostname url

This reverts a change to an incorrect hostname.

These URLs are wrong.  Please see PR #3076 for the correct URLs.


Make load_city() work with CityJSON

I expect the following to work:
city = load_city("DenHaag_01.city.json")

Now gives the following error message:
$ python quantities.py
2024-02-19 09:59:42,640 [dtcc-io] [INFO] Loading city (City) from DenHaag_01.city.json
2024-02-19 09:59:42,655 [fiona._env] [ERROR] `DenHaag_01.city.json' not recognized as a supported file format.
Traceback (most recent call last):
  File "fiona/ogrext.pyx", line 136, in fiona.ogrext.gdal_open_vector
  File "fiona/_err.pyx", line 291, in fiona._err.exc_wrap_pointer
fiona._err.CPLE_OpenFailedError: 'DenHaag_01.city.json' not recognized as a supported file format.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/dtcc_io/city.py", line 98, in _load_fiona
    f = fiona.open(filename)
        ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fiona/env.py", line 457, in wrapper
    return f(*args, **kwds)
           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fiona/__init__.py", line 292, in open
    colxn = Collection(
            ^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fiona/collection.py", line 243, in __init__
    self.session.start(self, **kwargs)
  File "fiona/ogrext.pyx", line 588, in fiona.ogrext.Session.start
  File "fiona/ogrext.pyx", line 143, in fiona.ogrext.gdal_open_vector
fiona.errors.DriverError: 'DenHaag_01.city.json' not recognized as a supported file format.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/logg/scratch/dtcc/dtcc/sandbox/quantities.py", line 6, in <module>
    city = load_city("DenHaag_01.city.json")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dtcc_io/city.py", line 193, in load
    return generic.load(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dtcc_io/generic.py", line 27, in load
    return formats[type][path.suffix](path, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dtcc_io/city.py", line 101, in _load_fiona
    raise ValueError(f"File {filename} is not a valid file format")
ValueError: File DenHaag_01.city.json is not a valid file format

its in the new_data_model branch


Unboxing of mainPrefs.getBooleanValue() may produce "NullPointerException"

When I use the Boolean type in my MainPrefs class Android Studio gives me the following probable bug with a warning
Unboxing of mainPrefs.getBooleanValue() may produce "java.lang.NullPointerException"
How should I make sure it won't produce any NullPointerException

Put a default value on your property (for instance @DefaultBoolean(false)).

@BoD Thank you this resolved the issue :+1:


Remove now unused lang_items feature in IO primitives

This is a drive-by fix as I'm slowly digging into the code.
We don't use any explicit #[lang = ...] items anymore (panic_fmt is replaced with now-stable #[panic_implementation], OOM is handled via alloc_error_handler feature directly etc.), so I thought it'd be good to remove it for clarity to limit used nightly features.

This is based on latest master now, I believe https://github.com/paritytech/substrate/pull/4597 should fix the breakage there once it's merged

It is merged now :)

Thanks, rebased just now!


Hello, my 1.2 version of obkey is almost here

Hello, i made a couple of consequents modifications (in terms of GUI) in my fork :

the action is shown directly  on the main pane
the actions are structured in the action pane
(  "duplicate" and "paste as child" buttons added  )

If these modifications, my code and versioning infos seems to be pertinent for you,
i'll be happy you merge this version to yours.
Best regards
Luffah

Thanks for the contribution!


How to hide tooltip in tableview cell while scrolling tableview

I have tried many ways but did not works for me. I am able to hide when close the view controller but can not hide while scrolling tableview.
Thanks in advance.

use scrollviewdidscroll method  like this
func scrollViewDidScroll(_ scrollView: UIScrollView) {
self.tipView?.dismiss()
}


chore: add progress log into x/collection import-genesis

Description

This patch would add progress logs into x/collection import.
Motivation and context

The x/collection genesis candidate is very huge, so it would be helpful to have progress reports.
Checklist:

[x] I followed the contributing guidelines and code of conduct.
[x] I have added a relevant changelog to CHANGELOG.md
[ ] I have added tests to cover my changes.
[ ] I have updated the documentation accordingly.
[ ] I have updated API documentation client/docs/swagger-ui/swagger.yaml

How is this progress printed?

How is this progress printed?

...
2023/03/21-15:16:12.373 INF Starting import contract ... module=x/collection
2023/03/21-15:16:12.373 INF Progress: 33% module=x/collection
2023/03/21-15:16:12.373 INF Progress: 66% module=x/collection
2023/03/21-15:16:12.373 INF Done import contract module=x/collection
...


Installation problem

librealsense
2.50.0 RELEASE

OS
Windows

Please provide a description of the problem
I install but it still asks me to add the real sense which is already plugged in via usb

Hi @Olaniyi117  Please check in the Windows camera privacy settings whether permission to access the camera hardware and permission for applications to access the camera are both set to 'On'.  You can do this using the instructions at https://github.com/IntelRealSense/librealsense/issues/3381#issuecomment-503424789

yes, the window camera privacy is turn on and still I have the same problem
On Wed, Aug 3, 2022 at 1:48 AM MartyG-RealSense @.***>
wrote:

Hi @Olaniyi117 https://github.com/Olaniyi117 Please check in the
Windows camera privacy settings whether permission to access the camera
hardware and permission for applications to access the camera are both set
to 'On'. You can do this using the instructions at #3381 (comment)
https://github.com/IntelRealSense/librealsense/issues/3381#issuecomment-503424789
—
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/10742#issuecomment-1203552292,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFCHQ7D246VXP3QP6WUT7TLVXII4LANCNFSM55M3BHMQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Do you experience the same problem if you install the previous RealSense Viewer version 2.49.0 please?
You can install a standalone executable version of this Viewer by visiting the link below, going to the 'Assets' file list and then
downloading and running the Intel.RealSense.Viewer.exe file.
https://github.com/IntelRealSense/librealsense/releases/tag/v2.49.0
You can either run this program by left-clicking on its download tab at the bottom of the browser once download has completed or by going to the Downloads folder of your user documents on Windows and launching it with a double-leftclick (the launch shortcut icon on the Windows desktop will launch the 2.50.0 Viewer instead of the downloaded 2.49.0 one).

Hi @Olaniyi117  Do you require further assistance with this case, please?  Thanks!

Yes i experience the same problem even with 2.49.0
On Wed, Aug 3, 2022 at 12:08 PM MartyG-RealSense @.***>
wrote:

Do you experience the same problem if you install the previous RealSense
Viewer version 2.49.0 please?
You can install a standalone executable version of this Viewer by visiting
the link below, going to the 'Assets' file list and then
downloading and running the Intel.RealSense.Viewer.exe file.
https://github.com/IntelRealSense/librealsense/releases/tag/v2.49.0
You can either run this program by left-clicking on its download tab at
the bottom of the browser once download has completed or by going to the
Downloads folder of your user documents on Windows and launching it with a
double-leftclick (the launch shortcut icon on the Windows desktop will
launch the 2.50.0 Viewer instead of the downloaded 2.49.0 one).
—
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/10742#issuecomment-1204241354,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFCHQ7GA6FV76UHMX7IRA7DVXKRQZANCNFSM55M3BHMQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

What is your RealSense camera model name (D415, D435, D455, etc)

L515
On Thu, Aug 11, 2022 at 2:40 AM MartyG-RealSense @.***>
wrote:

What is your RealSense camera model name (D415, D435, D455, etc)
—
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/10742#issuecomment-1211649613,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFCHQ7FN4QBTVBCEGA4SDZ3VYSU6TANCNFSM55M3BHMQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thank you.  Is the camera able to display streams if you try the rs-capture example program, please?  If you have installed the full RealSense SDK on Windows by downloading and running the installer file Intel.RealSense.SDK-WIN10 then you can run a pre-made executable version of rs-capture using the instructions at https://github.com/IntelRealSense/librealsense/issues/8024#issuecomment-747630656

Hi @Olaniyi117  Do you have an update about this case that you can provide, please?  Thanks!

Hi @Olaniyi117  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Enhance : Ui of the section below the blog section.

Feature description
I would like to change the UI of this section.

So, please assign this issue to me under Gssoc'23.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

I am interested to work on this issue under GSSoC 2023 as a contributor

Please assign this to me under GSSOC. I will redesign the UI/UX of this page with amazing animations and chatbot integration exclusively for blog purposes.


Add docs.rs/rustc redirect.

This adds a redirect from docs.rs/rustc to the nightly rustc docs.
rustc is a reserved crate name and will not appear on crates.io: https://github.com/rust-lang/crates.io/blob/master/migrations/20170305095748_create_reserved_crate_names/up.sql
Unlike the redirects for std, core, etc., this uses nightly rather than stable, because all development on rustc is happening on nightly. (And also https://doc.rust-lang.org/stable/nightly-rustc/ looks a bit confusing. :P)

This would fix https://github.com/rust-lang/docs.rs/issues/79.
Can you also add rustdoc at the same time? It's also reserved: https://github.com/rust-lang/crates.io/blob/b070d14df6696d4eb868bc8d26c0c1fd6257f97c/migrations/20170305095748_create_reserved_crate_names/up.sql#L11
Ideally this would add all the tools that are hosted (clippy and rustfmt too), but they don't seem to be reserved; in fact there are crates already published for both: https://docs.rs/crate/rustfmt/0.10.0, https://docs.rs/crate/clippy/0.0.302.


error while loading shared libraries: libatomic.so.1

After updating the ETS2 server I get this error: /app/bin/linux_x64/eurotrucks2_server: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
The required dependencies are already installed.
The ATS server has not yet been updated and it starts without any problems.
I user ubuntu 20.04 (if it matters).
Is this a server problem?

I have the same problem. After some back and forth (trying to get to 1.50) the error has not occurred recently. But 1.50 still doesn't work.

I was able to start both ATS and ETS servers.
As a temporary solution I added GCC to Dockerfile to be installed with apt (it was missing some library that was included in gcc) and I also copied libfmod.so.13 and libfmodstudio.so.13 that someone uploaded on SCS forums - supposedly it is in linux version of ETS.

Now I tested public_beta and public. In both version this error occurred. But I changed now to temporary_1_50 and the server starts without problems.

Since I cant really automate the download of libfmod (requires acc) and don't want to rely on external download servers which might not be legit I think I can't release a fix for this. SCS needs to rework the server binaries to not require libfmod. Why would that be needed...
Adding libatomic is not a big problem as you also pointed out. Just installing libatomic1 solves that.
Afterwards l also encountered a missing libX11.so.6 but that was fixed after installing libx11-dev.
So currently you'll have to patch your own server with libfmod and we'll wait for 1.51 (or 1.50.1).

I can offer to push a 1.50 tagged image with libatomic1 and libx11-dev installed so you only need to provide libfmod yourself?

I got problems to install it because the server reboots permanently and there is no stable connection possible.
I also wondering, why the temporary_1_50 is a 1.49s server

I got problems to install it because the server reboots permanently and there is no stable connection possible.

You can change the entrypoint to sleep and the command to infinity.

A 1.50 image would be great. But I think this will not serve the required server version. Did you checked this?

That is correct the server would still be downloaded dynamically and the version is not fixed to 1.50.
I can however set the default to download 1.50 automatically. Although it seems temporary_1_50 is not what is says... (See https://github.com/LsHallo/ets2-dedicated-convoy-server/issues/21#issuecomment-2113264882) So no idea how to fix the version number to 1.50.

I got problems to install it because the server reboots permanently and there is no stable connection possible.

You can change the entrypoint to sleep and the command to infinity.

A 1.50 image would be great. But I think this will not serve the required server version. Did you checked this?

That is correct the server would still be downloaded dynamically and the version is not fixed to 1.50. I can however set the default to download 1.50 automatically. Although it seems temporary_1_50 is not what is says... (See #21 (comment)) So no idea how to fix the version number to 1.50.

I will try this but I think not today.

I also can't really test today. That update is still downloading and won't be finished soon. My amazing internet strikes once again.
The plan for tomorrow is to create a temp fix container with libatomic and libx11 and provide instructions how to deploy ets2 1.50 with libfmod downloaded from their website. I also have the server working now. It reports 1.50s after startup. Only I can't test if I can connect from in game...

I tried going into the container and installing the libraries manually. The application started to launch. Only now I get an error saying that the server_packages files were not found, although they actually exist.

It worked. I could connect to the server without problems.

I have create ats and ets2 server images with libatomic1 and libx11-6 installed.
They are tagged 1.50 on docker hub.
To use them you still need to download libfmod from their website (registration required) or some sketchy forum link and place it next to the binary or in LD_LIBRARY_PATH. Alternatively you can download ets2/ats on your linux desktop and copy the libs from there.
I would do the following:

Change your image to lshallo/ets2-convoy-server:1.50
Mount /app on your host file system: -v /opt/ets2/app:/app
Make sure the host folder has owner 1000: chown -R 1000:1000 /opt/ets2/app
Start the container and let it download the server.
Stop the server
Copy the libfmod and libfmodstudio files to /opt/ets2/app/bin/linux_x64
Start the server and enjoy

It seems they have updated the image and libfmod is no longer required. I'm going to update the image to include libatomic and libx11. My server starts with that config without libfmod.


Issue with oneblock reseting

The number for the block leveling up is 6500 but after I put in the info command i was at 5000 i took a break came back and it was 6200

Is this still an issue?

Is this still an issue?

yes it does. The Count still reset after sever restarting


Write python example scripts and add Documentaition

Create 4 example python scripts:

queue.py covering queue code
jobs.py covering basic jobs code
monitor.py covering how to monitor jobs and jobsets
priority.py covering how to change the priority of a job.

Also create a README within an examples folder with more infomation, like what is done here

Also examples of:

canceling jobs
using job sets


Handling references to upstream documentation in SDK

After the integration of Operator SDK with Kubebuilder, there are many areas in the SDK tool where upstream implementation is re-used. Since there is sufficient documentation already available upstream, we redirect users to refer upstream docs. Though it is not reasonable to rewrite or explain the already existing upstream concepts, it is an inconvenient experience for users to frequently context switch. Also sometimes the examples presented upstream are different than what we have currently in our docs which makes it difficult to follow.
A solution for this would be to first explain briefly about the concept and then direct users upstream. If required it would also be helpful to have examples, especially when the upstream docs use a different sample operator.
The extent to which we explain the concept in our docs and then direct upstream is completely dependent on its complexity. Some of the places which require more explanation in SDK doc's site are:

Scaffolding and creating webhooks: https://sdk.operatorframework.io/docs/building-operators/golang/tutorial/#manager
How Operator-SDK handles metrics: https://sdk.operatorframework.io/docs/building-operators/golang/advanced-topics/#metrics
Handling migration from single group to multi group projects: https://sdk.operatorframework.io/docs/building-operators/golang/advanced-topics/#metrics
Examples for writing controller-tests using envtest framework: https://sdk.operatorframework.io/docs/building-operators/golang/migration/#migrate-your-tests

I'd like to add a point of view to this as I'm currently working through Operator SDK migration from v1.2.0 to v1.3.2. The Operator SDK's 1.3.0 migration guide points to upstream kubebuilder migration docs, which recommend creating a new v3 project with kubebuilder and copying over controller/api code into the new project.
As an Operator SDK user, I'm confused because I scaffolded and manage my project with operator-sdk, yet the migration guidance essentially states that to migrate kubebuilder v2 -> v3 I should scaffold a new project with kubebuilder CLI instead.
Should I instead use operator-sdk at v1.3.2 to scaffold my project?
I certainly understand the value in leaning on upstream documentation where possible in the Kubernetes ecosystem, but this is an example where I think it would be better for the Operator SDK documentation to provide more prescriptive guidance on migration.

Created proper doc for create admission webhook. It got merged as part of PR #5019


JupyterBook gallery

Here's a nice gallery of JupyterBooks from across the community:
https://executablebooks.org/en/latest/gallery.html
Let's get Foundations listed there! (Though I would love to resolve #176 first!)

I went ahead and submitted a PR to add Foundations to that gallery: https://github.com/executablebooks/meta/pull/666

It's visible now at https://executablebooks.org/en/latest/gallery.html
Do we like how this looks? We don't have a logo or simple graphic for Foundations, so I just used the white-on-black Pythia logo.

LGTM!

As discussed at today's IWG, I will submit a new PR to change the logo to the version that's blue-on-white (or actually on transparent) that includes the text "Project Pythia".
Logos are found on the Pythia shared google drive.


Please add Diamond and Prosperity cost for ATM8

What do you mean by diamond/prosperity cost? The infusion crystals?


'PatchEmbed' object has no attribute 'strict_img_size'

Describe the bug
When create an Encoder that is VisionTransformer-based and uses and PatchEmbed layer. It raises the following error during the forward step:
'PatchEmbed' object has no attribute 'strict_img_size'
Desktop (please complete the following information):

OS: [e.g.  Ubuntu 22.04]
This repository version [e.g. pip 0.3.1 or commit ref]
PyTorch version 2.2.1 without cuda  [e.g. from virtual environment (not conda) with python==3.10.12]
Additional context
Add any other context about the problem here.

@MuatazMohammed you have multiple or mixed timm versions  in your environment or you are restoring a torch pickle checkpoint of the full model and not state dict


refactor: make hooks dir cleaner

From

to

It was clean as you expected when the package was born but we came across the problem below 😅

Solve the problem of [Wishlist: support for ES6 modules. #14].
https://github.com/legend80s/commit-msg-linter/issues/14

@legend80s Adding #!/usr/bin/env -S sh -c "cat commit-msg | node --input-type=commonjs" on the top of commit-msg can support "type": "module" project. Please review it again.

It is great! Published +<EMAIL_ADDRESS>

@zanminkian Please look into this issue https://github.com/legend80s/git-commit-msg-linter/issues/35.


Tests for editions and suggestions routers

Tests for editions and suggestions routers.
Small bugfixes to editions router. #439
Test for showInList fails because router doesn't work yet. #438

@Vital7788 When will this pull request be ready. I need the ProjectGenerator for testing the next largest router (Participation tests).

Tests have been updated and #522 has been fixed.

I forgot to mention this in the review but i'd also like to ask that when you create a DataGenerator you also use this Generator in ddd to make ddd more readable and easier to change.

Increasing code coverage will be done in another PR.
Other requested changes have been made.


Column attribute in getColumns()

Hi there,
I was just wondering if there's any way to get data from attributes in the Columns.cs?
Such as something like this suedo code (Example not related to what I'm actually trying to do):
Columns.cs
        [ColumnColor("ff0000")]
        public DateTime Date { get; set; }

Grid.ts
        protected getColumns() {
            var columns = super.getColumns();
            var dateColumnColor = Q.first(columns, x => x.field === "Date").sourceItem["columnColor"];
            return columns;
        }

Thanks, suggestions appreciated.

You should write a formatter, that accepts a color option

Hi Volkanceylan,
Hope you're having a nice day, thanks for your response. Unfortunately, I couldn't use a formatter in this situation as I was already using a formatter in the Grid.ts which referenced variables from within the class.
I managed to find another way to do what I needed though, thank you for your time.


support "epoch" command in .rev files

This change allows users to use either -e or epoch to run epoch commands in .rev files.
Equivalent commands:
-e 10 -> epoch 10
-e -> epoch

Hey @RockHoward, let me know your thoughts. I feel this is a bit more consistent (discovered while working on the VSCode extension).


Use camelCase instead of snake_case per Golang convention

Use camelCase instead of snake_case per Golang convention.

This change is

/lgtm
ping @Random-Liu

/assign @thockin

@kubernetes/sig-node-pr-reviews Why did nobody in node approve this?  There MUST be an OWNERS file that has SOMEONE other than me?  @dashpole
/approve no-issue

/approve no-issue

Does this repo need manual merge?

@thockin Yeah this repo need manual merge.
And the only owners are Dawn and me I think. We don't have too much bandwidth for this repo at this moment. :(
This change LGTM.


Docs: Missing Installation Step

In the Quickstart documentation page, the instructions assume that the reader has orchid-orm installed globally - as such the installation step is missing:
npm i orchid-orm # or yarn|pnpm add orchid-orm
It may be obvious for seasoned developers, but may present a problem for newbies.

@djamez sorry for the late reply, no, it doesn't have to be installed globally, so the Quickstart shows that it should be added to package.json dependencies.
Could you please point out where exactly the place in the docs that is confusing?

It's true that the package.json code-block includes orchid, but the first example in quickstart could be enhanced a little:
mkdir project
cd project

+ npm init -y                        # or yarn|pnpm init
+ npm install orchid-orm   # or yarn|pnpm add orchid-orm

npx orchid-orm
# or if you're using pnpm
pnpm dlx orchid-orm```

This little addition just adds a bit of clarity, that's all. A fairly knowledgeable Node developer should be able to figure it out easily, but new users...

The goal was to have as few steps as possible, and there is no need for the steps that you're suggesting.
Let me know if it does not work for you without those steps, for me it works fine.

The script that you run by npx orchid-orm asks for a path (didn't ask before). If it's a new path it will create a new package.json in there with all the needed dependencies. And if it's an existing project, it will add missing dependencies.
A user only needs to cd to the path, run npm i, set database creds in .env, and create a new db with npm run db create, unless already created or cloud-hosted, and all is ready to go.


⚠ Fortnite has degraded performance

In 68d6450, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1531 ms

Resolved: Fortnite performance has improved in 4b6aaac.


Doctests are broken

After moving the image related code into its own submodule, doctest builds on travis are completely broken with sphinx reporting that there is no module stylo.images
/home/travis/build/alcarney/stylo/docs/developing/reference/channel.rst:4: WARNING: autodoc: failed to import class 'Channel' from module 'stylo.interpolate'; the following exception was raised:
Traceback (most recent call last):
  File "/home/travis/virtualenv/python3.5.4/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 658, in import_object
    __import__(self.modname)
  File "/home/travis/virtualenv/python3.5.4/lib/python3.5/site-packages/stylo/__init__.py", line 10, in <module>
    from .images import Image
ImportError: No module named 'stylo.images'

But i have no such issue on my local machine

The docstests in question no longer exist, so this issue is redundant


swap failed

Swap failed: [ethjs-query] while formatting outputs from RPC '{"value":{"code":-32603,"data":{"code":-32603,"message":"Internal Error - Exceeded the maximum amount of gas allowed to burn per contract.. Please report a bug at https://github.com/aurora-is-near/aurora-relayer/issues","data":{"host":"mainnet.aurora.dev","cf-ray":"6a0307d806161f9f-ORD"}}}}'

duplicate issue https://github.com/aurora-is-near/aurora-relayer/issues/60


[help wanted]: Unable to control multiple sidebars within one Sidebar provider

Describe the bug
I would like to have 2 or 3 sidebars within my project using the shadcn-ui sidebar component. Firstly, its possible to display them as they should look, for example:

What i discovered is that only one Sidebar provider can be used to display the sidebars, i have tried using multiple Sidebar providers for each sidebar but they all return a weird space on the page, but i wont show that right now. What I need help with is this: here is my code with nothing much going on, only displaying the sidebars in the positions I want them.

I want to be able to toggle the open states of each sidebar individually, but that is not working. for context, if i set the collapsible for all of them to "icon", they will all collapse into the icon state on the click of a single trigger found within the SidebarProvider
![image](https://github.com/user-att
Affected component/components
Sidebar, SidebarProvider
How to reproduce
Copy and paste this basic component:
import {
	Sidebar,
	SidebarHeader,
	SidebarInset,
	SidebarMenu,
	SidebarMenuButton,
	SidebarMenuItem,
	SidebarProvider,
	SidebarTrigger,
} from "../components/ui/sidebar";
import { Command } from "lucide-react";
import { Separator } from "../components/ui/separator";

const Sandbox = () => {
	return (
		<SidebarProvider>
			{/* sidebar 1 */}
			<Collapsible />

			{/* sidebar 2 */}
			<Channels />

			<SidebarInset>

					{/* toggle the Collapsible */}
					<button>Co</button>
					<Separator orientation="vertical" className="mr-2 h-4" />
					{/* toggle the Channels */}
					<button>Ch</button>
					<Separator orientation="vertical" className="mr-2 h-4" />
					{/* toggle the Right */}
					<button>R</button>
					<SidebarTrigger className="-ml-1" />

						{Array.from({ length: 10 }).map((_, index) => (

						))}

					{/* sidebar 3 */}
					<Right />

			</SidebarInset>
		</SidebarProvider>
	);
};

export default Sandbox;

const Collapsible = () => {
	return (
		<Sidebar collapsible="icon" className="border-r bg-blue-600 z-50">
			<SidebarTrigger />
			<SidebarHeader>
				<SidebarMenu>
					<SidebarMenuItem>
						<SidebarMenuButton
							size="lg"
							asChild
							className="md:h-8 md:p-0"
						>

									<Command className="size-4" />

										Acme Inc

										Collapsible Sidebar

						</SidebarMenuButton>
					</SidebarMenuItem>
				</SidebarMenu>
			</SidebarHeader>
		</Sidebar>
	);
};

const Channels = () => {
	return (
		<Sidebar collapsible="icon" className="border-r bg-red-400">
			<SidebarHeader>
				<SidebarMenu>
					<SidebarMenuItem>
						<SidebarMenuButton
							size="lg"
							asChild
							className="md:h-8 md:p-0"
						>

									<Command className="size-4" />

										Acme Inc

										Channels Sidebar

						</SidebarMenuButton>
					</SidebarMenuItem>
				</SidebarMenu>
			</SidebarHeader>
		</Sidebar>
	);
};

const Right = () => {
	return (
		<Sidebar
			collapsible="icon"
			side="right"
			className="border-l bg-green-400"
		>
			<SidebarHeader>
				<SidebarMenu>
					<SidebarMenuItem>
						<SidebarMenuButton
							size="lg"
							asChild
							className="md:h-8 md:p-0"
						>

									<Command className="size-4" />

										Acme Inc

										Right Sidebar

						</SidebarMenuButton>
					</SidebarMenuItem>
				</SidebarMenu>
			</SidebarHeader>
		</Sidebar>
	);
};

Codesandbox/StackBlitz link
No response
Logs
No response
System Info
OS: Linux Mint 22
Browser: Microsoft Edge Browser
React Version: 19

Before submitting

[X] I've made research efforts and searched the documentation
[X] I've searched for existing issues

Hi @JolomiTee, did you find anything on this problem? I have the same problem as you. If I open one sidebar the other one gets opened too.

@Jomo178 the only way I know of is to have a SidebarProvider wrapped around each individual sidebar instead of the whole App. Doing that, you can set individual widths, collapsible state too and most of all, control them individually.
The only downside I have seen with this is that it takes away the mobile responsiveness of the sidebar... Whereby the Sheet component doesn't come out anymore.
This might be due to my many tweakings of the sidebar.tsx file which I had to do to get what I wanted to achieve.

Another option is to track each sidebar via an id on the provider and then you can track/toggle specific matching sidebars/toggles
You would need to make the state a bit more complex but it's definitely doable

@Jacksonmills you're right! The sidebar state is safed via cookies. So just change the SidebarProvider to take a custom name and you can controll them one by one. Change the setOpen so open via the custom name and not the setted cookie name. Hope this helps. @JolomiTee
const SidebarProvider = React.forwardRef<
  HTMLDivElement,
  React.ComponentProps<"div"> & {
    defaultOpen?: boolean;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    name: string;
  }
>(
  (
    {
      defaultOpen = true,
      open: openProp,
      onOpenChange: setOpenProp,
      className,
      style,
      children,
      name,
      ...props
    },
    ref
  ) => {
    const isMobile = useIsMobile();
    const [openMobile, setOpenMobile] = React.useState(false);

    // This is the internal state of the sidebar.
    // We use openProp and setOpenProp for control from outside the component.
    const [_open, _setOpen] = React.useState(() => {
      const cookieValue = document.cookie
        .split("; ")
        .find((row) => row.startsWith(`${name}:state=`))
        ?.split("=")[1];
      return cookieValue === "true" ? true : defaultOpen;
    });
    const open = openProp ?? _open;
    const setOpen = React.useCallback(
      (value: boolean | ((value: boolean) => boolean)) => {
        const openState = typeof value === "function" ? value(open) : value;
        if (setOpenProp) {
          setOpenProp(openState);
        } else {
          _setOpen(openState);
        }

        // This sets the cookie to keep the sidebar state.
        document.cookie = `${name}:state=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
      },
      [setOpenProp, open, name]
    );

//Rest of the sidebar code..

//Example
 <SidebarProvider name="YOURE SIDEBAR NAME">
        <Sidebar variant="floating" collapsible="icon" side="right">
          <SidebarContent>
          </SidebarContent>
       </Sidebar>
</SidebarProvider>

Thanks, @Jomo178 and @Jacksonmills, I will try it out and get back as soon as i can

@Jomo178 @Jacksonmills
I was able to adjust mine with the solution @Jomo178 implemented.
So from the screenshot below, I have wrapped each sidebar with the Provider, passed unique names to each, and then put the SidebarTrigger within the Sidebar and with that, each one is isolated and controlled individually

What I want to test out now is how it works on mobile... because right now, it all disappears.. likely into the sheet form, waiting to be triggered and there is no way to trigger it yet with my current UI :)

can you post sample code for this which is working. my two leftside sidebars overlap.

@atmnksd here is a Stackblitz link containing my implementation.
The key takeaways here are these:

The ui/sidebar.tsx file has been modified in some parts. The important part is the one given by @Jomo178 regarding setting cookie names

@Jacksonmills, you're right! The sidebar state is safe via cookies. So just change the SidebarProvider to take a custom name and you can control them one by one. Change the setOpen so open via the custom name and not the setted cookie name. Hope this helps. @JolomiTee
const SidebarProvider = React.forwardRef<
  HTMLDivElement,
  React.ComponentProps<"div"> & {
    defaultOpen?: boolean;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    name: string;
  }
>(
  (
    {
      defaultOpen = true,
: openProp,
      onOpenChange: setOpenProp,
      className,
      style,
      children,
      name,
      ...props
    },
    ref
  ) => {
    const isMobile = useIsMobile();
    const [openMobile, setOpenMobile] = React.useState(false);

    // This is the internal state of the sidebar.
    // We use openProp and setOpenProp for control from outside the component.
    const [_open, _setOpen] = React.useState(() => {
      const cookieValue = document.cookie
      .split("; ")
       .find((row)=> row.startsWith(`${name}:state=`))
        ?.split("=")[1];
      return cookieValue === "true" ? true : defaultOpen;
    });
    const open = openProp ?? _open;
    const setOpen = React.useCallback(
      (value: boolean | ((value: boolean) => boolean)) => {
        const openState = typeof value === "function" ? value(open) : value;
        if (setOpenProp) {
          setOpenProp(openState);
       } else {
          _setOpen(openState);
        }

        // This sets the cookie to keep the sidebar state.
        document.cookie = `${name}:state=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
      },
      [setOpenProp, open, name]
    );

Rest of the sidebar code.

//Example
 <SidebarProvider name="YOURE SIDEBAR NAME">
        <Sidebar variant="floating" collapsible="icon" side="right">
          <SidebarContent>
          </SidebarContent>
       </Sidebar>
</SidebarProvider>

I have seen that to control each sidebar individually, you have to have each one within its own SidebarProvider.
To control the toggle state of the sidebar both on mobile and desktop, you have to make sure the toggleSidebar hook is called within the SidebarProvider which, for the sake of knowing what I'm doing, splits the providers and the sidebars into different components.

So there you have it, feel free to modify the code to your liking, this is what worked for me in my local sandbox testing

Even though I can control these separate sidebars, I still have the weird spacing issue if I use 2 SidebarProvider together. If someone has a fix please let me know.

Hi @DevanceJ, could you provide me an example or a snippet of your code?

@Jomo178 @Jacksonmills I was able to adjust mine with the solution @Jomo178 implemented.
So from the screenshot below, I have wrapped each sidebar with the Provider, passed unique names to each, and then put the SidebarTrigger within the Sidebar and with that, each one is isolated and controlled individually

What I want to test out now is how it works on mobile... because right now, it all disappears.. likely into the sheet form, waiting to be triggered and there is no way to trigger it yet with my current UI :)

thanks for these posts @Jomo178 & @JolomiTee
just a quick question - doesn't this stackblitz have a bug? (not setting the cookie if the state is externally controlled)
really appreciate the help though, i wouldn't have got to this!

Even though I can control these separate sidebars, I still have the weird spacing issue if I use 2 SidebarProvider together. If someone has a fix please let me know.

I think it's the sidebar triggers. If you put them in the actual sidebar and absolutely position them you won't have the issue. Or at least that worked for me

3. sidebar both on mobile and desktop, you have to make sure the toggleSidebar hook is called within the SidebarProvider which, for the sake of knowing what I'm doing, splits the p

Hi JolomiTee,
I'm just having a bit of a play with your stackblitz demo (thanks!) and was just wondering - how are you getting the right hand sidebar to close to the right? It seems like it's based on the content in the component to the left? (ie if you remove that content, the sidebar no longer sticks to the right hand side?)
I'm basically just trying to have 2 sidebars, one on the left, one on the right, and have the content in the middle move out of the way of each menu. But it's proving difficult! (open and close states are all fine though thanks :))
If you get a sec I'd really appreciate any help you can give!
Thanks,
Nick

Hey @NickWoodward, the right sidebar closes to the right because there is a direction based prop passed to the sidebar that defines the direction the sidebar closes into which is the side="right" passed to the Sidebar component. I think it default to left.

Hey @NickWoodward, the right sidebar closes to the right because there is a direction based prop passed to the sidebar that defines the direction the sidebar closes into which is the side="right" passed to the Sidebar component. I think it default to left.

haha, can't believe i missed that - have been using it in my demos all day but just didn't see it in your code. thanks a lot!

Hey @NickWoodward, the right sidebar closes to the right because there is a direction based prop passed to the sidebar that defines the direction the sidebar closes into which is the side="right" passed to the Sidebar component. I think it default to left.

haha, can't believe i missed that - have been using it in my demos all day but just didn't see it in your code. thanks a lot!
You're welcome @NickWoodward

Just stumbled upon this thread, as I had the same issues.
Thanks @JolomiTee,  your stackblitz brought me on the right track. I did get an "document is not defined" error though, pointing to the one within the useState. I fixed it as follows, if anyone has the same error:
const [_open, _setOpen] = React.useState(true)

React.useEffect(() => {
      const cookieValue = document.cookie
        .split("; ")
        .find((row) => row.startsWith(`${name}:state=`))
        ?.split("=")[1]
      _setOpen(cookieValue === "true" ? true : defaultOpen)
    }, [defaultOpen, name])

Even though I can control these separate sidebars, I still have the weird spacing issue if I use 2 SidebarProvider together. If someone has a fix please let me know.

@DevanceJ I had the same issue and it worked finally when I removed 'w-full' from some elements in the tree, including the  element within the SidebarInset. Don't know why that is the case though.

Hi everyone, thank you for all these comments. I wanted to share this earlier but was busy with some projects.
So I was able to have a two sidebar support using a single Sidebar provider but had to make some changes in the sidebar.tsx. Here you can see the entire file and how I used it.
edited shadcn's sidebar -> https://github.com/DevanceJ/echo/blob/main/components/ui/multisidebar.tsx
Usage -> https://github.com/DevanceJ/echo/blob/main/app/echo/layout.tsx
Left sidebar -> https://github.com/DevanceJ/echo/blob/main/components/sidebar/app-sidebar.tsx
Right sidebar -> https://github.com/DevanceJ/echo/blob/main/components/sidebar/queue-sidebar.tsx
Would've loved to explain this in much detail but again pretty busy these days. Changes are pretty clear and seem redundant but this works well.
Anyways you can check the whole project on my profile. Let me know if you have any doubts

PS: You can use this code ❤

@DevanceJ that’s incredible. Wow. Just what I needed! Thank you! 🥳  Used it in OneTask.me

Just stumbled upon this thread, as I had the same issues.
Thanks @JolomiTee,  your stackblitz brought me on the right track. I did get an "document is not defined" error though, pointing to the one within the useState. I fixed it as follows, if anyone has the same error:
const [_open, _setOpen] = React.useState(true)

React.useEffect(() => {
      const cookieValue = document.cookie
        .split("; ")
        .find((row) => row.startsWith(`${name}:state=`))
        ?.split("=")[1]
      _setOpen(cookieValue === "true" ? true : defaultOpen)
    }, [defaultOpen, name])

Even though I can control these separate sidebars, I still have the weird spacing issue if I use 2 SidebarProvider together. If someone has a fix please let me know.

@DevanceJ I had the same issue and it worked finally when I removed 'w-full' from some elements in the tree, including the  element within the SidebarInset. Don't know why that is the case though.

You're welcome @tillka

Hi everyone, thank you for all these comments. I wanted to share this earlier but was busy with some projects.
So I was able to have a two sidebar support using a single Sidebar provider but had to make some changes in the sidebar.tsx. Here you can see the entire file and how I used it.
edited shadcn's sidebar -> https://github.com/DevanceJ/echo/blob/main/components/ui/multisidebar.tsx
Usage -> https://github.com/DevanceJ/echo/blob/main/app/echo/layout.tsx
Left sidebar -> https://github.com/DevanceJ/echo/blob/main/components/sidebar/app-sidebar.tsx
Right sidebar -> https://github.com/DevanceJ/echo/blob/main/components/sidebar/queue-sidebar.tsx
Would've loved to explain this in much detail but again pretty busy these days. Changes are pretty clear and seem redundant but this works well.
Anyways you can check the whole project on my profile. Let me know if you have any doubts

Very nice @DevanceJ
Thank you

@DevanceJ that’s incredible. Wow. Just what I needed! Thank you! 🥳  Used it in OneTask.me — happy to gift you a lifetime.

This is lovely

Hi everyone, thank you for all these comments. I wanted to share this earlier but was busy with some projects. So I was able to have a two sidebar support using a single Sidebar provider but had to make some changes in the sidebar.tsx. Here you can see the entire file and how I used it. edited shadcn's sidebar -> https://github.com/DevanceJ/echo/blob/main/components/ui/multisidebar.tsx Usage -> https://github.com/DevanceJ/echo/blob/main/app/echo/layout.tsx Left sidebar -> https://github.com/DevanceJ/echo/blob/main/components/sidebar/app-sidebar.tsx Right sidebar -> https://github.com/DevanceJ/echo/blob/main/components/sidebar/queue-sidebar.tsx
Would've loved to explain this in much detail but again pretty busy these days. Changes are pretty clear and seem redundant but this works well.
Anyways you can check the whole project on my profile. Let me know if you have any doubts

this is amazing

You're welcome @heymartinadams I'm glad this helped. Wishing you all the best with OneTask.me—great name! Would love to try it out

@DevanceJ message me in-app and I’ll upgrade your account!


how can I iterator gpio?

HI all,
I test some keyboard matrix program and have a problem. How can I use array to save the GPIOs?
something like that...
rowPins =[gpio1,gpio2,gpio3,gpio4];
colPins = [gpio5,gpio6,gpio7,gpio8];
for row in rowPins{
row.set_low().unwrap();....
}
or something like that...?
rowPins =(gpio1,gpio2,gpio3,gpio4);....
but this way doesn't support iterator...
thank you very much!

thank you very much, this is the problem I have! I will try it!


Update default.rb

test-kitchen failed on converge for me on CentOS 7, seems that reload doesn't work for it.
[root@default-centos-70 ~]# systemctl reload incrond
Failed to issue method call: Job type reload is not applicable for unit incrond.service.

Thanks for bringing this up! Seems like the CentOS 7 package is missing the reload config in the service definition. Your workaround was added in https://github.com/dwradcliffe/chef-incron/commit/1a2f8811cbaaab531855a17a2d736a24cf4e9482 and version 0.3.4.


nixos: modules using type = pkgs.formats. have odd type descriptions

Describe the bug
Here, an example from man configuration.nix:
       services.adguardhome.settings
           [...]
           Type: YAML value

           Default: { }

Looking at Type: YAML value above, I'd expect to pass a string, but it really does take a Nix attrset (which then gets converted to YAML internally).
Expected behavior
I guess I'd like for the type documentation to say it's a Nix value of some sort. Maybe Nix value, internally converted to <type>?

Can you give me an example of what you're supposed to enter there? I'd like to provide:
users:
  - name: myUser
    password: $myPasswordHash

but I can't figure it out. I tried:
        settings = {
            users = {
                name = "myUser";
                password = "$myPasswordHash";
            };

but it did not like that.

@sjau: The dash indicates a list element, and your Nix value is an attrset. Try this:
settings = {
  users = [
    { name = "myUser"; password = "pass"; }
  ];
};

Useful for playing around with Nix/YAML conversion:
$ cat $(nix-build -E '((import <nixpkgs> {}).formats.yaml {}).generate "foo" { users = [ { name = "myUser"; password = "pass"; } ]; }')
users:
- name: myUser
  password: pass

To be more specific, services.adguardhome.settings actually compiles to JSON rather than YAML, which adds to the confusion of the type annotation.

@sjau: The dash indicates a list element, and your Nix value is an attrset. Try this:

Yeah, this works, just used:
        settings = {
            bind_port = 3000;
            users = [ {
                name = "myUser";
                password = "$myHashedPassword";
            } ];
        };

actually compiles to JSON rather than YAML

JSON is YAML :)


Change duplicate "X1" to "X2"

For EMCluster objects, change duplicate "X1" to "X2" in the plot title; typo in original release.

Now fixed on Github; will be available in next release


Wildcard support for HaveMessage fluent assertion method.

...or a ContainsMessage(string) method.

Implemented in PR #14 and released with version 0.6.0


Logout Feature is added

Related Issue
Logout Feature is added
Closes: #189
Describe the changes you've made
https://user-images.githubusercontent.com/55352601/118376091-7d572980-b5e3-11eb-8905-d46358551e2a.mp4
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Mention any unusual behaviour of your code (Write NA if not)
Any unusual behaviour of your code
Additional Info (optional)
Any additional information you want to give
Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly whereever it was hard to understand.
[x] My changes generate no new warnings.
[ ] Any dependent changes have been merged and published in downstream modules.

@adarshvulli please review this PR its the last part of backend .
backend is completed now :)
@ankitapuri please have a look

https://user-images.githubusercontent.com/55352601/118402903-95818400-b689-11eb-900c-bdb6e4a19afb.mp4

@arpit456jain please resolve it once


Captions not showing after updating to Chrome browser version 66 (webVTT captions)

Hi all, having some issues with captions for Widevine DASH encrypted content (using videojs-contrib-dash) after chrome has been updated.  They simply do not display.  Chrome 66 broke it.  It's also broken when using the reference player here: https://videojs.github.io/videojs-contrib-dash/
Firefox is still working fine.  Chrome 65 works fine, but Chrome 66 and after it is broken.
Unfortunately cannot share the manifest/license details of the files I am using, but the captions are in WebVTT format.
Hope someone can help.

It's also happening to me in unencrypted content, DASH with WebVTT. It works in Chrome 65, and still works in Safari or Firefox. And works in Chrome 66 on Shaka Player.
In Chrome 66, the subtitles don't show up, neither in videojs, or in the reference dash.js player.
This is a sample manifest:
https://d0e2bcc0.ngrok.io/mdash/theproposal2009/theproposal2009.json/manifest.mpd
Hope it will help.

Thanks for posting the sample @bernardoc , but it looks like it's since been taken down. Is this still an issue for anyone, and does anyone have a source exhibiting the problem?
Also, what dash.js version are you using?
Thank you.

Assuming that the test mpd had only one subtitle I may have a more narrow target: The first VTT file specified in an mpd doesn't render, but all the others do. Since many files have only one caption, the result is captions seem to not work at all.
This is reproducible on the videojs.github.io test page for videojs-contrib-dash (and I've reproduced it using the most recent versions of dash.all, video.js and videojs-dash.js):
https://videojs.github.io/videojs-contrib-dash/
Try this mpd
https://cu1kgmqc9.s3.amazonaws.com/f78dcd92_test5.mpd
May be related to #236. He's testing TTML subs though, and I'm using WebVTT.

Hi all,
New test mpd https://092cbe21.ngrok.io/mdash/theproposal2009/theproposal2009.json/manifest.mpd
As bloomtom says this sample has 2 subtitles, and right now, only the first one does not render. The second one renders ok. Using the player in https://videojs.github.io/videojs-contrib-dash/

Hi,
Quick update that could help, If I comment this updateActiveDashTextTrack in setup-text-tracks.js
  // Initialize the text track on our first run-through
  // updateActiveDashTextTrack();

  return tracksAttached;

The first subtitle also works.

Hi @bernardoc,
I've noticed this issue also.  This became a problem when I updated dash.js.  I found that 2.7.0 is fine, but from 2.8.0 on (currently 2.9.1) I'm unable to show subtitles for the first language.
Hope this info helps.

@Wayne-Morgan Did you ever dig into dash.js or submit an issue?


Update Workshop.netkan

Most recent release does not have a top-level GameData directory. Just use default install information.

Basic change, merging myself.


Fix: Memory Leak when content stream fails

Fixes #726

Codecov Report

Merging #758 (3ceb7e5) into main (ca46701) will increase coverage by 0.33%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##             main     #758      +/-   ##
==========================================
+ Coverage   49.56%   49.90%   +0.33%
==========================================
  Files          68       68
  Lines        2074     2074
  Branches       58       57       -1
==========================================
+ Hits         1028     1035       +7
+ Misses       1046     1039       -7

Impacted Files
Coverage Δ

...io-http/src/main/scala/zhttp/service/Handler.scala
69.76% <50.00%> (+2.32%)
:arrow_up:

zio-http/src/main/scala/zhttp/http/Response.scala
69.23% <100.00%> (+9.61%)
:arrow_up:

.../scala/zhttp/http/headers/HeaderConstructors.scala
18.07% <0.00%> (+1.20%)
:arrow_up:

Continue to review full report at Codecov.

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


Geofeed validation doesn't seem to work correctly on Ubuntu 22.04.1 LTS - RPKI-client 8.2

wget https://sobornost.net/geofeed.csv
rpki-client -f geofeed.csv
Output :
File:                     geofeed.csv
Hash identifier:          VOXBRdQpiyALlLRdo3OkLbLIY4PexRlci/0EM9Fc21U=
rpki-client: invalid address: 2001:67c:208c::/48
Validation:

Looks like glibc's inet_net_pton(3) can't handle IPv6 addresses. We should be using inet_pton(3) instead.

I will just fix the configure script to properly probe for AF_INET6 support. Since we already ship our inet_net_pton


Ziyi

@echozzy629 I have added you as an admin on this project so you should be able to handle PRs and resolve merge conflicts. I don't want to mess with your merge conflicts because I don't want to mess up your code ;)

Thanks a lot for letting me know! Will handle PRs and keep contributing on
the project :)
On Wed, Jun 7, 2023 at 2:39 PM Derek Reimanis @.***>
wrote:

@echozzy629 https://github.com/echozzy629 I have added you as an admin
on this project so you should be able to handle PRs and resolve merge
conflicts. I don't want to mess with your merge conflicts because I don't
want to mess up your code ;)
—
Reply to this email directly, view it on GitHub
https://github.com/MSUSEL/msusel-pique-visualizer/pull/6#issuecomment-1581546106,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHWXMVPN57BR2T5IIBGYDELXKDYJJANCNFSM6AAAAAAY4ZHXJE
.
You are receiving this because you were mentioned.Message ID:
@.***>

merge current features to main