Error: Unable to instantiate java compiler

Hi! @nils-braun,
As you already know I mistakenly opened this issue on Dask-Docker repo and you were kindly alerted by @jrbourbeau
I will copy/paste my original post here as well as your initial answer (Thank you for your quick reply)
Here is my original post:
####################################################################
What happened:
After installing Java and dask-sql using pip, whenever I try to run a SQL query from my python code I get the following error:
...
File "/home/vquery/.local/lib/python3.8/site-packages/dask_sql/context.py", line 378, in sql
    rel, select_names, _ = self._get_ral(sql)
  File "/home/vquery/.local/lib/python3.8/site-packages/dask_sql/context.py", line 515, in _get_ral
    nonOptimizedRelNode = generator.getRelationalAlgebra(validatedSqlNode)
java.lang.java.lang.IllegalStateException: java.lang.IllegalStateException: Unable to instantiate java compiler
...
...
File "JaninoRelMetadataProvider.java", line 426, in org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile
  File "CompilerFactoryFactory.java", line 61, in org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory
java.lang.java.lang.NullPointerException: java.lang.NullPointerException

What you expected to happen:
I should get a dataframe as a result.
Minimal Complete Verifiable Example:

# The cluster/client setup is done first, in another module not the one executing the SQL query
# Also tried other cluster/scheduler types with the same error
from dask.distributed import Client, LocalCluster
cluster = LocalCluster(
    n_workers=4,
    threads_per_worker=1,
    processes=False,
    dashboard_address=':8787',
    asynchronous=False,
    memory_limit='1GB'
    )
client = Client(cluster)

# The SQL code is executed in its own module
import dask.dataframe as dd
from dask_sql import Context

c = Context()
df = dd.read_parquet('/vQuery/files/results/US_Accidents_June20.parquet')
c.register_dask_table(df, 'df')
df = c.sql("""select ID, Source from df""") # This line fails with the error reported

Anything else we need to know?:
As mentioned in the code snippet above, due to the way my application is designed, the Dask client/cluster setup is done before dask-sql context is created.
Environment:

Dask version:

dask: 2020.12.0
dask-sql: 0.3.1

Python version:

Python 3.8.5

Operating System:

Ubuntu 20.04.1 LTS

Install method (conda, pip, source):

pip

Application Framework

Jupyter Notebook/Ipywidgets & Voila Server

Install steps
$ sudo apt install default-jre

$ sudo apt install default-jdk

$ java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

$ javac -version
javac 11.0.10

$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64

$ pip install dask-sql

$ pip list | grep dask-sql
dask-sql               0.3.1

Here is your initial answsr:
####################################################################

Thanks @jrbourbeau for the mention.
Hi @LaurentEsingle and thank you very much for (1) using and testing dask-sql and (2) writing this very nice bug report!
As you opened this issue in the dask-docker repository I assume you are using the dask docker image? If yes, is there a reason you are not using the conda-installable dask-sql package or the dask-sql docker image (that question is more for me to understand :-))
I tried to reproduce your problem both inside the dask docker image and on my local computer (which also runs Ubuntu 20.04), but I was not able to see this error (I tried both with java 11.0.10 and 11.0.9). To be fair: I only checked with a CSV, not a parquet file but I do not see any reason that should be the problem :-)
Looking into some old mail by Julian, the core developer of Apache Calcite (which dask-sql uses), I think you are running into a similar problem: do you have some other java libraries in your classpath? Libraries like janino or codehaus? Do you set a custom classpath?
We can try some basic debugging. If you want, start your python interpreter and call
from dask_sql import java
# print where it gets the class from. That should be the DaskSQL.jar
print(java.org.codehaus.commons.compiler.CompilerFactoryFactory.class_.getProtectionDomain().getCodeSource().getLocation())
# print the JVM path, that should be your java installation
print(java.jvmpath)
# and now try to replicate the error
java.org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory()

Do those printed paths correspond to what you expect? Is the last line also failing?
Some possible solutions you might want to try out (depending on your use case):

use conda for installation (the conda package of dask-sql ships with a "clean" java installation without dependency problems)
use the dask-sql docker image (nbraun/dask-sql) if that is an alternative
check with $JAVA_HOME/bin/jps and then $JAVA_HOME/bin/jinfo if the classpath is actually picked up correctly after just having imported dask_sql in a python shell (the first command will print all running JVMs and the second can be used to show additional information to a JVM)

Last but not least a question: as you mentioned you are creating a dask cluster before importing dask-sql (which is totally fine): did you test without any created dask cluster (it shouldn't make a difference, but you never know...)?

Regarding the other options:

Use Conda: It is not advisable for me to do so as I use PIP for everything and throwing Conda in the mix after setting up the environment with PIP might not be such a good idea.
Dask-Sql container: my setup does not allow me to use an additional container for that purpose. The application already runs on a container and I want Dask-SQL feature to be seamlessly integrated in the application
Creating the context first. Doable but I cannot keep that configuration due to the application design. I tried in a test file but I still got the error

I will try in a Notebook (without Voila) and to check if Voila is the issue.

Hi @LaurentEsingle - that is really strange. All the output you send me looks quite reasonable (the fact that user.dir is different is fine - or are there any other files in your /resources/vQuery/files folder?). I am a bit out of ideas here :-/ Did you have a chance to check without Voila?
Is there a possibility that I can have a look into your code and do some tests by myself?

Hi @nils-braun ,
I found the issue in my code thanks to your mention of  Thread.currentThread().getContextClassLoader() in your last comment.
It turns out it is a threading issue.
My calls to Dask (and Dask-Sql) are done in a new thread. The problem is solved when making the calls without spawning a new thread.
That said it is not ideal for me as I do not want to block the UI and cannot use Dask Futures since I am using a Local scheduler most of the time. But at least I am able to make it work.
Thank you very much for your help.
Shall I close the issue now or do you need more information?

Thanks for the update!
That is quite interesting information, thanks for digging so deep! I never tried with a thread so far.

Shall I close the issue now or do you need more information?

Well, I think we (or you) have the problem but so far there is no solution to make it work for you.
To not block the UI makes a lot of sense! Have you thought about using a "single-machine distributed scheduler"? The setup is as easy as just using a local scheduler (see e.g. here) but does give you the benefits of using futures etc. You could e.g. spin up a distributed cluster with just a single local worker, which is more or less the same thing as you are currently doing (spinning up a new thread for each computation). You would then do the SQL parsing in the UI thread (but that should be really quick) and let the distributed worker do the rest. You can even choose between threads or processes in the distributed cluster.

@nils-braun
Indeed the next logical step for me should be to try the "single-machine distributed scheduler" to enable Dask Futures as you suggested.
Unfortunately I still get the "Unable to instantiate java compiler" error when using Futures.
The reason I think is because behind the scenes Futures use ThreadPoolExecutor, ProcessPoolExecutor, etc. from python concurrent.futures library.
Are you getting the same error when using threads in your testing environment?
Can you have a look at the following link  :
unable to find org.codehaus.commons.compiler.properties in java 11
Some workarounds are currently being suggested. Are they applicable to your project? What do you think?
Thanx

Unfortunately I still get the "Unable to instantiate java compiler" error when using Futures.

Maybe I misunderstood your use case then. Let me try to write what I understood and you can tell me, how wrong I was :-)
(but also see below for a possible solution without the futures using the SQL server and even more below with using your original proposal)
I imagine you have some sort of "frontend"/UI, where users can click a button or create some other type of input. In your original idea (which was quite reasonable, except the Java problem), you then spin up a new thread to kick of the computation with dask-sql, which then triggers a Dask computation with a LocalScheduler.
Now (that is what I understood), with the futures you should be able to live without this thread. If a user enters some input you kick off the dask-sql computation directly from within your UI process. This will basically only send the computation to the (local) cluster. This cluster does not run dask-sql, but only Dask - so you should not face the same problems as before.
While writing this, it came to my mind that - depending on your use case - you might also be interested in using dask-sql in server mode. If you are only interested in sending SQL strings to dask-sql (if this is your use case), you might be able to do this with a usual sqlalchemy connection (which will work in a separate thread). You would then run the dask-sql server in a separate process (unrelated to your main process).

Are you getting the same error when using threads in your testing environment?

When using the "single-machine distributed scheduler" I do not get any errors (that is my usual development environment).
But, thanks for asking this question - as it might have brought us a bit closer to the solution.
Compare those two code blocks:
import threading
import dask_sql

def run():
    c = dask_sql.Context()
    print(c.sql("SELECT 1 + 1").compute())

t = threading.Thread(target=run)
t.start()
t.join()

import threading

def run():
    import dask_sql
    c = dask_sql.Context()
    print(c.sql("SELECT 1 + 1").compute())

t = threading.Thread(target=run)
t.start()
t.join()

The first one throws the error you described whereas the second one works. The reason is, that while importing dask_sql, the internal java virtual machine is spun up. If you now switch the thread, the JVM is accessed from a different thread, which probably confuses it. If you are able to only run dask-sql completely in the newly created thread, you would also be able to import it only after having created the thread - and this might already solve your issue (that is also new to me, so thanks for sharing your issue!)

