Dynamically creating tasks during run-time

This pertains to #170 @jlowin's second issue of having the ability to dynamically create tasks based on the outputs of earlier tasks in the DAG. I think this broader question deserves its own discussion, separate from that issue's focus of piping one task's output to another task's input.
Our use case for this is in creating ETL pipelines where the overall job is chunked into sub-jobs based on a set data size per sub-job. The number of sub-jobs, or tasks, is strictly unknown prior to the first task of chunking up the total data set. This is inline with the examples @jlowin provided.
I would love for Airflow to support this type of dynamic dependency, this is one major blocker to us adopting it for all our data pipelining needs.

@martinxsliu after some conversations with @mistercrunch, I increasingly think that completely dynamic DAGs are outside the scope of Airflow. Too much is premised on the idea that an entire DAG is available for analysis at the time that the DAG is fired. I think allowing DAGs to reconfigure themselves while in flight would require a total rethinking of the architecture.
However, there are a couple of possible directions to go:

Add dynamics inside an operator. PythonOperators can execute arbitrary code with as few or as many "chunks" as required.
The PythonBranchOperator can implement conditional paths within a DAG, so long as those paths are known in advance. Right now, I think it's mostly useful for "short circuiting" paths that you don't want to run, but once #261 is merged, they will add a lot of versatility.
Lastly -- most experimentally -- I'm exploring an idea with a restricted subset of dynamic DAGs in which the tasks are mostly the same but could vary regularly. For example, lets say I have a DAG that has a task for processing each of N files, where N could change day to day (probably becoming N+1). In this case, I know exactly what tasks I'm going to need prior to each time I run my DAG (since I can count the files). So in theory, I could generate the appropriate DAG for every run. In other words, I don't need to by dynamic during the run, only before it.

The problem is, Airflow only refreshes DAGs periodically (workers seem to do it more frequently, the web server less, and then only if a scheduler is running). @mistercrunch has commented on this in #116  and #46. So the trick is finding a way to refresh the DAG across the system. One way to do this is to manually expire the DAG when you are finished with it.* This means that the next time a worker/server/process tries to load the DAG, it will refresh it because it sees that the current version is obsolete. But this might be expensive or infeasible with large DAGs.
I emphasize that I'm experimenting with this and have not explored any side effects yet. For example, this could potentially introduce/remove tasks and create UI issues. I don't know yet and don't want to go as far as to endorse this -- just sparking conversation.
(*I'm doing this manually right now but it could be an interesting Operator... put it at the end of a DAG... but I have a feeling @mistercrunch doesn't want to make this too easy ;) )

Airflow currently thinks of a workflow as a mostly static, or slowly changing DAG of tasks. Different run instances are schedule based on a fixed schedule.
Having a fixed unit of work over time and a fixed schedule bring a lot of clarity (and some constraints) to workflows. For instance it allows for the Tree, Duration and Landing time views. It also allows for things like looking at resource consumption metadata over time and understand how things are changing.
It's all about how you define your unit of work, and you can pivot into doing things the Airflow way. So say if you receive an unpredictable stream of files, you can pivot into have a task that batches whatever landed in that folder since the last run and label the output based on the schedule. Once you've pivoted to a time based unit of work, things from that point are hourly jobs and align properly. At many companies, pivoting to fixed schedule batch approach happens far upstream in their data pipelines.
Now you could want to instantiate a DAG for each file, and change the workflow based on the content of the file or the nature of the file, that's reasonable and how programmers think in general.
The static-ish workflow approach is different. Is assumes you already know all the routes that can be taken, and wire the data down the pipes. So if you have 5 types of files that require different processing, maybe you need 5 sub-paths in your workflow that each treat a subset of the files.
But hey, I do see tons of value for "singleton" DAGs that are triggered by events, not all workflows are on a schedule! The whole "analytics as a service" is filled with "run just one time, or run on demand" use cases. I think it makes sense for Airflow to grow into allowing that as a first class use case. It's very easy to hack this together while dynamically generating DAGs (each with different dag_id) and forcing a dummy single start_date and end_date. I'd be curious to see how much mileage you'd get out of this approach. Feel free to give it a spin, all you have to do is to stamp differents DAGs as objects in the global namespace of your pipeline, as in:
for i in range(10):
    dag_id = 'my_dynamic_dag_number_' + str(i)
    globals()[dag_id] = DAG(dag_id=dag_id)

These 10 DAGs should get discovered as any other would.

This sounds relevant to my use case. Currently we're using Sun Grid Engine, qstat qsub and the rest of the q<cmd>'s, for resource management (http://www.drmaa.org/). I like the idea of airflow, and it seems possible to add hooks to drmaa in order to make our workflows cluster agnostic. (more hooks in for whatever we may replace drmaa with in the future).
It seems possible that in my case the operator could simply qsub jobs that may or may not qsub more jobs as new parts of the DAG? Or is that basically what @martinxsliu is asking?

@mistercrunch, I definitely think that many dynamic-workflow use cases could be met with on-demand execution of a dag.  In my experience, there often exist entire "plates" of tasks that you'd like to repeat for a series of triggers, while using dag logic like Airflow's to resolve dependencies within each plate.  Airflows DAGs represent blocks of known dependencies that are symmetric when unrolled over time; these "plates" are just the same thing unrolled over some axis other than time.
Letting us define a DAG once but then manually schedule it would maintain the invariant that the entire structure is known in between runs.  Since task lists would be invariant, the cool analytics across instances would still work.  (IMO these analytics are a killer feature for AirFlow, and unfortunately the "dynamically generate a new DAG for each run" approach above would lose that.)  If we could stamp an arbitrary label on these runs/instances, and/or have another way of passing some metadata into them that would be accessible to operators in the context variable, my life would be complete!

@georgebdavis I totally agree. This should become the next big item on the roadmap.
"Analytics as a service" where for example a data scientist would order prepared data set based on specific metadata is a use case we want to support as a first class citizen. Or simply batching your DAG execution based on events instead of fixed time is totally reasonable and should be supported. Many companies run workflows whenever a batch shows up and instantiate a dag for each batch.
I think there's potentially two new things here: "externally triggered DAGs", assuming a similar DAG structure across instances, and "singleton DAGs" that may have a very different shape over different instances, so much so that we may want different dag_ids to represent them.
The "externally triggered DAGs" could be implemented fairly easily by:

adding a DAG level parameter externally_triggered=True
creating a new metadata table that would associate a batch_id to a specific timestamp trigger_dttm
altering the tree view's x axis to deal with variable schedule interval
altering the scheduler and dependency engine to understand that it needs to look at the  batch_id table to move in time and find previous and next runs
exposing way to trigger a batch_id (REST/CLI)
...

Thanks @mistercrunch.  I'd be happy to contribute to the dev on that.  Maybe an initial step would be creating that new metadata table and the call that writes to it?
One thought for that "...": if the scheduler is discovering the next run time from the metadata table, we need to make sure any write to that table (e.g. the trigger call) wakes up the scheduler to find out if its next move has changed.

@georgebdavis @mistercrunch exciting ideas, and definitely useful ones. I have a manual "Run DAG" button on my wishlist :)
Could an externally-triggered DAG be executed like a backfill for a single dttm? For example:
airflow execute <DAG> <DTTM>, roughly equivalent to airflow backfill <DAG> -s <DTTM> -e <DTTM>.
I think this would make sensors much more powerful, since the analytics would be more closely aligned with the DAG (event-based rather than interval-based).
@georgebdavis I think this is still a little different from your question about letting tasks define other tasks and add them to an (in-flight) DAG. Would more powerful ad-hoc DAGs solve your use case there? My initial interpretation of your request was that you had a task which loaded some parameters or metadata and then used those to add downstream tasks to the DAG. Maybe you would actually generate an entirely new DAG on-demand and trigger it, rather than adding tasks to the current DAG. Just typing out loud...

@jlowin, what I realized while reading this thread is that my use cases are all composed of chunks of tasks that are known in advance.  For reference, here are the cases I've seen from myself or others:

doing the same set of work at a set of timings determined by a remote service
performing a set of analyses on every file in a folder, row in a database, or component in a social graph

In each of these cases, I know the work I want to do at deployment time, just not exactly when / how many times / on what.  Enumerating those repeated chunks as separate DAGs is actually a great feature, because it lets Airflow align the repeated steps (tasks) across runs for analytics, and perform localized management operations on e.g. all tasks upstream of a certain point within one run of one chunk.
So, my problem is not really with static DAGs but with the fact that they can be only triggered by time.  If I could schedule a DAG run on demand, ideally with a wee bit of metadata so that tasks know what triggered the run, I could have all of the features that depend on the static DAG and still deal with the irregularities in my schedule.
I can't think of a realistic use case where a truly dynamic DAG would be preferable to dynamically triggering static chunks.  Extremely complex workflows might require tons of DAGs triggering each other - but if you find yourself in that situation, maybe you're using a workflow scheduler to do flow control that would be better implemented as program logic?

That sounds right -- I also discovered that most of my "dynamic" DAGs were actually just static DAGs being used repeatedly but at non-regular times. I also learned that Airflow handles "slowly changing" DAGs very well -- where "slowly changing" means adding or removing a task after multiple runs.

