Quotesfix

Referring to:

TODO:

      - Move the content of the testimonial into `_index.md` so we can have a
      few of these, and templated. (maybe renaming this page from tweets to
      something more general?)
      - Format the testimonial more like a "card" in the other sections, including a light
      border. Currently it has an idiosyncratic blue border only on the left. Do
      we need to unify some of `card` format in style.css across the sections?
      - Currently the items overlap at some monitor sizes — can we prevent
      that? Does the browser seem to think the items are smaller than they are?

Now the content of testimonial has been moved to _index.md looking for a more template, ordered code. Every "tweet" mention on the code has been renamed to "comments" (for a more general view).
Testimonial cards now have a similar style than the others on the website.
As for the overlap in tweets. I think the main problem is that the columns and rows divs of boostrap don't synchronize with the embedded tweet provided by twitter API. (I've added some width limits to the iframe tag just to secure it). I've managed to keep it consistent but at expense the column divs for the tweets now are bigger, so the tweets display can adapt to the progressive size of the columns.
Some preview:

The code is much nicer, thank you @roG0d ! And great preview.
As you mention, they're now bigger. Would it be possible to make them all the same width as the cards? I think that would look more ordered. IIRC it's possible to ask the Twitter API for a certain width, if that's helpful. Lmk if you want me to find a link for that.
(I also probably preferred them smaller, but no strong view, and do whatever you think looks best / is implementable).

I've tried my best max, but I can't find a total solution to this:
Here, divs containing the iframe (twitter-widget) seems to respect the width and height followed by the cards  element of bootstrap:

The main problem is that the iframe itself doesn't respect the resolution of the parent element, so it overflows and produce the overlapping:

Although I lack of bootstrap and CSS knowledge, I've managed to impose the parent resolution resulting in this:

this width limit starts appearing at x200 zoom on the browser, it corrects when the cards oversize corresponding to the zoom browser (x300 more less)
When normal zoom and until x150 it seems to works nice:

Sorry I didn't find a better solution to this...! 😓
I'll push this new fix, if you don't find it good enough feel free to cancel the PR with no problems whatsoever!

That's looking pretty good! Thank you v much @roG0d . We don't need to get to perfection to make progress.
I'll see if I can do anything later but this is very decent.


Add macro to reduce repeated code.

Just a little cleanup.

While it reduces the line count (which usually a good thing) I'm not a fan of macro magic like this, for instance when step-debugging, the debugger just sits on the opaque macro instead of the specific function call when stepping through the code, same with line numbers in compile errors.
Many thanks for the PR, but I'm going to close it :)

Ok, cool. I get the consideration about step debugging, but I don't get the part about error line numbers. Were you concerned about where that #error is?

It's not really relevant for this specific case, but compile errors in macros can be a bit hard to understand because the error happens in the unexpanded code (some compilers provide a hint though that the errors happened during the expansion of a macro and provide some additional info for context).

Ok, so for this it's just about step debugging. I guess if you're unfamiliar with the code, when you land on the macro line, you wonder what the macro does, so you look at it and see it just expands to a single call depending on the backend, then you step into it. You would know not to step over it. Maybe you don't look at the macro and step into, which would take you to the backend-specific function, and that could be confusing? I dunno, really seems pretty minor on the macro-magic end of things compared to other stuff I've seen. Anyway, your call :)


Fix OTIO export for Flame

Changelog Description
Fixes custom AYON OTIO export for Flame.

embedded timecode not detected properly for image sequence and movies
image sequence source_range was relative to the available_range

##Additional info
Tested on Flame 2024.2.2.
Testing notes:
I have created a sequence in Flame under Reel 5 that creates a 25fps timeline with a mix of:

regular movie
movie with embedded timecode
regular image sequence
image sequence with embedded timecode

Here is the code to validate the results:
import ayon_flame.api as ayfapi
from ayon_flame.otio import flame_export

print("toto: ", ayfapi.CTX.selection)

seq = ayfapi.get_current_sequence(ayfapi.CTX.selection)
#with ayfapi.maintained_segment_selection(seq):
otio_timeline = flame_export.create_otio_timeline(seq)

print(otio_timeline)
v1 = otio_timeline.video_tracks()[0]
v2 = otio_timeline.video_tracks()[1]

tc_clip = v1.find_clips()[0]
notc_clip = v1.find_clips()[1]
tc_img_clip = v2.find_clips()[0]
notc_img_clip = v2.find_clips()[1]

# QT embedded timecode
tc_clip.available_range()  # TimeRange(RationalTime(86400, 24), RationalTime(100, 24))
tc_clip.source_range  # TimeRange(RationalTime(90000, 25), RationalTime(100, 25))

# QT no embedded timecode
notc_clip.available_range()  # TimeRange(RationalTime(0, 25), RationalTime(101, 25))
notc_clip.source_range  # TimeRange(RationalTime(0, 25), RationalTime(101, 25))

# Img srquene (embedded timecode)
tc_img_clip.available_range()  #TimeRange(RationalTime(87399, 24), RationalTime(101, 24))
tc_img_clip.source_range  #TimeRange(RationalTime(91040.6, 25), RationalTime(101, 25))

# Img sequence (no embedded timecode)
notc_img_clip.available_range()  # TimeRange(RationalTime(1000, 25), RationalTime(101, 25))
notc_img_clip.source_range  # TimeRange(RationalTime(1000, 25), RationalTime(101, 25))

It looks good.
Just to make sure, this will work as expected even if the timecode on the image sequence offsets the first image frame number. I see that on line 292, we are getting the timecode frame number from mediainfo, but it seems like we are not using it in the otio reference object. However, I might be wrong.

I believe this is correct. I made an attempt with an EXR sequence (1000-1101) and a "01:00:00:00" embedded timecode.
Resulting ranges looks correct to me:

available_range (24fps) = TimeRange(RationalTime(87399, 24), RationalTime(101, 24))
source_range (25fps) = TimeRange(RationalTime(91040.6, 25), RationalTime(101, 25))

Does this answer your concern ?


Arnej/print key and value

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
@toregge please review
@geirst FYI

@toregge please have a look as well on this


How can i achieve the same thing with the vertical view pager?

Such a great piece of transformations of the viewpager but i have the vertical viewpager and i have to use depth transformation in the vertical manner.How can i do that?

I would recommend copying the DepthPageTransformer implementation and going from there.
https://github.com/ToxicBakery/ViewPagerTransforms/blob/master/library/src/main/java/com/ToxicBakery/viewpager/transforms/DepthPageTransformer.java
As vertical viewpagers are not a standard implementation this library will not directly supporting them. Feel free to fork and add vertical implementations of your own though.


Plugin Enhancement: proxy() hook

Summary
Developers want the ability to configure how Snowpack proxies non-JS files that are imported via JS. Since this isn't supported in the browser, Snowpack creates a proxy file that is the JS representation of a non-JS file. This is already handled by Snowpack today, but it is not configurable.
This was first brought up in https://github.com/pikapkg/snowpack/issues/580. This issue outlines our solution.
Proposal
module.exports = function(snowpackConfig, pluginOptions) {
  return {
    name: 'my-commenter-plugin',
    proxy({filePath, fileExt, contents}) {
      if (fileExt === '.css') {
        return `export default ${JSON.stringify(contents)};`
      }
    }
  };
}

When Snowpack detects that you've imported a non-JS file in your application, it creates a proxy file.
To create the proxy file, it will step through your plugins until it finds a proxy() method that returns a valid string.
If none is found, Snowpack will defer to its default proxy behavior, based on the type of file being imported.

Tackled in #632


about create_dataset function

I see you provide the knee dataset option but it didn't realize in data module.So it will be a potential error when run the project.

Thanks for reminding us. You can comment out this line of code, and we have fixed this problem in the code.


Handle the error message better when an IndexedDataSet is given a data frame without an index

Currently the following
import pandas as pd
import strictly_typed_pandas as stp
class Ind:
  a: str

class cols:
  b: str

IndexedDf = stp.IndexedDataSet[a, b]

df = pd.DataFrame({"a":["a1","a2"], "b":["b1","b2"]})
df.pipe(IndexedDf)

fails with the message
TypeError: Data contains the following columns not present in schema: {None}
This confused me when I had forgotten to set the index.  We should add a check to see if something that is expected to have  an index is missing it, and if so give an error more like Data expected to have a named index, but the index has no names (Did you remember to add the columns to the index?)

Hi @caneff ! I agree, looks like a great idea! Would you like to implement it?


Pattern parser problem in switch and loops

Hi there, currently I met two problem which parser shows error when parsering the official doc.
First:
https://dart.dev/language/patterns#switch-statements-and-expressions
switch (obj) {
  case 1:
    print('one');

  // ERROR happens when parsering the below line, other lines were parsered correctly.
  case >= first && <= last:
    print('in range');

  case (var a, var b):
    print('a = $a, b = $b');

  default:
}

Second:
https://dart.dev/language/patterns#for-and-for-in-loops
// ERROR
for (var MapEntry(key: key, value: count) in hist.entries) {
  print('$key occurred $count times');
}

// ERROR
for (var MapEntry(:key, value: count) in hist.entries) {
  print('$key occurred $count times');
}

Except the above, it works as I expected ;)

Fixed


Feedback Request: New WebSSH2 Client and Server Architecture