Can you have a look at the following link :

That is unfortunately not the same exception than we see here. Also, the code that raises the exception is in the Calcite library - not something I have directly access to (but I think with the solutions above, we might not even need to "fix" it).

@nils-braun
THANK YOU!
It works.
I was worried at firs about the overhead of importing dask-sql/spawning the JVM, setting the context and computing the results in a new thread each time a query is issued.
It turns out the overhead is minimal and not significant in my particular scenario (I am not expecting hundreds of users to connect to the application).
From a cold start (no previous queries), the timing is as follows in my system:

spawning the JVM:  about 1,5 seconds
getting the graph: about 2 seconds

On the second execution, the duration of each of the steps above is greatly reduced (a few microseconds)
Once the JVM is spawned, that same JVM is used for subsequent queries.
I think this usage of threads is worth mentioning in the documentation.
Again thank you!


Proposal: App Container (appc) as a Runtime Option in the Docker Engine

The team behind App Container (appc) is seeking feedback on whether there are any modifications required to the spec to allow it to work natively in Docker.
Background
App Container (appc) is a specification for running applications in containers. We think App Container represents the next logical iteration in what a container image format, runtime engine, and discovery protocol should look like. Full details of the spec can be found in the GitHub repo, in particular in the following two files:

SPEC - contains the latest and complete version of the specification
README - contains background information on some of the motivations and principles of the project

appc is young but has already seen a variety of implementations well before it has reached 1.0 (stable) status. Before we call it 1.0, we are requesting feedback from the Docker community on what might need to be modified in the spec in order for it to be supported natively in Docker. If there are any issues with the spec preventing Docker from supporting it, we would like to discuss and address them now.
Current Status
To test the compatibility of App Container and Docker, we have started to implement App Container Image and Image Discovery support into Docker itself. This work has already reached a functional state, which can be seen in the PR https://github.com/docker/docker/pull/10776
This should be considered somewhat experimental but we believe this prototype demonstrates that native support for appc within Docker is viable and worth pursuing.
Future Work
There are a number of interesting features that could be brought into the Engine by exploring further integration with App Container. For example, a fully implemented version of the appc spec as part of the Docker Engine would "close out" these proposals with code:

Labels/Tags of images: https://github.com/docker/docker/pull/9882 https://github.com/docker/docker/pull/8955
Container Groups: https://github.com/docker/docker/issues/8781
Container Identity: https://github.com/docker/docker/pull/9498 with appc metadata service
Separation of transport and naming: https://github.com/docker/docker/issues/6805
Consistent image IDs: https://github.com/docker/docker/issues/6959

Each of these topics (labels, container restarts, and container identity) is addressed and specified in the current v0.3.0 release of the spec.
Another point of interest is that the appc spec goes beyond giving a container a static public identity but also attempts to give a cryptographic identity, similar to how a host has an SSH public key.
We look forward to discussing these ideas in depth, but want to gauge the level of interest before committing a lot of effort towards building these features into the Engine. As mentioned earlier, the ACI running PR https://github.com/docker/docker/pull/10776 is just the first step.

As there are a lot of moving pieces to this proposal I have had several people suggest breaking it down into some smaller more detailed sections. One of the most obvious places to start is on the JSON schema for the image manifest.
Both the Docker and ACI format have a JSON object that describes the filesystem and how to run it. Things such as ENV variables, the executable to run and default resource constraints like max memory consumption are described in these JSON documents.
Here are the major sections of the ACI manifest and schema, how it compares with the Docker v1 manifest and how we might work together to make them both better:
Manifest Sections
image labels
The first is the image identity via a set of labels including: os, arch and version. These are simple key/value pairs that the user specifies in configuration or on the command-line. For example an image might uniquely be identified by the string example.com/app,arch=amd64,os=linux,version=0.1.0.
The current Docker v1 image format does not have the concept of labels but a PR is open: https://github.com/docker/docker/pull/9882
I do think it is advantageous to give people the flexibility to let people run images based on these labels. For example today we only have the tag to run a docker image from:
docker run app:v0.1.0
But, for some folks there might be a more complex set of things they are looking for, for example:
docker run app,channel=prod,passedQA=true
isolators
The appc spec leaves the schema open to adding isolation options in the future. The spec tries to specify a number of both OS-specific and OS-agnostic resource constraints. For example resource/cpu is OS-agnostic and linux/capabilities-retain-set.
The Docker v1 equivalent is a number of fields in the Config section such as Memory, MemorySwap, CPUShares, etc.
note: There are some upcoming changes to the isolator schema to make it more flexible .
I think that being explicit where things are OS specific and OS-agnostic and letting users add their own isolators to the list are important properties. This idea would be useful in the next Docker image manifest particularly as more OSes are supported. Also, since the isolation options are in a list the runtime can warn the user that it cannot understand or does not have the ability to isolate the container in particular ways.
ports/mount points
Another thing we wanted was to give a user identifiable label to ports and volumes. For example if a service exposes something on 8081 it is difficult to know what that port is actually. So, in appc you can provide a name such as "health" or even "example.com/client".
The Docker v1 equivalent is ExposedPorts which has the protocol and port number but no user facing label on what that port might have on it. This holds true for the Volumes list in the manifest today too. You only know about paths, not an abstract name for that path like "logs" or "db".
dependencies
Background: The appc spec uses the DNS namespace for names: e.g. example.com/app. Even if example.com/app is mirrored on aci-mirror.example.corp the identity remains example.com/app.
Similar to layers in the Docker v1 image format an ACI can have a list of "dependencies". An image can have an ordered dependency list such as example.com/base, example.com/config2014, etc.  The Docker v1 equivalent is "parent" which is a string ID of the parent image. This is an id like abd4930acd....
The advantage of using a named image like appc does is  you don't assume that the dependent images come from the same "DNS name"/registry as the image you want to run. This feature may not be used a ton in practice but if you think about email it is sometimes handy that not everyone in the world uses an @gmail.com account.
Working together
As the Docker v2 image format is still a work in progress (hey, so is appc) I think that we can work together to refine some of these ideas and add some of these features to the new manifest. The v1 format naturally evolved while Docker experienced very rapid growth which is a great problem to have. But, I think there is an opportunity to think through the v2 schema and take some of these concepts into mind and work together to create a shared schema.

If both project agree that convergence is desirable, I'd argue a better place to start would be the layout of rootfs (rather than the manifest).
I've been playing with a hack that shows that both format could be collocated in the same archive.
But it's still a waste that the content of the rootfs has to be duplicated into layer.tar (for docker) and an exploded rootfs sub-directory (for appc).
If both project converge on the same rootfs layout, it'd be trivial for container image authoring system to distribute portable images by shipping both manifests in the same archive, and if the discussion raised in this issue about converging the manifest evolve, the common parts could be consolidated in a common and extensible schema.

@philips what should we do with this? Were the smaller feature requests (PRs) opened up?  If not, and there's no plans to then perhaps we should close this?  If they were opened perhaps we can add links to them in here?

Should this be closed in light of runC/OCF?


Remove AtomResourceDispatcherHostDelegate

It was introduced to work around a bug of devtools not loading, now since we have the real fix I'm removing this work-around.

Oh nice!


Pass fail stack bar upgrade

Pass fail bar: failPercentage prop has been added which may be used to override the calculation of failPercentage shown to the user which was earlier dependent on passPercentage only.
StackBar: openSeries or the line Data has been also added to the computation of the x-axis. Earlier only bar data was considered.

Closing PR due to an issue with commit history


Publish a version without the babel-polyfill bundled

i was confused -- ~/lib seems to already do this. for some reason i thought it was bundling it


Genesis show release

This feature will show what the global releases are (including version).  If executed in site scope, will show if those releases are used by that site.  If executed in env scope, will show differences in versions if any.

This sounds like the new genesis summary, plus i think kits mean this isn't needed anymore


"Compute A" should be "Cluster A"

Hello,
please note that Compute A should most likely be Cluster A in this string: "Compute A in the following diagram is likely the best choice, particularly for compute supporting a single analyst."

Kind regards,
Anne H., QC

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

ID: dc62c111-c318-6607-0669-3400d8f387a9
Version Independent ID: dc62c111-c318-6607-0669-3400d8f387a9
Content: Compute configuration best practices - Azure Databricks
Content Source: databricks/compute/cluster-config-best-practices.md
Service: azure-databricks
GitHub Login: @mssaperla
Microsoft Alias: saperla

@QueryCoordinator
Thanks for your feedback! We will investigate and update as appropriate.

Thanks for providing feedback that helps us improve Databricks documentation. We've created an internal work item (DOC-13335) to address your feedback. The timeline for resolution varies based on resourcing.
#please-close


HLS stream load long because fetch stream files for all bandwith

