Tomcat 8.5 support

In Tomcat 8.5, the method StandardSession.exclude now takes two parameters instead of one.
The Tomcat devs would prefer if this change was handled on the msm side, see bugzilla:
https://bz.apache.org/bugzilla/show_bug.cgi?id=59735

I just released 1.9.4 with the fix, please let me know how it works for you.

I have found one other issue, with this stack trace:
21-Jun-2016 10:40:27.440 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]] de.javakaffee.web.msm.MemcachedSessionService.updateExpirationInMemcached Could not update expiration in memcached for session 7C848BA7F54EBAEBF018E9B719A83F0D-n2
 java.lang.NoSuchMethodError: org.apache.catalina.Manager.getContainer()Lorg/apache/catalina/Container;
	at de.javakaffee.web.msm.MemcachedBackupSession.getMemcachedExpirationTimeToSet(MemcachedBackupSession.java:275)
	at de.javakaffee.web.msm.BackupSessionTask.storeSessionInMemcached(BackupSessionTask.java:229)
	at de.javakaffee.web.msm.BackupSessionTask.doBackupSession(BackupSessionTask.java:199)
	at de.javakaffee.web.msm.BackupSessionService.updateExpiration(BackupSessionService.java:134)
	at de.javakaffee.web.msm.MemcachedSessionService.updateExpirationInMemcached(MemcachedSessionService.java:1606)
	at de.javakaffee.web.msm.MemcachedBackupSessionManager.backgroundProcess(MemcachedBackupSessionManager.java:575)
	at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5543)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1374)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
	at java.lang.Thread.run(Thread.java:745)

The method Manager.getContainer() has been replaced by Manager.getContext(). Should I open a new issue for this?

It's enough to change the title of the issue to s.th. more general :-) Let's see how many rounds it takes until all issues are sorted out :-)

While upgrading the tomcat 8 dependency to 8.5.3 I realized that this jaspic stuff was added, which fails lots of tests. I need to go through them an understand jaspic for the right solution, this may take some time. If you're in a hurry feel free to submit a pull request :-)

I just released msm 1.9.5, please let me know how it works for you.

@Ironlink Could you already test 1.9.5, how does it work for you?

Unfortunately this breaks MSM functionality with older Tomcats, which are used in stable Linux distributions (e.g. Debian Jessie: 8.0.14, wheezy-backports: 8.0.14,  jessie-bacports: 8.0.32).
Any chance to support both old and new Tomcats by accessing the changed Tomcat API using reflection calls?

@martincizek Can you provide more details, tomcat version + the actual error with stack trace? The goal is in fact to support older tomcat versions.

@martincizek Sorry, reading again I realized you actually stated the tomcat versions. If you could provide a stack trace this would still be helpful.

The log from Tomcat 8.0.14 and MSM 1.9.5 follows below. The log from Tomcat 7.0.56 looks the very same.
As it could be expected, it complains about non-existence of the two-parameter method StandardSession.exclude(String, Object).
I can imagine three solutions:

More tomcat-version-specific JARs (i.e. JAR for tc8 would be relased as memcached-session-manager-tc8.0.0-${version}.jar, memcached-session-manager-tc8.0.31-${version}.jar and similarly for tc7 and tc6 eventually).
Determine and call the right method using reflection, i.e. trying to call getClass().getMethod("exclude", String.class, Object.class).invoke(name, value) and if that fails, then use one-parameter variant. Can be optimized by determining the right way in advance indeed.
Or at least documenting the supported Tomcat versions for each Tomcat (for tc8 it should be 8.0.31+).

VIII 01, 2016 11:02:41 DOP. de.javakaffee.web.msm.MemcachedSessionService createSession
FINE: createSession invoked: null
VIII 01, 2016 11:02:41 DOP. de.javakaffee.web.msm.SessionIdFormat createSessionId
FINE: Creating new session id with orig id 'ping' and memcached id 'n1'.
VIII 01, 2016 11:02:41 DOP. de.javakaffee.web.msm.NodeAvailabilityCache updateIsNodeAvailable
FINE: CacheLoader returned node availability 'true' for node 'n1'.
VIII 01, 2016 11:02:41 DOP. de.javakaffee.web.msm.SessionIdFormat createSessionId
FINE: Creating new session id with orig id '81E4FC5ECF9E8D89EFA059013600B203' and memcached id 'n1'.
VIII 01, 2016 11:02:41 DOP. de.javakaffee.web.msm.MemcachedSessionService createSession
FINE: Created new session with id 81E4FC5ECF9E8D89EFA059013600B203-n1
VIII 01, 2016 11:02:41 DOP. de.javakaffee.web.msm.BackupSessionService backupSession
FINE: Starting for session id 81E4FC5ECF9E8D89EFA059013600B203-n1
VIII 01, 2016 11:02:41 DOP. de.javakaffee.web.msm.BackupSessionTask call
FINE: Starting for session id 81E4FC5ECF9E8D89EFA059013600B203-n1
VIII 01, 2016 11:02:41 DOP. org.apache.coyote.ajp.AbstractAjpProcessor process
SEVERE: Error processing request
java.lang.NoSuchMethodError: org.apache.catalina.session.StandardSession.exclude(Ljava/lang/String;Ljava/lang/Object;)Z
        at de.javakaffee.web.msm.MemcachedBackupSession.exclude(MemcachedBackupSession.java:597)
        at de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes(JavaSerializationTranscoder.java:121)
        at de.javakaffee.web.msm.JavaSerializationTranscoder.serializeAttributes(JavaSerializationTranscoder.java:100)
        at de.javakaffee.web.msm.TranscoderService.serializeAttributes(TranscoderService.java:151)
        at de.javakaffee.web.msm.BackupSessionTask.serializeAttributes(BackupSessionTask.java:180)
        at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:110)
        at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:51)
        at de.javakaffee.web.msm.BackupSessionService$SynchronousExecutorService.submit(BackupSessionService.java:347)
        at de.javakaffee.web.msm.BackupSessionService.backupSession(BackupSessionService.java:206)
        at de.javakaffee.web.msm.MemcachedSessionService.backupSession(MemcachedSessionService.java:1086)
        at de.javakaffee.web.msm.RequestTrackingHostValve.backupSession(RequestTrackingHostValve.java:230)
        at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:159)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
        at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:827)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

Right, this was broken with https://github.com/magro/memcached-session-manager/commit/ef5ca89109bafa73e9cac2697fc1d7c4708bdcd0. My preference would be to use reflection, s.th. similar was introduced to MemcachedBackupSession in  https://github.com/magro/memcached-session-manager/commit/aa084dc1fe481101eac395654631abb1fd7e49d7.
Do you want to submit a pull request?

Do you want to submit a pull request?

My colleague will try to.

@martincizek Thanks as well, the PR is released with 1.9.7.

@magro You're welcome. It was quite tricky as it is not possible to call super's method using reflection. So on old Tomcat, there is actually a reference to a non-existing super's method. We rely on that this reference does not cause problem when it is in an unexecuted code branch.

@magro  For one of our client, we were using Memcache-1.9.2 along with tomcat 8.0.30. We upgraded tomcat to 8.5.31. I wanted to know if Memcache 2.2.0 would be right fir for it?

It will get resolve if you user memcached-session-manager-tc8-2.3.0.jar and memcached-session-manager-2.3.0.jar


Docker: automated builds failing

See details at https://hub.docker.com/r/manageiq/manageiq/builds/bhcfp9dtsxgnxcukrgizshz/

@miq-bot add_label build
cc @bazulay @fbladilo

It looks like the issue is here, during install something goes wrong cpio unpacking :
Installing : httpd-2.4.6-40.el7.centos.x86_64 156/231Error unpacking rpm package httpd-2.4.6-40.el7.centos.x86_64  error: unpacking of archive failed on file /usr/sbin/suexec: cpio: cap_set_file
Is possible DockerHub build hosts are running and outdated AUFS :
https://github.com/docker/docker/issues/6980
Since we have no control over their infrastructure, do we have a support arrangement we can use?
I've never encountered this issue on my build host Fedora23 based but it is running a pretty recent stack. From what I read it doesn't only affect httpd, other packages also can trigger it.
@bdunne @bazulay

@fbladilo I opened a support case.

Hi Brandon,
The error error: unpacking of archive failed on file /usr/sbin/suexec: cpio: cap_set_file. It seems like the issue lies with AUFS. For this, you would need a newer version of AUFS with support for CONFIG_AUFS_XATTR, and that kernel config option must be enabled). Since the affects all the builds on Hub, I am going to escalate this to our automated build developers and get a fix roll out for this.
In the meantime, I would suggest that you build locally and push to Hub manually.
I apologize for the inconvenience.
Thanks,
Kenny Lim
Support Engineer
Docker

Assigned to @bdunne since he's tracking the external case

@bdunne any news from DockerHub guys?

@fbladilo No updates to the case.

@bdunne :worried: thanks for the update sir

Same Problem: https://hub.docker.com/r/shoifele/bareos-ui/builds/b645xucdabfmwxscaumyrg6/

Update, it is assigned to Docker hub engineering for this sprint.

This is working now, it seems.

yay! :smiley:


bug: protobuf files with hyphens in the name breaks codegen

Protobuf files with hyphens in the name cause this tool to break. It should convert hyphenated names to snake case.

Thanks for the report! This is definitely something I'll fix in the next week or two, and probably sooner.


Convert enum to varchar does not work with Postgresql

Describe the bug
String enums are converted to text SQL type in Postgresql while I want them to be converted to varchar. I tried to use columnType in @Enum decorator to force the SQL column type but it does not work.
My enum :
export enum ContentType {
  EXERCISE = 'EXERCISE',
  TRAINING = 'TRAINING',
  POLL = 'POLL',
}