Overview
I've been working on significantly refactoring WebSSH2, aiming to improve modularity, flexibility, and compatibility with different frameworks. I want to share this work in progress and gather feedback from the community.
Key Changes

Split Architecture: The project has been split into separate client and server components:

Client: webssh2_client
Server: webssh2 (bigip-server branch)

Targeted Node Version: The server has been refactored to target an older version of Node.js (v6.9.1) for a specific use case. However, after I get some feedback here, I intend to release a newer version of the server code targeting node v18 (or greater, depending on the feedback).

Docker Image: A new Docker image is available for testing:
docker run -it --rm --name webssh2 -p 2222:2222 -e DEBUG="webssh2*" billchurch/webssh2:bigip-server

Modularity: The new architecture allows for easier client customization for different frameworks while maintaining a consistent server backend.

Goals

Enhance flexibility for integrating WebSSH2 into various environments
Improve maintainability by separating client and server concerns
Enable framework-specific client implementations

Feedback Requested

Does this new architecture make sense for your use cases?
Have you encountered any issues with the current WebSSH2 that this might address?
What features or improvements would you like to see in this new version?
Do you have any thoughts on the documentation structure and content in the new repos?
What did I miss that you used from the previous client? What features do we need to add?

Next Steps
Based on community feedback, we'll refine this approach and merge it into the main WebSSH2 project. Your input is crucial in shaping the future of WebSSH2.
Please review the READMEs in both repositories for more details:

webssh2_client README
webssh2 (bigip-server) README

Thank you for your time and input!
-Bill

webssh2_client improvements:

New Login Dialog for /ssh/ route

Modal for re-authentication

Terminal Settings

Autolog Feature to log sessions on connect

Logs save to browser localStorage