@georgebdavis said "maybe you're using a workflow scheduler to do flow control that would be better implemented as program logic?"
Amen to that! I think I need to squeeze a section in the FAQ that clarifies how much dynamism make actual sense.
Another way to put it is to relate workflow and tasks to databases and tables. If you write code that alters your table structures based on the program's logic, you're probably doing it wrong. The number of tasks in a data processing workflow is often directly correlated with the number of data structures (tables). Sometimes it makes sense to break down you unit of work to a subset of a table, and to partition your tables to play along with that. For example our A/B testing framework's pipeline is partitioned and "tasked" at the data source level. When a new data source gets added, the corresponding tasks and partitions get created dynamically. Individual sources can get processed independently as they land, and experiments that pick smaller of more reliable sources are likely to land earlier in the day.

I really like the DB table analogy -- it conveys that workflows might change with business needs, but probably shouldn't change during operation-as-usual.  You also have some good language in a few threads about reorienting workflows to, for example, operate on all files rather than doing one task per file.  Also to pick up occasional changes in a workflow by making the script declaring the DAG itself dynamic.  Probably good stuff for that FAQ section!
The catch that led me to this thread is wanting to use Airflow's failure-management features to resume flows that fail during these corner cases.  If the "per-file" work is complex, I don't want a failure on one file to block and require repeating of the whole task.  And if the DAG-generation script would have to pull a schedule off of a failure-prone external service, I don't want Airflow to potentially barf when loading it.  When you(/we?) get dynamic triggering going, I can take care of both kinds of risk by making a task that triggers a separate, pre-declared DAG.  Then a failure in pulling down an external schedule just blocks that triggering task, and a failure in the "per-file" DAG only holds up that run.
(Now I'll officially stop belaboring how excited I am about that feature :) )

Somewhat related reference, it's now possible to create external DAG runs from http://pythonhosted.org/airflow/code.html#airflow.operators.TriggerDagRunOperator

@mistercrunch
Does it makes sense to remove the following line from README.md?

Dynamic: Airflow pipelines are configuration as code (Python), allowing for dynamic pipeline generation. This allows for writting code that instantiate pipelines dynamically.


More informative error when failing to open secrets file.

Django 1.9 should work so py27 should work at least.

Thanks @waprin. I didn't realize that support for Python 2.6 was dropped in django==1.7 along with the fact that support for Python 3.3 was [dropped in django==1.9][2].
Maybe we should just turn off the Django tests for py26 and py33?
@nathanielmanistaatgoogle WDYT?

The easiest way to fix the absence of the self.assertRaises context manager in unittest would be to upgrade to unittest2, but I just manually catch and save the exception. (Is a little funky since in Py3k caught exceptions don't stay in scope.)
Other than that I just turned off django in Python2.6,3.3 and made a note about it in the CONTRIBUTING.md doc (so that people know why the tests are off).
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 499baba..85599e2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -125,6 +125,10 @@ Running Tests
     least version 2.6 of `pypy` installed. See the [docs][13] for
     more information.

+-   **Note** that `django` related tests are turned off for Python 2.6
+    and 3.3. This is because `django` dropped support for
+    [2.6 in `django==1.7`][14] and for [3.3 in `django==1.9`][15].
+
 Running System Tests
 --------------------

@@ -196,3 +200,5 @@ we'll be able to accept your pull requests.
 [11]: #include-tests
 [12]: #make-the-pull-request
 [13]: http://oauth2client.readthedocs.org/en/latest/#using-pypy
+[14]: https://docs.djangoproject.com/en/1.7/faq/install/#what-python-version-can-i-use-with-django
+[15]: https://docs.djangoproject.com/en/1.9/faq/install/#what-python-version-can-i-use-with-django
diff --git a/tests/test_clientsecrets.py b/tests/test_clientsecrets.py
index 2beb3bb..7803fd7 100644
--- a/tests/test_clientsecrets.py
+++ b/tests/test_clientsecrets.py
@@ -225,17 +225,17 @@ class OAuth2CredentialsTests(unittest.TestCase):
                 self.assertTrue(str(e).startswith(match))

     def test_load_by_filename_missing_file(self):
-        exc_manager = None
-        with self.assertRaises(
-                clientsecrets.InvalidClientSecretsError) as exc_manager:
+        exc_caught = None
+        try:
             clientsecrets._loadfile(NONEXISTENT_FILE)
-
-        exc = exc_manager.exception
-        self.assertEqual(len(exc.args), 4)
-        self.assertEqual(exc.args[0], 'Error opening file')
-        self.assertEqual(exc.args[1], NONEXISTENT_FILE)
-        self.assertEqual(exc.args[2], 'No such file or directory')
-        self.assertEqual(exc.args[3], errno.ENOENT)
+        except clientsecrets.InvalidClientSecretsError as exc:
+            exc_caught = exc
+
+        expected_args = ('Error opening file',
+                         NONEXISTENT_FILE,
+                         'No such file or directory',
+                         errno.ENOENT)
+        self.assertEqual(exc_caught.args, expected_args)

 class CachedClientsecretsTests(unittest.TestCase):
diff --git a/tox.ini b/tox.ini
index 8993654..11eafa7 100644
--- a/tox.ini
+++ b/tox.ini
@@ -42,6 +42,28 @@ deps = {[testenv]deps}
     coverage
     nosegae

+[testenv:py26]
+basepython =
+    python2.6
+commands =
+    nosetests \
+      --ignore-files=test_appengine\.py \
+      --ignore-files=test_django_orm\.py \
+      --ignore-files=test_django_settings\.py \
+      {posargs}
+deps = {[testenv]basedeps}
+
+[testenv:py33]
+basepython =
+    python3.3
+commands =
+    nosetests \
+      --ignore-files=test_appengine\.py \
+      --ignore-files=test_django_orm\.py \
+      --ignore-files=test_django_settings\.py \
+      {posargs}
+deps = {[testenv]basedeps}
+
 [testenv:cover]
 basepython = {[coverbase]basepython}
 commands =
@@ -72,11 +94,6 @@ deps =
     webapp2
 commands = {toxinidir}/scripts/build-docs

-[testenv:py26]
-basepython = python2.6
-deps = {[testenv]basedeps}
-       django>=1.5,<1.6
-
 [testenv:gae]
 basepython = python2.7
 deps = {[testenv]basedeps}

Applied your diff, originally thought you were going to cherry-pick this commit into mine. Squashed it (or keep as separate commit? Django stuff is kind of unrelated). Think Travis will pass now but let's see. I definitely think disabling Django tests for 2.6/3.3 is the right thing to do.

Thanks @waprin. No worries on a cherry pick or H/T, you did more thinking here than I did.
LGTM to merge
I won't to hold off until @nathanielmanistaatgoogle chimes on on turning off the django tests for Py2.6 and Py3.3.

@dhermes: I think it adds fuel to the fire of #298. I am completely okay with turning off Django tests for versions of Python unsupported by Django.

I'm all for adding fuel to that fire!
@waprin Ping me once the space is fixed / squashed into the original commit and the tests pass, and I'll be happy to merge.

FYI @waprin I added the "Fixes" to the description so that GitHub can automatically close the bug that was filed.

Ping me when
https://travis-ci.org/google/oauth2client/builds/94749565
passes and I'll be happy to merge for you.

There's currently a bright red "cla: no" label on this pull request; that absolutely must be addressed and ameliorated before this goes in. It's probably something minor like one of you authored or committed with an email address that has not signed the CLA.
Change content looks good to me.

 Fails every time.

I've manually verified CLA signage for both of you. Merging.


samples: hci_uart: Remove CONFIG_UART_NRF5_BAUD_RATE assignment

This symbol was removed in commit 748f724d82e4 ("serial: dts: remove
!HAS_DTS related Kconfig"). The setting should come from DTS now.
Signed-off-by: Ulf Magnusson<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master    #7995   +/-   ##
=======================================
  Coverage   55.03%   55.03%
=======================================
  Files         481      481
  Lines       53936    53936
  Branches    10474    10474
=======================================
  Hits        29686    29686
  Misses      19981    19981
  Partials     4269     4269

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 5405f68...6f9dd76. Read the comment docs.


1.1.5

This is a transitional release for upgrading Logsearch from ELK v5 to v6

@axelaris Thanks!


Added music player and tune. Optimized tilesheet.png

900 -> 500 bytes

Over 13k now but not much, needs optimizing though.

And need user interaction to enable music in Chrome!
Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD


Shortcut to disable a service

Is your feature request related to a problem? Please describe.
Keyboard shortcuts for common actions are useful. If an action exists in a context menu then that suggests that it deserves a shortcut.
Describe the solution you'd like
A shortcut to disable the currently selected service.
Describe alternatives you've considered
This feature already exists via the context menu but a shortcut would be very useful for some users that wrangle huge numbers of services.
Cheers

@LiamMoy - could you please suggest what shortcut would work for you? I can take a stab at this today

Closed via https://github.com/getferdi/ferdi/pull/2148


Update README with New Badges and Improved Documentation

Description for Pull Request:
This pull request includes the following updates to the README file:

Added relevant GitHub badges (stars, forks, issues, pull requests) for better project visibility and quick access to repository stats.
Improved formatting for better readability and consistency.
Updated content sections to clarify project goals, installation steps, and contribution guidelines.
Enhanced the contribution section with detailed steps for new contributors.

Screenshot

Please label this PR with:

gssoc-ext for contributions under GirlScript Summer of Code Extended.
hacktoberfest-accepted to ensure it counts towards Hacktoberfest.

Thank you for reviewing my contribution! Let me know if any further changes are required.

Hi @Ganeshmoorthii, i can't accept this PR because it does not belog to my repository statistics.

Hi @Suraj-kumar00 ,
Thank you for your feedback! I understand that the badges added in this PR may not accurately reflect your repository’s statistics.
My intention was to enhance the README for better visibility, but I see how this could be problematic if the badges are not reflective of the actual project.
Pls check the result

What can I do for further Enhancement


 Pussy ass bitch Provenance : Courrier pour Windows 10 De : Sargis AnanyanEnvoyé le :mercredi 13 mai 2020 08:58À : facebookarchive/python-instagramCc : SubscribedObjet :[facebookarchive/python-instagram] Changed beaker version for python 3.7+ (#272) Beaker version lower than 1.10.* not working with python 3.7+You can view, comment on, or merge this pull request online at:  https://github.com/facebookarchive/python-instagram/pull/272Commit SummaryChanged beaker version for python 3.7+File ChangesM requirements.txt (4) M sample_app.py (79) Patch Links:https://github.com/facebookarchive/python-instagram/pull/272.patchhttps://github.com/facebookarchive/python-instagram/pull/272.diff—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

I'm sorry but what is this?


K8SPXC-417: fix certmanager api version

According to docs, we need to use v1alpha2 version, since we are running on k8s v1.14

Test name
Status

recreate
passed

storage
passed

big-data
passed

init-deploy
passed

scaling
passed

scaling-proxysql
passed

self-healing
passed

limits
passed

upgrade
passed

monitoring
passed

restore-to-encrypted-cluster
passed

monitoring-2-0
passed

self-healing-advanced
passed

upgrade-consistency
passed

security-context
passed

affinity
passed

one-pod
passed

operator-self-healing
passed

demand-backup
passed

auto-tuning
passed

scheduled-backup
failed

proxysql-sidecar-res-limits
passed

users
passed

demand-backup-encrypted-with-tls
passed


Prepare for .NET 9

Describe the feature
Adopt .NET 9
What's new:

https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-13
https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/overview
https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-9.0/whatsnew
https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-9.0?view=aspnetcore-8.0

Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response

https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries#logging-source-generator

https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries#searchvalues-expansion

https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries#type-name-parsing

https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries#respect-nullable-annotations

https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries#require-non-optional-constructor-parameters

https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries#systemguid

https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-9.0?view=aspnetcore-8.0#openapi

https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-9.0?view=aspnetcore-8.0#minimal-apis

https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-9.0?view=aspnetcore-8.0#opt-out-of-http-metrics-on-certain-endpoints-and-requests

https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-9.0/whatsnew#force-or-prevent-query-parameterization

https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-9.0/whatsnew#auto-compiled-models

https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-9.0/whatsnew#read-only-primitive-collections

https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-9.0/whatsnew#make-existing-model-building-conventions-more-extensible


fix secret expected length to be at least (1)

Signed-off-by: Chris Chien<EMAIL_ADDRESS>From https://github.com/longhorn/longhorn/issues/3892
Newest terraform not accept length = 0 cluster secret, modify code to cope it
cc @meldafrawi

@cchien816 See if need to backport to 1.2.x and 1.1.x. I believe we have the same code bases for the testing infra provision.

Hi @innobead ,
I looked into v1.2.x and find that v1.2.x currently only support k3s, hence the password were fixed in length 64.
We won't hit length = 0 error unless we support rke2 cluster on v1.2.x, thank you.


Error: IndexSizeError: Index or size is negative or greater than the allowed amount

Hi,
first of all - it very nice piece of work.
I have small issue with (at least pie) on tabs (zurb foundation framework)
When chart is set on tab which is  not active (hidden) on page load -> then when i click on tab containing chart  the chart is not shown  - however if even move/resize browser it's ok again
Error: IndexSizeError: Index or size is negative or greater than the allowed amount
Source File: Chart.min.js Line: 10

Chart definitely will not render in a "hidden" area.  I am creating an accordion with jQueryUI and when I have a canvas defined inside a closed accordion area, it gives this error.  When I put the canvas outside of this, it renders just fine.  The one solution I found is to not apply the jQueryUI accordion until after the chart is applied to the canvas and it worked fine.

Hi sorry for the late reply here. I had the same issue with something else.. heres a possible fix for you.
I had the same problem too, drove me nearly nuts. 3 days i spent on this. Check the following: Body height. Not just the css height, but also physically check the height, i use mozilla firebug to select the body attribute, this highlites it. If its above the element, or selection area, it will give the bug Also css for the specific area to select, and body
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
Make sure your user selection is !!NOT!! none.
Hope this helps you out.. I did read some veryy frustrating posts regarding this issue, and it was not an easy find either, i found it quite by chance.

Consolidating with #762 which is related.


add config tp client

You need to complete

[ ] unit tests and/or feature tests
[ ] documentation is changed or added

Codecov Report

Merging #6 into master will increase coverage by 2.16%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
+ Coverage   86.38%   88.55%   +2.16%
==========================================
  Files           3        3
  Lines         191      201      +10
==========================================
+ Hits          165      178      +13
+ Misses         19       16       -3
  Partials        7        7

Impacted Files
Coverage Δ

service/client.go
87.5% <100%> (+1.6%)
:arrow_up:

service/config.go
85.07% <0%> (+4.47%)
: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 8e58fd1...bfc8ef1. Read the comment docs.


Load search result(s)

implement filtering logic in the "add to" menu, since the user should be allowed to add an instance only to viewers that represents the same developmental stage.

@ddelpiano  we can close this one, this is already contained in the estimates for #43


Add visualization settings for plane layers

It is worth thinking about the visual design of uid labels and determining their location on a set of points (currently it is centroid)

Unfortunately, it is impossible to match labels with the corresponding planes.


About the environment and dependencies

Thank you for your outstanding work!
For some server reasons, it can be difficult to build an identical environment directly from yaml.
Could you please give us a list of torch versions and libraries we need to create a new environment directly?

Hi @zzzyzh
Thank you for your interest in our work!
I have updated the installation procedure. Please check it. If you have any questions, please feel free to contact me.

Another question is, does cat_sam.models.segment_anything_vpt mean cat_sam.models.segment_anything_ext? I can't find cat_sam.models.segment_anything_vpt in the repository.

I have updated the codebase yesterday. I guess you're using the last version of this repo, which is the test-only version.
Best regards,

https://github.com/weihao1115/cat-sam/blob/659daadd404345ffca4e1603afe59df981c35f7e/cat_sam/models/modeling.py#L10

Sorry for the typo. I noticed there were some typos when we were reforming the code base to this public version. I have updated the code and tested several cases. Now, I guess it is bug-free.
Best regards,

I think the question has been resolved, so I close this issue here. Feel free to contact me again if you have any questions.
Best regards,


Agora should reject unknown CLI arguments

To prevent someone using -testnet and the like and it not having any effect.

Currently unrecognized options prevents Agora to be started,
agora --unrecog --testnet
Error parsing command-line arguments '"agora" "--unrecog" "--testnet"': Unrecognized option --unrecog

Indeed, it's already handled correctly. Looks like I misdiagnosed the issue, thanks for checking!


[BUG]dashboard deployment  Metrics Pages  no data

dashboard deployment  metrics pages  need to wait until after the refresh cycle to get the data

version is 2.6.7


Need a better way to select which stylesheets to process

I'm looking for a way to reverse the default of handling all stylesheets except those with data-no-prefix.
I would like to be able to ignore all except the ones I mark, without changing too much.
This is because I'm using this in an environment where I control only a small part of the total CSS loaded.

There is currently no such way, but I wouldn't oppose a PR for it.
I agree that since the need for prefixfree has diminished since it was first written in 2012, this would be a useful addition.
I'd suggest an HTML attribute like "data-prefixfree-opt-in" that can be placed wherever and makes -prefix-free opt-in instead of opt-out. Then, data-prefix on stylesheets to process them.


Adding useFirstInstallTime()

Description

Added useFirstInstallTime() that simply wraps async function, getFirstInstallTime(), into a hook.
Note: The src can be used as a template for wrapping the rest of the async functions into hooks where applicable.
Compatibility

OS
Implemented

iOS
❌

Android
✅

Windows
✅

Checklist

[X] I have tested this on a device/simulator for each compatible OS
[X] I added the documentation in README.md
[ ] I mentioned this change in CHANGELOG.md
[X] I updated the typings files (privateTypes.ts, types.ts)
[X] I added a sample use of the API (example/App.js)

Hi there! Thanks for proposing this
On the face of it, it seems more complicated than I want, with a new type etc., but I can see how that's attempting to mask the async-ness of the underlying method
Is there anyway to do it such that it doesn't need a new type wrapper (with loading flag) and is just working with a number?
I'm not wise on how hooks work yet so I don't know if this is the normal pattern for handling async in hooks or not, but I'd be happy to read up on it if you can offer a link or two to docs or other examples

Hi @mikehardy,
Thanks for getting back so quickly.
I don't really have much documentation on why to use the flag itself, but there are a number of other libraries that I've used that use it. The first that comes to mind, is Apollo's useQuery hook.
I like the idea of a loading field because it lets me know why the value may be null and how to handle it (show a spinner, loading modal, etc...)
With that being said, I can definitely change it to just a simple null | number.
Also, the loading flag may not be necessary since it is very quick to fetch that information.
Thoughts?

yes - there are a range of options, items like that could even be constants with no async to hide. This seems like the same sort of problem I was intending to solve the mirrored zzz() zzzSync() API mirroring, but expressed in hook semantics. Not necessarily bad, I'll follow the link you sent and study a bit

Ok - I studied up, thanks for the link. I think the pattern is reasonable so I'm okay with adding it like this but I'd like make it generic so that every hook wrapping an async call doesn't need it's own type. Seems like we could have one AsyncHookResult type that has loading then a result that's one of the other types we can return? Does that make sense?
Seperately - I don't want to return nulls, I'd like to stick with the default return values for unknown items which would be -1 at the moment https://github.com/react-native-community/react-native-device-info/blob/master/src/index.ts#L780

Good idea.
We could have an Generic type something  like the following:
interface AsyncHookResult<T>{
  loading: boolean;
  result: T|-1
}

So the hook would return AsyncHookResult<number>
Thoughts?
If all is kosher, I’ll update with the above.

I think result is T|-1|false|'unknown' as those are our three default no-answer answers, but otherwise, yes!

Hi @mikehardy,
Happy Monday!
Should be good-to-go for you.

That looks pretty sweet and should be a nice template for others to follow if they like. Thanks!


Reporting/disputing: initial report on market,  but doesn't update reporting state

on kovan:

market in open reporting
initially report (with pre-filled and without pre-filled)
transaction is successful.
no markets in disputing page
no market on in-reporting market listing page that are in `crowdsource disputing)

successful initial reporting transaction on kovan:
https://kovan.etherscan.io/tx/0xcd1265fbc57f573ee87c7587be1c444edff0937d238607c5f6492e501549aad8
initial report transaction but market still shows open reporting. Even after refresh

What reporting state does the market have when this occurs?

Initially reported on markets in “Open reporting”.
Also reported on a designated_reporting state.
Each had the same issue, of not updating reporting state

Is that where it appears in the UI or is that the reporting state returned by the SDK for the market info?

The reporting state from sdk, UI. I checked in web console, UI stores the MarketsInfo in redux. state.MarketInfos[“marketId”]

This is likely the same issue we had with similar problems where the timestamp handling function has a race condition with the generic even handler and the initial report reporting state gets overwritten. We should make the lock for updating occur in the handleMergeEvent function so that no such overwriting can occur.

I wasn't able to repro with an automated test.
Here's the code, which passes:
  test.only(':getMarkets : reporting', async () => {
    const universe = john.augur.contracts.universe;
    const actualDB = await db;

    const marketContract: Market = john.augur.contracts.marketFromAddress(markets['yesNoMarket1']);

    await actualDB.sync(john.augur, CHUNK_SIZE, 0);
    let market: MarketInfo = (await api.route('getMarkets', {
      universe: universe.address,
    })).markets.filter((marketInfo) => marketInfo.id === marketContract.address)[0];
    expect(market.reportingState).toEqual(MarketReportingState.PreReporting);

    // Get past the market time, into when we can accept the initial report.
    await john.setTimestamp(new BigNumber(market.endTime + 1));

    await actualDB.sync(john.augur, CHUNK_SIZE, 0);
    market = (await api.route('getMarkets', {
      universe: universe.address,
    })).markets.filter((marketInfo) => marketInfo.id === marketContract.address)[0];
    expect(market.reportingState).toEqual(MarketReportingState.DesignatedReporting);

    // Now go forward a day, into Open Reporting.
    const currentTime = await john.getTimestamp();
    await john.setTimestamp(currentTime.plus(1 * 60 * 60 * 25));

    await actualDB.sync(john.augur, CHUNK_SIZE, 0);
    market = (await api.route('getMarkets', {
      universe: universe.address,
    })).markets.filter((marketInfo) => marketInfo.id === marketContract.address)[0];
    expect(market.reportingState).toEqual(MarketReportingState.OpenReporting);

    const SOME_REP = new BigNumber(6e25);
    await john.repFaucet(SOME_REP);

    // Do the initial report, creating the first dispute window.
    const payoutNumerators = getPayoutNumerators(market, 'invalid');
    await john.doInitialReport(marketContract, payoutNumerators, '', SOME_REP.toString());

    await actualDB.sync(john.augur, CHUNK_SIZE, 0);
    market = (await api.route('getMarkets', {
      universe: universe.address,
    })).markets.filter((marketInfo) => marketInfo.id === marketContract.address)[0];
    console.log(market);
    expect(market.reportingState).toEqual(MarketReportingState.CrowdsourcingDispute);
  });

The issue with the automated tests is that the update is occurring via a sync, so processTimestamp isnt even being called and there is no code path where a race could occur. Instead the test would need to be operating in blockstream mode if it were to attempt and repro this.

Kovan hasn't been deployed since the first fix got into master so it's likely that there is no longer a bug. This is supported by my inability to repro locally. When possible, we'll redeploy to kovan and retest.

Verified fixed on new Kovan deploy.
Before reporting:
state.marketInfos["0x8aacbE11Eaed9e4922fDC58A26A6e7DcAA1d3Ac8"].reportingState
"DesignatedReporting"

After reporting:
state.marketInfos["0x8aacbE11Eaed9e4922fDC58A26A6e7DcAA1d3Ac8"].reportingState
"CrowdsourcingDispute"

(Tom verified that the original issue also happened in DesignatedReporting state.)


SDK Usage in unittests end up in azure.core.exceptions.ClientAuthenticationError:uthentication failed: maximum recursion depth exceeded while calling a Python object

Package Name & Version:

azure-common                    1.1.26
azure-core                      1.10.0
azure-datalake-store            0.0.51
azure-identity                  1.5.0
azure-storage-blob              12.7.1
azure-storage-file-datalake     12.2.2

Operating System:
MAC OSX 11.4 Big Sur

Python Version:
3.8.4, 3.9.4

Describe the bug
The intention is here simply to write a unittest that asserts if files are present in a given ADLS path

Authenticate and get a token with Service Principal and Azure Python SDK
with the token create a file system client
retrieve the content of a given ADLS filepath
assert that the content is not empty (returned length of list is > 0)

Either through pytest or unittests it always ends up in:
azure.core.exceptions.ClientAuthenticationError:uthentication failed: maximum recursion depth exceeded while calling a Python object
To Reproduce
Steps to reproduce the behavior:
Just execute either unittest variants:
pytest version:
from azure.core._match_conditions import MatchConditions
from azure.datalake.store import lib
from azure.identity import ClientSecretCredential
from azure.storage.filedatalake import DataLakeServiceClient
from azure.storage.filedatalake._models import ContentSettings
import pytest
import os
import logging
import logging.config

AppAdlsName= "please-replace-this"
AppAdlsFs= "please-replace-this"
AppAdlsContainer= "please-replace-this"
AppAdlsSpId= "please-replace-this"
AppAdlsSpSecret= "please-replace-this"
AppAdlsSpTenant= "please-replace-this"

logger = logging.getLogger('azure.identity')
logger.setLevel(logging.DEBUG)

class Test_Reader:

    def test_data_availability(self, getContent):

        contents = []

        paths = getContent

        for path in paths:
            path_qualifier = path.name.split("/")
            if len(path_qualifier) == 1 and path_qualifier[0].startswith(""):
                print(path_qualifier[0])
                contents.append(path_qualifier[0])
        assert len(contents) > 0

@pytest.fixture
def authenticate():
    account_url = "{}://{}.dfs.core.windows.net".format("https", AppAdlsName)
    my_credential = ClientSecretCredential(AppAdlsSpTenant, AppAdlsSpId, AppAdlsSpSecret)
    service_client = DataLakeServiceClient(account_url=account_url, credential=my_credential)
    file_system_client = service_client.get_file_system_client(file_system=AppAdlsContainer)
    return file_system_client

@pytest.fixture
def getContent(authenticate):
    file_system_client = authenticate
    content = file_system_client.get_paths("/")
    return content

unittest version:
from azure.core._match_conditions import MatchConditions
from azure.datalake.store import lib
from azure.identity import ClientSecretCredential
from azure.storage.filedatalake import DataLakeServiceClient
from azure.storage.filedatalake._models import ContentSettings
import pytest
import os
import logging

AppAdlsName= "please-replace-this"
AppAdlsFs= "please-replace-this"
AppAdlsContainer= "please-replace-this"
AppAdlsSpId= "please-replace-this"
AppAdlsSpSecret= "please-replace-this"
AppAdlsSpTenant= "please-replace-this"

import unittest

class TestStringMethods(unittest.TestCase):

    def test_upper(self):
        logger = logging.getLogger('azure.identity')
        logger.setLevel(logging.DEBUG)
        account_url = "{}://{}.dfs.core.windows.net".format("https", AppAdlsName)
        my_credential = ClientSecretCredential(AppAdlsSpTenant, AppAdlsSpId, AppAdlsSpSecret)
        service_client = DataLakeServiceClient(account_url=account_url, credential=my_credential)
        file_system_client = service_client.get_file_system_client(file_system=AppAdlsContainer)
        content = file_system_client.get_paths("/")

        contents = []

        paths = content

        for path in paths:
            path_qualifier = path.name.split("/")
            if len(path_qualifier) == 1 and path_qualifier[0].startswith(""):
                print(path_qualifier[0])
                contents.append(path_qualifier[0])

        self.assertGreater(len(contents),0)

if __name__ == '__main__':
    unittest.main()

Expected behavior
Unittests running fine without recursion isuses and test passes
Screenshots
N/A
Additional context
Here's the full trace:
`The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/identity/_internal/get_token_mixin.py", line 67, in get_token
token = self._acquire_token_silently(*scopes)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/identity/_internal/decorators.py", line 50, in wrapper
raise_from(auth_error, ex)
File "", line 3, in raise_from
azure.core.exceptions.ClientAuthenticationError: Authentication failed: maximum recursion depth exceeded while calling a Python object
WARNING  azure.identity._internal.get_token_mixin:get_token_mixin.py:81 ClientSecretCredential.get_token failed: Authentication failed: maximum recursion depth exceeded while calling a Python object
Traceback (most recent call last):
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/identity/_internal/decorators.py", line 45, in wrapper
return fn(*args, **kwargs)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/identity/_internal/client_credential_base.py", line 36, in _acquire_token_silently
app = self._get_app()
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/identity/_internal/client_credential_base.py", line 58, in _get_app
self._msal_app = self._create_app(msal.ConfidentialClientApplication)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/identity/_internal/msal_credentials.py", line 62, in _create_app
app = cls(
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/msal/application.py", line 238, in init
self.authority = Authority(
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/msal/authority.py", line 83, in init
openid_config = tenant_discovery(
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/msal/authority.py", line 142, in tenant_discovery
resp = http_client.get(tenant_discovery_endpoint, **kwargs)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/identity/_internal/msal_client.py", line 105, in get
response = self._pipeline.run(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 211, in run
return first_node.send(pipeline_request)  # type: ignore
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/policies/_retry.py", line 435, in send
response = self.next.send(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 103, in send
self._sender.send(request.http_request, **request.context.options),
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/azure/core/pipeline/transport/_requests_basic.py", line 260, in send
response = self.session.request(  # type: ignore
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
httplib_response = self._make_request(
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/urllib3/connectionpool.py", line 382, in _make_request
self._validate_conn(conn)
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/urllib3/connectionpool.py", line 1010, in validate_conn
conn.connect()
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/urllib3/connection.py", line 392, in connect
self.ssl_context = create_urllib3_context(
File "/Users/hiescha/Code/frontend/venv2/lib/python3.8/site-packages/urllib3/util/ssl.py", line 303, in create_urllib3_context
context.options |= options
File "/Users/hiescha/.pyenv/versions/3.8.4/lib/python3.8/ssl.py", line 602, in options
super(SSLContext, SSLContext).options.set(self, value)
File "/Users/hiescha/.pyenv/versions/3.8.4/lib/python3.8/ssl.py", line 602, in options
super(SSLContext, SSLContext).options.set(self, value)
File "/Users/hiescha/.pyenv/versions/3.8.4/lib/python3.8/ssl.py", line 602, in options
super(SSLContext, SSLContext).options.set(self, value)
[Previous line repeated 449 more times]
RecursionError: maximum recursion depth exceeded while calling a Python object`

Thanks for opening this issue. I haven't seen this error before but after some searching I see it's often caused by monkeypatching ssl (see e.g. https://github.com/psf/requests/issues/3752#issuecomment-294603631 and https://github.com/benoitc/gunicorn/issues/1566#issuecomment-364710908). Do you know of anything in your environment that might patch networking libraries?
Also, do you see this error outside of unit tests? For example, when simply authenticating:
credential = ClientSecretCredential(AppAdlsSpTenant, AppAdlsSpId, AppAdlsSpSecret)
credential.get_token("https://storage.azure.com/.default")

thanks @chlowell for the quick response.
the pytest warnings summary is indeed mentioning something about monkey patch and this referred issue:
https://github.com/gevent/gevent/issues/1016
I tried to reorder the imports, having gevent and monkey first, patching it but unfortunately without any success.
In other github issues there's even a curious goerge edition of this patch: https://github.com/spyoungtech/grequests/issues/97
I have no clue what's going on here. And yes, running your snippet with the credential works fine in case it's executed by the python binary but as soon as you initate it via pytest or python -m pytest you will end up with the recursion issue.

================================================================================================================= warnings summary =================================================================================================================
venv/lib/python3.9/site-packages/grequests.py:22
  /Users/hiescha/Code/frontend/venv/lib/python3.9/site-packages/grequests.py:22: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util.ssl_ (/Users/hiescha/Code/frontend/venv/lib/python3.9/site-packages/urllib3/util/ssl_.py)', 'urllib3.util (/Users/hiescha/Code/frontend/venv/lib/python3.9/site-packages/urllib3/util/__init__.py)'].
    curious_george.patch_all(thread=False, select=False)

venv/lib/python3.9/site-packages/gevent/monkey.py:1037
  /Users/hiescha/Code/frontend/venv/lib/python3.9/site-packages/gevent/monkey.py:1037: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util.ssl_ (/Users/hiescha/Code/frontend/venv/lib/python3.9/site-packages/urllib3/util/ssl_.py)', 'urllib3.util (/Users/hiescha/Code/frontend/venv/lib/python3.9/site-packages/urllib3/util/__init__.py)'].
    _queue_warning(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

Then it seems your test environment loads grequests which in turn loads gevent, which patches ssl, and the fix would be to ensure this happens before requests imports ssl. I don't have a clue either, I can only speak to (parts of) the Azure SDK. Maybe you could apply the patch earlier in the test run lifecycle, e.g. in pytest's conftest.py?


how to enable gpu accelerate

I hava a question that how can i enable gpu accelerate

It's enabled by default with VLC 3, unless your GPU has been explicitely excluded by the VLC developers. Are you able to use hardware acceleration on the VLC app?

but from my observation there was disable gpu accelrate feature,how can i enable it

this issue similar to #441


Support Tokio 0.2

With async/await & tokio 0.2 released it might be good to refresh this library

If I believe #38 and #29 it's not an easy task and the Author doesn't have the time to do it atm, sadly.

This can be close 🥳

Well, yes :slightly_smiling_face: I'll go through the old issues and close accordingly when it all settles down a bit.


fix(@angular-devkit/build-angular): sockPath for custom path

Fixes #9146
Issue
# setup project
ng new base-href-socket-path --style=css --inlineStyle=true --inlineTemplate=true --routing=false --minimal=true
# Start server with baseHref and publicHost
ng serve --baseHref="/my-app/" --publicHost="http://localhost:4200/my-app"

The auto-reload sockjs-node/* websocket requests fails with a 404:
E.g. curl http://localhost:4200/my-app/sockjs-node/info returns:
> GET /my-app/sockjs-node/info HTTP/1.1
> Host: localhost:4200
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< X-Powered-By: Express
< Access-Control-Allow-Origin: *
< Content-Security-Policy: default-src 'none'
< X-Content-Type-Options: nosniff
< Content-Type: text/html; charset=utf-8
< Content-Length: 162
< Date: Sat, 19 Oct 2019 13:43:22 GMT
< Connection: keep-alive
<
<!DOCTYPE html>

<meta charset="utf-8">
<title>Error</title>

Cannot GET /my-app/sockjs-node/info

setting webpack dev-servers sockPath to connect to reloading socket via custom path when serving the app on a custom path.
See https://github.com/micmro/angular-base-href-reload-socket-path-workaround for issue and a currently working workaround using @angular-builders/custom-webpack.

Looks like the tests failed for an unrelated reason?
ERROR in The Angular Compiler requires TypeScript >=3.6.4 and <3.7.0 but 3.5.3 was found instead.

    at _exec (/home/circleci/ng/tests/legacy-cli/e2e/utils/process.ts:60:17)
    at silentNg (/home/circleci/ng/tests/legacy-cli/e2e/utils/process.ts:166:12)
    at Object.ng (/home/circleci/ng/tests/legacy-cli/e2e/utils/process.ts:154:16)
    at default_1 (/home/circleci/ng/tests/legacy-cli/e2e/tests/misc/browsers.ts:22:21)

Test "tests/misc/browsers" failed...
Running "ng build --prod" returned error code 1...

STDOUT:

STDERR:

ERROR in The Angular Compiler requires TypeScript >=3.6.4 and <3.7.0 but 3.5.3 was found instead.

Error: Running "ng build --prod" returned error code 1...

STDOUT:

STDERR:

ERROR in The Angular Compiler requires TypeScript >=3.6.4 and <3.7.0 but 3.5.3 was found instead.

    at _exec (/home/circleci/ng/tests/legacy-cli/e2e/utils/process.ts:60:17)
    at silentNg (/home/circleci/ng/tests/legacy-cli/e2e/utils/process.ts:166:12)
    at Object.ng (/home/circleci/ng/tests/legacy-cli/e2e/utils/process.ts:154:16)
    at default_1 (/home/circleci/ng/tests/legacy-cli/e2e/tests/misc/browsers.ts:22:21)
Exited with code 1

Thanks @clydin, yes, rebasing has fixed it.

These changes broke our setup.
Now if you specify --public-host=https://localhost:5001/app/
The behavior changes and this endpoint serves you the index.html: http://localhost:4200/sockjs-node/info
The proper sock endpoint switches to http://localhost:4200/app/sockjs-node/info

Sorry for the disruption @mllab-nl.
Based on Angular CLI the docs publicHost should include the live-reload client:

The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies.

Otherwise it's not possible to reverse-proxy multiple apps with live-reload.


Physics unit tests for all stages

pull request #51 introduced physics unit tests to verify basic / hist services for each stage implemented in PISA 2 as well matched output of PISA 2's stages. We need the same for all stages / services implemented beyond those. And probably in some cases we'll want the baseline to be output of PISA 3 (or something else entirely), where there is no corresponding stage in PISA 2.

I don't know what this PISA 2/3 stuff refers to, but we live in PISA 4 era now, so I assume this is not relevant anymore..


IpLocationProvider lag

IpLocationProvider's getResult method performs a web request to retrieve the IP location from a remote webservice. Occasionally, this appears to fall over, leading to page load times of between 30-90 seconds.
We shouldn't be doing this on page load, unless absolutely necessary. We should probably push this to a background maintenance job via a probably hacky cronjob in master. We should also think about newinternal for this.
Alternatives include doing post-webrequest processing at request creation, or simply setting a timeout. I personally feel a short (5s?) timeout on pageload is necessary, in case the background processing isn't complete by the time the data is needed, we can still request the data at runtime. 95% of the time we should aim to have this data before it is needed.
IpLocationProvider::getResult       92,873,562 µs

Reopening because this isn't fixed for newinternal cleanly yet


oh-my-zsh: 2021-02-21 → 2021-03-01

Motivation for this change
Update
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[X] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 114862 at 61ac031f run on aarch64-linux 1

1 package built:

oh-my-zsh

1 suggestion:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/shells/zsh/oh-my-zsh/default.nix:19:3:
   |
19 |   installPhase = ''
   |   ^


Getting a build error on deploying to Github pages

I am trying to host this on - myusername.github.io/blog
I am able to build this locally successfully.
However, after pushing it to github, I get en email
The page build failed for the `master` branch with the following error:

A file was included in `blog/index.html` that is a symlink or does not exist in your `_includes` directory. For more information, see https://help.github.com/en/github/working-with-github-pages/troubleshooting-jekyll-build-errors-for-github-pages-sites#file-is-a-symlink

I already built it with
bundle exec jekyll build

and got no errors. I also made no changes to the code other than changing baseurl in .config to baseurl: /blog
Any help with this would be appreciated.

Having the same issue


Support MSET and MSETNX commands

Dynomite should support the MSET and MSETNX cmds.
Also, as precaution, Dynomite should check every key in these cmds, and ensure that they all belong to the same token/shard.

I have fixed mset. It works fine in a local region cluster. We will fix msetnx when there is a need


Make sure ignoreUnimportantViews cap gets passed through

If we try to set the cap before initializing bootstrap then we get an error when trying to call a method on undefined.

👍

I'm still trying to get cloudbees to report back about the build status beyond it being triggered or running. For reasons that are not yet apparent it doesn't report passed/failed/errored.
Passed: https://team-appium.ci.cloudbees.com/job/Appium-android-driver/322/


fix docstring for get_image() image_id parameter

In the compute API, the docstring for get_image() method's image_id parameter says "Node to run the task on." This description does not make sense. It looks like a bad copy-paste from the create_image() method's node parameter.

(Looks like ReadTheDocs is not rendering :rtype NodeImage: :return: NodeImage instance on success. properly there either)

(Looks like ReadTheDocs is not rendering :rtype NodeImage: :return: NodeImage instance on success. properly there either)

Thanks for reporting this - please feel free to open a PR with a fix :)

Thanks for reporting this - please feel free to open a PR with a fix :)


subset of Microsoft regional SIP Proxies ?

Hello
I have a question regarding this statement.
"If a trunk sends SIP Options to only a subset of Microsoft regional SIP Proxies, then these routes are tried first and the rest are demoted."
Can you please advise how to know what are the IP address of regional SIP proxies, usually we are using sip.pstnhub.microsoft.com sip2.pstnhub.microsoft.com and sip3.pstnhub.microsoft.com, are these already resolving to 3 different IP addresses in different regions ?
Thanx

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

If you have as much heart as me. But I doubt you do. You’ve proven
yourself. I challenge you. Debate with me
On Fri, Mar 17, 2023 at 8:04 AM waelschakaki @.***>
wrote:

Hello
I have a question regarding this statement.
"If a trunk sends SIP Options to only a subset of Microsoft regional SIP
Proxies, then these routes are tried first and the rest are demoted."
Can you please advise how to know what are the IP address of regional SIP
proxies, usually we are using sip.pstnhub.microsoft.com
sip2.pstnhub.microsoft.com and sip3.pstnhub.microsoft.com, are these
already resolving to 3 different IP addresses in different regions ?
Thanx
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com
http://learn.microsoft.com ➟ GitHub issue linking.

ID: e18d7c72-cd78-c0fe-42d4-d08275b68793
Version Independent ID: e18d7c72-cd78-c0fe-42d4-d08275b68793
Content: What's New Direct Routing - Microsoft Teams
https://learn.microsoft.com/en-us/microsoftteams/direct-routing-whats-new
Content Source: Teams/direct-routing-whats-new.md
https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/blob/live/Teams/direct-routing-whats-new.md
Service: msteams
GitHub Login: @wlibebe https://github.com/wlibebe
Microsoft Alias: wlibebe

—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/9829,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASNNLDYYXHQ66KAPS4XTWALW4RONHANCNFSM6AAAAAAV6QGPXU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

@scanum - I've removed the offending comments and have removed the code-of-conduct label. Thanks!


Nested Create: Integration/Unit testing

For every sub-task being merged into the parent feature branch for nested insertions: dev/NestedMutations, add unit/integration test wherever possible and required.
PRs to be merged into the parent branch:

https://github.com/Azure/data-api-builder/pull/1902
https://github.com/Azure/data-api-builder/pull/1943
https://github.com/Azure/data-api-builder/pull/1994
https://github.com/Azure/data-api-builder/pull/1983
https://github.com/Azure/data-api-builder/pull/1929
https://github.com/Azure/data-api-builder/pull/1997

As and when more sub-tasks are created, need to append them to the list.

Adding unit/integration tests to the individual PRs itself. Hence no need to track via this issue.


Wrong hostname in charts

Ocasionally NmonVisualizer presents a different hostname on the charts than the real one as seen on the table view. I'm attaching screenshots of this error.

I found a way to fix this by choosing Options -> Name Systems -> By Nmon Run Name.
Any thoughts as to why I was getting different hostnames?

It seems its a Java redenring bug, somethign to do with the fonts I guess. When I resize the window I get the number 4 changed to 1, I'm atacheing screenshots of this weird behavior.
Sorry for misclosing this issue.

This looks like a rendering bug. I can sometimes recreate it on my system. However, this is rendering done by JFreeChart, not by NMONVisuzalizer directly. I could possibly add an option to change the font, but I don't know if that's necessary for an intermittent bug like this.
Note that changing the naming method via Options -> Name Systems only changes the name if you set it before any files are parsed.

Thanks for the reply. Whatever solution you come up with I'm sure it will be nice.
Perhaps you could give a heads up to the JFreeChart guys, this seems to be more on their side of the park than yours. ;)


Refactor narrow/pointer stuff.

Automated message from Dropbox CLA bot
@showell, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, thanks @showell!
I think we could at this point, from a pure refactoring perspective, remove the use_first_unread_anchor option from the frontend entirely, since it's always false in narrow.js.
However, I think it's possible that it's a bug that we currently never use that.  It would seem to me that we want use_first_unread_anchor if we're not confident that we have all the the messages around the read/unread boundary in a stream available in the frontend when narrowing to a stream, for example.  But maybe I'm missing something?

Yeah...not sure.


[bug] Tree-shaking isn't taking place for unused features

Is there an existing issue for this?

[X] I have searched the existing issues

RainbowKit Version
2.1.2
wagmi Version
2.11.2
Current Behavior
In cases where AccountModal or ChainModal aren't used, their code is still fully bundled by webpack.
The worst "offender" is the normalize function viem reexports (at 25kb gzipped), which is (probably?) imported RainbowKitProvider -> ModalProvider -> AccountModal -> useProfile -> useMainnetEnsAvatar-> safeNormalize.
Expected Behavior
Rainbowkit should allow for the configuration of used/unused features, and structuring the code in such a way that disabled features are tree-shaked away.
Steps To Reproduce
No response
Link to Minimal Reproducible Example (CodeSandbox, StackBlitz, etc.)
No response
Anything else?
No response

@magiziz saw the PR was closed without reason, any updates? Thanks


1.0.25 - Issue with Duplicate/Move task to different project

Hi,
When I try to move or copy a task from one project to another and I get the menu, I cannot choose the swimlane of the destination project, where the task should be moved to.
The name of the swimlane I see is Progress, which I have not declared anywhere. And no matter, which project I would choose the name stays the same.
When I finish the task copy/move operation it will be put into the default swimlane of the destination project, even if it is disabled.
I would have to enable the swimlane and move it to the correct one.
Regards

I seem to have a similar problem. I can duplicate an item as long as I don't change the project in the "Move the task to another project" dialog. When I select another project in the dialog it doesn't seem to update the Swimlane, Column or Category in the selection for that corresponding project.

This issue is now fixed in the development version.
Thanks.

Duplicate with #1800


⚠ Bofrost.de has degraded performance

In 229e8f9, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 933 ms

Resolved: Bofrost.de performance has improved in ae668cd after 6 minutes.


Local storage vanishes after test run

I am running protractor using grunt-protractor-runner node package and Chrome browser.
Project configurations:
node: v0.12.1
npm: 2.5.1
OS: windows 2008 R2 64 bit
protrator 2.0
jasmine 1.3
Our application heavily rely on local storage, cookies and indexdb (pouchdb). It is observed that during the test run localstorage, cookies and indexdb get populated and as soon as test run ends. Localstorage, cookies and indexdb get deleted.
One thought is that protractor starts browser in new thread and as soon as test is finished, it removes all the information related to that thread.
Is there a way, to keep the localstorage, cookies information and indexdb even test is over?
I tried to use chrome flags '--no-sandbox', '--test-type=browser', '--disk-cache-size=10000',  '--v8-cache-options=on' but it did't work.
Any help will be appreciated.

Browsers are started and controlled using WebDriver, which gets a clean session for each test run. So you are correct. This is generally a desirable feature, since it allows tests to be hermetic. The advice is generally to do set up you need for each test run in a beforeEach or onPrepare block.
Firefox has a way to restore sessions using profiles, but I do not know of a way to do this for Chrome.


x/build/cmd/relui: compute Google Groups URL of sent announcement email

A part of completing the task that sends a release announcement email (#47405) is being able to tell that the email has been received by Google Groups (and moderated as needed), and determining its URL. This URL serves as the canonical announcement URL, and is currently included in the release tweet (see ReleaseTweet.Announcement).
For example, the email announcing the release of Go 1.17.6 and Go 1.16.13 was sent on Jan 6. It was successfully received, moderated, and its URL became https://groups.google.com/g/golang-announce/c/95ZD3rKn4DI/m/93cyN8F1BAAJ.
We don't find out what the final URL will be on google groups as part of sending the email, this needs to be computed afterwards, so breaking it out as a smaller issue.
Since the announcement group is highly moderated, it's likely sufficient for us to match based on subject. If the subject matches, it must be the right email:
// Input:
"Go 1.17.6 and Go 1.16.13 are released"
// Output:
"https://groups.google.com/g/golang-announce/c/95ZD3rKn4DI/m/93cyN8F1BAAJ"
"https://groups.google.com/g/golang-announce/c/95ZD3rKn4DI"  // Alternative, also okay.

// Input:
"Go 1.17 Release Candidate 3 is released"
// Output:
os.ErrNotExist or context.DeadlineExceeded  // Accurate on 2022-01-27.

It's expected that emails don't travel instantaneously, so the code would need to run in a loop that tries (with a reasonable deadline) multiple times, and once the email is received by google groups, eventually succeeds.
Options:

Extract the subject and URL from the HTML of Google Groups (https://groups.google.com/g/golang-announce).
Use an API to find a matching thread, if such an API is available and using it is viable.

CC @golang/release.

I've explored the aforementioned options.
There may be an API we can use, but using it has some overhead in initial setup and maintenance. Based on what I've learned, I think we can defer considing/exploring it more until a later milestone.
Parsing the HTML appears to be a more attractive immediate solution to this (to unblock #47405). I've prototyped it locally and it seems to meet the needs of this task. Unless we learn of a reason it can't work well, I'll clean it up and send a CL.


Update README.markdown

im updating this in https://github.com/civisanalytics/authority/pull/1

im updating this in #1

yeah this was just a test PR to try to get Travis to work. It won't. 💀


SVG show issue in hub.helm.sh

SVG image cannot show as expected in https://hub.helm.sh, like https://hub.helm.sh/charts/stable/rocketchat:
stable/rocketchat$ grep icon Chart.yaml
icon: https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon.svg

If there is a limit about image file type, should document it i think.

Hi @daixiang0
I guess it could be related with the extension .svg since most charts use .png and they're correctly rendered. I am afraid I am not maintaining the Helm Hub, therefore I can't help you with this.
By the way, it seems that Kubeapps Hub is also unable to render your icon (see https://hub.kubeapps.com/charts/stable/rocketchat)

That seems a bug indeed.
Thanks @juan131, could you ping a maintianer of the Hem Hub, i am not familiar with them.

cc @mattfarina @unguiculus

Need to fix.

keep


Provide a data interface to allow optional submodules

It's getting really annoying to have multiple duplicated repo for public and private datas, let's reduce that to 1 and provide a fallback

obsolete


Support Google Cloud Spanner

Hey! :)
It would be awesome if Prisma Client could be compatible with https://cloud.google.com/spanner/

I'd love to see Spanner supported. Now that Spanner has granular instance sizing and cloud sql has mandatory downtime where Spanner doesn't, it makes it the preferred database over cloudsql.
Spanner is starting to rollout a postgres dialect to spanner. They mention it's not 100% compatible but it would be great have prisma add some documentation outlining limitations if any
https://cloud.google.com/spanner/docs/postgresql-interface

Nice.
(Note that the following does not indicate that we are committed to build a Google Spanner compatible connector any time soon. This is just me exploring and figuring out what might already work, and what does not. If Prisma will ever have this, and wants to spend more time on this, will be decided on a different level. I am just curious.)
Our next steps here would be to understand GCP enough to be able to have a Spanner instance with some schema and data in it, and enable the PostgreSQL interface. We would then try to run npx prisma db pull on it and see what fails (If it does not, we would probably still continue with a manually written schema of the database - starting with one table probably.) If it magically works out of the box, we would use the generated schema to send some manualy queries. If that also magically works, we could even try migrate dev after a small schema change to see what happens. And if that also succeeds we would then start to think how to integrate a Cloud only service into our test suite - but that is quite a bit off.
So if you understand GCP well, have a Spanner instance with data and the PostgreSQL interface enabled - please try these steps! (And/or send me an email at<EMAIL_ADDRESS>and send over the connection string, so we can do so at the side).

Tried to use PGAdapter and Spanner Emulator locally with Prisma using the following docker-compose file:
version: "3.3"
services:
  spanner:
    env_file: .env
    image: gcr.io/cloud-spanner-emulator/emulator
    ports:
      - '9010:9010'
      - '9020:9020'

  pg-adapter:
    image: gcr.io/cloud-spanner-pg-adapter/pgadapter:v0.6.1
    volumes:
      - ./test/fake-spanner-credentials.json:/acct_credentials.json
    ports:
      - <IP_ADDRESS>:5432:5432
    command:
      - -p my_project
      - -i my_instance
      - -d my_database
      - -c /acct_credentials.json
      - -x

Getting this error:
Prisma CLI Version : 4.1.1
Error: Command failed: DATABASE_URL=cloudspanner:/projects/my_project/instances/my_instance/databases/my_database prisma migrate dev
Error: Get Config: Schema parsing - Error while interacting with query-engine-node-api library
Error code: P1012
error: Error validating datasource `db`: the URL must start with the protocol `postgresql://` or `postgres://`.
  -->  schema.prisma:6
   |
 5 |   provider = "postgresql"
 6 |   url      = env("DATABASE_URL")

So the problem is that PGAdapter requires connection url to start with cloudspanner:// while Prisma wants it to be postgresql://.
Using cloudspanner:// will error out on Prisma side.
Using postgresql:// will error out on PGAdapter side.

Adding an env var that allows cloudspanner:// as an alternative to postgresql:// (in a dev version maybe) would unblock this problem I guess @glebbash?

If there is no further validation for the rest of connection url: /projects/my_project/instances/my_instance/databases/my_database then yeah, it should work.

Thanks for clarifying that, we would indeed probably check for port and so on. So they way here would be to accept a completely different connection string. Interesting that psql seems to work for that out of the box (per PGAdapter docs). Can you share a full connection string that we would need to use?

Now that I think about which url would be okay for PGAdapter to work I am kinda lost, as it requires cloudspanner prefix and after that you would need to point to a local IP and port.
So theoretically it should be comething like cloudspanner://localhost:5432.
But there is a big chance that it wont work like that as PGAdapter docs say that only psql client is supported.

Has there been any updates / further thoughts on this @janpio?
Prisma should seriously consider supporting a Spanner connector.
The PostgreSQL interface for Cloud Spanner is now in GA and their basic pricing tier has dropped down to as low as $40/month.
Having a cheap, strongly consistent cross-region, ACID compliant, relational database is basically the holy grail, but unfortunately, many fast-moving teams will either overlook or avoid using Spanner because there is no Type-safe Node ORM that connects to it (despite the efforts by Google to provide the PostgreSQL Interface).
By supporting Spanner, Prisma has the opportunity to capture the market of large enterprise companies who use and/or want to use it with Node. This could then be leveraged as a funnel to drive these large customers towards your paid and enterprise offerings, which pays off the effort spent integrating Spanner.

This is currently not a priority for us.
If someone (@glebbash?) confirms that for example allowing cloudspanner:// as a protocol is all it needs to test this further, we might be happy to add that so we get to a better understanding where blockers will be. But w can currently not invest in figuring all this out or even implementing support unfortunately.

Hello,
I have setup a Spanner instance, with the PostgreSQL dialect.
When starting my app, I get the following error:
Error querying the database: db error: ERROR: Invalid SET statement: SET NAMES 'UTF8'. Expected TO or =.
I use DATABASE_URL="postgresql://<IP_ADDRESS>:5432/my-database" in my Prisma config.
Plus the following Docker container,
docker run \   -d -p 5432:5432 \   -v ${GOOGLE_APPLICATION_CREDENTIALS}:${GOOGLE_APPLICATION_CREDENTIALS}:ro \   -e GOOGLE_APPLICATION_CREDENTIALS \   gcr.io/cloud-spanner-pg-adapter/pgadapter \   -p my-gcp-project-id -i my-spanner-instance-id \   -x

Naive question, what is the quickest way to setup up the required GOOGLE_APPLICATION_CREDENTIALS?

I just tried the same thing as @etifontaine and got the same result.

Create a Google Cloud Account
Set up a Regional Spanner instance with 100 processing units ($0.09/h)
When it's done, create a database with PG Dialect. Remember the name.
Go to IAM > Services Accounts and create a new one with Owner Access.
Once created, click the 3 dots next to the new service account and 'Manage Keys'
Create a new JSON key, this will be your GOOGLE_APPLICATION_CREDENTIALS.
Follow the guide here and launch a local PGAdapter docker service. Below is the what I used. PROJECT_ID is found here. Spanner Instance ID is found under Spanner Tab and the database name is what you named it in step 3. CREDENTIALS_FILE_PATH is the downloaded JSON path from step 5.

docker run -d -p 5432:5432 \
    -v CREDENTIALS_FILE_PATH:/acct_credentials.json \
    gcr.io/cloud-spanner-pg-adapter/pgadapter:latest \
    -p PROJECT_ID -i SPANNER_INSTANCE_ID -d PG_DATABASE_NAME  \
    -c /acct_credentials.json -q -x

Create a basic node project with with the following

// prisma/schema.prisma
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

// .env
DATABASE_URL="postgresql://localhost:5432/{DATABASE_NAME from step 3}"

// index.js
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient();

(async () => {
    const result = await prisma.$queryRaw`SELECT 1`
    console.log(result)
})()

Error querying the database: db error: ERROR: Invalid SET statement: SET NAMES 'UTF8'. Expected TO or =.
I also got the same error when trying.
npx prisma migrate dev --name init
--
When finished testing, make sure to delete your spanner instance. There is also a free trial for Spanner, but I have already used it. So testing for you may be free.

Some experimental work started over there: https://github.com/GoogleCloudPlatform/pgadapter/issues/589 + https://github.com/GoogleCloudPlatform/pgadapter/pull/590 <3

I'll add my two cents here - it would actually be nice to have a spanner native (non-postgres dialect) version. There are a few really interesting caveats to the way the postgres dialect works as have been noted in this thread. First, you have to run a separate process (the pgadapter) to do the translation, but secondly, there are actually some really important features missing when you use the postgres dialect - specifically, the change log that spanner produces and is consumable for CDC doesn't work with postgres (as I understand it). I also remember the journey we went through here for cockroach where, even though it said wire compatible, there are enough special things that prisma does that it didn't really work perfectly until there was a full, flavored release.

We fundamentally agree, but to explain why I am pushing on this: Native Spanner support is not happening for sure this year. If it turns out that the PgAdapter is close enough or can be adapted though, we could possibly find a way to make this usable sooner.

I think version() again is something the adapter could handle. It is one of the default system functions of PostgreSQL, which is why Prisma expects it to exist: https://www.postgresql.org/docs/current/functions-info.html#:~:text=to current_user.-,version () → text,-Returns a string
(We could rewrite our code to handle this not being present, but for normal PostgreSQL (and compatible databases) that is never expected to fail, so would be a bit weird - but we most probably could: https://github.com/prisma/prisma-engines/blob/af46365b40aa4864b99acec97dc2dd5bdc27411c/migration-engine/connectors/sql-migration-connector/src/flavour/postgres.rs#L562-L594)
I expect a few more of these to pop up on db pull as well, where Prisma queries a lot of the PostgreSQL system tables for information about the available tables and columns and so on.

I've mentioned this on the prisma support issue: https://github.com/GoogleCloudPlatform/pgadapter/issues/589

im running into similar errors when using pgadapter with prisma migrate
Error: Schema engine error:
db error: ERROR: Postgres function current_setting(text) is not supported - Statement: 'with pg_namespace as (
  select case schema_name when 'pg_catalog' then 11 when 'public' then 2200 else 0 end as oid,
        schema_name as nspname, null as nspowner, null as nspacl
  from information_schema.schemata
)
SELECT EXISTS(SELECT 1 FROM pg_namespace WHERE nspname = $1), '14.1', current_setting('server_version_num')::integer as numeric_version;'

fyi, i changed my url to be DATABASE_URL="postgres://postgres@<IP_ADDRESS>:5432/test_db?schema=transactions" which includes both the database name as well as the schema name, and npx prisma migrate dev --name init is able to run successfully.

Hello everyone, do you have any update on the Spanner support? Has anybody been able to make it work reliably with Prisma? 🙇♂

We recently tried to use Spanner as a Prisma backend but gave it up in the end. If I remember correctly, we couldn't make migrations work properly without more work than it was worth.
I'd love to hear if and how anyone got this to work properly


Improved UI robustness for errors on enabledPlug() expressions.

Seems to cause a failure in GafferUITest

I've rebased in a fixed version.


how to use github

pls help me

ok

[ ] what

dsa

dsa

das

d

ds

'''c

markdone.md


zhimi.humidifier.ca4 Incorrect parameters.

Good day, I found a problem in the parameters.

A slider is displayed instead of a water level sensor.

There is no switch to turn off the backlight.

There is no switch to mute the sound.

The speed of the motor. (I do not know if it is possible to get it).

There is no very important function (Cleaning) in which the fan turns off and only the drum turns.

There is no function (Dry) at which, as far as I remember, turbo mode is turned on without turning the drum. (I may be wrong, perhaps this is a function in which 8 hours of work after the water runs out).

If you need tests or some data, I am ready to help.

Try master branch.

Try master branch.

I have upgraded to a branch (Master) but it didn't change anything, I also deleted and added the device again.


Implementing end-to-end flows in admin domain service

This issue is created to track the progress of implementing the end-to-end flows of Admin domain service.

[ ] #180

closing due to pending task is tracked in a separate issue


prevent 'integer out of range' error in delay_ready

In default postgresql will cast to INTEGER, prevent overflow via manual cast to BIGINT

thanks!


[BEAM-4445] Split pre-commit tests into separate jobs based on trigger condition.

This is necessary in order to use filtering based on touched files. In
the ghprb plugin all trigger criteria is evaluated together, which means
that include filters are also applied to phrase triggering.
See: https://github.com/jenkinsci/ghprb-plugin/issues/678

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Spark

Go

---
---
---
---
---

Java

Python

---

---
---
---

R: @Ardagan
FYI, this still has a few TODO's and needs more testing, but I wanted to get some early feedback on the syntax. Whatever we come up with, I'd like to normalize the precommits and post-commits to use the same syntax.
Let's review on reviewable.io!

Run Seed Job

I've submitted a few sample PRs to validate the behavior of this change:

#5760: sample java change

Verified only java precommits run by default

#5761: sample go change

Verified only go precommits run by default
Verified re-running go precommits via trigger phrase overrides the existing job status in GitHub UI
Verified ability to use trigger phrase for other precommits (python)
Verified that trigger phrases are case-insensitive ("run java precommit" vs "Run Java PreCommit")

#5762: sample model change

Verified that all 3 precommits still run.

I believe this is good-to-go. Note I was originally planning on refactoring all post-commits to match this syntax. However I started down that road and realized there are a lot of post-commits and refactoring will be non-trivial. I'll save that for a follow-up change.
@Ardagan please take a look.

Reviewed 16 of 17 files at r2, 1 of 1 files at r3.
Review status: all files reviewed, 5 unresolved discussions (waiting on @Ardagan)

.test-infra/jenkins/JobBuilder.groovy, line 48 at r3 (raw file):
Previously, Ardagan (Mikhail Gryzykhin) wrote…
Since you create PrecommitBuilder, it is best to rename this class to PostcommitBuilder.
I would also rename both classes to "xxxxJobBuilder"

Done.

.test-infra/jenkins/PrecommitBuilder.groovy, line 70 at r3 (raw file):
Previously, Ardagan (Mikhail Gryzykhin) wrote…
It is better to either use braces in all places, or omit them in all places uniformly. (see line 61 vs 70)

Thanks, good catch.

.test-infra/jenkins/PrecommitBuilder.groovy, line 86 at r3 (raw file):
Previously, Ardagan (Mikhail Gryzykhin) wrote…
''' missing, and extra ')'

Done.

.test-infra/jenkins/PrecommitBuilder.groovy, line 98 at r3 (raw file):
Previously, Ardagan (Mikhail Gryzykhin) wrote…
I would explicitly convert usesRegionFilter to allowRemotePoll for readability.

Done.

.test-infra/jenkins/PrecommitBuilder.groovy, line 119 at r3 (raw file):
Previously, Ardagan (Mikhail Gryzykhin) wrote…
I believe this comment is redundant, method name is descriptive enough.

Done.

Comments from Reviewable

Run Seed Job

Run Seed Job