My entity property :
  @Enum({
    columnType: 'varchar',
    length: 10,
    items: () => ContentType,
  })
  public contentType: ContentType;

And an extract of the generated schema using npx mikro-orm schema:create --dump :
, "content_type" text check ("content_type" in ('EXERCISE', 'TRAINING', 'POLL')) not null,

I expected it to be :
, "content_type" varchar(10) check ("content_type" in ('EXERCISE', 'TRAINING', 'POLL')) not null,

In my package.json :
    "@mikro-orm/cli": "^4.5.7",
    "@mikro-orm/core": "^4.5.7",
    "@mikro-orm/postgresql": "^4.5.7",
    "@mikro-orm/reflection": "^4.5.7",

Is this a bug ? Is there a way to workaround it ?
Thanks for any help !

You could call this is a limitation of knex, as that is where the enum definition is built and where text type is hardcoded. In v5 we could get around it quite easily, but I don't see a need for it, text type should be preferred.
https://stackoverflow.com/questions/4848964/difference-between-text-and-varchar-character-varying
Also note that with columnType you need to put the length in there, there is no postprocessing and columnType is always used as is, so it should be columnType: 'varchar(10) if something.

Unfortunately the easy fix I had in my mind is far away from being easy.
No plans to work on this, especially because there is no real benefit in it. See the StackOverflow post above for more information, in short both varchar(10) and text types are stored in the very same underlying database type. Thanks to the check constraint, it is impossible to put anything else that the enum values inside, so there is even no need for the max length, as that is inferred based on the enum items.


Players from scraper unable to aquire players

I am not able to aquire players from the scraper.
I don't get an error message but just an empty file.
Here is my excerpt from the log file:
make acquire_local ARGS="--asset players --season 2022"
PYTHONPATH=:`pwd`/. python scripts/acquire.py local --asset players --season 2022
2023-07-25 21:05:43,299 [INFO]: Schedule players for season 2022
2023-07-25 21:05:43,300 [INFO]: Overridden settings:
{'FEED_URI_PARAMS': 'tfmkt.utils.uri_params',
 'HTTPCACHE_ENABLED': True,
 'REQUEST_FINGERPRINTER_IMPLEMENTATION': '2.7',
 'SPIDER_MODULES': ['tfmkt'],
 'USER_AGENT': 'transfermarkt-datasets/1.0 '
               '(https://github.com/dcaribou/transfermarkt-datasets)'}
2023-07-25 21:05:43,306 [INFO]: Telnet Password: 77e807760644c197
2023-07-25 21:05:43,312 [INFO]: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.memusage.MemoryUsage',
 'scrapy.extensions.feedexport.FeedExporter',
 'scrapy.extensions.logstats.LogStats']
2023-07-25 21:05:43,345 [INFO]: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
 'scrapy.downloadermiddlewares.retry.RetryMiddleware',
 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
 'scrapy.downloadermiddlewares.stats.DownloaderStats',
 'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware']
2023-07-25 21:05:43,346 [INFO]: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
 'scrapy.spidermiddlewares.referer.RefererMiddleware',
 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
 'scrapy.spidermiddlewares.depth.DepthMiddleware']
2023-07-25 21:05:43,347 [INFO]: Enabled item pipelines:
[]
2023-07-25 21:05:43,350 [INFO]: Spider opened
2023-07-25 21:05:43,417 [INFO]: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2023-07-25 21:05:43,417 [INFO]: Telnet console listening on <IP_ADDRESS>:6023
2023-07-25 21:05:45,842 [INFO]: Closing spider (finished)
2023-07-25 21:05:45,843 [INFO]: Dumping Scrapy stats:
{'downloader/request_bytes': 90051,
 'downloader/request_count': 241,
 'downloader/request_method_count/GET': 241,
 'downloader/response_bytes': 18647027,
 'downloader/response_count': 241,
 'downloader/response_status_count/200': 241,
 'elapsed_time_seconds': 2.426156,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2023, 7, 25, 19, 5, 45, 843008),
 'httpcache/hit': 241,
 'httpcompression/response_bytes': 80917418,
 'httpcompression/response_count': 241,
 'log_count/DEBUG': 246,
 'log_count/INFO': 10,
 'memusage/max': 145530880,
 'memusage/startup': 145530880,
 'response_received_count': 241,
 'scheduler/dequeued': 241,
 'scheduler/dequeued/memory': 241,
 'scheduler/enqueued': 241,
 'scheduler/enqueued/memory': 241,
 'start_time': datetime.datetime(2023, 7, 25, 19, 5, 43, 416852)}
2023-07-25 21:05:45,843 [INFO]: Spider closed (finished)

Would be great if you can help me out here =)

Hey @HaiFred,
I noticed the following two lines in the log you provided
...
'downloader/request_count': 241
...
'httpcache/hit': 241,

This is suggesting that the crawler is indeed working since 241 requests is roughly what is to be expected for a run of the players crawler (I get about the same numbers when I run it from my local).
However the crawler is using your local cache to serve responses, and this could be why you are not getting any output. Scrapy may save responses to cache regardless of the return status, and it happened to me sometimes that I ended up with a corrupted cache because of this.
Can you try and run it with the cache deactivated? You can do so by changing the setting to False in the config
https://github.com/dcaribou/transfermarkt-datasets/blob/53f8b71b17ae016e0ed50264316958d5bc4db3c1/config.yml#L30


Bellman Ford in C, Java & Python

Is your feature request related to a problem? Please describe.
Given a graph and a source vertex src in the graph, find the shortest paths from src to all vertices in the given graph. The graph may contain negative weight edges.
Describe the solution you'd like
- This step initializes distances from the source to all vertices as infinite and distance to the source itself as 0. Create an array dist[] of size |V| with all values as infinite except dist[src] where src is source vertex.
- This step calculates shortest distances. Do following |V|-1 times where |V| is the number of vertices in given graph. Do following for each edge u-v
   - If dist[v] > dist[u] + weight of edge uv, then update dist[v] to
   - dist[v] = dist[u] + weight of edge uv
- This step reports if there is a negative weight cycle in the graph. Again traverse every edge and do following for each edge u-v
……If dist[v] > dist[u] + weight of edge uv, then “Graph contains negative weight cycle”
The idea of step 3 is, step 2 guarantees the shortest distances if the graph doesn’t contain a negative weight cycle. If we iterate through all edges one more time and get a shorter path for any vertex, then there is a negative weight cycle

Additional context

@Kumar-laxmi I would like to contribute to this issue. Please assign me this issue.

@Kumar-laxmi sir kindly assign me this issue under SSOC'23. I can code this using C, C++,  this will be my first PR

Is your feature request related to a problem? Please describe. Given a graph and a source vertex src in the graph, find the shortest paths from src to all vertices in the given graph. The graph may contain negative weight edges.
Describe the solution you'd like
- This step initializes distances from the source to all vertices as infinite and distance to the source itself as 0. Create an array dist[] of size |V| with all values as infinite except dist[src] where src is source vertex.
- This step calculates shortest distances. Do following |V|-1 times where |V| is the number of vertices in given graph. Do following for each edge u-v
   - If dist[v] > dist[u] + weight of edge uv, then update dist[v] to
   - dist[v] = dist[u] + weight of edge uv
- This step reports if there is a negative weight cycle in the graph. Again traverse every edge and do following for each edge u-v
……If dist[v] > dist[u] + weight of edge uv, then “Graph contains negative weight cycle”
The idea of step 3 is, step 2 guarantees the shortest distances if the graph doesn’t contain a negative weight cycle. If we iterate through all edges one more time and get a shorter path for any vertex, then there is a negative weight cycle

Additional context

@Kumar-laxmi assign me this I can code it in C, Java & Python.

please assign me this issue @Kumar-laxmi

@Anushka-gupta496 Can you also implement this in Python?

@Kumar-laxmi Sure, I'll try my best.

Assigned!
@Anushka-gupta496 : C, Java & Python

@Kumar-laxmi sorry for the delay. I'll complete it today


Symlinks created via the home-manager module are broken

Adding the following configuration creates a broken symlink persistent in /home/janrupf:
home.persistence."/persistent/home/janrupf" = {
  directories = [
    { directory = "persistent"; method = "symlink"; }
  ];
}

Inspecting:
$ readlink persistent
/nix/store/vlidns7s3sp46bkw65nmr8wj7lbhvkvx-home-manager-files/persistent
$ readlink /nix/store/vlidns7s3sp46bkw65nmr8wj7lbhvkvx-home-manager-files/persistent
/nix/store/iwbbjrdnqrffd8bjv4yi5yvanhj6w8f0-persistent-home-janrupf-persistent
$ readlink /nix/store/iwbbjrdnqrffd8bjv4yi5yvanhj6w8f0-persistent-home-janrupf-persistent
/persistent/home/janrupf/persistent

So the symlink does point to the correct location afterall - the issue is, that location is never created.
The creation is supposed to happen here:
https://github.com/nix-community/impermanence/blob/a33ef102a02ce77d3e39c25197664b7a636f9c30/home-manager.nix#L451-L461
Inspecting the flake output reveals that the command added to home.activation.createTargetFileDirectories is mkdir -p /persistent/home/janrupf/. - notice the dot at the end. I think this is caused by the dirOf call on line 458.