Significant debug system for browser (enabled by localStorage.debug='webssh2*' from browser console:

bigip-server what does it all mean
Please ignore the name; you don't need a BIG-IP to run this. The docker has everything you need. Eventually, this will replace an existing solution that runs on a BIG-IP as an iRule.

First, I would like to say thank you for this project. We've been using it for almost 2 years now for quick access to our testing environments, and it has been very popular among our internal users.
Our use case is fairly simple: we have an internal website that allows users to bring up a test VM. Once the VM is up, the user can click it, and a webssh2 terminal gets opened in a new tab, already authenticated, ready for commands. While this may seem a little crazy from a security perspective, these are ephemeral test systems, only accessible locally, and the number of people with access to the network is small.
I did some quick testing of webssh2:bigip-server. These are my observations:

In the docker image, the config file moved from /usr/src to /usr/src/app, and also now the default config "just works", so it just silently failed to take my config file, which made it tricky to figure out what happened. The new location makes more sense, but maybe this needs to be highlighted somewhere, or a warning should be displayed if a config.json file is found under /usr/src.
It looks like the new server does not support /ssh/host without a hostname, which is central to our use case. If I access /ssh/host/:host_ip, it still asks me for credentials, ignoring the "user" setting in config.json.

The split makes sense, the code looks cleaner, and I appreciate the extra documenation.

You should have a clear banner at the top of the webssh2_client README, directing the casual users to the webssh2 project. The way it currently looks might confuse some people, because the README kind of makes it look like a solution rather than a component.
It's not clear what is the point of the "Routes" section in the webssh2_client README, since it explicitly says that these routes are implemented in the server.
I am not a node.js developer, so I don't know how trivial this is, but maybe have some instructions for how to set up a server+client development environment that allows working on both components together without having to build a client package every time.
The server README on the bigip-server doesn't mention webssh2_client, and still has an outdated tip about customizing the javascript.

I have a couple of items on my wishlist, though I'm not sure if this is the right place for them or if I should just create separate issues, but you asked, so here goes:

Optional confirmation before closing the tab. A very common keyboard shortcut for Linux is Ctrl-W, and people keep accidentally closing their ssh tabs when trying to delete a word. Browsers allow setting a beforeunload event listener that asks for a confirmation before the tab gets closed, which would be very helpful. When I tested this, I was able to add a confirmation but the session got disconnected anyway, so this might require some tweaking of the current event handlers.
Allow setting environment variables from the URL. I would like to be able to create a link that would open a session and (for example) immediately open vim on some file. I think the best way to implement this is to allow a URL like /ssh/host?env=VIM_FILE:somefile.config and then use that env var in .bashrc to decide what to do.

I don't think either of these are easier to implement with the new architecture.

Thanks; this is precisely what I was looking for. Based on your feedback here and in webssh_client, I opened issues to track these requests/fixes and changes.
I mostly appreciate the notes for documentation, as it can be a struggle to document some of these changes or omissions.

Dear billchurch
It look the server version is good and faster then the client one. I like the font setting. BTW, I have a old private problem, because I use it in the limit edge browser,IT might have turned off HTTP basic authentication, so instead of showing a prompt for the username and password, the Edge browser just shows an error message. Is it possible for you to create a login page directly, rather than using a popup from the browser?

@haso2007,
Can you tell me what version of Edge you’re using and on what OS? I’ll look into the issue.

Here is the information:
Microsoft Windows 10 Enterprise Edition
OS Version: 10.0.19045, Build 19045 (N/A)
Microsoft Edge for Business
Learn more about Microsoft Edge for Business
Version 129.0.2792.52 (Official build) (64-bit)

I use the script as an iframe. I had to rework the previous version! But I passed! HOST username and password in the url! And it automatically logged in! Since I had to switch often, and entering the login and password each time was a problem! I want this point to be taken into account!

@haso2007 you should be able to go to http://localhost:2222/ssh and get an interactive dialog, let me know if that resolves your problem.

@israel-tsadok-silk I think I covered most of your comments, take a look at the latest docker or the bigip-server branch and let me know what you think.
docker pull billchurch/webssh2:bigip-server

docker run -it --rm --name webssh2 \
  -p 2222:2222 \
  -e DEBUG="webssh2*" \
  -v "$(pwd)/config.json:/usr/src/app/config.json" \
    billchurch/webssh2:bigip-server


Add metadata about analyses to map instantiation

This was done at https://github.com/CartoDB/Windshaft-cartodb/commit/0981ccd0c40dd647387bd4868a5d54bbdcddd132 and https://github.com/CartoDB/Windshaft-cartodb/commit/93dd8a22133d841ed801e1ba4d27fab6b93edf84.


Skip authz header identity

Title

Summary

Type
[] Bug fix
[] Feature request
[] Enhancement
[] Docs
Why?

Requirements

How to try it?

Documentation

Additional Information

Checklist:

[ ] My change requires a change to the documentation or CHANGELOG.
[ ] I have updated the documentation/CHANGELOG accordingly.

#86


Fix output file specification for Positive Pixel Count.

This also adds some default values.

@cdeepakroy I picked some values for defaults, but please change them if you think others would be better.


AllAnime Links Issues

Source information
AllAnime 13.27
Source language
English
Steps to reproduce

Browse AllAnime
Enter an Anime Entry
Start an Episode

Expected behavior
To show All Links Available on the AllAnime website for said Anime episode
Actual behavior
Only shows up to 2 or 3 links out of 10 and even more on the Allanime website
Aniyomi version
<IP_ADDRESS> and Preview r6151
Android version
Android 10
Other details
All Hosts are Enabled in AllAnime extension settings
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Source information
AllAnime 13.27
Source language
English
Steps to reproduce

Browse AllAnime
Enter an Anime Entry
Start an Episode

Expected behavior
To show All Links Available on the AllAnime website for said Anime episode
Actual behavior
Only shows up to 2 or 3 links out of 10 and even more on the Allanime website
Aniyomi version
<IP_ADDRESS> and Preview r6151
Android version
Android 10
Other details
All Hosts are Enabled in AllAnime extension settings
Acknowledgements

[x]  I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[x]  I have written a short but informative title.
[x]  I have updated the app to version <IP_ADDRESS>.
[x]  I have updated all installed extensions.
[x]  I have tried the troubleshooting guide.
[x]  If this is an issue with the app itself, I should be opening an issue in the app repository.
[x]  I will fill out all of the requested information in this form.

AllAnime 13.27 update still Only show 2 sources in Aniyomi while on AllAnime site there much more source you can check the issue on Doupo Cangqiong

Right now for me not even 1 link is showing, ver. 13.27

Im using v13.27 too, but almost every anime worked for me.
Some anime appear seem to be removed Yumemiru Danshi wa Genjitsushugisha f. Example.
This one is listed with the addon, but due to the not existing entries at the website, it's empty.
Unlike you, I've also disabled a few streaming hoster, since they're blocked by my pihole anyway.
Maybe some are also blocked by your ISP? You can check this out in webview.
Have you already tried to change the allanime TLD in the settings?

NVM...
The Extension does not prioritize DUBS over SUBS, it blocks the other part entirely from loading.
You can check this out by changing the preferred setting.


Install globally instead of in the current project

This would be helpful to me, and maybe others to have it installed globally.

@iamntz a few attempts to understand the change needed. It seems to install and maybe this helps others looking for this globally.
ddev get https://github.com/brianyoungblood/ddev-rename-project/tarball/main


[contrib] Make entproto compatible with buf

Buf is a project that is establishing conventions and tooling around protobufs outside of Google. They've released a CLI called buf that handles linting, code generation, and breaking change detection of .proto files, amongst other features.
As buf gains more popularity, it'd be great to generate a buf compatible project using entproto without needing to work around a lot of rough edges.

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Summary 💡
As it stands, entproto generates code that is mostly compliant, with a few exceptions:
Packages should be versioned
Default to using versioned package name: ent.v1 instead of entpb
This can already be achieved with entproto.Message(entproto.PackageName("ent.v1")), and protoc-gen-go will produce the package entv1
proto/ent/v1/ent.proto
syntax = "proto3";

package ent.v1;
option go_package = "github.com/foo/bar/ent/proto/ent/v1";

Enum keys should be prefixed with the enum name
Example:
enum View {
     VIEW_UNSPECIFIED = 0;
-    BASIC = 1;
+    VIEW_BASIC = 1;
-    WITH_EDGE_IDS = 2;
+    VIEW_WITH_EDGE_IDS = 2;
}

This could be achieved with a new field annotation:
field.Enum("title").Values(
  "UNSPECIFIED",
  "STANDARD",
  "DELUXE",
  "PREMIUM",
).
  Default("UNSPECIFIED").
  Annotations(
    entproto.Field(2),
    entproto.EnumPrefix("CATEGORY"), //  suggested new proto enum prefix annotation
  )

Generates:
enum Category {
  CATEGORY_UNSPECIFIED
  CATEGORY_STANDARD = 0;
  CATEGORY_DELUXE = 1;
  CATEGORY_PREMIUM = 2;
}

It'd be nice to automatically generate the enum Go values here, but I guess this would be a chicken/egg problem.
Remove unused imports
I'm not sure why this happens, but it does:
proto/entpb/entpb.proto:6:1:Import "google/protobuf/empty.proto" is unused.

Generate buf.yaml project
Instead of generating a generate.go file, we should use buf.yaml to specify code generation. Optionally, hook into buf generate when calling ent generate.
Support connect services
Connect is essentially a replacement for gRPC that generates idiomatic Go code, and supports browsers through connect-web, while being backwards compatible with grpc and grpc-web.
Nothing new is needed to support this other than adding an extra line to buf.gen.yaml:
  - name: connect-go
    out: ent/proto/ent
    opt: paths=source_relative

And retaining the generated code to transform Ent nodes into their equivalent protobuf types.
There are probably some other issues with generated connect services that I haven't gotten to yet, but I'll update this when I do.
Motivation 🔦
We're constantly fighting a battle of complexity on the web, and protobufs offer a simple yet type safe alternative to heavier solutions like GraphQL that are more like REST while being type-safe and easily integrated into other systems and languages.
Before buf and connect-web it was impractical to use protobufs in a browser if you cared about performance ( See more on this) but it's not only possible, it produces a very small bundle size (<4KB Gzipped), and offers both JSON and Binary transport options.
Most of these suggestions could be implemented with additional annotations, or an option to emit buf compatible code. What do you think?

Hey @ivanvanderbyl
Thanks for giving this issue thought and writing this up.
In general, I'm a big fan of standards. I think we will still view buf as an opinion (albeit well informed and popular) and the official proto guidelines and style guide as the baseline standard.
I like the direction and I know buf is gaining popularity so I think it makes sense to extend entproto/entgRPC to have knobs that make it easy to work with.
I will comment on the concrete suggestions later this weekend.

Regarding Enums, I've read Buf's rationale on prefixing the enum name and I'm in favor of supporting it.
It would be a slightly breaking change: wire compatibility would be maintained, but existing code would have to be slightly modified after regeneration.
I don't think it's too bad, but we could go with what you suggested which would give the user control if they want to adopt this or not.
WDYT

Sorry for dropping the ball on this, got caught up on another feature.
Are you suggesting implementing this as an opt-in feature, or would would we accept it as a breaking change to generated code?

Hey @ivanvanderbyl thank you very much for the actual workarounds! They're super useful. Thanks for mentioning connect and its configuration as well. I'm also starting a project with buf, connect, ent combination.
Regarding Enum prefix, Isn't it actually a language guide from Google? Example: https://developers.google.com/protocol-buffers/docs/proto3#enum

Ent GRPC doc is awesome. However, I couldn't figure out further than this https://entgo.io/docs/grpc-server-and-client.
How do you connect ent generated service into connect.build server instead of  server := grpc.NewServer()?
🙏

hey @shinebayar-g ,
Haven't used connect yet, but perhaps @ivanvanderbyl can comment on this topic.

For the starters I've understood the difference between connect-go generated code and entrpc generated code. .pg.go is similar, .connect.go vs .grpc.go files are obvious. But ent was doing 1 more job, generating _service file which is really handy. Also as soon as I disable entproto.Service() from the Annotation it also removes rpc services from .proto file. For now, I rebuilt .proto and service files manually.


Random 'S' below class MSFT_xSPCreateFarm - ModuleVersion = '<IP_ADDRESS>'

Random 'S' below class MSFT_xSPCreateFarm in module MSFT_xSPCreateFarm causes the class to not work.
ModuleVersion = '<IP_ADDRESS>'

Looking at the current scripts for version <IP_ADDRESS> I don't see the S you're talking about, so I believe this has already been checked in and sorted. Can you have a look at the current version from the PS gallery or from the releases here on GitHub and let me know if you believe it has been resolved as well?

Sorry Brian, I think I downloaded from the wrong place. When downloading the ZIp from here https://github.com/PowerShell/xSharePoint just now (ModuleVersion = '<IP_ADDRESS>') the 'S' is there (xSharePoint-dev.zip).
When I downloaded from the releases page: https://github.com/PowerShell/xSharePoint/releases the 'S' is not there (xSharePoint.zip).

All good, I see it in the dev branch now - I'll make sure its caught before we push a new release out to the main branch. Thanks for reporting the issue!

This has been corrected in the dev branch now by pull request #67 - closing this issue off


unattended-upgrade with locally edited conffile causes "Not found in archive" tar error

See: https://github.com/NLnetLabs/routinator/issues/783
In short:
# unattended-upgrade
...
tar: ./etc/routinator/routinator.conf: Not found in archive
tar: Exiting with failure status due to previous errors

The routinator.conf file is in the archive, but stored as etc/routinator/routinator.conf - note without the leading ./.
In the linked issue I came up with a work around but unpacking the data tarball from inside the DEB archive and re-tarballing the same files but so that they end up with ./ in the path seems a bit ridiculous.
Apparently the code in unattended-upgrade has been requiring this leading . in the path of items in the data tarball for 10 years at least looking at the blame history, so this isn't a new issue, so I'm surprised it hasn't come up here before.
Does anyone have a way to configure cargo-deb assets that results in . leading paths in the data tarball? I suspect not because of this from the tar crate for fn set_path():

"Will strip out any “.” path component, which signifies the current directory."

Thoughts anyone?

I guess that's a feature request for the tar crate.

Ok. I just wanted to be sure I wasn't missing something really obvious 😀.


Check stale cilium endpoint flag before cleaning endpoints

The --enable-stale-cilium-endpoint-cleanup flag is never checked before running cleanStaleCEPs.
When this feature was introduced it appears there was a flag included to toggle the feature, but it's never checked and defaults to true.

/test

/test

/test-1.26-net-next

/test-1.26-net-next

/test

@tommyp1ckles When doing manual backport PRs, please ensure that the labels are properly applied to the PR and kept up-to-date. That wasn't the case on this PR, JFYI.


Link and Turbo Stream in Beta 4

Hey !
I tried to used Turbo for modals but since Beta 4 all of my links are no longer recognized as turbo_stream format in my controllers. I would like to ask you if there is a solution so that my links to be considered as format.turbo_stream in my controllers again.
Thank you !

It is intentional that links are no longer sent as turbo_stream.


[6.4.x] BPMSPL-252: Ability to check duplicate of ReleaseId (GroupId, ArtifactId and Version) with existing projects

See https://issues.jboss.org/browse/BPMSPL-252
This is the PR for 6.4.x.

Part of the following ensemble:
https://github.com/droolsjbpm/drools/pull/635
https://github.com/droolsjbpm/guvnor/pull/241
https://github.com/droolsjbpm/kie-wb-common/pull/243
https://github.com/droolsjbpm/drools-wb/pull/122
https://github.com/droolsjbpm/kie-wb-distributions/pull/190
https://github.com/droolsjbpm/kie-docs/pull/41

@psiroky hi, same play here. I need this merged before I can merge all the others ;). Thanks.

+1, merged into 6.4.x.


Add MESH xrefs

Email on CL list:

> I have been looking at the MeSH terms for some CL nodes and I wonder whether
there are missing mappings.
>
> For example for CL:0000746, there is not any mesh dbxref. Querying the mesh
web page, I found "Myocytes, Cardiac" (Tree Number(s): A07.541.704.570,
A10.690.552.750.570, A11.620.500).
>
> Are there some other files that provide more CL to MeSH mappings?
>
> Many thanks for the help.
>
> Kind regards,
> Ioannis

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 21 Jul 2014 at 8:22

WARNING: This issue has been automatically closed because it has not been updated in more than 3 years. Please re-open it if you still need this to be addressed – we are now getting some resources to deal with such issues.


TaskScheduler: support hardware_concurrency query older versions of MSVC

It seems that older versions of MSVC don't support std::hardware_concurrency, so here is an (ugly) fix for that.