Have you read the Tutorials?
Yes
Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
I was try 3.0.0, 3.0.5 and 3.0.8
Please ask your question
I would like to avoid fetch stream file for all bandwitch provided in m3u8 file, to allow start video faster, it is possible to do it by some configuration?
Currently I have:
shakaPlayer.configure({
	      abr: {
            defaultBandwidthEstimate: 1978000,
			enabled: true, // True when "Auto" level is selected in JW Player
          },
          streaming: {
          ignoreTextStreamFailures: true,
		  }

I'm also able to see the same issue on demo:
https://shaka-player-demo.appspot.com/demo/#audiolang=en-EN;textlang=en-EN;uilang=en-EN;asset=https://moctobpltc-i.akamaihd.net/hls/live/571329/eight/playlist.m3u8;panel=HOME;build=uncompiled
this playlist is loaded quite fast, because stream files are short, but when is in use bigger files I can reach ~30s delay on load.
I'm not sure if it's a bug, wrong configuration or something else.
I will be grateful for your help.

We currently don't have the option, but you can follow #1936 where we'll add it at some point.

Also, if your server supports range requests, we will be able to load smaller chunks, which will reduce latency.


Publishing will hang forever if reflector is down

If reflector is down, publishing will hang forever in _check_if_reflector_has_stream() function in reupload.py :  https://github.com/lbryio/lbry/blob/master/lbrynet/reflector/reupload.py#L8

@kaykurokawa @jackrobison is this fixed?


[EventEngine] Update EventEngine client experiment

This bumps the expiry timeline, and guards certain poller behavior behind the flag. The Epoll1 poller has been shown to not support fork events, which is a problem for Python. Fixes for that are incoming, but for now, the poller instantiation is guarded behind the flag as well.

CC @gnossen


Deploy version 2.0 of the documentation to read-the-docs

Somehow the docs did not get deployed automatically with the release of Sinabs 2.0. Under www.sinabs.ai the highest version is still 1.2

I have noticed that there is no action to publish the documentation. I will have a look later if we removed it from the pipeline to recover it, and even if not, I will update the YAML

This has been fixed.


Fix routing and update imports

This fixes form issues and an issue where the landing page module was gobbling up routes, showing a blank page.

Having a base route is important here. The module base paths are passed to a Route without exact set, so a base route of "/" matches all URL's. And since the module itself doesn't respond to e.g. /list/find, it doesn't render anything, which is why the screen is white.
We could refactor things to use / and /about, but this was the quickest fix we found. If we refactor eventually, it might be good to make the top-level routes more static (defined centrally).

Thanks so much Alex! @all-contributors please add @alexjball for code


Report zero values instead of unknown for empty ingest queries

MSQ now allows empty ingest queries by default. For such queries that don't generate any output rows, the query counters in the async status result object/task report don't contain numTotalRows and totalSizeInBytes. These properties when not set/undefined can be confusing to API clients. For example, the web-console treats it as unknown values.
This patch fixes the counters by explicitly reporting them as 0 instead of null for empty ingest queries.

Add a test case each for an empty insert and empty replace query in SqlMSQStatementResourcePostTest.java. Validate the responses which now include ResultSetInformation with 0 rows instead of null.
Add test coverage for all the MSQ Destinations, including DataSourceMSQDestination and TaskReportMSQDestination in SqlStatementResourceHelperTest.java. We don't report 0 values for DurableStorageDestination type as it only applies to select queries as it can be unknown, so the behavior is preserved as-is.
Some miscellaneous spacing, typo and interpolation log fixes in QueryHostFinder.java that I found while testing this patch.

Before the fix, web-console interpreting as unknown number of rows:

After the fix:

Key changed/added classes in this PR

SqlStatementResourceHelper.java
SqlStatementResourceHelperTest.java

This PR has:

[x] been self-reviewed.
[x] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[x] been tested in a test Druid cluster.

@abhishekrb19 Could you also add a release note for the above PR.


Can't seem to build from context with any plugins

Hello,
I have been trying to add in the cloudflare plugin, as I can't seem to get Caddy to work with with any apps that use a port (docker images such as phpmyadmin, a gobuffalo application I made either in a container or standalone, etc but I can get to them if I just use the ip and port, but not with caddy) for any of my domains which all happen to go through cloudflare, so I was hoping it might help with that.
When I followed the steps I have found, I keep getting:
Service 'hpcs_proxy' failed to build: The command '/bin/sh -c VERSION=${version} PLUGINS=${plugins} /bin/sh /usr/bin/builder.sh' returned a non-zero code: 1

I tried doing it using this :
docker-compose build --no-cache hpcs_proxy

As I saw it was mentioned to use no-cache, but that has not helped any. First I tried just replicating a repo I found that had several plugins, that didn't work, so I kept removing them until I got down to just cloudflare, but that still didn't work either. Here was what I added to my docker-compose, which I think was right considering all others I came across looked like this.

version: "3.7"

services:
  hpcs_proxy:
    build:
      context: github.com/abiosoft/caddy-docker.git
      args:
        - plugins=cloudflare # (there were a lot more at first, but this didn't work either)
    container_name: hpcs_proxy
    restart: always
    command: '-conf "/etc/caddy/Caddyfile" -agree=true  -log /etc/caddy/logs/caddy.log'
    volumes:
      - /mnt/disks/web2_data/hpcs_proxy/etc/caddy/Caddyfile:/etc/caddy/Caddyfile
      - hpcs_proxy_srv:/srv
      - hpcs_proxy_caddy:/root/.caddy
    ports:
      - "80:80"
      - "443:443"
      - "2015:2015"
    networks:
      - hpcs_net

volumes:
  hpcs_proxy_srv:
    driver: local
    driver_opts:
      o: bind
      device: /mnt/disks/web2_data/hpcs_proxy/srv
  hpcs_proxy_caddy:
    driver: local
    driver_opts:
      o: bind
      device: /mnt/disks/web2_data/hpcs_proxy/caddy

networks:
  hpcs_net:
    driver: bridge
    name: hpcs_data_net

Any suggestions would be greatly appreciated.
Thanks,
-MH

Use Caddy version 0.11.5 for now. There have been other reported issues with building some plugins (including Cloudflare) with Caddy 1.0 due to the new requirement of Go modules https://github.com/abiosoft/caddy-docker/issues/186 and https://github.com/abiosoft/caddy-docker/issues/185.
add version=0.11.5 to your build args.
build:
      context: github.com/abiosoft/caddy-docker.git
      args:
        - plugins=cloudflare
        - version=0.11.5

I appreciate the reply. That seems to have done the trick for that. Unfortunately though, it doesn't seem to have helped with my original issue. I am trying to simply get Caddy to point to internally hosted applications in Docker but they don't end up working.
After doing the above, I keep getting back a 502 error, before doing the above it was a 521 error I believe. Just to rule out using a .dev domain as being part of the issue I used a .com (both hosted on Cloudflare) but neither worked.
One application is made in Go Buffalo and running in a docker container, and is on port 4569
The other is just a standard phpmyadmin container running on port 4570
I can get to both just fine if I do <IP_ADDRESS>:4569 or <IP_ADDRESS>:4570 (using my real ip, of course)
I have tried everything I can find when it comes to my Caddyfile. Here are a few examples.
First I just had a very basic setup:
mydomain.dev:80 {
        proxy / localhost:4569 {
                transparent
        }
}

I then tried:
mydomain.dev:80 {
        proxy / localhost:4569 {
                transparent
                websocket
        }
}

I tried changing some things around such as
mydomain.dev:80, mydomain.dev:443  {
        proxy / <IP_ADDRESS>:4569 {  #(here I also tried http://localhost:4569,  http://<IP_ADDRESS>:4569, <IP_ADDRESS>:4569, etc )
                transparent
                websocket
        }
}

Where I currently am after scouring the web for more examples to try is this, which of course still doesn't seem to work properly:
mydomain.com:80 {
    root /srv/mydomain.com #( <---- this part works at the root of the domain to server normal files)
    browse
    gzip

    tls mydomain.com {
        dns cloudflare
    }

        proxy /blog  http://<IP_ADDRESS>:4569 {  #( <---- this part and the one below still do not work though)
                header_upstream X-Forwarded-Host {host}:4569
                header_upstream -Origin
                header_upstream -Referer
                websocket
                transparent
        }

        proxy /admin localhost:4570 {
                header_upstream X-Forwarded-Host {host}:4570
                header_upstream -Origin
                header_upstream -Referer
                websocket
                transparent
        }

                log /srv/mydomain.com/logs/access.log {
                    rotate_size 1
                    rotate_age  7
                    rotate_keep 2
                  }

                  errors /srv/mydomain.com/logs/error.log {
                    rotate_size 1
                    rotate_age  7
                    rotate_keep 2
                  }
}

Going to the root of the domain works, which I setup just to make sure it was doing anything at all, so I can view the file browser and a test text file I put in there. /blog is my go application, /admin is phpmyadmin. Neither work though, with or without the header_upstream stuff. I simply added those in because I came across them on a forum post and figured it was worth a try. I know I had something similar in my nginx configs on another server in which these worked, so I thought it might have been necessary.
If anyone has any suggestions, I would definitely love to hear them!
Thanks,
-MH

I have since tried it with all of these different options with no success:
proxy / localhost:4569 {
                transparent
                # fail_timeout 0s
                # header_upstream Host {host}
                # header_upstream X-Real-IP {remote}
                # header_upstream X-Forwarded-Ssl on
                # header_upstream X-Forwarded-Proto {scheme}
                # header_upstream X-Forwarded-Host {host}:4569
                # websocket
                # header_upstream -Origin
                # header_upstream -Referer
                # transparent
        }

With my current test of simply:
domain.dev {
    tls {
        dns cloudflare
    }

    proxy / localhost:4569 {
        transparent
    }
}

It doesn't come back with an actual 502 error this time, but it does seem to just loop over and over until eventually saying:
The page isn’t redirecting properly

An error occurred during a connection to domain.dev.

    This problem can sometimes be caused by disabling or refusing to accept cookies.

So, possible progress I suppose.

Hi, kindly post this in http://caddy.community. It is more suited there.

@abiosoft it is worth noting that Caddy 1.0.0 can be retrieved from the Caddy website with the Cloudflare plugin, so I believe this issue is in fact caused by your build script.

@NEXUS2345
It was fixed with what @abiosoft had mentioned. As soon as I changed it to 11.5 it worked with no problem.

@abiosoft it is worth noting that Caddy 1.0.0 can be retrieved from the Caddy website with the Cloudflare plugin, so I believe this issue is in fact caused by your build script.

I'm not aware of this. I'll verify and work on this. Thanks for pointing it out.

Is the latest release notes relevant?

"KNOWN ISSUE: Building Caddy with plugins is difficult due to the repository move. Our build server has been patched to make it work, but plugin authors will need to update import paths. (Sorry! Unexpected.) I've done my best to file issues with all registered plugins.

from 1.0.1
I can't get the Cloudflare plugin to work in docker either: Restart failed: /etc/Caddyfile:7 - Error during parsing: Unknown DNS provider by name 'cloudflare' but it works fine if i download Caddy with Cloudflare from their website.

@vlldk it is fixed now.
Just ensure you run docker pull abiosoft/caddy:builder to get the latest version.


Widen visibility of getFieldOptions to be able customizing the formtype settings

Thanks for your contribution.
Why do you want this exactly? Is this sort of related to #21?

It is indeed related.
Widen the visibility gives me the possibility to overload the method in an extend.
Mainly this is done to overcome an incompatibility between symfony 2.8 and 3.0 that concerns a swap in label and values of choice fields


Document how to read routing data in a component

Take for example the route "/users/:id/orders?order=popular".
How does one read the following inside the component which is routed to?:

the route parameters (:id)
the query parameters (order=popular)

I've been trying to read through the source code and at first glance it looks like these ought to be set as props on the component, but it's not proving to a very productive exercise.
Would you be able to provide a little more documentation regarding the basic usage?

Have you try to use router hook like this:
import { useRouter } from "solid-app-router"

// inside component
const [router] = useRouter()

@bramaudi - Many thanks - that's just what I was looking for!
The following works fine:
import { useRouter } from "solid-app-router";

const WidgetPage = () => {
    const [router]: any = useRouter();
    return (

        This is the widget page. Widget is is {router.params.id}

  )
};

export default WidgetPage;


Two phase migrate

This PR probably need more work. Please see my comments in #15. I will be working more with this in the near future.
I think this fixes #15 and #33.

Hi @seanharr11 ,
Could you please help review this PR, seems this PR can resolve below issue:
TypeError: 'twophase' is an invalid keyword argument for this function

Thanks

I've just used this fork[two_phase_migrate] to check if I now can work with the upseting feature on MariaDB. I was able to transfer the data of a smaller Oracle 12.2 DB with about 180 Tables to a MariaDB 10.3 where the MariaDB Tables already were created before :-)


PatternTracker sending 0s for x, y, z

I've tried writing a Java app that uses the BluetoothLibrary and the BTReceiverClass to receive position information.  Got all 0s for x, y, and z.  So, I built the PatternTracker from source so I could debug it.  The PatternTracker appears to be sending out all 0s.  I can see the pattern on the S6 and can see a number of dots displayed on the pattern (white ones near the center, red ones on the outer most edges), so I assume the tracker is seeing and recognizing the pattern.  I have it looking at pattern 0.  Here's a snippet from logcat when I grep for cgt:
D/cgt     (30625): Tracking for 0
D/cgt     (30625): patID [1.533333 0.015345] [2.522876 0.018653] [0.615686 0.554140] [2.437908 0.001609] [2.422222 0.001619] [2.367320 0.000000] [0.550327 0.748219] [2.530719 0.106921] [1.592157 0.100985] [0.571242 0.665904] [0.458824 0.008547] [0.583007 0.625561]
D/cgt     (30625): running end marking
D/cgt     (30625): running marking
D/cgt     (30625): refining finished 1
D/cgt     (30625): Finished OpenCL kernels in 22.888708 ms
D/cgt     (30625): running opencl
D/cgt     (30625): running kernels
D/cgt     (30625): copying colors
D/cgt     (30625): refining corners
D/cgt     (30625): Tracking for 0
D/cgt     (30625): patID [1.546405 0.017751] [2.516340 0.018701] [0.623529 0.534591] [2.454902 0.003195] [2.403922 0.003263] [2.375163 0.003302] [0.541176 0.760870] [2.538562 0.106591] [1.593464 0.098441] [0.580392 0.648649] [0.475817 0.016484] [0.579085 0.629797]
And here's a snippet from logcat when I grep for Track:
D/cgt     (30625): Tracking for 0
I/2Track  (30625): Time: calibrate points: 0.173792 ms
I/2Track  (30625): Time: RTsFromCorres: 2.467792 ms
I/2Track  (30625): Time: populate Rel Transf: 0.089667 ms
E/Track   (30625): x:0.0 y:0.0 z:0.0
I/2Track  (30625): Time: predict corners: 0.1495 ms
D/cgt     (30625): Tracking for 0
Any idea on what step I missed?  or something else I'm missing?

Thanks Thomas for pointing this out. Please check the update and let me know if all is ok now.

ok, updated, got things to compile again (i'm on linux :), still getting 0s:
D/cgt     (21682): Tracking for 0
I/2Track  (21682): Time: calibrate points: 0.161375 ms
I/2Track  (21682): Time: RTsFromCorres: 2.824833 ms
I/2Track  (21682): Time: populate Rel Transf: 0.093833 ms
E/Track   (21682): x:0.0 y:0.0 z:0.0

btw, i think i'll do a quick pull-request with the changes i needed to compile on linux.

Please see the updated compilation instructions in Readme.md. Hope it is convenient. I would like to avoid using OPENCV_HOME variable as I may have multiple versions of opencv. Regarding zeros in "Track" try to avoid using breakpoints and let it run while viewing the pattern 0 for more than one frame.

re: OPENCV  how about a path relative to where ColorPatternTracker is checked out?
re: Tracker, i didn't set any breakpoints or even use a debugger.  I just launched it and grepped the output from adb.  This week has been real busy, so i havent had a chance to dig in further :(

ok, i finally got non-zero values.  i had both the phone and pattern 0 on stands.  after i had pattern 0 on the stand, then put another pattern, then put pattern 0 back, I got non-zero values.  it seems like it needs to at least briefly detect another pattern before it starts working.

Please check the latest version I just uploaded. The issue seems to be resolved now. I yesterday just checked on github page where all the patterns are present so was missing the issue :(

yeah, seems to be working better now.  Thanks!


Testnet and Regtest not working

The regtest network does not seem to be available.
Moreover, in testnet mode the wallet address is still like '1*'.

@fcracker79 – you can find the latest C++ implementation at: bitcoin-hivemind/hivemind


DANG-1559: more workflow improvements

JIRA
https://lobsters.atlassian.net/browse/DANG-1559
Description

Moved the detecting of node and npm versions specified in the package.json engines property and installing those versions into a reusable action.
Added the new workflow for checking that all PRs have a JIRA ticket number in them.  See here for why this is being added: https://lob.slack.com/archives/C02BP04FX/p1662670872023319

feel free to make a pr to put the node installer to lob/github-actions.
Cool, I'll put it on my list!  I think it could probably be a little more flexible for re-use as it only reads from the package.json engines but certainly if someone has a different use case they could modify it.

there's also a node cache job you can use to potentially cache node artifacts to make node installs faster
Honestly, I've gone back and forth on this and gotten myself confused as to whether it's a good fit for us or not.  I think when it comes to using npm ci you really want to clear out node_modules (which is what it does) rather than caching and reusing any dependencies that might not be what's in the package-lock.json file.  I feel like I've read somewhere to not use caching with npm ci but I can't find it now...  Though it looks like the setup-node action does leverage caching of the node install under the hood:

The action will first check the local cache for a semver match. If unable to find a specific version in the cache, the action will attempt to download a version of Node.js. It will pull LTS versions from node-versions releases and on miss or failure will fall back to the previous behavior of downloading directly from node dist.

I have seen it find a cache hit too in the logs, so I think we're at least leveraging that.


Preivew paste upload

Fixes #761

Added @obetomuniz as this preview was his work and @miina as she worked on pasting before.

Otherwise works well (in Chrome for MacOS for images), however, I'm seeing a bunch of console errors, some examples:

@miina Those warnings seem unrelated to this change. But I fixed them anyone.
The issue is that local resources do not have an id. The id is added later when the image is uploaded. But the field should not be required.


Player: Remove QR Codes [US 01.0X.01]

As a player, I want to be able to remove any previous QR codes I have added to my account so that I can remove any that I don't like.

[x] remove from db Darius
[ ] activity

Not started

Need to add option to the activity. Backend is done, frontend is not done. Should be fairly easy to do

Users can delete their own QR codes on activity, but it does not immediately update the highest/lowest qr code headers.


[AVM Module Issue]:  Terraform 1.6.0 Crash with the module

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Bug
(Optional) Module Version
No response
(Optional) Correlation Id
No response
Description
Steps to reproduce:
1-) Install Terraform 1.6.0
2-) Run TF plan with just required inputs.
Expected Result:
Terraform Plan should work
Actual Result:
Terraform Crash Error.
Please note it works fine with TF 1.6.1
!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Terraform crashed! This is always indicative of a bug within Terraform.
Please report the crash with Terraform1 so that we can fix this.
When reporting bugs, please include your terraform version, the stack trace
shown below, and any additional information which may help replicate the issue.
!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!

value is marked, so must be unmarked first
goroutine 501 [running]:
runtime/debug.Stack()
        /opt/hostedtoolcache/go/1.21.1/x64/src/runtime/debug/stack.go:24 +0x5e
runtime/debug.PrintStack()
        /opt/hostedtoolcache/go/1.21.1/x64/src/runtime/debug/stack.go:16 +0x13
github.com/hashicorp/terraform/internal/logging.PanicHandler()
        /home/runner/work/terraform/terraform/internal/logging/panic.go:58 +0x13b
panic({0x2b87000?, 0x38c33a0?})
        /opt/hostedtoolcache/go/1.21.1/x64/src/runtime/panic.go:920 +0x270
github.com/zclconf/go-cty/cty.Value.assertUnmarked(...)
        /home/runner/go/pkg/mod/github.com/zclconf/go-cty@v1.14.0/cty/marks.go:141
.........
...................
..........................

Hello @vaiddas - will look into this shortly

Hi!
Please log this on the terraform repo and this isn't a module issue.
Have you tried a later version of Terraform?

Hi @matt-FFFFFF  - Yes, it works fine with other TF version.
We can close this as I am not blocked. I will try to log this with TF.


[Bug][Connector-v2][KafkaSink][Problems relating to commiting transactions under EXACTLY_ONCE semantics]

Purpose of this pull request
issues/4247
problems illustration: issues/4247#issuecomment-1492074387

Check list

[x] Code changed are covered with tests, or it does not need tests for reason:
[x] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[x] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
[x] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[x] Update the release-note.

ReflectionUtils.setField(transactionManager, "transactionStarted", true); we need to additionally persist this transactionStarted flag in checkpoints as part of the KafkaCommitInfo metadata. And then set this flag appropriately to what is stored in the checkpoint. If it is an empty transaction, the transactionStarted flag should be set to false.

I think that's a better way to fix the Problem 3, and tested well in my machine.
When transactionStarted is set to false,  KafkaProducer will close the transaction locally without sending the EndTxn request to kafka servers, so the problem will not appear.
I will change my pr.

Great, I saw that you detailed the steps and solutions for the reproduce, It's great.
Thanks for your contribution.
@TyrantLucifer  @hailin0  PTAL

Please add e2e test case for this pr.

Use mvn spotless:apply to format code style before you submit pull request

ReflectionUtils.setField(transactionManager, "transactionStarted", true); we need to additionally persist this transactionStarted flag in checkpoints as part of the KafkaCommitInfo metadata. And then set this flag appropriately to what is stored in the checkpoint. If it is an empty transaction, the transactionStarted flag should be set to false.

I think that's a better way to fix the Problem 3, and tested well in my machine.
When transactionStarted is set to false, KafkaProducer will close the transaction locally without sending the EndTxn request to kafka servers, so the problem will not appear.
I have changed my pr. @lightzhao

great, please add e2e test.

Sorry to be late, it took me some time to be familiar with the IT framework.
I have reverted unexpected change. @EricJoy2048
mvn spotless:apply is done @TyrantLucifer
E2E IT was added @lightzhao @EricJoy2048
IT failed before code change:

IT passed after code change:

The IT added by me failed in  https://github.com/apache/incubator-seatunnel/actions/runs/4645826394/jobs/8246477241.
That's so strange since it run well on my local machine with ubuntu 22.04.
I am overwhelmed about this problem, help wanted.

The IT added by me failed in https://github.com/apache/incubator-seatunnel/actions/runs/4645826394/jobs/8246477241. That's so strange since it run well on my local machine with ubuntu 22.04.
I am overwhelmed about this problem, help wanted.

Don't worry, I will help you restart it.

thank you so much.
The IT passed this time. stranged and surprising.

Please rebase from dev and push again.

@linyu003 Please merge the latest dev branch.

waiting for ci passed

When was the bug merged into dev?

Waiting for this pr merge

Is there any plan to merge this PR?
I'm a new user, following the kafka sink doc to experience SeaTunnel and met this issue.

close as fix in this pr https://github.com/apache/seatunnel/pull/3724

@linyu003 Hello, do you have time to continue correcting this issue? I've encountered the same problem during use, and I would like to try to fix it.thanks

close this pr as it's completed in this pr https://github.com/apache/seatunnel/pull/7857


fix misuse of glDeleteBuffer for glDeleteRenderBuffer in dispose

this error may cause some mistakes in rendering afterward

Good catch! Thanks!

Hello!
You have a new message, please read http://littlemag.org/planner.php?uqr
<EMAIL_ADDRESS>


inference using picture

Hello, can you provide inference.py to apply super-resolution for pngs? I find it is difficult to modify yml file and use model.validation() function to perform super-resolution on my own pictures. Thanks a lot🫡

Hello, we will provide additional support later; for now, you can refer to the implementation here: https://github.com/zhengchen1999/DAT?tab=readme-ov-file#test-images-without-hr


Command (⌘)-R is now recording the simulator in addition to reloading JS (Xcode 12.5)

Description
Looks like the CMD-R mapping is taken now in XCode 12.5:

React Native version:
N/A.
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

Open simulator in XCode 12.5
Press CMD-R to reload JS, the simulator will start recording the screen

I did not find a way to prevent this. Should we map reloading JS to different keys?

Double R 👍

@dulmandakh It'll record the screen then reload the JS 😢

Just Double R, no command key

Double R doesn't work on iOS simulator, I think that only works for Android

Hey @dulmandakh ! Double R does not work on iOS simulator. And even if you could... When you were focus in some TextInput, that wouldn't work I guess.
As an alternative:

R key in the terminal running the packager
CMD+D and Reload as @ernestasgobionis suggested

But I am hoping we can map another CMD+ something in the simulator because I am recording ALL THE TIME by mistake 😂 .

This is my work around: https://twitter.com/jonstuebe/status/1390384513927184385

Thanks @jonstuebe
Works for me

Thanks @jonstuebe

That stops the whole command + R from recording for me, but I still can't refresh with command + R

@JeffreyLeeDave, not exactly the same, but I added  a shortcup on "command + R" to "Shake" the phone (so it opens the menu)

Short Answer:
We can remap simulator screen record shortcut following the steps below:

Open Simulator
Right click the icon in the tray
Select Options > Show in Finder
Copy Simulator.app to your /Applications directory
Open System Preferences > Keyboard > Shortcuts
Click App Shortcuts > add [+]
Select the Simulator.app from the list
Enter Menu Title Record Screen (or other name of the Simulator's Shortcut)
Enter Keyboard Shortcut whatever you want
Click Add
Delete Simulator.app from /Applications
Done! The shortcut will still be changeable.

While workarounds are nice this is still a valid issue. So I hope the reload keyboard shortcut will be change in upcoming react native versions?

@jonstuebe since Elon broke Twitter, non-users (including me) cannot see your actual solution 😢
Could you please share it here? :)

@dnlgrgly it's the instructions in the comment two posts below Jon's: https://github.com/facebook/react-native/issues/31467#issuecomment-835352650


Change release GH actions to create and release from release branch

Goal

Testing

Release Notes

WHAT:
WHY:
WHO:

Current dependencies on/for this PR:

master

PR #326   👈

This stack of pull requests is managed by Graphite.


Disable expansion of autosnippets if in comment

Is there a way to disable expansion of autosnippets if I am currently in a comment node?
Say I want to set up an autosnippet that triggers on the word if and expands to
if $1 then
    $2
end

However, I do not want the snippet to get expanded if I type the word if in a comment like
-- Do this if x else do y

Check condition here, you'd just have to figure out how to check what (treesitter?-)node you're in

Thanks.

hmmm doesn't seem to work
seems like it has to do with the timing of when the function runs
with the snippet set up like below, after typing -- if, the function prints chunk
however if i manually run :lua require("nvim-treesitter.ts_utils").get_node_at_cursor():type() it prints out comment
  s(
      {
          trig = "if",
          snippetType = "autosnippet",
          condition = function()
              print(require("nvim-treesitter.ts_utils").get_node_at_cursor():type())
              -- return require("nvim-treesitter.ts_utils").get_node_at_cursor():type() ~= "comment"
          end,
      },
      fmt(
          [[
          if {} then
              {}
          end
          ]],
          {
              i(1, "condition"),
              i(2, "body"),
          }
      )
  ),

Maybe it's because when you're running manually the cursor is on f, while during snippet-evaluation it's behind the f? And comment only includes the f, but not whatever comes after?
Actually, an elegant solution would be to check what node the beginning of the trigger is inside, that should give consistent, or at least more consistent, results

this seems to work from initial testing, but not sure how robust it is
open to other suggestions as well
{
    trig = "if",
    snippetType = "autosnippet",
    condition = function(line_to_cursor, matched_trigger, captures)
        local _, row, col, _, _ = unpack(vim.fn.getcurpos())
        local node = vim.treesitter.get_node({
            pos = { row - 1, col - #matched_trigger - 1 },
        })
        return node and node:type() ~= "comment"
    end,
},

Nice!
There's the 1,1 to 0,0-conversion,  subtraction of matched-trigger-length from the current cursor to get the column of the first character of the trigger, and I don't think there's any situation where the cursor is at a different place than just behind the trigger.. nothing to take away so I'd say that's perfect :+1: :)


Fix the RO2 sum function

It currently just outputs zero, but really it should be outputting the sum of the concentrations of all RO2 species at the current timestep.

Need to check that the variable has a value before being set to zero for output to file. It is potentially a serious bug.

The code in mechanism-rate-cofficients.f90, which calculates the ro2 sum, is only INCLUDEd in mechanism_rates() in mechanism_rates.f90.
mechanism_rates() is called by resid() and jfy().
jfy() is called each time Jacobian output is requested.
resid() is called by FCVFUN(), which is called by the user-defined FCVJTIMES().
The user-defined FCVJTIMES() is only called when fcvspilssetjac() is called with non-zero flag, which only happens if JvApprox==1.
So, the situation we currently have is that ro2 will only be calculated when JvApprox==1, otherwise it is not calculated. This is independent of the call to ro2sum() and outputEnvVar() in the main loop. So if this flag is not set, then nothing will be calculated for ro2.

Correction: FCVFUN() is called independently of FCVJTIMES() (which in fact is never called), and so ro2sum() will always be called.

Fixed by #183

@spco Just one question. Was this only a problem with the output of the variable or was the variable also incorrectly calculated?

It was only an issue with the output, although it could easily have affected the calculations - luckily it didn't, due to the places it was used.

That's a huge relief! :)


[Feature Request] Add uv venv --activate to activate virtual environment after creation

I suggest that uv add an --activate option to the uv venv command. This option would automatically activate the virtual environment after creating it.
The following would be mostly equivalent:
uv venv
source .venv/bin/activate # Or shell equivalent

uv venv --activate

Currently, uv venv has the following output:
Using Python 3.12.6 interpreter at: /usr/bin/python3
Creating virtualenv at: .venv
Activate with: source .venv/bin/activate

This should be replaced by the following, but only with --activate:
Using Python 3.12.6 interpreter at: /usr/bin/python3
Creating virtualenv at: .venv
Activating virtualenv at: .venv

Unfortunately we can't do this because of how shells work. You need to run the activation command from your shell.

Something related to this request that is probably not worth creating a separate issue.

Remembering the activation script location is confusing when switching between Windows and Linux systems. Windows makes it even worse with separate scripts for PowerShell and Command Prompt.
E.g.

foobar\Scripts\activate.ps1 (Windows PowerShell)
foobar\Scripts\activate (Windows Command Prompt)
foobar/bin/activate (Linux)

Sometimes it would be useful get the activation script path directly from uv to call or source it. E.g. with a imaginary argument --activation-script.
source $(uv venv foobar --activation-script)
# Leading to
# source "foobar/bin/activate"

Since uv already provides the exact command to activate the environment it's just copy and paste in an interactive environment. I.e. the benefit would be negligible but could make scripts a bit more consistent across shell implementations.
Nothing I personally require - just something that came to mind while reading this post.

This is also what PDM went with, i.e., a command to print the activate command for your current OS and shell.

@zanieb
Both poetry and pipenv have pipenv/poetry shell commands that work (in most cases).
Why can't uv do something similar?

Poetry is removing their shell command in the next major update. https://github.com/python-poetry/poetry/issues/9136

See https://github.com/astral-sh/uv/issues/1910


Generic ServiceWorker support

We already can use ServiceWorkers in Chrome and Firefox.
We may include a generic implementation of a SW in the seed which implements basic caching for offline-first application support. Here is a great post by Jake Archibald that we can keep in mind. Lets consider which strategy from the described suits best to the seed and discuss if there's a point to add ServiceWorker support at all.

+1 on basic implementation with basic caching.
On Tue, Jan 12, 2016 at 1:05 AM Minko Gechev<EMAIL_ADDRESS>wrote:

We already can use ServiceWorkers
https://jakearchibald.github.io/isserviceworkerready/ in Chrome and
Firefox.
We may include a generic implementation of a SW in the seed which
implements basic caching for offline-first application support. Here is a great
post by Jake Archibald https://jakearchibald.com/2014/offline-cookbook/
that we can keep in mind. Lets consider which strategy from the described
suits best to the seed and discuss if there's a point to add ServiceWorker
support at all.
—
Reply to this email directly or view it on GitHub
https://github.com/mgechev/angular2-seed/issues/375.

Results from the poll I started on Twitter https://twitter.com/mgechev/status/686836778276372480


[Feature Request]: Integrating Docker into the project

Docker is a must for open-source projects nowadays as it has its benefits.
Use Case
Dockerfile has many benefits but consistency and isolation stand out the most.
Docker allows you to package your entire application, including its dependencies, into a single container. That makes sure your application will run across different environments.
another benefit is that it runs in its environment without interfering with other applications or the host system.
I will also be updating the docs for it.

Go Ahead @Ratangulati

please assign this issue to me


tasks not working in system config

Describe the bug
when creating /etc/mise/config.toml and adding the following task:
[tasks.test]
decription = "test"
run = """
echo "test"
"""

the "test" task is not shown in mise tasks and not found with mise run test
To Reproduce
see above
Expected behavior
task to be display and runnable.
mise doctor output
version: 2024.2.18 linux-x64 (2024-02-24)
activated: yes
shims_on_path: no

build_info:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS
  Built: Sat, 24 Feb 2024 07:26:57 +0000
  Rust Version: rustc 1.76.0 (07dca489a 2024-02-04) (Homebrew)
  Profile: release

shell:
  /home/linuxbrew/.linuxbrew/bin/fish
  fish, version 3.6.1

dirs:
  data: ~/.local/share/mise
  config: ~/.config/mise
  cache: ~/.cache/mise
  state: ~/.local/state/mise
  shims: ~/.local/share/mise/shims

config_files:
  /etc/mise/config.toml
  ~/.config/mise/config.toml
  ~/code/proj/personal-server/.mise/config.toml

plugins:
  bun     (core)
  deno    https://github.com/asdf-community/asdf-deno.git#87442fe
  erlang  (core)
  ghq     https://github.com/kajisha/asdf-ghq.git#246a487
  go      https://github.com/kennyp/asdf-golang.git#f006a12
  java    (core)
  node    https://github.com/asdf-vm/asdf-nodejs.git#644ada3
  php     https://github.com/asdf-community/asdf-php.git#1eaf4de
  python  (core)
  ruby    (core)
  rust    https://github.com/code-lever/asdf-rust.git#0c88f99
  sops    https://github.com/feniix/asdf-sops.git#5c7a2fb

toolset:
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>

env_vars:
  MISE_SHELL=fish

settings:
  activate_aggressive = false
  all_compile = false
  always_keep_download = false
  always_keep_install = false
  asdf_compat = false
  cargo_binstall = true
  color = true
  disable_default_shorthands = false
  disable_tools = []
  experimental = true
  go_default_packages_file = "~/.default-go-packages"
  go_download_mirror = "https://dl.google.com/go"
  go_repo = "https://github.com/golang/go"
  go_set_gopath = false
  go_set_goroot = true
  go_skip_checksum = false
  jobs = 4
  legacy_version_file = true
  legacy_version_file_disable_tools = []
  node_compile = false
  not_found_auto_install = true
  paranoid = false
  plugin_autoupdate_last_check_duration = "7d"
  python_compile = false
  python_default_packages_file = "/home/nam/.default-python-packages"
  python_pyenv_repo = "https://github.com/pyenv/pyenv.git"
  raw = false
  trusted_config_paths = []
  quiet = false
  verbose = false
  yes = false
  ci = false
  debug = false
  trace = false
  log_level = "info"
  python_venv_auto_create = false

  [status]
  missing_tools = "if_other_versions_installed"
  show_env = false
  show_tools = false

2 problems found:

1. shims are missing, run mise reshim to create them
   Missing shims: wasm-bindgen-test-runner, nodemon, ts-node-esm, goreleaser, lineselect, rustfmt, npm-check, ts-node-cwd, aic, git-history, ts-node-script, ts-script, diskonaut, lerna, rustup, dendron, imageoptim, cargo-fmt, porsmo, rust-gdb, wasm-bindgen, dpdm, vue, nr, nci, rustc, prettierd, spech, tern, nt, zx, rustdoc, wasm-opt, githistory, cargo, yarnpkg, npm-check-updates, uhs-cli, node, cliflix, nu, sops, mockery, addlicense, tsserver, lcp, ghq, toml, npx, surge, lichen, eslint_d, ni, na, rust-analyzer, rust-gdbgui, revive, npkill, get-title, fern, cargo-clippy, serve, go-acc, wasm2es6js, staticcheck, ncu, pageres, ntl, rls, nodetasklist, clippy-driver, gofmt, madge, nlx, deno, ts-node-transpile-only, cargo-miri, swag, tsun, trymodule, rust-lldb, nodetask, misspell, nun, npmlist, npm-tasklist, tsc, aicommits, typescript-language-server, dendron-cli, difft, yarn, tb, go, mrm, corepack, prettier, gosec, speedtest-rs, git-file-history, gqlgen, ts-node

2. unused shims are present, run mise reshim to remove them
   Unused shims: ghq_use_asdf

Additional context
Add any other context about the problem here.

PR 1803 should address this issue.


(Docs)(DOC-4702) Missing white space in gen docs

DITA doesn't like HTML line breaks (
). This causes missing white
space after some of the sentences in our generated docs. It's especially
bad in the tables. To fix, I've turned our generated markdown tables into
HTML tables and subbed
 with
 tags.
Also:

removes the unused bolt_pwsh_reference.md file
Adds thead and tbody elements to HTML tables for styling

!no-release-note

CLA signed by all contributors.


Pastebin installation fails on CraftOs 1.9, unable to load 'config' and '.vimrc'

Is this all info u wanna share? I thing u can send something about mod version and tweaked or not it is at least.

Actually it funny 'cause loadApi is deprecated in CC: Tweaked.


fix: fetch Gradle only when necessary

The Android Gradle plugin is only required when opening the android folder stand-alone. This avoids unnecessary downloads and potential conflicts when the library is included as a module dependency in an application project.

Thanks!


fix editing just emoji cuts top part android

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/19605
PROPOSAL: https://github.com/Expensify/App/issues/19605#issuecomment-1563297187
Tests

Go to android
Go to any chat
Send just emoji
Now edit the message and add more emoji and save it (Do not add any text)
Notice that now emoji preview is not getting cut off.

[x] Verify that no errors appear in the JS console

Offline tests
Same as above
QA Steps

Go to android
Go to any chat
Send just emoji
Now edit the message and add more emoji and save it (Do not add any text)
Notice that now emoji preview is not getting cut off.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

I have read the CLA Document and I hereby sign the CLA

recheck

@kushu7 you should have added the entire link to the Fixed issues instead of the issue number. This way Melvin knows who to assign as reviewers (the same persons who are assigned the issue).

The PR is ready for review, @mananjadhav

Hey @kushu7 you're all set with the CLA now. But it seems like lint is complaining. Could you please take care of that?

Thanks @cristipaval. @kushu7 Can you please fix the lint issue as commented earlier?

@kushu7 you should have added the entire link to the Fixed issues instead of the issue number. This way Melvin knows who to assign as reviewers (the same persons who are assigned the issue).
Sure will take care next time.

Thanks @cristipaval. @kushu7 Can you please fix the lint issue as commented earlier?
Just fixed linting error

@mananjadhav I have pushed the changes, please review again.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/3069065/7da81abf-d9a6-4b76-beb3-66c3e818941b

Mobile Web - Chrome
https://github.com/Expensify/App/assets/3069065/100d3cda-cb1e-4d15-80df-beda59ff1e41

Mobile Web - Safari
https://github.com/Expensify/App/assets/3069065/482f813c-3c90-4e3f-b0a6-64b82528f5b1

Desktop
https://github.com/Expensify/App/assets/3069065/16aaa515-eb0d-450c-b886-5e7c38910b6c

iOS
https://github.com/Expensify/App/assets/3069065/635fcd87-366f-45e9-ae1f-6c22b937b0e7

Android
https://github.com/Expensify/App/assets/3069065/d87152e6-d1fc-462c-b0ef-01d23e39f7f7

Change works well,  @cristipaval All yours.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/cristipaval in version: 1.3.23-0 🚀

platform
result

🤖 android 🤖
cancelled 🔪

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
cancelled 🔪

🚀 Deployed to staging by https://github.com/cristipaval in version: 1.3.23-0 🚀

platform
result

🤖 android 🤖
cancelled 🔪

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
cancelled 🔪

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.23-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.23-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


[Bug] Achievement notifications during gameplay although they are disabled in the notification settings

Device
Other
Operating System
Android
Browser
Chrome/Edge/Chromium
Browser Version
124.x
Better xCloud Version
4.1.0
Reproduction Steps
Since version 4.1.0 I’m getting achievement pop ups during gameplay again, although I have disabled “Notify me when I unlock an achievement” in the notification settings.

I think this is related to https://github.com/redphx/better-xcloud/issues/381 and the fix you applied with 4.1.0 to keep the message tray working when “social features” are disabled. The fix works, but it seems that it has created a regression.
I always disliked the achievement pop ups. And was glad that they added a setting to disable them. So if there is a conflict here and it’s not possible to keep both things working, I would really prefer if you revert that change in 4.1.0, so the achievement pop ups are blocked again.
Thanks a lot. And sorry for causing that problem in the first place.

I think this is a bug on xCloud's side

Hm, I don't think so. As soon as I had discovered that new option in the notification settings, I disabled "Notify me when I unlock an achievement". And never saw an achievment pop up again until I updated to 4.1.0 yesterday. So this would be a very big coincidence.
As I use "disable social features", I think this change was caused by your commit https://github.com/redphx/better-xcloud/commit/ba0ccf5213f7882716e29477889a3678152395a7 . Maybe whatever blocked the notification inbox from working before, was also blocking the achievement pop ups. And then your change in 4.1.0, that made the inbox work again, also unblocked the achievement pop ups again.
If that's really the case, you should make a feature out of this. Because many people also want to get rid of the achievement pop ups. Or maybe you can at least revert the change, As I prefer having a notification inbox that is not working, if this will keep away the achievement pop ups.

I had a look at the code of commit https://github.com/redphx/better-xcloud/commit/ba0ccf5213f7882716e29477889a3678152395a7 and saw that with 4.1.0 you stopped blocking "https://notificationinbox.xboxlive.com", but are now blocking "https://xblmessaging.xboxlive.com/network/xbox/users/me/inbox'.
But if blocking "https://notificationinbox.xboxlive.com" really completely disabled the inbox and blocked all notifications (including the pop ups), you should really make an extra option out of this:
A "Do Not Disturb" (DND) mode for xCloud that people can enable. And that can be enabled independently from the "disable social features" option. I think this would be a very useful addition to the script.

To further investigate, I turned off “disable social features” to see if it makes a difference. But it doesn’t. I just saw an achievement pop up again.
So you are right. It’s a bug on xCloud‘s side. Showing achievement notifications, although they are disabled in the notification settings.
But I think it’s also true that as long as you blocked “https://notificationinbox.xboxlive.com“, this also blocked the achievement pop ups for me. So I didn’t notice the bug before you unblocked it with 4.1.0.
This change really feels like a step back for me now. And I hope that you might really consider doing that DND mode. Because I think a feature, that lets users quickly enable/disable getting notifications at all, could be a useful addition for all users.
But as this really turned out to be a xCloud bug, I will close this now.

A final update to this:
I used the feedback option to report the issue several times now. But so far, it’s still unsolved.
So I created a filter rule in my router to block “https://notificationinbox.xboxlive.com” again. And enabled it for my Shield TV. And now the achievement pop ups are gone again. =)
As I thought, blocking that URL really seems to completely “disable” the inbox by blocking all incoming messages. Including the achievement toast messages.
So although I’ve found a way to solve this problem on for me personally, I still think that adding a “DND mode” could also be a useful addition for other users.


revisit compile flags

https://codeforces.com/blog/entry/15547
https://codeforces.com/blog/entry/74032

switch to -Wunused


Support Keyboard shortcuts

Requested use case is to switch status.  Can also bring client to front and ready to dial number, answer/mute/disconnect call

via applescript perhaps


chore(main): release 1.3.0

:robot: I have created a release beep boop
1.3.0 (2024-10-31)
Features

saving existing event (446dc4d)

Bug Fixes

fix DI of base validator (f421cd1)
fix static test (ca69f4e)
remove usless dependencues from add event validator (29b6a8b)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.3.0
:sunflower:


Use a faster json lib?

I was wondering if it would be worth using this.
https://github.com/json-iterator/go

Make a PR?
I'd like to see this implemented benchmarked and compared personally. But I don't see the library as being slow at all.

Yeah personally I'd prefer to avoid any more dependencies on other 3rd party libraries.  So unless there's an overwhelming need/reason and the 3rd party library looks like something that will be around for awhile, I'd prefer to just use the built-in json functions.
So, if you want to make a PR with benchmarks of both options and also discuss if that performance has a real world need - that would be the next step here.

I tried it a while back with discordgo, it was around 3x faster decoding incoming events, it wasn't entirely drop-in as advertised and i never finished completing the transition completely, if that's enough of a benefit i can complete that transition and pr it.

How about this library: https://github.com/pquerna/ffjson
I use this with fasthttp in my projects and get x2-3 more speed.

Last time I tried a few json libs my conclusion was that performance benefits are minimal for shallow json documents with depth <= 2, maybe 3.
You only get a nice boost with heavily nested documents. Tbh I never tested "large" documents with lots of fields. Benchmarks to the rescue! That said, I have no clue how the json we're dealing with looks like... Maybe I'll find the time to log a few real docs and write some benchmarks.


[feaLib] fix ordering of alternates in aalt lookups

Fixes https://github.com/fonttools/fonttools/issues/2937 and https://github.com/fonttools/fonttools/issues/836
alternate glyphs are now sorted in the order that the source features are named in the aalt definition, as the FEA spec says, and not by glyph order.

Lgtm


Fix connection error image src link

This PR will fix the broken src for Connection Error image of pipeline editor.
[1] https://streampipes.apache.org/docs/docs/user-guide-tour/#pipeline-editor

Thanks a lot @grainier !
This error originated from the transfer from streampipes.org to the ASF website.


package names only parsed up to the first '.' (i.e. period char)

First, Nicolas, thank you very much for writing this software and making it available on PyPi.  I am grateful.
I just tried out findpydeps on one of my work repos, using a command line like this:
findpydeps  -i .  --blocks  --functions  --follow-local-imports  --removal-policy 0  --strict  --no-header  > ./requirements_from_findpydeps.txt
I am confused about the results that findpydeps gave me.
In particular, my files have import lines involving opentelemetry like this:
from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter
from opentelemetry.instrumentation.logging import LoggingInstrumentor
from opentelemetry.propagate import set_global_textmap
from opentelemetry.propagators.cloud_trace_propagator import CloudTraceFormatPropagator
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import Tracer, TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter

But findpydeps summarizes all those imports merely as
opentelemetry
In other words, instead of listing
opentelemetry.exporter.cloud_trace
opentelemetry.instrumentation.logging
etc

it seems as if findpydeps drops everything after the first '.' (i.e. period char).
That is a bug, right?  I need the full package names to be listed, not just the first part.
I note that with opentelemetry, even if findpydeps gave me the fully parsed names, like opentelemetry.exporter.cloud_trace, that that would only be half the battle.  For reasons that I cannot fathom, Google uses different names for the packages that you need to specify in your requirments.txt file.  For example, instead of listing something like
opentelemetry-exporter-cloud-trace
in your requirments.txt, you actually need to use
opentelemetry-exporter-gcp-trace

Hello, thanks for giving me this feedback. Iirc, the behavior you describe as a bug is actually the intended behavior. I intended to group packages by toplevel name. But it is possible to add an option to remove this step.

Check out the get_module_name_in_simple_import function for this.

There is now an option --submodules-as-modules that you will be able to use at the next release (which should be soon).

The release v0.2.6 implements this new option.


Web feed polling: better error handling

Right now, when we fetch and process an RSS/Atom feed, there are a number of classes of errors that will stop us from polling it in the future. We also don't create a poll task if we have trouble creating a user object and then later create it ok. We need to be better about adding the next poll-feed task in those cases.

Sure! Just let me know which site here, I can kick it.

Sure! Just let me know which site here, I can kick it.

https://zipmartini.photography
I apologize, I didn't realize a path couldn't be set; the application/rss+xml tag I set on the index.html should do the trick.
It would be nice if these errors were transparent so a user could self-diagnose a failure and confirm that everything is well-formed before switching everything on.

@ZipMartini sure! And agreed!
Next step is to switch your Atom ids to URIs, which Bridgy Fed needs. http://www.atomenabled.org/developers/syndication/#requiredEntryElements

Also I've made the web site form at https://fed.brid.gy/#enter-web-site now re-poll, so feel free to use that to test once you've updated your feed!

Also I've made the web site form at https://fed.brid.gy/#enter-web-site now re-poll, so feel free to use that to test once you've updated your feed!

That seemed to work!  Well, at least on the Bluesky end; there are no posts going out to the Fediverse.  I'm sure I screwed something up setting up that .htaccess file (although it's pretty much verbatim what's in the Apache example).  I notice that every time I pull up my Fediverse profile, it then redirects back to my website.  I probably shouldn't be trying anything this advanced... just wait until I try selfhosting a PixelFed instance on this thing.

Bridgy Fed only delivers posts to fediverse instances where you have at least one follower: https://fed.brid.gy/docs#only+delivers

I notice that every time I pull up my Fediverse profile, it then redirects back to my website.

If you're loading a remote URL directly on an instance where you're not logged in, https://mastodon.social/<EMAIL_ADDRESS>, then yeah, that's just what many fediverse servers do. Try searching for<EMAIL_ADDRESS>on an instance where you're logged in and then click on the profile in the search results.

Ah, I should have read the docs more closely, my bad.
I don't want to turn this issue into my private tech support -- the re-polling seems to have worked -- but is it expected behavior that the Fediverse bridge only shows what's contained in the title tag and then the id tag, but not what's in the content tag? The Bluesky mirror does show the contents of the content tag.  I couldn't find any documentation about exactly which elements of the RSS are published out, or if there are differences if entry or item tags are used as the enclosure, or if there's differences between RSS and Atom.

is it expected behavior that the Fediverse bridge only shows what's contained in the title tag and then the id tag, but not what's in the content tag?

Depends on the fediverse server, but often sadly yes: https://fed.brid.gy/docs#Mastodon+currently+shows

This is largely fixed, and also if a site isn't polling, entering it into https://fed.brid.gy/web-site now recreates the poll task.


issue with downloading FCN param files

Hi  @starimpact @@tornadomeet ,
Thank you for the fcn implementation.
I tried to download the following files for using with fcn
VOC2012.rar 1.79G 2015-12-15 05:58
VGG_FC_ILSVRC_16_layers-0074.params 527.8M 2015-11-06 08:53
FCN8s_VGG16-0019.params 515.9M 2016-01-18 02:41
FCN8s_VGG16-0019-cpu.params
did not succeed in downloading the param files.  Always  timeout issue.....
would it be possible to upload the files to google drive?
Thanks a lot

FCN is not implemented by me.

@starimpact thanks for the response... my mistake :S


Interoperability with KernelFunctions.jl

Hi! What are your thoughts on what we're trying to do over at github.com/JuliaGaussianProcesses/KernelFunctions.jl/ - we were wondering what it would take to make our packages work together / extend each other? We would be happy to discuss and implement changes we need to make for the packages being able to work together/on top of each other instead of replacing each other.

That's a great idea! What's your preferred method of communication going forward?

We mainly coordinate on the Turing.jl slack - it has significantly less traffic than the official JuliaLang slack, and has correspondingly more useful history - I sent you a direct message on the JuliaLang slack but you can only read them for a few days before they disappear again! I've sent you my email address there so you can get in touch privately and/or send me your email on julialang slack in response and I'll get you added to the turing slack workspace.

@SebastianAment we've now got a slack invite link, too: https://join.slack.com/t/turingjl/shared_invite/zt-ubbtg7r8-xtg4WjXEQTG_jvE~estuKw so that should work as well - join us at #kernelfunctions in particular

Ping, if you're still interested in this: )

@st-- Thanks for the ping! I got sidetracked with other things, but am now going to invest further time into this project. Just joined the slack.


Support extensions from the workspace

A workspace can have an extension that is built only for the workspace. For such extensions, it does not makes sense to publish them to Marketplace and make them available for all workspaces. It would be nice to have an extension available in the workspace and gets loaded only for that workspace.
Examples:

ms-vscode.vscode-diagnostic-tools
ms-vscode.vscode-selfhost-test-provider

CC @hediet @connor4312

Maybe migrate jrieken.vscode-pr-pinger to this as well? Pinging @jrieken


Place under the menu bar

Yippy gets layered over the menu bar's drop shadow/border, which makes it look a little out of place at the top. This is true is dark mode but much more evident in light more imo.

PS This is a great little app, I've spent so long looking for a clipboard manager that suits me. (The only thing significant thing missing for me right now is search). So thanks.

Hi @msaspence, thank you for your support! Yes search seems to be the top priority (for me as well) but I really cannot commit to it right now, and is quite tricky with the way Yippy avoids taking window focus.
Hmm yes I understand your concern, but unfortunately this is the best solution that I have found. ☹  Apple does not provide a great API for determining the visible frame (screen minus dock minus menu bar) at all times. And this is the best compromise that does not make it look weird when the dock or menu bar is hidden (for example in full screen apps). Apple actually has this problem themselves! I copied their solution for this problem with their notifications menu 😜

You're right and now this is going to bug me every time I open notifications 😂

Haha sorry for ruining it for you!


ci: Fix LUET_ARCH in arm64 jobs

It was defaulting to x86_64 in publish and github-release jobs thus
failing
Signed-off-by: Itxaka<EMAIL_ADDRESS>