Temporary fix:
  home.activation.createTargetFileDirectoriesFixup =
  let
    isSymlink = entry: (!lib.isString entry) && (entry.method == "symlink");
    entryPath = entry: if lib.isString entry then entry else entry.directory;

    cfg = config.home.persistence;

    persistenceRoots = lib.attrNames cfg;
    mkdirPersistentLocations = map (root:
      let
        persistentDiskPath = cfg.${root}.persistentStoragePath;
        persistentDirectories =
          # Collect all directories which are symlinks
          (map entryPath (lib.filter isSymlink cfg.${root}.directories)) ++
          # And all directories of files
          (map lib.dirOf (map entryPath (cfg.${root}.files)));

        completePaths = map (path: lib.path.append (/. + root) path) persistentDirectories;
        mkdirCommands = lib.concatMapStrings (completePath: "run mkdir -p ${lib.escapeShellArg completePath}\n") completePaths;
      in ''
        # mkdir's for ${root}

        ${mkdirCommands}
      ''
    ) persistenceRoots;
  in
    config.lib.dag.entryBetween [ "writeBoundary" ] [ "createTargetFileDirectories" ] (
      lib.concatMapStrings (cmds: "${cmds}\n") mkdirPersistentLocations
    );
    ```

I've also ran into this problem.
The temporary fix works, although for me with one minor modification; I had to change lib.dirOf to just  dirOf.

I think I am running a similar issue. All my directories are working. If I add the following:
  home.persistence."${config.custom.impermanence.dataLocation}".directories = [
    { directory = ".dotfiles"; method = "symlink"; } # Testing something...
  ];

The chain leads to nowhere, leading to "No such file or directory"

Its just generally broken with the symlink method because there's the bug in the logic mentioned above, doesn't matter whether the name has a leading dot or not


galaxy: Lua: Scripting support.

More support for lua usage.
https://sol2.readthedocs.io/en/latest/tutorial/cxx-in-lua.html

Done.

Done.


Sprint 4: Programming

All members must create one or more of:

Functional TeleOp Program verifying the functionality of a subsystem.
Integration of all subsystem programs into a single teleOp program
Unique autonomous Program capable of scoring in autonomous period

For individual deliverable:

Frequent upload of code to GH under TeamCode > BlocksBackup with comments on changes made.
Video of robot performing task

I will be helping to fix the Teleop and ensure it runs properly. This means I will:

Make sure all buttons perform the action we want (raising the four-bar)
Try to add limitations in the code so that it does not over-extend
Cut down on unnecessary blocks
Polish everything so that it runs smoothly (making the four-bar sustain itself in the air when lifted)

I am working with Anand to ensure the TeleOp runs smoothly with all the requirements mentioned above AND a functioning, moving drivetrain that has great movement that fits to the specifications of our driver, Maximo Doewich Araya.
Along with the TeleOp, I will try my best to make an AutoOp for the right and left starting positions on the field. More information will be posted in Anand's Sprint 4 issue.


Optimize resolve-package for a significant speedup

Profiling why XLSX::Spreadsheet produced output so slowly revealed
that box-class, and in turn resolve-package, was a hot path. The cause,
in turn, is that require is not especially cheap - and was being
called tens of thousands of times. This was in turn because the
construct:
::{$pkg}:exists ?? ::($pkg) !! do require ::($pkg)

Is incorrect; ::{$key} is a stash lookup exactly on the passed key,
and does not parse it for :: separators as in ::(...). Thus with the
condition always being False, we'd always hit the require.
This could have been fixed by splitting up the $pkg or looking at the
output of ::($pkg) to see if it actually found something. I did a
slightly more invasive change that introduces a lookup on the entire
class name, taking care of thread safety.
The results are dramatic: the entire process of persisting the XLSX
sheet in the benchmark considered dropped from 44.66s to just 1.57s
(this involves a more than just producing XML, so the improvement to
XML generation alone would be a bit more than this).
Even with this change, it seems that box-class calls alone still
account for around 12% of the time spent producing the XLSX output.
Given we go from integer type code to string and then do the lookup
here, there is probably scope for further improvement in this area.

Thanks!

Released as LibXML 0.7.9

@dwarring Thanks for the quick release again, this makes my Excel exports really usable. Down from 90 to about 5 seconds, of which probably half is not LibXML related (just a rough guess ).


Add advisory to tutorial about different syscall

It appears on some systems, do_sys_open is called rarely.
This changes the tutorial to acknowledge that, and instructs the reader
to attach the kprobe to two syscalls. Some copy was added to the
tutorial explaining the reasoning for this.
In response to https://github.com/foniod/redbpf/issues/277#issue-1125441020

Wow this is brilliant. That's very helpful advisory. I didn't know this fact. Thanks a lot.
All I want to ask you is to change your commit message to contain Signed-off-by trailer since redbpf conforms DCO. You can do that by executing git commit -s option :slightly_smiling_face:

@rhdxmr done


Fix and update README example

Changes include:

Update to glutin 0.8.0 API
Explicitly unwrap() to avoid compiler warnings
Use builder API to specify dimensions, title, and v-sync
Use traditional update loop, which avoids redrawing multiple times per sync when lots of events are happening

Thanks


DSD-615: Storybook arg names & cleanup

Fixes JIRA ticket DSD-615
This PR does the following:

Updates all component Storybook documentation by cleaning up unused variables and fixing typos.
Add defaults to props in the Controls section.
Cleans up stray console warning coming from a deprecated package.
There is one error coming from the emotion package which is not our fault - https://stackoverflow.com/questions/57239807/the-pseudo-class-first-child-is-potentially-unsafe-when-doing-server-side-ren
It also updates how arg names for enums are displayed. It's confusing when current options are the values themselves in lowercase. For example, in the StatusBadge component, the level prop should have a value of StatusBadgeTypes.Low, StatusBadgeTypes.Medium, or StatusBadgeTypes.High:

<StatusBadge level={StatusBadgeTypes.Low} />

but Storybook, by default, shows the actual compiled value of the enum StatusBadgeTypes.Low as "low". This causes confusing and causes devs to use this pattern instead:
<StatusBadge level="low" />

Technically, this is still correct but we want to stick with the enum variable pattern.
Visual example before:

after:

Once this is approved, I'll update the wiki page for "Anatomy of a Story".
How has this been tested?
Please go through every page/component in Storybook to make sure everything looks and works fine! The focus should be on the "args table" which displays the Controls and the "default value".
Checklist:

[ ] I have updated the Storybook documentation accordingly.
[ ] All new and existing tests passed.

Front End Review:

[ ] View the example in Storybook

One more thing:
It's also confusing looking at a component and not seeing all available props. Instead of removing them from the Controls/ArgsTable section, they are just disabled and can't be controlled. I think this is better even though it makes the page longer.

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

The props should be alphabetized on every story.

I tried to do this but because some props are declared on the global argTypes and some in the local argTypes, they get out of order. So you'll see that there might be sets of props alphabetized.

Make sure Default column is populated with the default value set in component.

I did this. Not all props have a default value so many props are just -.

Is there any way to increase the width of the Default column?

I'll look into this.

The description for any props that are for internal use should include a statement saying so.

Yes.

The values in the Description column are showing the end string value from the enums. Can those values should the full enum value? (ex. `ImageSizes.Medium) That might be a bit much.

I couldn't find a way to do this. It is currently using the compiled enum value and we don't explicitly set it, so we may have to make custom configurations if we want this.

The values in the Description column are showing the end string value from the enums. Can those values should the full enum value? (ex. `ImageSizes.Medium) That might be a bit much.

This is sort of possible but now I get this:

and this is how it was before:

I'm leaning on the first one. What do you think?

I'm leaning on the first one (even though each enum key value doesn't display). What do you think?

I also like the first option, but I think the description should now say something about the prop value being an enum.  What is the technical way to talk about enum values?

@bigfishdesign13 update:

The props should be alphabetized on every story.

Done, but now every prop must be listed in the args prop and in alphabetical order. Also, if they don't have a value, undefined should be used. Check out the stories for examples.

Is there any way to increase the width of the Default column? Eevn if there is a way to adjust that column width, I don't think there is enough width within the UI to give us what we would need to really make a difference.

The best I could manually override was only the third column. It seems like the other columns are dynamic and CSS overrides don't affect them...

The description for any props that are for internal use should include a statement saying so.

Done. They're mostly in caps lock.

The values in the Description column are showing the end string value from the enums. Can those values should the full enum value? (ex. `ImageSizes.Medium) That might be a bit much.

I think a different ticket to explain the enum/object usage in a separate "how-to" or typescript docs would be helpful.

Another update:
Check out the stories for Form, Image, and HorizontalRule. Because we are using the native HTML element props and creating a union with our own props, all the props are listed in storybook! For example, in the HorizontalRule we are declaring props as React.ComponentProps<"hr"> & HorizontalRuleProps and this makes it list over 259 props, only four of which we declared for the DS component. I don't think having the React.ComponentProps<"..."> is beneficial for us and if a dev needs to pass in a specific HTML attribute, they can let us know why. Or, we can return to thinking about using the attributes prop again. I think for now we can remove it until necessary.
I did try to find a way to remove those props from Storybook but couldn't find a way. It may be with the latest update form them.

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Update: will create a ticket to fix the props for Form, Image, and HorizontalRule.

@hokei and @nypl-wluisi
Can you both take a look at this PR?  Thanks.

Nudge

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

@bigfishdesign13  updated from development, can you re-check the stories for Card, Image, and VideoPlayer? They had recent updates which I want to make sure are correct with this PR's updates.

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Just a reminder for myself to update the Toggle component's story.

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Updated.

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

There's a handful of stories that have this msg: "This story is not configured to handle controls. Learn how to add controls".

@nypl-wluisi that's correct. In this PR, and moving forward, only the first story in each section will have Controls enabled. This is indicated by the name. For example, in the first link shared, it is for the Select and points to the "Labelling Variations". The first story above it, "Select with Controls", is the main story that has it enabled. This is the same pattern for all components. We're hoping this makes it easier to (1) manipulate a component with all its props in only one story, and (2) to write concise mdx storybook files.

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e

Tugboat has finished building the preview for this pull request!
Link:

https://pr788-d7x3of4rzfc66kdugghfur2vqphitirq.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61aa4fc50048b8f1367b921e