I'm not sure about this, since there is a C++98 compatible version of enkiTS for older compilers which do not fully support C++11.
Note that there's also a function GetNumHardwareThreads() in TaskScheduler.h which would need to be altered if we go down this route.
I see you set the upper limit to 1910 - does your MSVC 2015 not support this? I wrote the C++11 version using MSVC 2015 which is the first fully  C++11 supporting MSVC version according to MS.

Thanks. Perhaps certain versions of 2015 don't handle it.  I am using Appveyor for CI for my project, and it didn't like the C++11 version.

If you haven't had issues with it, then probably not worth adding it in.

OK - I will check into VS 2015 support to double check, and close the issue if this works.

Sounds good, thanks.

btw, I would highly recommend Appveyor for CI on windows.

@dougbinks the CI for my image codec uses Appveyor, with VS 2015 rev 3 build environment, and I use ctest to generate unit tests.  I'm not sure why, but without this fix, all of my unit tests will time out. Perhaps they are getting 0 threads returned ?  So, I will have to use this branch for my project.
So, in the wild, this may be a necessary patch.

sorry - something else is breaking the tests. Please ignore :)

I've just confirmed that VS2015 supports enkiTS, I can build and run all samples.
VS2013 and below don't support C++11, so they should use the C++98 branch - so I'm closing this issue.
Thanks for bringing it to my attention - and I may try out Appveyor for CI once I have time.

Thanks for verifying this. Closing.


How to use this plugin in rspack?

Were you able to solve this?

We're getting this error:
ERROR in × TypeError: Cannot read properties of undefined (reading 'tap')
  │

There is another plugin for dynamic remotes that works with rspack.
import { importRemote } from "@module-federation/utilities";
const ShellService =
React.lazy(() =>
importRemote({
scope: "shell",
module: "./ShellService",
remoteEntryFileName: "remoteEntry.js",
url: () => axios.get("/remotes").then(data => data.shellRemoteURL), // e.g. http://localhost:3000
})
)
);

Wrote a plugin for that.
https://www.npmjs.com/package/runtime-external-remotes-plugin

Hi @86XIng, thanks for sharing your solution. However, it seems not to work for me.
rspack.config.ts
const plugins = {
    new ModuleFederationPlugin({
      name: 'HostApp',
      remotes: {
        mfS3Poc: `MfS3Poc@https://my-host.com/my-path/[window.remotesVersions.myApp]/mf-manifest.json`,
      },
      runtimePlugins: ['runtime-external-remotes-plugin']
    }),
}

My dependencies:
{
"dependencies": {
    "@module-federation/enhanced": "^0.8.0",
    "@types/react": "^17.0.83",
    "@types/react-dom": "^17.0.25",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "runtime-external-remotes-plugin": "^1.0.2"
  },
  "devDependencies": {
    "@biomejs/biome": "^1.9.3",
    "@rspack/cli": "^1.1.4",
    "@rspack/core": "^1.1.4",
    "@rspack/plugin-react-refresh": "1.0.0",
    "cross-env": "^7.0.3",
    "react-refresh": "^0.14.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.6.3"
  }
}


I want add label row header for division row .

Hi
I am using ZHourGridDivision.minutes_30 division and i want add row header label for 30 mins also . Like 19:00 , 19:30 etc
thanks

this is not supported for now. If you want to implement this, you have to change the code in FlowLayout to achieve this.

this is not supported for now. If you want to implement this, you have to change the code in FlowLayout to achieve this.

can you give any idea how and where need to change in FlowLayout ?

this is not supported for now. If you want to implement this, you have to change the code in FlowLayout to achieve this.

can you give any idea how and where need to change in FlowLayout ?

Hi I am waiting your response .

this is not supported for now. If you want to implement this, you have to change the code in FlowLayout to achieve this.

can you give any idea how and where need to change in FlowLayout ?

Hi I am waiting from your response .
Please reply asap.

Sorry, I missed this issue.
I will give you some suggestions later within a day.

This is not a quite easy way to do this, I cannot show you the full code but I will tell where you should change and the reason.

From the beginning, the rowHeader layout all starts from JZWeekViewFlowLayout prepareHorizontalTileSectionLayoutForSections (line 236). For now, the total indexes are 24, you should change it to 48 instead. Also, if you want to keep the same hour height as current implementation, you should change the hourHeight to half of the current height. Furthermore, If you want to draw your own double (24 -> 48) horizontal grid lines rather than using 30-min Divisions, you should change the method layoutHorizontalGridLinesAttributes.

After modifying the FlowLayout, you should try to change the current rowHeaderView to yours, which is defined in JZBaseWeekView viewForSupplementaryElementOfKind (line 466). Use your own dateFormat to update the time label text in JZRowHeader or your own class. Moreover, you have to amend the timeForRowHeader method in JZWeekViewFlowLayout. Previously it is 24, but for your case, minute components are introduced, you should calculate the correct Date here.

I think that's all for now, you can simply have a try. Let me know if you have more questions. The better way is to try and understand how it implements.
Thanks

This is not a quite easy way to do this, I cannot show you the full code but I will tell where you should change and the reason.

From the beginning, the rowHeader layout all starts from JZWeekViewFlowLayout prepareHorizontalTileSectionLayoutForSections (line 236). For now, the total indexes are 24, you should change it to 48 instead. Also, if you want to keep the same hour height as current implementation, you should change the hourHeight to half of the current height. Furthermore, If you want to draw your own double (24 -> 48) horizontal grid lines rather than using 30-min Divisions, you should change the method layoutHorizontalGridLinesAttributes.
After modifying the FlowLayout, you should try to change the current rowHeaderView to yours, which is defined in JZBaseWeekView viewForSupplementaryElementOfKind (line 466). Use your own dateFormat to update the time label text in JZRowHeader or your own class. Moreover, you have to amend the timeForRowHeader method in JZWeekViewFlowLayout. Previously it is 24, but for your case, minute components are introduced, you should calculate the correct Date here.

I think that's all for now, you can simply have a try. Let me know if you have more questions. The better way is to try and understand how it implements.
Thanks

Can you explain in details of point 2 because i have changes same in  code but it is not working.
Thanks,

In the method below

open func timeForRowHeader(at indexPath: IndexPath) -> Date {
    var components = daysForSection(indexPath.section)
    components.hour = indexPath.item
    return Calendar.current.date(from: components)!
}

The IndexPath range is from 0 - 24 currently, However, in your case, it should be 0-48, because you have more RowHeader SupplementaryView. You have to amend the Date calculation above to get the actual date for your each RowHeader. So the components are not just hour, it should like, for example, if the indexPath.item is 1, your components.hour = 0, components,minute = 30 (Currently is components.hour = 1). Do you get my idea? You have to give your own calculation date method for each RowHeader because your indexPath range is changed from 0-24 to 0-48.


Deleting user-post, post-comments?

I was looking at quickstart-js/database/scripts/main.js and I couldn't find any code that deletes user-posts or post-comments from firebase database.
For example, I am interested in seeing how you would delete the user-posts/userId and posts/relatedPosts in parallel. Was this part omitted for simplicity?

Yes it's been omitted for simplicity although it would be nice to add it and add a section in the documentation.
To delete 2 objects at the same time you do an update to null.
That's what we are doing exactly in our sample FriendlyPix (which is a more complete close-to-real-life app) here: https://github.com/firebase/friendlypix/blob/master/web/scripts/firebase.js#L593-L612

Thanks!

When you add comments, you add a comment object to post-comments/. What do you think about adding only comment ids into posts/comments and comment objects to comments/ instead?

If you do that it seems that reading will be slower. For example if you have 10 comments to load you'll need to do 10 requests to read the comment details whearas with the current solution only 1 read operation is needed to read all comments.

Should I be willing to make that tradeoff?
For example, let's say I want to add commentCategory and userComments functionalities. Then I will start have to add comments to these two additional paths. When a comment is edited, I will have to remember to edit it in all these different sources.

Need Help i have ionic app i have User posts but am failing to add other users Comments using Firebase Help


How I can convert text to byteArray?

Hi,
I need to migrate this code from navision 2018 to BC:
SystemByteArray := SystemUTF8Encoder.GetBytes(s);
I find the way to enconde s but how I can convert encoding text to byteArray?
Thanks,

it depends on what the end result is for what you want to do. if it's for hashing, there are already hash functions in the encryption management codeunit. if it's for something else, you can always suggest an update to the open library here: https://github.com/Microsoft/cal-open-library

thanks


undefined behavior in console

The console allows let a = undefined; but the code editor does not.

Fixed in Ocelot


Safari support: every host permission is reported as "additional"

This appears to be the case from initial trials. Further testing needed.

Figured it out: Safari’s permissions are stored as *://*.github.com/*, which might not be a direct match with what's in the permissions key

Technically the current situation is correct. *://*.github.com/* is different from *://github.com/* so it is, in fact, an "additional" permission.
The correct solution is to change the manifest.json permission to what Safari gives access to, but I'm afraid that it will trigger a warning in Chrome.
Testing needed

I’ll implement loose host matching with an option, so only the domain is considered when comparing permissions and nothing else.

Also to track for Safari support: https://github.com/fregante/webext-domain-permission-toggle/issues/10


 project types out of date?

The Package references (PackageReference) in project files article says:

At present, package references are supported in Visual Studio 2017 only, for .NET Core projects, .NET Standard projects, and UWP projects targeting Windows 10 Build 15063 (Creators Update).