Conditionals statements in circuit definition

In an imperative programming language, that would be a if / else.
However, it doesn't translate well in a declarative API to define the circuit, as the output of the frontend.Compile method is an arithmetic representation that must encode the various branches.
gnark offers cs.Select(...) API, which is similar to Prolog-like languages.
// Select if b is true, yields i1 else yields i2
func (cs *ConstraintSystem) Select(b Variable, i1, i2 interface{}) Variable {

At a minimum, gnark should provide some syntactic sugar to wrap several instructions, maybe in a lambda, into a a if-like statement.

Recently wants to use it, could you give some ideas about how to add if in circuit?

hi @SherLzp --> there is a branch, a bit outdated to explore some ideas: https://github.com/ConsenSys/gnark/tree/feat/conditional
this is going to get some attention quite soon, but first we have some PlonK efficiency work on the plate.

in particular: https://github.com/ConsenSys/gnark/blob/feat/conditional/internal/backend/circuits/conditional.go

Noted. Thanks

When will this issue be implemented? @gbotrel


psum of complex64 not supported for multi GPU.

Complex numbers are not supported for AllReduce.
I found this bug when trying to do psum across 4 GPUs with complex64 as the dtype.
RuntimeError: Unimplemented: Requested AllReduce not implemented on GPU; replica_count: 4; operand_count: 1; IsCrossReplicaAllReduce: 1; NCCL support: 1; first operand array element-type: C64

We can fix this at the JAX level by making the psum lowering switch on the array element type, and just generate a pair of AllReduces for complex types.


Interpreter stateful opcodes

Added opcodes

app_opted_in
app_local_get
app_local_get_ex
app_global_get
app_global_get_ex
app_local_put
app_global_put
app_local_del
app_global_del

Added tests for each opcode
Updated types for stateful in types/algosdk

Approving, however this still bothers me: #164 (comment)

I have restored to using Uint8Array only


Refactor and improve DataTable.describe

The code contained in DataTable.describe could potentially be refactored to use more helper functions, making the code more readable and modular. It might also be good to move the calculation of statistics for a column into the DataColumn object, which would allow users to get stats on just a column if they wanted. The code in DataTable could then aggregate all of the data from the individual columns and then return that to the user.
This refactoring could also allow for more targeted tests on the column, which would improve the readability of the test code as well.

The code for describe was refactored as part of the accessor update, moving much of the code out of the main accessor method and into statistics utility functions in statistics_utils.py. As such, this issue is no longer relevant and can be closed.


[BUG] Backdrop not shown for modal dialog component

Please list the package(s) involved in the issue, and include the version you are using
admin-ui-extensions-react V0.11.0
Describe the bug
Modal dialog is included as a component that can be used in the product subscription extension environment but the backdrop is not shown when consumed within the product subscription extension environment (attached screen)
The background becomes interactive even if the modal dialog is open. I'm not able to use modal dialog on this view due to this issue. Any help?
Expected behavior
Backdrop should be shown, so that the background is not interactive
Screenshots

Additional context

@Aswathprabhu We're investigating this now. I'll keep you posted on a fix!

@Aswathprabhu I'm not able to reproduce what you have in your screen shot. Could you please share your extension code? Maybe we can identify a difference on the usage?
Simple example with a modal  rendered in the Add extension point:

@elanalynn  I'm still facing this. This is the sample code I'm using.


Fixed #27994 -- Documented ManifestFilesMixin.

…ixin
TIcket
https://code.djangoproject.com/ticket/27994
Description
This is my first contribution so the more feedback I can get the better.
Provided documentation for the ManifestFilesMixin

Given the documentation of the other storage classes, I don't think we need to document all the methods and attributes here. I simplified the patch.


[FEAT] Replace Gatsby icons

I am not sure we need both the favicon and the logo files

I'm not sure too, but I don't now how Gatsby generates all the icon. It generates some icons bigger than the original (the quality is bad). So, maybe we can change that later, when we have a bigger original icon.

about the logo, we have it in svg so we can create png, ico, ... files at any resolution.
Process-Analytics-logo_svg.zip

I did some tests with SVG image, it didn't work. I don't know why.
I try again why only SVG logo & removing the other images. And it works ^^
The plugin who generates the icons: https://www.gatsbyjs.com/plugins/gatsby-plugin-manifest/

ok let's start with the single svg logo


WIP: Honor assembly.issues and calculate approximate sweep cutoff time from basis event

The calculation of approximate sweep cutoff time is basically a placeholder until we have decided how to do that and find-builds is landed so that code can be shared from it.

Codecov Report

Merging #206 (112014e) into master (810a369) will increase coverage by 25.69%.
The diff coverage is 27.08%.

@@             Coverage Diff             @@
##           master     #206       +/-   ##
===========================================
+ Coverage        0   25.69%   +25.69%
===========================================
  Files           0       45       +45
  Lines           0     3942     +3942
  Branches        0      814      +814
===========================================
+ Hits            0     1013     +1013
- Misses          0     2891     +2891
- Partials        0       38       +38

Impacted Files
Coverage Δ

elliottlib/cli/find_bugs_cli.py
21.16% <16.66%> (ø)

elliottlib/util.py
32.75% <16.66%> (ø)

elliottlib/bzutil.py
52.85% <37.50%> (ø)

elliottlib/assembly.py
82.95% <100.00%> (ø)

elliottlib/errata.py
31.85% <0.00%> (ø)

elliottlib/exectools.py
89.39% <0.00%> (ø)

elliottlib/tarball_sources.py
32.96% <0.00%> (ø)

elliottlib/logutil.py
80.00% <0.00%> (ø)

elliottlib/attach_cve_flaws.py
0.00% <0.00%> (ø)

elliottlib/cli/puddle_advisories_cli.py
0.00% <0.00%> (ø)

... and 39 more

Continue to review full report at Codecov.

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


Solves deprecation under iOS 9

This solves deprecation issues under iOS 9 SDK as well as binary issue agaisnt iOS 9 arm64 architecture.
Test results:
Test Suite 'MSUserTests' passed at 2015-09-18 09:54:43.916.
Executed 2 tests, with 0 failures (0 unexpected) in 0.005 (0.007) seconds
Test Suite 'WindowsAzureMobileServicesTests.xctest' passed at 2015-09-18 09:54:43.917.
Executed 329 tests, with 0 failures (0 unexpected) in 6.773 (7.850) seconds
Test Suite 'Selected tests' passed at 2015-09-18 09:54:43.920.
Executed 329 tests, with 0 failures (0 unexpected) in 6.773 (7.854) seconds
Program ended with exit code: 0

Hi @intellitour, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;

@intellitour, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, AZPRBOT;

OK, I'll take a look, are all the replacements available in iOS7?

Here is the checklist:

(nullable NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters NS_AVAILABLE(10_9, 7_0);

@property(nonatomic,readonly) CGRect applicationFrame NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIScreen bounds]”);
@property(nonatomic,readonly) CGRect  bounds;
@property (nullable, readonly, copy) NSString *stringByRemovingPercentEncoding NS_AVAILABLE(10_9, 7_0);
Yes… all replacements are available in iOS 7.

Em 18/09/2015, à(s) 14:28, Phillip Van Nortwick<EMAIL_ADDRESS>escreveu:
OK, I'll take a look, are all the replacements available in iOS7?
—
Reply to this email directly or view it on GitHub https://github.com/Azure/azure-mobile-services/pull/797#issuecomment-141513861.

I took these changes into Dev here: https://github.com/Azure/azure-mobile-services/commit/d8f3fbfdd50aa8356aa9abafad923dc4966a06fe
And applied some fixes on top here:
https://github.com/Azure/azure-mobile-services/commit/df672ddeb2d362938328fcec795c6a7b0f25b125
Let me know if you have any questions, closing this since i took this set in Dev.  Our next release will handle merging Dev up to Master.
Phil


Add parameters for basic handling of mods

Also, one question to which I probably know an answer but want to ask first- do we want safeguards (like check if both mutually exclusive are defined)? I saw that there are next to no checks for params so...

LGTM but I don't know Python so leaving the approval to someone else 😁

Could allow JSON and the IDs in the env, load the json first then append from env

Sounds good, will do

Name is only for human readability and not needed by the server.
I suggest we only use one environment variable to specify mods, GAME_MODS, which accepts either any version of specific version.

Mods with any versions, GAME_MODS=5965770215E93269,59664C0CB36501CD
Mods with specific versions, GAME_MODS=5965770215E93269=1.0.6,59664C0CB36501CD=0.3.0
Mods with any and specific versions, GAME_MODS=5965770215E93269,59664C0CB36501CD=0.3.0

Workshop should use a volume to avoid redownload when container is recreated, for example VOLUME /reforger/workshop
To use the volume and separate workshop folder start the game with argument -addonDownloadDir /reforger/workshop

While I do agree with an option for specifying mod version in the GAME_MODS_IDS_LIST, and keeping them on a dedicated volume, I don't think removing an option to provide mods via a file is a good idea tbh. Managing dozens of mods only via one long ENV would be quite a pain. Your call tho

@Dahlgren re-review please.

Lint failed though, I will take a look in an hr or two 👀


coverage: add codecov to coverage providers and allow to select it

Coveralls is the default, you can select codecov in your package.json
file by adding --provider=codecov to the coverage-publish script.

Thank you :octocat:


Wrong reference markers for superscript numbers

example paper: https://journals.aps.org/prc/abstract/10.1103/PhysRevC.100.014306

The 10B is linked to the 10th reference which is a wrong detection result.

The Eq.(1) is linked to the 1st reference which is a wrong detection result.

Thank you @elonzh for the issue.
Yes I have this "on my radar", this is also the case for footnote markers (always superscript numbers - it generates quite a lot of false positives).
The idea to address this is to validate reference marker based on the majority style used globally in the document. If we see that we use globally patterns like [number], (number), (bla and al., 2020), etc. we should discard references markers as superscript numbers.

The equation reference marker error is not related, it's a lack of training data in general for formula reference markers, so it could be another issue to avoid mixing the two.

Superscript issue addressed by PR #791


Provide a download button for the Adoptium Temurin JDK/JRE builds for promotional purposes

This is a request for the marketing department probably.
Oracle allows users to promote Oracle JDK builds with an official download button logo. See also
https://www.oracle.com/java/java-affinity/download-buttons.html
I think it would be great if Adoptium could provide something similar for their builds.  I would love to promote https://adoptium.net/ if I could use an official download button.  However, I have not found an official download button on the adoptium.net website that I could use for this purpose.

Here they are at width=200
Number 1

Number 2

Number 4

Number 5

Number 6

Number 7

I like 1 and 5. 5 could probably work better without the drop shadow. My $0.02.

I think those are me two favourites too - #1 is exactly what I was looking for after my first comment. Thanks!

Unless there are any further comments, I suggest we go with all of the buttons above. It is useful to have a variety for people to fit in with whatever page they are designing.

Per your comments, I will start working on the buttons' different variations/formats/sizes and get back to you as completed. Highly likely by May the 4th. Best, Mehrnaz

Thank you for the suggestion @jonelo, and thank you for the graphics @meKokabi .
The buttons are now available on the Temurin website.


⚠ File access has degraded performance