But in VS 15.3, I am able to use <PackageReference> even in .Net Framework projects (if I set it as default in NuGet options). Should the note be updated?
Possibly related: https://github.com/NuGet/docs.microsoft.com-nuget/issues/290.

Updated this article recently with current project types.


Social share buttons missing logo

The logo in the share buttons for Twitter, Facebook , Google+ and LinkedIn is absent. I can only see a square box instead of the respective logos. Request you to fix this.

Apart from that, it's an amazing template. Thank you!

You can change the fa in fa fa-fw fa-facebook to fab fa-fw fa-facebook. Also, you probably want to rename the icons. See changes from fontawesome 4 to 5: https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4

Thank you Yunaik. This fixed the issue!


Feature/add statefile

Adding ability to convert VIC 4.2 ascii state files to VIC 5.0 netcdf.
NOTE: this pull request is optional - PR #43 is merging these same changes into the develop branch.  Feel free to delete this PR.

I'm closing this PR as we don't appear to need it.  PR #43 is essentially the same but merges into the develop branch.


Video freezes and audio continues for 2 to 3 seconds at slow internet

Browser: Google Chrome Version 69.0.3497.100 (Official Build) (64-bit)
OS: Windows 10 Pro
Clappr Version: 0.2.100
Steps to reproduce:

Go to demo site http://cdn.clappr.io/
Paste the below code
`var playerElement = document.getElementById("player-wrapper");

var player = new Clappr.Player({
source: 'https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8',
poster: 'http://clappr.io/poster.png',
mute: false,
plugins: [Clappr.FlasHLS],
height: 360,
width: 640
});
player.attachTo(playerElement);`

Run the player by throttling internet at 512kbps/256kbps

Expected Behaviour: Video and audio to stay in sync before, during and after buffer.
Actual Behaviour: Video freezes and audio plays for 2 to 3 seconds before buffering starts.

Did you see the same behavior with another dash resource (try to use an external example stream i.e. https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd )?
Did you try to debug to see if your stream is okay?

I am a noob in this streaming, muxing logics. Considering that my requirement is to play HLS v4 stream across browsers. I tried all resources that were available to try this issue

Yes i did follow the steps mentioned except this step (tool to check the health of your stream) as I dint knew how to perform this step and consume the logs.

@shakthihcue when you use the test stream http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8 does it still behave the same?

http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8

It seems to work as expected but I would like confirm if the above url is by HLS v3 or HLS v4 as I got to know that HLS v4 has separate audio and video file because of which sync might miss.
Below are the manifest comparisons of urls.

http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8 (not sure about HLS version)

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2149280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=1280x720,NAME="720"
url_0/193039199_mp4_h264_aac_hd_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2149280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=1280x720,NAME="720"
url_1/193039199_mp4_h264_aac_hd_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=246440,CODECS="mp4a.40.5,avc1.42000d",RESOLUTION=320x184,NAME="240"
url_2/193039199_mp4_h264_aac_ld_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=246440,CODECS="mp4a.40.5,avc1.42000d",RESOLUTION=320x184,NAME="240"
url_3/193039199_mp4_h264_aac_ld_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=460560,CODECS="mp4a.40.5,avc1.420016",RESOLUTION=512x288,NAME="380"
url_4/193039199_mp4_h264_aac_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=460560,CODECS="mp4a.40.5,avc1.420016",RESOLUTION=512x288,NAME="380"
url_5/193039199_mp4_h264_aac_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=836280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=848x480,NAME="480"
url_6/193039199_mp4_h264_aac_hq_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=836280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=848x480,NAME="480"
url_7/193039199_mp4_h264_aac_hq_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6221600,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1080,NAME="1080"
url_8/193039199_mp4_h264_aac_fhd_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6221600,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1080,NAME="1080"
url_9/193039199_mp4_h264_aac_fhd_7.m3u8

HLS v4 manifest

#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-0",NAME="Default",AUTOSELECT=YES,DEFAULT=YES,URI="segments/ZZZZZ360sample1_audio_v4.m3u8"
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=88120000,CODECS="avc1.640028",URI="segments/ZZZZZ360sample1_1080p_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=78735000,CODECS="avc1.4d001f",URI="segments/ZZZZZ360sample1_720p_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=47421000,CODECS="avc1.42001f",URI="segments/ZZZZZ360sample1_480p_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=27884000,CODECS="avc1.42001e",URI="segments/ZZZZZ360sample1_360p_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=16333000,CODECS="avc1.420015",URI="segments/ZZZZZ360sample1_270p_iframe.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4586000,RESOLUTION=1280x720,CODECS="avc1.640028,mp4a.40.2",AUDIO="audio-0"
segments/ZZZZZ360sample1_1080p_v4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3570000,RESOLUTION=1280x720,CODECS="avc1.4d001f,mp4a.40.2",AUDIO="audio-0"
segments/ZZZZZ360sample1_720p_v4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1962000,RESOLUTION=854x480,CODECS="avc1.42001f,mp4a.40.2",AUDIO="audio-0"
segments/ZZZZZ360sample1_480p_v4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1095000,RESOLUTION=640x360,CODECS="avc1.42001e,mp4a.40.2",AUDIO="audio-0"
segments/ZZZZZ360sample1_360p_v4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=840000,RESOLUTION=480x270,CODECS="avc1.420015,mp4a.40.2",AUDIO="audio-0"
segments/ZZZZZ360sample1_270p_v4.m3u8
Can you please direct me with right understanding of the difference.

hey @shakthihcue the version is in the segment playlist (ZZZZZ360sample1_720p_v4.m3u8).

Here's a summary of HLS version features

So which means the stream(http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8) you shared of version 7 and the one i have shared is of version 4.
Could you please help me fix for this version 4 stream.

@shakthihcue do you use any product to generate the streams?

Amazon Elastic Transcoder.
Attaching below the sample preset for one of the quality:
Segment length = 6 sec

Maybe this can help you to select a smaller version https://aws.amazon.com/blogs/aws/ets-hls4-support/

Thanks.
Which option do you recommend would generate a stream that would play with web application running on clappr, android on exoplayer and ios on native plugin.
PS: Exoplayer seems to pause video until both audio and video buffers are equal I suppose.

But should player not support version 4 which has separate video and audio stream to run in sync.?
Just curious in a way to fix this issue at the player level. More detailed justification would really help me in taking back the points and demand for a change in streaming version.

But should player not support version 4 which has separate video and audio stream to run in sync.?

Yeah, you can search for each plataform/player/device, what issues do they have.


refactor: git workflow as vcs adapter

first step to implementation of https://github.com/okonet/lint-staged/issues/879.
All git-specific logic and vcs-behavior-sensitive functions moved to adapter.
The structure and file names did not change (for the most part) to avoid a large number of changes.
Methods for controlling the lint-staged pipeline become the adapter method (also considered exporting symbols or implementing through methods in ctx). Such a decision was made, because if they are implemented by the adapter, it will be possible to take into account all the features of the behavior of a particular vcs. Moreover, we are not tied to specific types of errors and there will be fewer problems with loss of compatibility with external adapters.

Thanks for the PR! It looks reasonable after quickly looking through it, but I'll have to check out the branch locally and study it further.

After thinking about this more, I'm not sure I like the complexity introduced currently.
What if the adapter contained its own state, and exposed something like beforeAll and afterAll for registering (multiple) listr tasks to run before and after the actual lint-staged tasks?
This way the adapter would only need those two methods, the configure, and one for getting files.
Currently the listr context is the state, and we could keep the ctx.errors and ctx.output, but in addition to those the asapter could use it for figuring out what before/after tasks to skip/enable.
Does this make sense?
I can also take a look myself at some point, but not sure when I'll have the time.

What if the adapter contained its own state, and exposed something like beforeAll and afterAll for registering (multiple) listr tasks to run before and after the actual lint-staged tasks?

@iiroj I considered the option when the adapter returned tasks. Is it ok that the adapter is tied for listr interface somehow? if so then I will refactor, the interface will be much simplier, but working with different VCS can vary greatly.

@JulieTheFox I think if the beforeAll/afterAll have a return type of undefined | ListrTask[], that would be cool. This way an adapter can be as simple as "return list of files and run tasks", without anything happening before/after.
The code in runAll could look something like this (pseudocode):
const adapter = new Adapter({ allowEmpty, stash, cwd, ctx, logger })

const { baseDir, files } = await adapter.init()
const beforeAllTasks = await adapter.beforeAll()
const afterAllTasks = await adapter.afterAll()

const listrTasks = [
  ...beforeAllTasks,
  ...configuredTasks,
  ...afterAllTasks,
].filter(Boolean) // remove undefined items

const runner = new Listr(listrTasks listrOptions)

@iiroj sorry for the long silence 😔
is this https://github.com/okonet/lint-staged/pull/892/commits/216a583be0b64a83901aae6071bd08faf9510c5e#diff-8ae5481f1ae8ad86784343c1d0123fbd interface more suitable for the adapter? I want to resume work, can I fix tests for this implementation?

Hey @JulieTheFox, I made some experiments related to this myself last week, but unfortunately also haven't had much time.
Would it inconvenience you if I took a stab at refactoring the current GitWorkflow as an "adapter" in the sense that all git-related logic has been moved into it, and it gets initialised in runAll?
After this, what would be left if further abstract it into an actual adapter so that another one can be used.

Is it not very acceptable for you if I move the git workflow code without refactoring behind runAll?
Its ok. We are now using temporary package with code from this PR with two adapters.

@juliethefox actually, what you have is pretty close to what I was thinking. Let me put together some further ideas...

Hey @iiroj
Did you have time to think it over?

@JulieTheFox I'm sorry, I haven't been able to give any time towards open source properly...
All in all, I think what you have is good; the changes I'd like are more styling and such, not really functional.
Do you think it would be possible to implement these two adapters with the way things currently are:

lint all files known to git, without any backup or revert functionality
lint all changes, staged or not, also without extra features

If so, it's probably good. Both of those theoretical adapters would have lint-staged run directly, via npx for example, instead of during the pre-commit hook. This is another common feature request for lint-staged, and adapters would be a good way to implement it while keeping the tool itself "clean".


Select the directory of where to generate the client?

Problem
Consider two directories:

shared
project

My schema.prisma resides in the shared directory. There is also a package.json in the shared directory. I am trying to generate a client in the project directory from the schema.prisma file.
If i cd to project and do npx prisma generate --schema=../shared/prisma.schema then the client is built in shared, and not in project like I wanted.
Suggested solution
Add a flag to specify working directory of the generate command. Use the working directory to generate the client, only use the --schema flag to read the file but ignore it when deciding where to put the client.
Alternatives
(None)
Additional context

Couldn't you create a new repo/module that contains and exports your generated client, then import it into your project(s) that share the schema and client? It might suck when it comes to running migrations and pinning versions, but it might yield the results you're looking for.

As a workaround? Probably yes.
Is that an argument against the requested feature?

Couldn't you create a new repo/module that contains and exports your generated client, then import it into your project(s) that share the schema and client? It might suck when it comes to running migrations and pinning versions, but it might yield the results you're looking for.

As a workaround? Probably yes. Is that an argument against the requested feature?

Just a workaround, of course! :)
I figured you might like to stay productive until the maintainers have the opportunity to look over your issue/feature request.

Is the output property maybe already what you are looking for?
https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#fields-1

Just a workaround, of course! :)
I figured you might like to stay productive until the maintainers have the opportunity to look over your issue/feature request.

I did a similiar setup to this (link), but some of the projects that was supposed to share the "prisma client lib" didn't really work with referencing the lib so it ended up being easier to just keep a copy of schema.prisma in them. Anyways, thanks for the tip :)

Is the output property maybe already what you are looking for? https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#fields-1

Thanks, but no. The idea here is that I want to keep a schema.prisma file that is shared across multiple projects. So in the context of schema.prisma it isn't known where the libs should be generated.

Interesting use case.
A workaround might be to have multiple generator blocks with different output folder in your schema file. That would have the side effect of creating a new client for all of the output folders when you run prisma generate though - not sure if that is a problem or even welcome.

Interesting use case.
A workaround might be to have multiple generator blocks with different output folder in your schema file. That would have the side effect of creating a new client for all of the output folders when you run prisma generate though - not sure if that is a problem or even welcome.

I will try this. My initial thought is that this might be a nice workaround, because it would ensure that all project that uses the shared schema are always "synced" when the schema is changed (and prisma generate is run).

Let us know if this works. If it does, we might want to document your use case so it is more discoverable that this is an option that makes sense.

I also have this problem. I have a dashboard & a site that share the same prisma.schema file. They are in two separate folders, so to avoid redundancy of information, I put the prisma file in another folder so that it is common.
So, with your solution, my prisma file has 2 generators, 1 for dashboard & 1 for the site.
It works but it creates a node_module & 2 package*.json in the db folder and not in dashboard/site.
We agree that by doing this, I have to import prisma with the files that were created by the generator?
Is @prisma/client useless in this case?
Thanks

Yes, you use the explicit location of the package with output - @prisma/client is a convenience package that imports from the default node_modules/.prisma/client output location.

It works but it creates a node_module & 2 package*.json in the db folder and not in dashboard/site

I think that should not be the case. You can go anywhere relative to the schema file in output and it should create that folder. If that is not the case, please open a bug report issues so we can discuss this with the details necessary. Thanks.

I am now using a slightly different workaround, using an env variable that I set before I invoke prisma generate:
generator client {
    provider = "prisma-client-js"
	output = env("PRISMA_OUT")
}

That way, I can do
export PRISMA_OUT=../../myproject/node_modules/@prisma/client
npx prisma generate

to generate the client for my myproject directory.
However I don't think this is perfect, because the "shared" folder (under which the schema.prisma file resides) will then get its own set of packages in node_modules. And they are never used unless I do another prisma generate.
Personally I find it somewhatt un-intuitive that prisma generate is using only the schema file location to determine where the client should be built. Would it not be more "normal" to use the current directory? Other cli tools I've ever encountered (e.g npm, protoc, gradle, tar) emit files at the current directory. So in comparison I wanted the client to be built at /home/birger/someweirddir I would either have to do
cd /home/birger/someweirddir
prisma generate --schema /home/birger/wherever-the-schema-is/schema.prisma

or use a flag (if the tool has one).
Anyways, the workaround is fine but I think others might also find that they want to manually override where prisma generate emits its files.

Is there any update on this?


Enable natural foreign key use on all foreign key widgets on a resource

With the addition of natural foreign key support to fk widget I think it would be nice to have a meta setting for resources to default to always using natural foreign keys if possible for detected fk widgets.
The key value add here is less configuration required on a per field level and the ability to more loosely couple your resource code to its model - not needing to specify config for every natural foreign key widget (or foreign key widget you want to use custom fields for).
I think this will be fairly easy to do and philosophically aligned well with import exports design.

My rough notes on how to do this …
add an attribute to the resource meta class for use natural foreign keys defaulting to false (In the future I think should be true as natural keys are superior to specifying fields in most respects).
add a has natural key function to detect if a model and it’s manager have the appropriate methods to support them.
Update widget detection to pass use natural foreign keys if meta config is true and the model has the methods.
The reason to check is that not all foreign keys will have the functions and we only want to try if we can succeed. Calling the natural key functions when they do not exist will cause errors.

Pr for this one https://github.com/django-import-export/django-import-export/pull/1423

My work surprise upgraded us to the latest release of import export so I got to use this capability for the first time. It was so convenient. ;)


chore(deps): use go 1.16

Why do you need to upgrade to v1.16? This change will prevent the project from compiling in lower versions.

Why do you need to upgrade to v1.16? This change will prevent the project from compiling in lower versions.

go1.16 is using go modules by default
maintain build go and runtime go version consistencies.
as CLI app, you dont need to have lower go version for the build

You can use the embd feature for jq and echart.

LGTM, It's well worth upgrading for embed feature. thanks.


Ability to draw on top of an "existing" terminal output

Describe the solution you'd like
I think it would be nice to have the ability to draw on an existing output in the terminal.
An example use case:

You're running some commands and have some output
You want to "highlight" or draw attention to a particular portion
You call draw and it takes a "screenshot" of existing output, allowing to draw on top of that

Describe alternatives you've considered
None

I think it would be really great if you could pass input to annotate over stdin so that way you can pipe to draw to start annotating output.
ls -lah | draw

Another potential factor is double-width (wide) characters. This may not be a concern for current user input, but wide chars could very well be piped into draw from other commands. Should there be handling for them?
Here's an example of using a wide char with the current version.  Take for example the output of kind:
❯ kind create cluster
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.21.1) 🖼
 ✓ Preparing nodes 📦
 ✓ Writing configuration 📜
 ✓ Starting control-plane 🕹
 ✓ Installing CNI 🔌
 ✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Thanks for using kind! 😊

Yes, there definitely should be handling for double-width characters:
I think I have an idea on how to implement support but might be tricky.
Thinking out loud: my thinking is that we can reserve a special character to insert after (to the right of) any character that is > 2 character width in the grid and display that character as blank when View() is called. We can then ensure a box border doesn't lie on any of those special characters and if it does, move it to the right/left until it doesn't.


I want to know if the input attribute readonly is useable

I want to know if the input attribute readonly is useable

This issue was imported from Google Moderator
Moderator votes: +9
Issue added by tobaiasjl on 2014-09-04
To vote this issue up or down, simply include +1 or -1 in your comment.

+1

+1

+1 Much need, so hoping

+1

+1

+1

+1

+1

+1

Now available at http://caniuse.com/#feat=readonly-attr


Ra table headings display the incorrect normalization method when Animal weight is missing

BUG DESCRIPTION
Problem
In the FCirc results for mice for which we have no weight, the "Mouse Normalized" column is None while the "Weight Normalized" column has a value. If a weight it missing, the weight normalized value should be missing, but the mouse normalized value should be able to be calculated. Note: This only seems to happen when the animal weight is missing.
Steps to reproduce