In b5bcd00, File access (https://fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 3880 ms

Resolved: File access performance has improved in 729f7e8 after 8 minutes.


21 push notification

It can now add a device to a user's device list and notify the user whenever a reminder is required.
Several todos:

We need a scheduler to send reminders periodically, as sending reminders are not invoked by accessing an API endpoint.
Frontend needs to request notification permission. We need to have a somewhat friendly interface to ask user for permission.

The todos can be another ticket, separated from this PR to make the PR not too large.

I am closing this PR and opening a new one as the "file changed" does not show the right number.


Services: first build: abs added

{package} {version} {:snowflake:}
Destination channel: {Snowflake | defaults}
Links

{ticket_number}
Upstream repository
Upstream changelog/diff
Relevant dependency PRs:

...

Explanation of changes:

...

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_17lhu36n4d/clone` failed. (See above for error)
The following problems have been found:
===== ERRORS =====

clone/recipe/meta.yaml:17: pip_install_args: pip install should be run with --no-deps and --no-build-isolation.
===== Final Report: =====
1 Error and 0 Warnings were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_6f2rlz5vpe/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:70: missing_description: The recipe is missing a description
clone/recipe/meta.yaml:28: avoid_noarch: noarch: python packages should be avoided
clone/recipe/meta.yaml:45: avoid_noarch: noarch: python packages should be avoided

===== ERRORS =====

clone/recipe/meta.yaml:26: wrong_output_script_key: It should be outputs/x/script, not outputs/x/build/script
clone/recipe/meta.yaml:49: missing_wheel: For pypi packages, wheel should be present in the host section
clone/recipe/meta.yaml:32: missing_wheel: For pypi packages, wheel should be present in the host section
clone/recipe/meta.yaml:70: missing_documentation: The recipe is missing a doc_url or doc_source_url
===== Final Report: =====
4 Errors and 3 Warnings were found


[Preprocessor] Need to avoid usage of tmp folder

Preprocessor uses /tmp/save/repos from node's host machine.
It leads to requirements to make mkdir -p /tmp/save/repos && chmod 777 /tmp/save/repos
Need to revise this approach
P.S. Preprocessor needs a tmp folder to clone git repository to discover tests

https://kubernetes.io/docs/concepts/storage/volumes/#emptydir


Doc fixes.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: geeknoid
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS [geeknoid]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@geeknoid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test e2e-simpleTests-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-integ-k8s-tests

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-pilot-e2e-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-integ-k8s-tests

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/e2e_pilotv2_auth_sds.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio_auth_sds_e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-integ-k8s-tests

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/e2e_pilotv2_auth_sds.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio_auth_sds_e2e

prow/istio-pilot-multicluster-e2e.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/approve
/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: geeknoid, liamawhite
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS [geeknoid,liamawhite]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/test istio-pilot-e2e-envoyv2-v1alpha3

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ayj, geeknoid, liamawhite
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS [ayj,geeknoid,liamawhite]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ayj, geeknoid, liamawhite
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS [ayj,geeknoid,liamawhite]
mixer/OWNERS [geeknoid]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-integ-k8s-tests

prow/e2e_pilotv2_auth_sds.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio_auth_sds_e2e

prow/istio-pilot-multicluster-e2e.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-pilot-multicluster-e2e

prow/e2e-simpleTests-cni.sh
633cc07cf9136ebe530fe06561382fee32f363c6
link
/test e2e-simpleTests-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e_pilotv2_auth_sds.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio_auth_sds_e2e

prow/istio-pilot-multicluster-e2e.sh
ecd183e6292912002bc345ba89ce561d0cba07ec
link
/test istio-pilot-multicluster-e2e

prow/e2e-simpleTests-cni.sh
633cc07cf9136ebe530fe06561382fee32f363c6
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
633cc07cf9136ebe530fe06561382fee32f363c6
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
633cc07cf9136ebe530fe06561382fee32f363c6
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
633cc07cf9136ebe530fe06561382fee32f363c6
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
633cc07cf9136ebe530fe06561382fee32f363c6
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Sometimes RemoteServer.SendRequest hangs.

Sometimes code stops infinitly at "response = (HttpWebResponse)request.EndGetResponse(asyncResult);" in RemoteServer.SendRequest.
It might be an error from chromedriver. but I think it wouldn't be harmful to cope with this situation.
I found out that this problem occurs only when "asyncResult.AsyncWaitHandle.WaitOne(timeout)" code returns "false" by timeout. I tested "WaitOne" with "timeout" argument.
I think throwing an error at this situation might be helpful.
Thank you for your hard work.

I found out that the timeout defined on the request has no effect when the request is handled asynchronously.
I'll fix it for the next release.

Fixed in v<IP_ADDRESS>


[IMPROVEMENT](#841, #277) Extract libs to bower components

[DESC.] We extracted 4 external modules from 11 external modules in app/ide/src/lib to bower components.
And we also extracted  3 external modules from 10 external modules in code-editor related plugins to bower components.

Merged build finished. Test FAILed.

Previous comment is an automatic message.

Comments from the review on Reviewable.io

Reviewed 18 of 18 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io

Reviewed 18 of 18 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from the review on Reviewable.io

due to DNS problem, jenkins code convention checking was broken and cannot execute again. It seems that this PR may have no effect on coding convention


Not working lsp saga find function

Describe the bug
(Keybind is)

When I attempt to use  gf which I assigned get the functions implementation it does not it throws this error everytime gd which is get definition works and code actions.
Steps to reproduce
 gf trigger

 gd trigger works

 gf trigger doesn't work
Expected behavior
Shows the Function Implementation and Connection overall

Neovim version (nvim -v)
0.9.1
lspsaga commit
main
Terminal name/version
Iterm2

Describe the bug
(Keybind is)

When I attempt to use gf which I assigned get the functions implementation it does not it throws this error everytime gd which is get definition works and code actions.
Steps to reproduce
gf trigger
 gd trigger works  gf trigger doesn't work
Expected behavior
Shows the Function Implementation and Connection overall

Neovim version (nvim -v)
0.9.1
lspsaga commit
main
Terminal name/version
Iterm2

Lspsaga finder in normal mode line works but the shortcut doesn't

command is Lspsaga finder no longer lsp_finder


Add function index, and summary doc tags

Add an index of all functions and modules and Summary: doc tags to functions and modules.

Added a function index.  https://github.com/revarbat/BOSL2/wiki/Index

Looks like a good start.  Seems like it would be good if you could determine the file you need to include from the index.   Would it make sense for the index to be listed by include file instead of alphabetical?  (Given that you can always do a search of the page to find something?)

I added the file of origin for each call to the Index.


python310Packages.lektor: 3.3.2 -> 3.3.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.lektor is: "A static content management system"
meta.homepage for python310Packages.lektor is: "https://www.getlektor.com/"
meta.changelog for python310Packages.lektor is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
Warning: no invocation of /nix/store/6h7iz77hl6kgg17hzbzv599anvgsikqf-python3.10-lektor-3.3.3/bin/lektor had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/6h7iz77hl6kgg17hzbzv599anvgsikqf-python3.10-lektor-3.3.3/bin/.lektor-wrapped had a zero exit code or showed the expected version
0 of 2 passed binary check by having a zero exit code.
0 of 2 passed binary check by having the new version present in output.
found 3.3.3 with grep in /nix/store/6h7iz77hl6kgg17hzbzv599anvgsikqf-python3.10-lektor-3.3.3
found 3.3.3 in filename of file in /nix/store/6h7iz77hl6kgg17hzbzv599anvgsikqf-python3.10-lektor-3.3.3

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
python310Packages.lektor
python39Packages.lektor

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/6h7iz77hl6kgg17hzbzv599anvgsikqf-python3.10-lektor-3.3.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.lektor https://github.com/r-ryantm/nixpkgs/archive/bcf7e9346dd060cb1ef800435b22c4865039ff0c.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/6h7iz77hl6kgg17hzbzv599anvgsikqf-python3.10-lektor-3.3.3
ls -la /nix/store/6h7iz77hl6kgg17hzbzv599anvgsikqf-python3.10-lektor-3.3.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.lektor
python39Packages.lektor

Maintainer pings
cc @costrouc for testing.

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

2 packages built:

python310Packages.lektor
python39Packages.lektor


Verbose messages on connection close

When close() is complete, these messages appear. I'm not sure where they are coming from. It might even come from aio-pika.
Robust channel <RobustChannel "None#Not initialized channel"> has been closed.
NoneType: None
Robust channel <RobustChannel "None#Not initialized channel"> has been closed.
NoneType: None

Maybe this can be solved with #124

This is really annoying.


Rive animation is really slow (in Blazor WASM) after re-routing to the page with animation (even with dispose implemented)

So I tried to display rive animation ("/" page) with Blazor WASM (basic template). When I click on Counter ("/counter" page) and back to index page ("/" page) lets say 20x animation is really freezing and maybe after 27x it takes 20s to even render animation. Also my CPU went 12% up and RAM 120MB after those 27x (checked in Task manager). I was trying to use dev tools but as newbie it was pretty worthless. I can see rive library is taking biggest memory cost. Also my code has Dispose implemented (see below).
My question is: is it something I am doing wrong or should I file new issue on rive repo or maybe asp.net?
Index.razor:
@page "/"
@inject IJSRuntime JSRuntime
@implements IAsyncDisposable

<canvas id="canvas" width="500" height="500"></canvas>

@code {
    IJSObjectReference? rivWrapper;

    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            rivWrapper = await JSRuntime.InvokeAsync<IJSObjectReference>("import", "./Pages/Index.razor.js");
            await rivWrapper.InvokeVoidAsync("createRive");
        }
    }

    public async ValueTask DisposeAsync()
    {
        await rivWrapper!.DisposeAsync();
    }
}

Index.razor.js:
export function createRive() {
    const r = new rive.Rive({
        src: 'bear.riv',
        canvas: document.getElementById('canvas'),
        autoplay: true,
    });
}

index.html:
<script src="https://unpkg.com/<EMAIL_ADDRESS>and the web app: https://laftek.github.io/BlazorApp1/
Thank you.

Hi! I responded to what may be your Stack overflow post here:
https://stackoverflow.com/questions/75128377/rive-animation-is-really-slow-in-blazor-wasm-after-re-routing-to-the-page-with/75153088#75153088
Basically, try updating to our most recent version 1.0.98 and make sure you're deleting the Rive instances you create (in this case, your variable r) using this JS runtime.

Thanks Zplata! Its working now :)


feat: give monorepo a hug

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
just a discuss, is there any plan about monorepo?
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I would love to do something like this! Possibly with Turborepo as well!

👀, let me do some search for Turborepo.

TODO: merge in https://github.com/aidenybai/million-site under /docs

Implemented in 3182fa8


The new download address for the API doesn't seem to work.

I've seen that, in the latest version (3.0.1), the Mod Menu API, that was deprecated, has been removed and that now mods must use com.terraformersmc.modmenu.api.ModMenuApi, but either there was an overlook or I'm getting something wrong (which is most likely), because there is no such an adress in the maven page as "./modmenu/api/ModMenuApi".
Do I have to get the api from somewhere else or is the API no longer being supported?

Ok my bad, I found out. For anyone that is a Fabric Modder and is working with ModMenu integration for the ClothConfig API, or for any other use in modding or API integration really, here is how to get the Mod Menu API:
In the build.gradle file:
repositories {    [...]    maven {url "https://maven.terraformersmc.com/"} }
dependencies{    [...]    modImplementation "com.terraformersmc:modmenu:3.0.1" }
(Replace 3.0.1 with the version you are going to use.)


Rename trace types

All trace types should follow the following naming convention Trace<NAME>.
Furthermore, all traces configurable by cardano-node should use the same
type name as the corresponding option.
This will simplify the process of finding the right option to enable a given tracer
or finding the trace type corresponding to a given option.

Please be aware that with the new tracing system these options disappear. Maybe you want to defer this change to a point after new-tracing has become the new standard?

@jutaro the new tracing system is probably also using some kind of filtering of messages by tracer name, isn't it?  If so is this derived from trace type name?

Yes, it uses hierarchical names as you can see here: https://github.com/input-output-hk/cardano-node/blob/master/doc/new-tracing/tracers_doc_generated.md


[PE-D][Tester E] Lack of enforcement of mandatory period for email

According to the UG, the period seems to be mandatory but I am able to add emails without the period.

Labels: type.FunctionalityBug severity.Low
original: freshcabbage123/ped#1

Fixed.


Stochastic test failure in TestSubsampleNeighbors.test_sample_cluster_missing_locales

=================================== FAILURES ===================================
__________ TestSubsampleNeighbors.test_sample_cluster_missing_locales __________

self = <genome_sampler.tests.test_sample_neighbors.TestSubsampleNeighbors testMethod=test_sample_cluster_missing_locales>

    def test_sample_cluster_missing_locales(self):
        columns = ['context_id', 'n_mismatches', 'locale']
        cluster = pd.DataFrame([['c4', 5, 'abc'],
                                ['c2', 0, float('nan')],
                                ['c99', 1, float('nan')],
                                ['c42', 2, 'abc']],
                               columns=columns)

        count_obs_c4 = 0
        count_obs_c2 = 0
        count_obs_c99 = 0
        count_obs_c42 = 0

        for _ in range(self._N_TEST_ITERATIONS):
            obs = _sample_cluster(cluster, 3, np.random.RandomState())
            self.assertEqual(len(obs), 3)
            if 'c4' in obs:
                count_obs_c4 += 1
            if 'c2' in obs:
                count_obs_c2 += 1
            if 'c99' in obs:
                count_obs_c99 += 1
            if 'c42' in obs:
                count_obs_c42 += 1

        # c4 and c42 all have locale "abc" and c99 and c2 have unknown locale,
        # so we expect to see c99 amd c2 more frequently
        self.assertTrue(count_obs_c99 > count_obs_c4)
        self.assertTrue(count_obs_c99 > count_obs_c42)
>       self.assertTrue(count_obs_c2 > count_obs_c4)
E       AssertionError: False is not true

I ran into this again.


Added Centos6 host rsa and dsa key default configuration

Closing this out in favor of a simpler fix being made on master

sounds very good.


Skipping/jumping ahead when scrolling webpages

System Details:
OS: Windows 7
Thorium Version 122.0.6261.171 (Official Build) (64-bit)
Problem:
When browsing webpages and holding down my scroll key on my keyboard, the page will jump ahead every few lines, making the browsing experience strange to the point I skip over parts of webpages. Whereas in Vanilla Chromium, the page will scroll smoothly applying the same amount of pressure when scrolling as with Thorium.
Just installed Thorium yesterday and started to the notice the issue almost right away, but didn't realize what was happening.
https://github.com/user-attachments/assets/36c97a41-83ed-45a2-8952-db9c6a09c440

Wondering if this issue has anything to do with smooth scrolling?

I experienced not responding, stucking, late reaction on scrolling with mouse wheel or keyboard, like on facebook comments after I open a post, not on all website. Disabling extensions without restart browser didn't help. Turned off graphics acceleration in settings, restarted browser and the issue went away. Turned on back, and still no issue. Maybe an extension was the cause.
Version 128.0.6613.189 (Official Build) stable, built on Ubuntu (AVX2) (64-bit)


Support formatting remote files with Tramp

Adds support for formatting remote files.
The new apheleia-remote-algorithm option configures this. The default
behaviour is consistent with what we had before, with apheleia
aborting a formatting when dealing with a remote file/buffer.
Users can customise apheleia to run the formatter on the remote machine,
in which case any temporary files or other checks such as npx will be
fully handled on the remote machine.
Users can also make apheleia run the formatter on the local machine.
This works exactly like one would expect, except if the formatter
requires access to the physical file (meaning it uses 'file in
apheleia-formatters) because the file isn't available on the local
machine.
This PR also fixes a bug in apheleia where input-fname was assigned in
local let scope, instead of being returned by apheleia--format-command,
meaning any formatters using a 'input file weren't cleaned up after
formatting.
Closes #33.

@raxod502
I've tested this by creating ssh-ing into my own machine within emacs and using tramp. I've found both cancel and local options work (which is what I was really after) but remote doesn't. It runs all the commands and then gets to the point where it runs the diff command but the diff just hangs forever. I'm not sure whether this is an emacs issue or a diff issue (maybe it's doing something funky with the stdin and tramp doesn't get along with that). It's worth trying to figure out why this is happening, although it's not a big concern for me atm.

I also found and fixed a bug where if we created a file for the diff generation, we didn't then delete it when we were done.

Thank you! I made a couple of stylistic changes; do those look okay to you? If so then I can go ahead and merge this.

Also, looks like linting was failing on Emacs 25 because make-temp-file didn't previously have three arguments. Since Emacs 26 has been available since May 2018, over 3.5 years ago, I think it is okay to just drop support at this point.

If so then I can go ahead and merge this.

Probably should wait until we've addressed why running formatter processes on the remote hangs sometimes. That's still an issue. I can run the process on the local machine for remote buffers, but if I try to run it on the remote machine it never manages to finish. The other day it hanged at the formatter stage, and not the diff one, so I'm not sure what's really causing it.
We could also disable the running on remote functionality, and merge in running apheleia on remote buffers with local processes (that's honestly fine for my use-case), but I'd like to fix this if we can.

This is actually the bug that is more concerning to me. When formatting a remote buffer on save, I get this:

And then if saying yes, then the following backtrace:

Backtrace
Debugger entered--Lisp error: (remote-file-error "Forbidden reentrant call of Tramp")
  signal(remote-file-error ("Forbidden reentrant call of Tramp"))
  tramp-error(#<process *tramp/sshx venli*> remote-file-error "Forbidden reentrant call of Tramp")
  tramp-send-string((tramp-file-name "sshx" nil nil "venli" nil "/home/raxod502/control/messenger-mirror/" nil) "test -e /home/raxod502/control/messenger-mirror/ 2...")
  tramp-send-command((tramp-file-name "sshx" nil nil "venli" nil "/home/raxod502/control/messenger-mirror/" nil) "test -e /home/raxod502/control/messenger-mirror/ 2...")
  tramp-send-command-and-check((tramp-file-name "sshx" nil nil "venli" nil "/home/raxod502/control/messenger-mirror/" nil) "test -e /home/raxod502/control/messenger-mirror/")
  tramp-sh-handle-file-exists-p("/sshx:venli:/home/raxod502/control/messenger-mirro...")
  tramp-sh-file-name-handler(file-exists-p "/sshx:venli:/home/raxod502/control/messenger-mirro...")
  apply(tramp-sh-file-name-handler file-exists-p "/sshx:venli:/home/raxod502/control/messenger-mirro...")
  tramp-file-name-handler(file-exists-p "/sshx:venli:/home/raxod502/control/messenger-mirro...")
  file-exists-p("/sshx:venli:/home/raxod502/control/messenger-mirro...")
  basic-save-buffer(nil)
  #<subr save-buffer>()
  funcall(#<subr save-buffer>)
  (let ((apheleia-mode (and apheleia-mode (member arg '(nil 1))))) (funcall func))
  radian--save-buffer-reformat-maybe(#<subr save-buffer>)
  apply(radian--save-buffer-reformat-maybe #<subr save-buffer> nil)
  save-buffer()
  apheleia--save-buffer-silently()
  #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_36>()
  #f(compiled-function (patch-buffer) #<bytecode 0x97826ec6c9b66ed>)(#<buffer  *apheleia-diff-stdout*>)
  #f(compiled-function (proc event) #<bytecode -0x1c9d67586d30ec5f>)(#<process apheleia-diff> "exited abnormally with code 1\n")
  apply(#f(compiled-function (proc event) #<bytecode -0x1c9d67586d30ec5f>) (#<process apheleia-diff> "exited abnormally with code 1\n"))
  #f(advice-wrapper :after #f(compiled-function (proc event) #<bytecode -0x1c9d67586d30ec5f>) #f(compiled-function (proc msg) #<bytecode 0x100a91790850564e>))(#<process apheleia-diff> "exited abnormally with code 1\n")
  accept-process-output(#<process *tramp/sshx venli*> nil nil t)
  tramp-accept-process-output(#<process *tramp/sshx venli*>)
  tramp-wait-for-regexp(#<process *tramp/sshx venli*> nil "\\(^\\|\0\\)[^#$\n]*///d144d484e021d666559eff64993fe5b5...")
  tramp-wait-for-output(#<process *tramp/sshx venli*>)
  tramp-send-command((tramp-file-name "sshx" nil nil "venli" nil "/tmp/tramp.upjYVS" nil) "test -d /tmp/tramp.upjYVS 2>/dev/null; echo tramp_...")
  tramp-send-command-and-check((tramp-file-name "sshx" nil nil "venli" nil "/tmp/tramp.upjYVS" nil) "test -d /tmp/tramp.upjYVS")
  tramp-run-test("-d" "/sshx:venli:/tmp/tramp.upjYVS")
  tramp-sh-handle-file-directory-p("/sshx:venli:/tmp/tramp.upjYVS")
  tramp-sh-file-name-handler(file-directory-p "/sshx:venli:/tmp/tramp.upjYVS")
  apply(tramp-sh-file-name-handler file-directory-p "/sshx:venli:/tmp/tramp.upjYVS")
  tramp-file-name-handler(file-directory-p "/sshx:venli:/tmp/tramp.upjYVS")
  #<subr delete-file>("/sshx:venli:/tmp/tramp.upjYVS")
  apply(#<subr delete-file> "/sshx:venli:/tmp/tramp.upjYVS")
  delete-file("/sshx:venli:/tmp/tramp.upjYVS")
  #f(compiled-function (proc msg) #<bytecode 0x10274c4ee250564e>)(#<process apheleia-black> "finished\n")
  apply(#f(compiled-function (proc msg) #<bytecode 0x10274c4ee250564e>) (#<process apheleia-black> "finished\n"))
  #f(advice-wrapper :after #f(compiled-function (proc event) #<bytecode 0x14bbc819598defed>) #f(compiled-function (proc msg) #<bytecode 0x10274c4ee250564e>))(#<process apheleia-black> "finished\n")

This occurs only when the formatting operation needs to change the buffer.

It looks like what's happening there is that since we are running the formatter asynchronously, but all TRAMP commands share a common connection process, we try to delete-file which should be synchronous, but this is instead submitted over TRAMP, and while we are waiting for a response, we find that the formatter has finished, and try to run the process sentinel, which involves executing more commands over TRAMP, which is reentrant usage.
I'd like to take a look at a couple other issues before investigating this further, but thought I would drop my findings here.

@raxod502
Yeah, damn, I'm encountering this issue as well. From this issue it looks like there isn't much library writers can do to work around this atm. On the apheleia side we might be able to pool pending writes into a queue and only write one at a time, but no solution seems very practical from my POV. Might be worth closing this issue

@PythonNut I know you've done a lot of work with TRAMP and were the original person to request remote file formatting support; any thoughts on if there's a good workaround for this issue?

@raxod502
What do you think about making apheleia blocking if run remotely? The main issue at this stage is the user could modify the file whilst its being formatted or a myriad of other tramp issues stepping over each other. If apheleia locked emacs while it was formatting it should fix most of those issues, and that's better than just refusing to run altogether or throwing errors while saving.

I mean, if we previously didn't have any support for remote formatting, and we add support in a degraded mode, then it seems like an improvement to me. I think anything involving tramp always involves some synchronous waiting, unfortunately, just due to the way they've designed things. So it's kind of par for the course.
Be warned though, I've tried on a number of occasions over the years to synchronously wait for make-process to return, and have never managed to implement it in a way that didn't have noticeable race conditions. See e.g. https://github.com/raxod502/straight.el/issues/334 although that's not the only place I tried it if I recall correctly.
You're probably best off adding a higher-level interface that will delegate calls either to make-process or call-process depending on whether synchronous or asynchronous operation is desired.

@raxod502
Okay, I got started on it but this is kind of a nightmare :scream:.
The interface for call-process is so bizarre but I can workaround most of the quirks except for the fact there's no way to use the file-name-handler with a synchronous process execution that takes a stdin buffer. There's

call-process which doesn't take STDIN and doesn't use file-handler.
process-file which doesn't take STDIN, but does use a file-handler
call-process-on-region which takes stdin and doesn't use a file-handler.
but there's no process-file-on-region that can do both.

That means if there's a STDIN buffer and we're running the formatter remotely then there's no way to execute it and pass standard input without first saving stdin on the remote and then doing some funky sort of subshell redirection.

What I have now should work, but it's failing with black because TRAMP seems to be including some junk at the end of the copied file :/.

Thanks! I should be able to take a look at this next weekend and see if I can help resolve the outstanding issues.

Interesting, what you have now actually does seem to work for me as is! It takes forever to do all the round-tripping, but I am able to format a Python file over TRAMP using the sshx connection method with (setq apheleia-remote-algorithm 'remote) and Black 19.3b0 installed as /usr/bin/black on the remote.
Here's a sample Python file that formats successfully using this method: https://github.com/raxod502/radian/blob/58ba58bd827e719c0eeb3d3c996d59cf4d00acd5/scripts/print_env.py
Do you perhaps have a different buffer coding system? Maybe you are using the ssh connection method in TRAMP instead of sshx, and your shell configuration or terminal prompt is adding some ANSI escape sequences that TRAMP is failing to parse correctly? I always found the ssh method to be a trainwreck and use sshx instead because it doesn't depend on any customization on the shell side.

Hmm... I'm using sshx (ssh has pretty never worked for me). Maybe it's because I'm configured to use both black and isort with apheleia. I'll try with just black a little later and see whether it's a chained formatter issue.

Hmm, that's odd, I still can't reproduce. I set
(setq apheleia-remote-algorithm 'remote)
(setf (alist-get 'python-mode apheleia-mode-alist) '(isort black))

and verified that (apheleia--get-formatters) in the remote file returns (isort black). Then I took the same sample file from before, and rearranged the imports to be out of the correct order. When I saved, the imports were reordered correctly, and also the long lines were wrapped by Black, and I didn't see any errors or extraneous output added to the file. This is with black 19.3b0 and isort 4.3.4.
Maybe you have a different version of Black? I know Black likes to use escape sequences to colorize stuff and do emojis and stuff, so maybe somehow that's getting triggered in your setup and not mine?

I have black, 22.1.0 (compiled: yes) and isort VERSION 5.9.2, and I'm still encountering this issue :disappointed:. Downgrading my isort version to yours seems to have fixed the issue so I'm guessing its an isort bug. Looking into the help there is a --color option (but no option to disable it, kinda weird since I don't see a need for it anyways). Either way this PR seems to be working which is good. I'd like to disable the kinda meaningless Renaming /sshx:kisara:/tmp/tramp.mjX5Um to /tmp/apheleiapRYi1m...done messages that're triggered by process-lines but I'm not sure how to.

I'd like to disable the kinda meaningless Renaming /sshx:kisara:/tmp/tramp.mjX5Um to /tmp/apheleiapRYi1m...done messages that're triggered by process-lines but I'm not sure how to.

You might be able to get rid of this by customizing the value of tramp-verbose, perhaps automatically in let. If that doesn't do the trick, I would use cl-letf to temporarily rebind (symbol-function #'message) so that it checks and ignores messages that match the relevant pattern. I do this often enough in Radian that I have a special macro for it.

You might be able to get rid of this by customizing the value of tramp-verbose, perhaps automatically in let.

I tried that before commenting it but sadly it didn't work. My guess is it's not tramp outputting the message, it's rename-file or whatever other command is calling tramp under the hood.

I would use cl-letf to temporarily rebind (symbol-function #'message) so that it checks and ignores messages that match the relevant pattern.

Good suggestion, I'll try that out :-).

Yep, I managed to suppress the annoying messages.
It took a while, and is slow as hell, but we can finally format remote buffers with apheleia. I'm hoping docker-tramp is much more performant than sshx for this (since that's what I'm planning to use it with). Let me know if there's anything else you'd like to get worked on with this PR, otherwise I think it's ready to merge :-).

Update: I just noticed apheleia-remote-algorithm = 'local still has the reentrant call of tramp issue. Guess we'll have to make that blocking as well.

Okay, what I have no should work but the code is really tangly so it might need a good refactoring to make it easier to understand.

I'm extremely excited about this change - it might turn apheleia into the single autoformatting emacs mode that can deal with remote files (:
So, I tried this out and there's a bit of an annoying issue that I haven't debugged fully yet: Accessing a linux box from a macOS-based emacs, it tries to write files to a macOS-specific temporary directory (which isn't set up on the linux side):
Tramp: Encoding local file ‘/var/folders/r3/z_pbvnkx60j5kbfb8bw6kjz40000gn/T/tramp.cBNzGC’ using ‘base64-encode-region’...done
Tramp: Decoding remote file ‘/scpx:ferdl.hack:/var/folders/r3/z_pbvnkx60j5kbfb8bw6kjz40000gn/T/apheleia-stdinSrkw2j’ using ‘base64 -d -i >%s’...failed

I suspect there's a problem here...

wonder if there's a way to make emacs generate a reasonable temp file on the remote machine

Could invoke mktemp as a subprocess, would be slower but more reliable.

Could invoke mktemp as a subprocess, would be slower but more reliable.

So, funny story, I looked at make-nearby-temp-file and it seems that this does pretty much exactly what the apheleia--make-temp-file does, without the necessary remote tempdir customization.

it might turn apheleia into the single autoformatting emacs mode that can deal with remote files

Deal with very slowly, but yes that is the hope 😂.

I looked at make-nearby-temp-file

Good spot, I didn't notice this existed. I'll update the PR to use that over an apheleia specific wrapper.

@raxod502
Okay. I've tried refactoring (as best as I can) but its mostly identical since the high level flow between the functions is the same. I did rename some of the process oriented functions to make their behaviour a little clearer (but it might be just as confusing :sweat:).
I've adapted make-nearby-temp-file into apheleia--make-temp-file and removed the custom path option. I've also updated the interface of functional formatters to take key-value arguments (adding a new one for whether the formatter should be run asynchronously or not as well).
I've tested all these changes using isort+black both locally and on a remote machine with sshx using both apheleia-remote-algorithm as local and remote. One final thing @raxod502 you should be aware of as the maintainer is that the wrapper I've written for call-process and make-process can both be run on a remote and locally. Currently the functionality/branch where we run a formatter asynchronously on a remote machine is never triggered (because of aforementioned race conditions) but should tramp ever provide a workaround for this we should relatively easily be able to incorporate them.
I'd suggest maybe keeping this PR open for a little while to test (since we've had multiple issues prop up in actual usage) before merging. But otherwise, fingers crossed, I think this is finally ready :weary:.

I pulled this in, removed my apheleia-remote-temporary-file-directory customization and ran the isort&black formatters on a remote python file - and it seems to work just fine!
I'll work with this for few more days (working on nix, prettier-formatted typescript, yaml and rustfmt-formatted rust); if something should look weird, I'll let you know here.

Hmmm... I'm encountering this error while running apheleia locally (not through tramp).
Debugger entered--Lisp error: (error "process apheleia-diff no longer connected to pipe; closed it")
  process-send-string(#<process apheleia-diff> #("\"\"\"\nConnect to the database and get infor..."  "/tmp/apheleiaiJNsm7") :remote nil :noquery t :callback #f(compiled-function (proc-exit-status) #<bytecode -0xfed67df59ad9fc5>))
  apheleia--execute-formatter-process(:command ("diff" "--rcs" "--strip-trailing-cr" "--" "/home/mkaleem2/prog/repos/..." "/tmp/apheleiaiJNsm7") :stdin #<buffer group_config.py> :callback #f(compiled-function (patch-buffer) #<bytecode -0x6d3b376c77c055b>) :remote nil :ensure #f(compiled-function () #<bytecode -0x1fa365b9d834b280>) :exit-status #f(compiled-function (status) #<bytecode -0x1d95bbb5ac5fb746>))
  apheleia--create-rcs-patch(#<buffer group_config.py> #<buffer  *apheleia-black-stdout*> nil #f(compiled-function (patch-buffer) #<bytecode -0x6d3b376c77c055b>))
  #f(compiled-function (formatted-buffer) #<bytecode 0x13d4b009a176819d>)(#<buffer  *apheleia-black-stdout*>)
  #f(compiled-function (stdout) #<bytecode -0x1c46680c0673027b>)(#<buffer  *apheleia-black-stdout*>)
  #f(compiled-function (stdout) #<bytecode -0xa45069ec37881d3>)(#<buffer  *apheleia-black-stdout*>)
  #f(compiled-function (proc-exit-status) #<bytecode -0x846ca31eb9b4a11>)(0)
  #f(compiled-function (proc event) #<bytecode 0x1c56358a7501e31d>)(#<process apheleia-black> "finished\n")

I'll try loading apheleia directly (without byte compiling) to get a more helpful error message.

I've pushed a fix for the above issue and tested locally. Can't test on a remote ATM so I'd appreciate someone else doing that.

Works for me on a remote machine with both the local and remote algorithms! Thanks @mohkale!!

The README still says TRAMP isn't supported, but I tested TRAMP support out and it seems to work. Can the README be updated and some documentation about apheleia-remote-algorithm be added?


[fix] gws schedule some issues

Coverage remained the same at 0.0% when pulling a963a054a568c9c188f27f9277bd2959dbdc115f on fix-gws-schedule2 into 6cb450203a2b233ca285cc9b9f8cb8629525b497 on master.


NBT issue?

I know that the affix nbt tag issue was fixed, but when I updated to the 5.8 release for 1.18.2 I seem to have gotten a new issue. It's possible that it isn't Apotheosis doing it because the tag is completely empty, but it happened when I updated so it might be connected.

I haven't found a reliable situation that causes it but it does happen very much. My instance has a LOT of mods so it could be just an unfortunate interaction too.
(I don't post on Github often so if there are any issues or standards that I missed, just lmk.)

5.8 is officially the end of 1.18 for apoth, unless there are major gamebreaking bugs (Dupes, world corruption, etc).

Im also having this same issue on 1.19.2 version of mod is 6.2.1

i'm also getting this issue on 1.19.2 with version 6.2.1. i've also figured out that the issue doesn't happen if you shift click the results out of the crafting table. it only happens when you craft items one at a time.


[Modules] Microsoft.Cdn - Fixing Descriptions for Pipeline Validation

Description
Fix for Conditional parameter description
Pipeline references

For module/pipeline changes, please create and attach the status badge of your successful run.

Pipeline

Type of Change
Please delete options that are not relevant.

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[x] My corresponding pipelines / checks run clean and green without any errors or warnings
[x] My code follows the style guidelines of this project
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation (readme)
[x] I did format my code

@ChrisSidebotham the deployment is failing:
Status Message: The request field is required. Could not find member 'roleAssignments' on object of type 'Endpoint'. Path 'properties.roleAssignments', line 1, position 626. (Code:InvalidResource)
[804](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:813)

[805](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:814)
  Status Message: The requested resource was not found. (Code:NotFound)
[806](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:815)

[807](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:816)
  Status Message: The resource cannot be found

@ChrisSidebotham the deployment is failing:
Status Message: The request field is required. Could not find member 'roleAssignments' on object of type 'Endpoint'. Path 'properties.roleAssignments', line 1, position 626. (Code:InvalidResource)
[804](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:813)

[805](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:814)
  Status Message: The requested resource was not found. (Code:NotFound)
[806](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:815)

[807](https://github.com/Azure/ResourceModules/actions/runs/3892929397/jobs/6644972420#step:4:816)
  Status Message: The resource cannot be found

Noted that and fixed shortly after - now running clean thanks @ahmadabdalla


Export UrlMap type, use it in runtime.ts

Otherwise, runtime.ts is using {} which causes tslint failure.

Closed in favor of simpler solution.


Parallelized updating WritetableBitmap in C#

I have a WritetableBitmap. And have to create a Stream when updating in C#.
BTW, how to do if the bitmap is too huge to update single thread?
I think, the Stream is not thread-safe. It is basic manner in .NET.
If so, is it safe to create multiple Streams from single WriteableBitmap for each threads and writing from mutlple threads in the same time?

@manodasanW , can you provide an example for what this looks like in C#? Are there docs or samples that cover this?


feat: implement order search for specific buyer (#96422)

PR Type
[ ] Bugfix
[x ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] CI-related changes
[ ] Documentation content changes
[ ] Application / infrastructure changes
[ ] Other:
Issue Number: #96422
What Is the New Behavior?
Now it is possible filter the order list regarding specific users of an customer. This filter option will only displayed if the logged in customer user has the role "Account Admin". Only this role has the permission "APP_B2B_MANAGE_ORDERS".  This allows the user to utilize this functionality.

Does this PR Introduce a Breaking Change?
[ ] Yes
[x ] No
Other Information
This functionality is only available with the ICM 12.
AB#97244

@skoch-intershop: You probably didn't want to implement the tabs? Please make sure that the adjusted description of the permission is visible in PWA.

will be replaced by #1697