View FCirc table for fluxomics 2020 study
See Ra values for a mouse with missing weight (e.g. Animal Record - SH.fasted.[U-13C]sodium oleate.M2

Current behavior
The "Mouse Normalized" column is None while the "Weight Normalized" column has a value.

Expected behavior
The weight normalized value should be missing, but the mouse normalized value should be able to be calculated.
Suggested Change
Hopefully the problem is simply a mixed up header, but the values should be checked (weight normalized = mouse normalized / mouse weight)
Comment

ISSUE OWNER SECTION
Assumptions

List of assumptions made WRT the code
E.g. We will assume input is correct (explaining why there is no validation)

Requirements

[ ] 1. List of numbered conditions to be met for the feature
[ ] 2. E.g. Every column/row must display a value, i.e. cannot be empty
[ ] 3. Numbers for reference & checkboxes for progress tracking

Limitations

A list of things this work will specifically not do
E.g. This feature will only handle the most frequent use case X

Affected Components
A list of repository items, dependencies, etc, labeled with add, delete, or
change.  One item per line.  (Mostly, this will be a list of files.)

change: File path or DB table ...
add: Environment variable or server setting
delete: External executable or cron job

DESIGN
GUI Change description
Describe changes the user will see.
Code Change Description
Describe code changes planned for the feature. (Pseudocode encouraged)
Tests

[ ] 1. A description of at least one test for each requirement above.
[ ] 2. E.g. Test for req 2 that there's an exception when display value is ''
[ ] 3. Numbers for reference & checkboxes for progress tracking

The calculation is based on infusion rate, not mouse weight?
Ra_avg_g = Rd_avg_g - [Infusate] * 'Infusion Rate' in nmol/min/g

That's where the /g comes from?

Also referred to as Ra_avg_g, and sometimes referred to as Fcirc_avg.
Equivalent to Rd_avg_g - [Infusate] * 'Infusion Rate' in nmol/min/g
Calculated for the last serum sample collected, for the last tracer
peakgroup analyzed.

What's the initial thing that prompted the correspondence from the user?

And the per animal calculation multiplies the per gram value by the animal weight to remove the grams:
self.rate_appearance_intact_per_gram * self.animal.body_weight

So the None values make sense.

So my question is... Is it just the None values that are prompting concern? If that's what it is, then there is no problem that I can tell.  If there is another reason to be concerned, I would need to know more to debug what the issue is.
Perhaps... is there a reciprocal way to calculate the per_animal value that doesn't require knowing the animal weight?

Ugh. Sorry about the confusion, but you're totally right Rob. I'll close this this issue, but feel free to reopen if needed.


tests: handle missing pandas gracefully

Pandas is not yet ready for Python 3.11.  Use pytest.importorskip() to skip that one regression test that requires it when it's not available to unblock rapidfuzz on py3.11 on Gentoo.

thanks

Thanks!


Take advantage of S3 object tags

[ ] Create function to write arbitrary tags to S3 objects: rank (based on file ranking result) and untouched_basename

[ ] Create function to output new basename for movie files using current tmdb_title and year from tmdb_release_date

don't forget to make use of version, fullscreen, feature_type, plex_title, quality_title, and extract file extension from existing untouched_basename string:

tmdb_title (year) {edition-version} - feature_type - plex_title [quality_title].ext
tmdb_title (year) {edition-version} - fullscreen [quality_title].ext
tmdb_title (year) {edition-version} - [quality_title].ext

[ ] Create function to read arbitrary tags from S3 objects

[ ] When downloading a file from S3, read the object's tags, and if the untouched_basename object key exists and is different from the current object's filename:

use the untouched_basename object key as the filename when downloading
delete the old records from the local filesystem and database
import the newly-downloaded untouched_basename file, which will upload to S3; we're re-importing with the new filename info

[x] Use the rank object tag to selectively restore the library; rather than re-downloading the entire library from S3 if something should happen to our local copies and we have no database backup, create a function to iterate through the entire directory listing and only queue for restoration if rank = 1; need to password-protect this procedure (and maybe somehow add a time delay before starting to queue for restoration?) as it can be a very expensive operation depending on the size of the library!

Created list of files with rank = 1 via 14976b00cf42c97d7e3acdcbb48e760529d56c04

Done differently via e067dd65dcd16c1974e9856d59e184f5e92d793d


[HOW-TO] Don't take a photo after record

Hi, i am using picame2 to write a simple code to take a photo and record video. Receiver the data from TCPClient and capture or record.
import time
import os
import socket
import threading
from datetime import datetime

from picamera2 import Picamera2
from picamera2.encoders import H264Encoder
from picamera2.outputs import FfmpegOutput
from picamera2.outputs import FileOutput

picam2 = Picamera2();
isRecord = False;
isPhoto = False;

def camera():
  global picam2;
  global isRecord;
  global isPhoto;

  print("Start Camera")
  picam2.configure(picam2.create_video_configuration())
  picam2.start()

  try:
    while True:

      if(isPhoto):
        print("Start Photo")
        filename = "/home/raspi/img/"+ datetime.now().strftime("%d-%m-%Y-%H-%M-%S") + ".jpg";
        #picam2.start_and_capture_file(filename)

        #cfg = picam2.create_still_configuration()
        #picam2.switch_mode_and_capture_file(cfg, filename)

        picam2.capture_file(filename)
        isPhoto = False;

      if(isRecord):
        print("Start Video")
        filename = "/home/raspi/video/"+ datetime.now().strftime("%d-%m-%Y-%H-%M-%S") + ".mp4";
        #picam2.video_configuration.format = 'BGR888';
        picam2.start_and_record_video(filename, duration=900); #15p

  except Exception as e:
    print(f"Error: {str(e)}")

def handle_client(client_socket, client_addr):
    print(f"Connection from {client_addr}")
    thread = threading.Thread(target=camera, name='camera')
    thread.start()

    global picam2;
    global isRecord;
    global isPhoto;
    try:
        while True:
            # Receive data from the client
            data = client_socket.recv(1024)

            if not data:
                break  # No more data received, exit loop
            dataHexa = data.hex();
            #print(dataHexa)
            if(dataHexa == '01'):
              isPhoto = True;
            elif(dataHexa == '02' and isRecord == False):
              isRecord = True;
            elif(dataHexa == '03' and isRecord == True):
              print("Stop Video")
              picam2.stop_recording()
              isRecord = False;

            # Echo back the received data
            #client_socket.sendall(data)
    except Exception as e:
        print(f"Error: {str(e)}")
    finally:
        # Close the client socket
        client_socket.close()
        print(f"Connection with {client_addr} closed")
        thread.join()

def start_server(host, port):
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind((host, port))
    server_socket.listen(5)  # Accept up to 5 connections
    print(f"TCP server started on {host}:{port}")
    while True:
        # Wait for a client to connect
        print("Waiting for connection...")
        client_socket, client_addr = server_socket.accept()

        # Start a new thread to handle the client connection
        client_thread = threading.Thread(target=handle_client, args=(client_socket, client_addr))
        client_thread.start()

if __name__ == "__main__":
    start_server('<IP_ADDRESS>', 5765)

when I record, then stop recording. After that I couldn't record or take photos.
It seems that when using the recording command and stopping recording, subsequent commands cannot be executed
pls support me to fix it.

Hi, it would be easier if you could condense your example to maybe a dozen lines or so, basically the simplest thing you can manage that shows the problem. Otherwise we have to spend time working out how to run your code and figure out exactly what the code is doing. Would that be possible?
Having said that, I see you're using the start_and_... methods. I really would avoid that - they were put on only for folks who "just want to call one function" and don't really want any control over it. But if you can create a very short standalone script that demonstrates the problem, then that would be great and would make it obvious how to reproduce the issue. I'm thinking something like:
from picamera2 import Picamera2

picam2 = Picamera2()
picam2.start_and_record_video("test.h264", duration=10)
picam2.start_and_capture_file("test.jpg")

Thanks!

Hi again, and thanks for the simplified script. I just wanted to check that you know that start_and_record_video will wait for the recording to finish, and then stop the camera. After that, I expect picam2.capture_file("test1.jpg") will lock up because it's waiting for the camera which is no longer running.
Are you wanting to take pictures simultaneously with video, or one after the other?

@davidplowman Yes, I want to test the functions when taking pictures and recording videos sequentially.
I have a question: when executing the start_and_record_video function, if I call stop_recording while the start_and_record_video function is being executed, will I still take photos or record videos afterward?

@davidplowman I want to be able to take photos, record and stop video recording at any time. Can you suggest me a list of functions to perform this task?
In addition, I also want to stream video through rtsp, but I still haven't found an example for this idea

I think you'd do better to avoid the start_and_... functions. I would configure and start the camera, and then just leave it running. Then you can use start_encoder and stop_encoder at any time to start recording. You can also use capture_file at any time if the camera is running.
Here are some examples that might help:

Running two encoders at the same time. Also this.
Capturing a still while recording a video.
Using an encoder with two outputs.
Also be sure to check the manual.

@davidplowman Thanks, I wnat to record with .mp4 file and take photos. I went through your instructions and i have a simple code like below. Is this code what you mean?
import time
from picamera2 import Picamera2
from picamera2.outputs import FfmpegOutput
from picamera2.encoders import H264Encoder

picam2 = Picamera2()
video_config = picam2.create_video_configuration()
picam2.configure(video_config)

encoder = H264Encoder(10000000)
output = FfmpegOutput("test.mp4", audio=True)
# Start Record
picam2.start_recording(encoder, output)
time.sleep(10)
picam2.stop_recording()

# Take Photos
picam2.capture_file("test.jpg")

Hi, I think that's close. stop_recording will stop the camera, so either:

Use stop_encoder instead. That should leave the camera running.
Or start the camera again (picam2.start()) before calling capture_file. There will be a short delay while the camera restarts.

@davidplowman thank you!. tomorrow, i will test this code. Thank you for your support!

@davidplowman i tried the example capture_video.py, i change ip to my ip latop and received data. i want to change the file format ("mkv" or "mov" or "mp4") with h.264 or h.265. Can i change it by code?

I think the FfmpegOutput detects the format from the filename, so many formats other than mp4 should work. Have you tried this?

@davidplowman I want to record video twice with the command start_recording, but when I stop with the command stop_record, both stop. I want to stop one of the two, how do I do that?

Tôi nghĩ rằng nó FfmpegOutputphát hiện định dạng từ tên tệp, vì vậy nhiều định dạng khác ngoài mp4 sẽ hoạt động. Bạn đã thử cái này chưa?
i don`t try this command.

If you have started two encoders then use stop_encoder. You should be able to stop one encoder and leave the other running. See for example https://github.com/raspberrypi/picamera2/blob/main/examples/capture_video_multiple_2.py.

@davidplowman how can i increase the fps when streaming and recording video? Currently, the fps is 11 when i use the picam2.start_encoder for recording and picam2.start_recording(H264Encoder(bitrate=1000000), output=FfmpegOutput( "-f rtp udp://<IP_ADDRESS>:10001")); for streaming. I want to increase the fps to 30fps.

@davidplowman i am using :
        video_config = self.picam2.create_video_configuration(
                    main   ={"size": (1920, 1080)},
                    lores  ={"size": (1280, 720)},
                    raw    ={"size": (4056, 3040)},
                    controls = {"FrameRate": 30.0},
                );

main, lorse for recording and streaming and raw for taking photos.
with size windows of raw, i see the fps max is 14 fps.
i changed the size windows of raw to (1920, 1080), then the fps is 30fps.
But i want to take photos with max resolution, but with max resolution of taking photo, the fps is slow.
Can you give me some suggestion?

Hi, I'm afraid that's a physical limitation of the hardware. At full resolution there are too many pixels to achieve 30fps so you have to choose either resolution or framerate.

Hi, I think that's close. stop_recording will stop the camera, so either:

Use stop_encoder instead. That should leave the camera running.
Or start the camera again (picam2.start()) before calling capture_file. There will be a short delay while the camera restarts.

Right solution! Thanks!


[CI-6801] [CI-6657] Release Notes - CI - 785xx

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[x] Issue
[x] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[x] Optional Screen Shoot.

Preview environment: https://ci.pr.harness.io/pr-761

Preview environment: https://ci.pr.harness.io/pr-761

resolved merge conflict. Doug has reviewed. This is ready to merge.

Preview environment: https://ci.pr.harness.io/pr-761

Preview environment: https://ci.pr.harness.io/pr-761


Guidance on deployments while a function is executing

It would be helpful if the documentation included details on what happens to an executing function when a new deployment is initiated.  For instance, the documentation could include the following:

how the platform handles updates
how connections are handled during an update (e.g. drained, terminated, timeframe, etc.)
downtime expectations, if any, and mitigation strategies
guidance on using slots for updates

Having such information documented would allow developers to make the right choice for their scenarios, and save some time as a developer wouldn't have to resort to trying it out to determine what happens.

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

ID: 4dc400d6-feaf-3239-094e-3c19aae44345
Version Independent ID: aabb7db4-27fc-63c9-b019-d116450c439f
Content: Deployment technologies in Azure Functions
Content Source: articles/azure-functions/functions-deployment-technologies.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@mcollier Thank you for your feedback! We have assigned this issue to the author to review further and take the right course of action.

@im-samz if you have any info on this, we can add it. Probably similar to requests for info on "graceful shutdown"


feat(sidebar): minimized state @Input/@Output

When minimized input property is set from outside,  sidebar will properly switch it's state, eg:
[minimized]="sidebar.minimized$ | async"
It's possible to listen to minimized value changes,  eg. to persist in localStorage
[(minimized)]="minimized" or
[minimized]="minimized$ | async" (minimizedChange)="minimized$.next($event)"

Side note: This allows also to replace MutationObserver used in coreui-free-angular-admin-template for diabling perfectScrollbar when minimized: https://github.com/coreui/coreui-free-angular-admin-template/blob/master/src/app/containers/default-layout/default-layout.component.ts#L17
I can prepare PR if you decide to accept this change.


Wiki sample page

So people can see how to do links, Markdown, etc.
Originally created by Tom Smyth at 2018-01-05 09:22, migrated from redmine-#7756

Status changed from New to Closed

By Tom Smyth at 2018-01-06 20:06


Moving dropbox folder will cause maestral to loop over and over forever

Describe the bug

Make the dropbox folder disappear (in my case, I mounted the partition that contained it to a different mountpoint)
Run maestral gui
maestral will loop over and over with no possiblity to be closed.
Here are part of what it prints in the console:

Traceback (most recent call last):
  File "/home/raffaele/.local/lib/python3.10/site-packages/maestral_qt-1.5.1-py3.10.egg/maestral_qt/utils.py", line 293, in run
    self.emitter.sig_result.emit(res)
RuntimeError: wrapped C/C++ object of type WorkerEmitter has been deleted

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/raffaele/.local/lib/python3.10/site-packages/maestral_qt-1.5.1-py3.10.egg/maestral_qt/utils.py", line 295, in run
    self.emitter.sig_result.emit(exc)
RuntimeError: wrapped C/C++ object of type WorkerEmitter has been deleted

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/raffaele/.local/lib/python3.10/site-packages/maestral_qt-1.5.1-py3.10.egg/maestral_qt/utils.py", line 297, in run
    self.emitter.sig_done.emit()
RuntimeError: wrapped C/C++ object of type WorkerEmitter has been deleted
QSocketNotifier: Can only be used with threads started with QThread
QImage::pixel: coordinate (0,0) out of range

The last line is repeated a few times, and then this whole log is repeated.
This loop can't be stopped easily.  I had to run sudo killall python3 to ill it.
To Reproduce
See above
Expected behaviour
Maestral should ask where the folder was moved
System:

Maestral version: commit b829e86ce187864e539fad0f0da0b091b4d05a06
Python version: 3.10
OS: [e.g. Ubuntu] Fedora 35 Workstation
Desktop environment: [e.g. Gnome 3.32] GNOME 40
PyQt version (for Linux GUI): 5.15

Additional context

Maestral is still showing this pop-ups although there is no maestral process running:

Oh, that should not happen. As you have noted, there typically will be dialog allowing to choose a new folder location. Let me look into this...

BTW, did you remount the partition while Maestral was running? The error flows will be different when the folder disappears while sync is running vs when syncing is started.

BTW, did you remount the partition while Maestral was running? The error flows will be different when the folder disappears while sync is running vs when syncing is started.

I changed the mount point in /etc/fstab and rebooted.
Maestral was set up to start at boot

Ok, I think I've figured out the issue. I made a change some time ago about the meaning of the pending_dropbox_folder API of the sync daemon. I adapted the macOS GUI accordingly but forgot to do the same for Qt. The linked PR fixes this. Apologies for the inconvenience!

I cannot change from the Qt interface either

Changing the folder from the preference pane currently requires selecting a new empty folder. This is because performing a merging of two local folders (the old one and the new selected one) is not something which I currently have implemented. It would require covering a whole lot of corner cases and figuring out a good GUI to do so.

How can I kill it in the meantime?
It loops over and over.
sudo killall maestral and sudo killall maestral_qt find no processes.

ok I removed maestral from autostart, installed the latest git, logged out and back in.
Now I've got this:

will it work if I select the new position of the Dropbox folder?
Or will it download all the folder again?

uhm I tried to select the new position, but it says the folder is not empty and proposes me to merge it

sudo killall maestral and sudo killall maestral_qt find no processes.

It will likely register as a Python process, since there is no standalone executable for Linux at the moment.

uhm I tried to select the new position, but it says the folder is not empty and proposes me to merge it

Yes, this will offer you a merge option. It will reindex the remote Dropbox but not download any locally existing files. Merging is handled by the standard conflict resolution strategy.

Yes, this will offer you a merge option. It will reindex the remote Dropbox but not download any locally existing files. Merging is handled by the standard conflict resolution strategy.

I'm still not sure what "reindex" means exactly (maestral downloads the list of files and folders in remote Dropbox? Maybe with their hash?).
But my remote Dropbox is very big. I've moved the folder back were it was.

I'm still not sure what "reindex" means exactly (maestral downloads the list of files and folders in remote Dropbox? Maybe with their hash?).

Exactly that, it downloads a list of files and folders with content hashes and compares them to what it finds locally. This reindexing could in principle be skipped if we could trust that the selected folder was indeed previously synced.
The current flow for moving a Dropbox folder indeed assumes that both locations are available during the move and therefore does not help when remounting a volume. In fact, there currently is no "easy" way to manually move the folder while Maestral is not running and seamlessly continue syncing. This currently requires updating the config files values directly.


Fix the problem with the PEL test

@birocoles there is no need to a pull request for doing this. You can do a git merge master from your clone and then a push.

@birocoles don't worry about accidentally pushing to master. Github won't let you. I blocked direct pushes to master to avoid this kind of problem so it's safe.

Thanks @leouieda!


Image updates

Update images and add favicons. The favicons were taken from the logo, however, it should be noted that the logo is not the greatest image to use for a favicon. A good example of a favicon/logo can be found here.

Other than the icon (which you pointed out and I left a comment about), this looks good! Let me know when you address my comment, and I'll approve your PR!

^^ second!