Error when I run roslaunch tello_driver

Hi guys, I new on ROS and Tello, I followed up the instructions but when I try to run "roslaunch tello_driver/launch/tello_node.launch" I get the following:

huberth@huberth-PL62-7RC:~$ roslaunch tello_driver/launch/tello_node.launch
... logging to /home/huberth/.ros/log/35bfda92-263b-11ea-8165-4ccc6ae26d64/roslaunch-huberth-PL62-7RC-9145.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://huberth-PL62-7RC:43971/
SUMMARY
PARAMETERS

/rosdistro: kinetic
/rosversion: 1.12.14
/tello/tello/connect_timeout_sec: 10.0
/tello/tello/local_cmd_client_port: 8890
/tello/tello/local_vid_server_port: 6038
/tello/tello/stream_h264_video: False
/tello/tello/tello_cmd_server_port: 8889
/tello/tello/tello_ip: <IP_ADDRESS>

NODES
/tello/
image_compressed (image_transport/republish)
tello (tello_driver/tello_driver_node.py)
ROS_MASTER_URI=http://localhost:11311
process[tello/tello-1]: started with pid [9163]
process[tello/image_compressed-2]: started with pid [9164]
Traceback (most recent call last):
File "/opt/ros/kinetic/share/tello_driver/tello_driver_node.py", line 9, in
from h264_image_transport.msg import H264Packet
ImportError: No module named h264_image_transport.msg
[tello/tello-1] process has died [pid 9163, exit code 1, cmd /opt/ros/kinetic/share/tello_driver/tello_driver_node.py __name:=tello __log:=/home/huberth/.ros/log/35bfda92-263b-11ea-8165-4ccc6ae26d64/tello-tello-1.log].
log file: /home/huberth/.ros/log/35bfda92-263b-11ea-8165-4ccc6ae26d64/tello-tello-1*.log

So, I have looked at different issues in some forum but I couldn't find the solution, I think it has to be related to the video camera, but I'm sure.
Please help me.

It looks like you have not downloaded + compiled h264_image_transport package. Check out the instructions here.

It looks like you have not downloaded + compiled h264_image_transport package. Check out the instructions here.

Thank you for your answer. I have followed all the instructions. I had some problem to install rosdep install h264_image_transport  but in the end I manage by copying the file in the directory he asked me.
However, I still get the same problem, look at this screenshot:

In the picture you can see the installation was succesfull. But still get the same problem. I also have checked the files H264Packet.msg and it is in this adress:

root@huberth-PL62-7RC:/opt/ros/kinetic/share/image_transport# find /opt/ros/ -name H264Packet.msg
/opt/ros/kinetic/share/h264_image_transport/msg/H264Packet.msg
/opt/ros/kinetic/share/ros/h264_image_transport/msg/H264Packet.msg

is it in the right place?
I also see the log file and said this:

[rospy.client][INFO] 2019-12-25 12:12:19,264: init_node, name[/tello/tello_driver_node], pid[4907]
[xmlrpc][INFO] 2019-12-25 12:12:19,264: XML-RPC server binding to <IP_ADDRESS>:0
[xmlrpc][INFO] 2019-12-25 12:12:19,265: Started XML-RPC server [http://huberth-PL62-7RC:35635/]
[rospy.init][INFO] 2019-12-25 12:12:19,265: ROS Slave URI: [http://huberth-PL62-7RC:35635/]
[rospy.impl.masterslave][INFO] 2019-12-25 12:12:19,265: _ready: http://huberth-PL62-7RC:35635/
[xmlrpc][INFO] 2019-12-25 12:12:19,265: xml rpc node: starting XML-RPC server
[rospy.registration][INFO] 2019-12-25 12:12:19,266: Registering with master node http://localhost:11311
[rospy.init][INFO] 2019-12-25 12:12:19,365: registered with master
[rospy.rosout][INFO] 2019-12-25 12:12:19,365: initializing /rosout core topic
[rospy.rosout][INFO] 2019-12-25 12:12:19,369: connected to core topic /rosout
[rospy.simtime][INFO] 2019-12-25 12:12:19,371: /use_sim_time is not set, will not subscribe to simulated time [/clock] topic
[rospy.core][INFO] 2019-12-25 12:12:19,385: signal_shutdown [atexit]
[rospy.impl.masterslave][INFO] 2019-12-25 12:12:19,388:
atexit

This is all the information I can find.
Please help me
In advance thank you for your help, your future reply is important for me. It is a wonderful project.


Find a way to defer some bindings Lua helper execution

Problem is that currently, if a Lua component is loaded before Object creation, it can't access all Object specific variables (like Private).

Probably solved with all the refactor that went around GameObjects


refactor(nuxt): simplify runtimeConfig initialization of client side

🔗 Linked issue
N/A
❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[x] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
Currently, when we initialize nuxtApp.$config on the client side, we use reactive(nuxtApp.payload.config!).
https://github.com/nuxt/nuxt/blob/50c92fbe6cfb5ce4d5bd51ffdbc7f6da2b1ddf65/packages/nuxt/src/app/nuxt.ts#L340-L342
However, nuxtApp.payload is set to reactive during initialization, meaning nuxtApp.payload.config is already a reactive object on the client side, so it does not need to be processed with reactive again.
https://github.com/nuxt/nuxt/blob/50c92fbe6cfb5ce4d5bd51ffdbc7f6da2b1ddf65/packages/nuxt/src/app/nuxt.ts#L241-L247
Thank you for reviewing this. If there's anything I might have overlooked, please don't hesitate to let me know.
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have added tests (if possible).
[ ] I have updated the documentation accordingly.

Could I please understand why config needs to be reactivity? Isn't it used for storing data like from defineNuxtConfig and defineAppConfig?

@danielroe
Thank you for the heads up. I was actually hoping to propose removing the reactivity of config in v4, as I've observed that the data stored there tends to be more like environment variables or settings for things like Nuxt Content, which I guess don't require reactivity.
Therefore, I'm not quite sure in what scenarios the reactivity of config would be utilized. Could you please provide some guidance on this matter? I would greatly appreciate it 🥹


Connect to  process from a remote network or from powershell

Please use the following bug reporting template to help produce actionable and reproducible issues:

A brief description
Expected results
Actual results (with terminal output if applicable)
Your Windows build number
Steps / commands required to reproduce the error
Strace of the failing command
Required packages and commands to install

See our contributing instructions for assistance.
I'm stucking at ltrace, iwanna know if it's possible to connect from serial port or from something to a linux
process?

Could you please provider a little bit more information about what you're doing and what isn't working?

@benhillis Does WSL even provide the serial interface in /dev?

@hazzino -- WSL doesn't have direct serial-port integration.  But you could presumably set up a Windows serial console and log into it and run bash.exe.  (I don't know how but I'm sure someone does...)

thanks for the suggestions
~$ sudo ltrace /bin/ls
malloc(552
From here even ctrl c or quitting doesn't get any answear the console, i will try  the aseering tips

Closing this out as there has been no activity for some time.


Application upgradation

Hi,
Is there any plan to upgrade spring boot to 2.0.1.RELEASE version ? If yes, when it will be available tentatively ?

@cooligc not so soon I guess. I'm in rush with other projects, I don't have time to dedicate to the upgrade.
Indeed, this is an open source project. I'll accept contributions.

watching

I think that in the next days I may find the right mood for supporting Spring Boot 2.x in this project.

I've started the upgrade. First thing I'm trying to accomplish, is to move the default services for REDIS persistence in a separate module. Since email persistence is not mandatory, I think that putting the default service there was a very bad idea.
I'm not sure how much time it will take the migration. There are dozens of broken tests and changes in SpringBoot2 that must be taken into account.

Just was wondering if there was any progress on this? Thanks.

@limpep I have a lot of issues, and every time I find a new one I lose interest. But I'm working on it. Unfortunately, I don't have a release date at the moment.
Wanna help?

@robertotru I would love to help but I don't know where to begin plus I think I'll probably mess it up more than actually helping 😂

I'm thinking about getting rid of the REDIS support (if one wants to have email persistence, can implement the service he prefers and also all the template engine but not Mustache.
This may speedup the upgrade.
Opinions?

I think it makes total sense to move the PersistenceService implementation (redis) to its own module.
If having that module is a pain to maintain then remove it, but it’s good thing to have a reference implementation.
Regarding the templates, I guess that having one reference implementation it’s enough, mostly because the integration is very similar among those engines.
It is nice to have those integrations done, but if having them means that you don't have time (or motivation) to maintain the core, in that case just get rid of them.

Branch is https://github.com/ozimov/spring-boot-email-tools/tree/feature/move-to-spring-boot-2.0.x

@rezaep it is on the top banner, but maybe it should be also in the readme. We also do accept PRs :)


Release calendar stack

Clear and concise description of the problem
Create a stack developed by this framework to be utilized in a prod environment with ~100k visitors a month.
The calendar stack will include several calendar-related functionalities. Initially, we will release an "add to calendar" feature that will allow you to add events to a calendar of your choice easily.
Suggested solution
Similar to this UI/UX

Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

The only thing left here is that we need to implement the latest Stacks version.


[Feature request] Cast duration on a castbar

Player/Target castbar:

Would it be possible to add current cast duration/total cast duration as numbers inside the castbar?

Reason:

To see how much time do you have in seconds to interrupt the spell
Some addons like oCB: https://github.com/Road-block/Vanilla_oCB add additional information for latency, so you can start moving sooner as you know cast already sent to the server (useful for pvp)

As tDF build on top of ShaguTweaks, https://github.com/GryllsAddons/ShaguTweaks-mods has similar functionality, would it be possible to merge some of it's improvements?
Textures/animations for tDF castbars are much nicer than anything for 1.12, replacing it with another addon just for casttime isn't ideal

Some examples how it may look like
Player castbar:

Target castbar:

After some further testing on different system configurations (particularly with older nvidia drivers), inheriting castbar may cause stuttering, players did not notice these issues using pfUI because it creates new frame for each UI component. Doing the same thing here fixed the stuttering and gave over control to the move module allowing to move castbar in-game.
Thinking about implementing latency offset now

When cast is in the red zone, player can already move and spell will still register on the server


Error log when tried to call the startActivity function, please find the error logs

test_logs.txt
I have given options and called startActivity function and received the logs shown in the attachment, please help me with this error
here is the small snippet
this.webIntent.startActivity(options).then((success) => {
this.intentResponse = "web intent success: " + JSON.stringify(success);
console.log("web intent success:", success);
}, (err) => {
this.intentResponse = "web intent error: " + err;
console.log("web intent error: ", err)
});

You may get a more verbose error message if you access the plugin directly rather than going through WebIntent,  (<any>window).plugins.intentShim.startActivity(...)

Many Thanks


Use FSFacade provided by broccoli-plugin

Depends and adapt the changes from https://github.com/broccolijs/broccoli-plugin/pull/41/

[X] Bump broccoli-plugin version once above PR merged

released as v4.2.0 🎉


Make srcObject polyfill more generic

This will help with firefox unprefixing srcObject h/t @fippo

+1 for detangling things

@fippo sure. wasn't sure about how much logging was preferred. Updated.

actually this solves the redefine issue I ran into with #109 as well

LGTM with nit.

@KaptenJansson comment added. @jan-ivar removed last log, and corrected HTMLVideoElement->HTMLMediaElement. See my other comment regarding why if(window) isn't safe.

Good to go @jan-ivar @KaptenJansson?

@jan-ivar because it's not a static property, it's on prototype, right?

Thanks for explaining. TIL. LGTM!

Just manually checked in Edge btw. HTMLMediaElement.prototype.hasOwnProperty('srcObject') return true there so. phew :-)

This PR solves two significant bugs, passes existing tests, adds another test, and is being picked apart for style. Might I suggest that if you don't like the style, you open a PR that has one you prefer? I don't have the time or energy go to back and forth with you on this or argue elegance. This review process is hostile and not welcoming to contributors. It's easier for contributors and yourselves to merge working code and make minor adjustments as you see fit. If that process doesn't work for you, that's your perogitive, but don't expect to see more PRs from the community.

Sorry to hear that, we are currently looking into making sure our tools catch more nits and simple style issues (still lacking in some respects, suggestions are welcome off course) which should reduce some of the "nitpicky" comments.
But in regards to the overall code approach/style you have to expect it to be scrutinized and analyzed thoroughly, different people will have different set of questions based on their angle/experience. This is true in general when doing code reviews, it takes time but in the end, everyone will have learnt something and the outcome will generally be higher quality code.
Also, the first PR is obviously going to be the hardest as you learn the procedures and guidelines for the repository. If you have any suggestions on improving this, please feel free to file issues/PR's (as you have in #117).

A strict or stringent code review process is not what makes a hostile environment. It's the fact that during that process, not one person made any effort make it apparent that my changes were welcome or valued.
The review process was simply: please make this code amalgamate into our existing code with the least disruption. One team member even emailed me that I should be grateful already because you took time after hours or on weekends to do this.
Thanking contributors or providing encouragement isn't easy, I get that. It's also not natural - especially if the project is a part of your day job. For others, it's not. There is no inherent value to me in getting code merged into your repo, and I'm not getting paid for my work in doing so. For much of the open source community "giving back" is all the reward they need, and that's how I felt too, except it quickly changed to feet that I was just an annoyance. Because of that, I would rather spend my efforts "giving back" to places where I feel valued, not like a nuisance.
It shouldn't be simply up to the reviewee to "get over" the difficulty of the process. Reviewers should be open to changing (not the strictness of review) but the language used, so that the reviewee feels like it's an effort worth pursuing.

A strict or stringent code review process is not what makes a hostile environment. It's the fact that during that process, not one person made any effort make it apparent that my changes were welcome or valued.

We will do our best in the future to make sure contributors feel welcome and appreciated in the WebRTC repos. Thank you for the detailed and actionable criticism.

It shouldn't be simply up to the reviewee to "get over" the difficulty of the process. Reviewers should be open to changing (not the strictness of review) but the language used, so that the reviewee feels like it's an effort worth pursuing.

Off course it's a two way street, but one have to be able to have a discussion about the style without the risk of having a fallout after a few comments. But in this case I do understand that the initial welcoming might have been detrimental here.

I think this change is good and it LGTM. I agree that there is a difference between style and nitpicking. Asking for punctuation in a comment is nitpicking and is quite unrelated to the change itself. I definitely agree that style is important, but there is a point where it is overkill and it distracts from the original change. It seems like a majority of these comments were more focused on style. It would be a shame if this didn't get merged in.

IMHO the javascript magic in the srcObject functionality is so arcane that it should be done in one place and it should be documented (I volunteer to write a paragraph or two)

@fippo I can see that argument. I understand that the arcane-ness of this stuff has already bitten you.
I'm willing to hold my misgivings and accept this approach.

@xdumaine Sorry for how this turned out, but thanks for the effort you put in nonetheless. Some of it is now merged via @calebboyd's PR.
(And FYI I will be less picky on the style now in the comments and rather make sure the linting tools catch punctuation errors etc instead.).


Building FFTW tries to download to read-only folder

running ]build FFTW in a clean environment brought me this error:
Error building `FFTW`:
│ [ Info: Downloading https://github.com/JuliaBinaryWrappers/FFTW_jll.jl/releases/download/FFTW-v3.3.9+0/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz to /usr/home/christ/.julia/packages/FFTW/xi4tZ/deps/usr/downloads/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz...
│ ERROR: LoadError: LoadError: Could not download https://github.com/JuliaBinaryWrappers/FFTW_jll.jl/releases/download/FFTW-v3.3.9+0/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz to /usr/home/christ/.julia/packages/FFTW/xi4tZ/deps/usr/downloads/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz:
│ ErrorException("")

This seems to me as if it tries to store the binary in the .julia/packages folder which is read-only AFAIK.
Could also be an issue with BinaryBuilder
julia> versioninfo()
Julia Version 1.1.1
Commit 55e36cc308 (2019-05-16 04:10 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, ivybridge)
Environment:
  JULIA_EDITOR = atom  -a
  JULIA_NUM_THREADS = 4

Seems like this is a bug in BinaryProvider.jl, can you file the issue there?

done


Nothing provides krb5-libs (openSUSE 15.1)

It seems "dotnet-runtime-deps-3.1-3.1.0-1.x86_64" depends on "krb5-libs" which is not provided by either the Leap repositories or the .net Core repositories. I imagine that the krb5 or krb5-client packages provide the same functionality on SUSE as krb5-libs does on Red Hat. The dependencies probably need to be updated for openSUSE 15.1.
edit by @mairaw: add topic details

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

ID: b6baea63-f650-e232-854b-c1722ed72543
Version Independent ID: 56c0bff6-2630-06f8-9c86-e81ca292fd2f
Content: Install .NET Core on openSUSE 15 - package manager - .NET Core
Content Source: docs/core/install/linux-package-manager-opensuse15.md
Product: dotnet-core
GitHub Login: @Thraka
Microsoft Alias: adegeo

Thanks for your feedback @rooper149. Is this about the following page:
https://docs.microsoft.com/en-us/dotnet/core/install/dependencies?tabs=netcore31&pivots=os-linux?

@mairaw That page and:
https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-opensuse15
You show support for openSUSE, but there are breaking package dependencies in the install. openSUSE does not provide the package "krb5-libs", it is provided under the name "krb5" instead. This causes the installation to break on openSUSE.

Ok, thanks for the additional information.

This is a release issue (probably related to the other 3.1.0 problems) where the RPM for some distro where it's called krb5-libs is showing up when trying to install for this one. This is a problem for 15.0 as well, not just 15.1. See https://github.com/dotnet/runtime/issues/929#issuecomment-566211014 for more info.

As a workaround, run this command before the normal .NET Core install command to grab the correct version of this package:
sudo zypper install https://packages.microsoft.com/opensuse/15/prod/dotnet-runtime-deps-3.1.0-opensuse.42-x64.rpm

(Even though this doc comment is a duplicate of https://github.com/dotnet/runtime/issues/929, it would make sense to me to leave it open so others hitting it can see it easily on the docs page until we get it resolved. Thanks for filing.)

@dagood with how easy it is to update the docs, we should put a note in the instructions that call this out. When it's fixed, we can remove it from the docs.


Fix up .kitchen.docker.yml

Fixing missing suites section in .kitchen.docker.yml
Updating to use kitchen-dokken for speed and cleaner Travis output

Removed the oldbuntu's..... this is turning out to be a bit messy.
I'm using PR to trigger travis builds... don't merge this yet. The yaks run deep here.

This needs to get rebased before it can get merged @someara

We should probably add dokken at some point, but it's easier to start over at this point.


Various changes to the Python Tutorial

Made some stylistic changes to the Python tutorial, and added extra commands to the audio player.
Describe the feature and/or bug fix:
There were a couple of small bugs in the audio player example, which I hopefully fixed. I also added a couple of extra commands to it (namely loop and gain), to show off more of Synthizer's capabilities.
To stop VSCode moaning while I was linting, I also put in language qualifiers in markdown code blocks.
Finally, I do declare:
I have read CONTRIBUTING.md, am the sole contributor to this pull request, and license my contributions under the Unlicense.

I'll review this in detail this weekend, but can you backport your changes to bindings/python/example.py? I'm keeping that in sync with the manual.

OK, that's no problem.
I've clicked the pull request link again, and apparently it's waiting for
AppVeyor to complete.
Not sure if I did the right thing or not haha, I've never updated a pull
request like this before.
Another slight thing: In the manual, you say how buffers are completely
decoupled from contexts, yet the first argument to Buffer has to be a
context. Does that need explaining in the manual?
Take care,
Chris Norman
On Thu, 16 Jul 2020 at 03:57, Austin Hicks<EMAIL_ADDRESS>wrote:

I'll review this in detail this weekend, but can you backport your changes
to bindings/python/example.py? I'm keeping that in sync with the manual.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/synthizer/synthizer/pull/5#issuecomment-659127321,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBUZ2OSIJDU4F2Q64BYC73R3ZUDPANCNFSM4OY3IY4Q
.

Just git pushing the commit to the branch that the pull request is based off is sufficient as long as there's a PR open for that branch in the web UI already.  GitHub will pick it up automatically and restart CI automatically.  CI is automated building in the cloud and doesn't matter here because this is just documentation changes, but that needs to pass for merge and takes around 15 minutes per run (but don't worry, it's free for open source projects).
The buffer thing is one of those cases where the documentation is ahead of reality, and the library will be brought in line. I need to check the implementation and figure out why it actually takes a context, then remove the dependency.  I think I just originally decided that I didn't want to commit to separating them, then never actually separated them when I did.

OK great stuff. Well all my pushes should be done now, so feel free to
review at your leisure.
Take care,
Chris Norman
On Fri, 17 Jul 2020 at 04:33, Austin Hicks<EMAIL_ADDRESS>wrote:

Just git pushing the commit to the branch that the pull request is based
off is sufficient as long as there's a PR open for that branch in the web
UI already. GitHub will pick it up automatically and restart CI
automatically. CI is automated building in the cloud and doesn't matter
here because this is just documentation changes, but that needs to pass for
merge and takes around 15 minutes per run (but don't worry, it's free for
open source projects).
The buffer thing is one of those cases where the documentation is ahead of
reality, and the library will be brought in line. I need to check the
implementation and figure out why it actually takes a context, then remove
the dependency. I think I just originally decided that I didn't want to
commit to separating them, then never actually separated them when I did.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/synthizer/synthizer/pull/5#issuecomment-659821136,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBUZ2I664VRUOYVKMKHY63R37BBNANCNFSM4OY3IY4Q
.


Android Nougat beacon not scan when device in doze mode

Am using android nougat version when device is goes in doze mode beacon not scan.

Hellp @rajeshkanna777
Sorry for such long delay. Basically, the Doze mode stops all pending tasks and delays them to be invoked in "maintenance window". This is why scanning for beacons won't work in this mode. Our scanner is able to scan only in short periods of time. We can do nothing about it in our current SDK. But don't worry, we are working on something much more Android-restrictions compatible, so stay tuned :)


Update Decoder.js

Fix sample rate and channel to be taken from the input parameters and not the header.

Oh, good catch. No idea what I was thinking ignoring the original parameters... :)


hardware requirements and how to inform users

My M2 Mac mini (8GB RAM) is not powerful enough to allow for a good user experience.  It may take more than 5 minutes for the ChatBot to start a sentence.  The summarizer takes ages even for very small files.
Users who are new to the space may expect that things are performing better, so I'd like to start a conversation how we can inform users about hardware requirement and general performance:

How can we inform the user when their hardware isn't powerful enough (for certain use cases)?
How can we inform the user about general performance and runtime?  For instance, what's an acceptable response time of the chat bot? We could make that information visible to users to help adjust their expectations.

Cc: @jeffmaury @slemeur

Fixed in the meantime by warning users when the machine isn't powerful enough, closing.


⚠ Bofrost.lu has degraded performance

In 9742de3, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1967 ms

Resolved: Bofrost.lu performance has improved in 0d50332 after 6 minutes.


client library

following up from https://github.com/GraphQLSwift/GraphQL/issues/55#issuecomment-1868135784 and hoping to start a conversation about how a client library might function. cc @paulofaria

Awesome thoughts! I'm definitely interested in a server-side compatible client library too! Let me know if you want someone to bounce ideas off of or if you want to contribute it to the GraphQLSwift org.


Google Compute Engine image fails to fetch SSH keys

Now that I've successfully built and booted the NixOS image for Google
Compute Engine, its systemd service fetch-ssh-keys.service, which is
part of the boot process, fails to fetch the SSH keys provided by the
Google Compute Engine environment, preventing me from accessing the
virtual machine via SSH.
The service's error messages are to be found at the end of this boot
log: https://gist.github.com/8573/78c3c1916049dc89402c79e6f110b756.

It appears that the URLs whence the fetch-ssh-keys systemd service
attempts to fetch SSH keys (1) are obsolete (2).

Oh, and if it does fetch keys, it sets them as the authorized_keys
for the superuser root, when Google Compute Engine wants no-one to
log in as root (1), instead seeming to want new user accounts
created for each Google user account given access to the Google Cloud
Platform project.

Saving this link here in case I end up having time to look into it
more:
https://cloud.google.com/compute/docs/images/configuring-imported-images

Same here. Google provides the account daemon in its compute-image-packages and it would be great to get it working under NixOS.

I also had troubles trying to boot the google-cloud-image using NixOps.
For now, this is the minimal working configuration and its journalctl boot log.
$ nixops --version
NixOps 1.5.2
$ nix-channel --list
nixpkgs https://nixos.org/channels/nixos-17.09

fetch-ssh-keys.service
After a thorough investigation, I found that fetch-ssh-keys.service duplicates the fetch-ssh-keys-start.service and can be disabled.
@8573 looking at your boot log, you are having issues with the fetch-ssh-keys-start.service and not the fetch-ssh-keys.service. The names are very confusing. For me fetch-ssh-keys-start.service works well and is able to fetch the keys from instance's metadata correctly.
google_instance_setup.service
First, fetch-ssh-keys-start.service downloads /etc/ssh/ssh_host_ed25519_key, host key of the instance.
Dec 29 18:12:07 localhost fetch-ssh-keys-start[891]: Downloaded /etc/ssh/ssh_host_ed25519_key
Dec 29 18:12:07 localhost systemd[1]: Starting SSH Daemon...
Dec 29 18:12:09 localhost sshd-pre-start[914]: Generating public/private rsa key pair.
Dec 29 18:12:09 localhost sshd-pre-start[914]: Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Dec 29 18:12:09 localhost sshd-pre-start[914]: Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.

Next, google_instance_setup.service overwrites it by generating a new host key.
Dec 29 18:14:41 machine google_instance_setup[3333]: instance-setup: INFO Generating SSH key /etc/ssh/ssh_host_ed25519_key.
Dec 29 18:14:41 machine instance-setup[3333]: INFO Generating SSH key /etc/ssh/ssh_host_ed25519_key.

This result in an error when trying to ssh to the host:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:mpfuuc1GASOCQaUO9XLmqrDzZjwFAq8aT4U++Hoe3I8.
Please contact your system administrator.
Add correct host key in /home/dbushev/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /home/dbushev/.ssh/known_hosts:8
ED25519 host key for <IP_ADDRESS> has changed and you have requested strict checking.
Host key verification failed.

I thought google-instance-setup generates new key because is not able to fetch the metadata:
Dec 29 18:14:36 machine google_instance_setup[3333]: instance-setup: ERROR GET request error retrieving metadata. <urlopen error [Errno 101] Network is unreachable>.
Dec 29 18:14:36 machine instance-setup[3333]: ERROR GET request error retrieving metadata. <urlopen error [Errno 101] Network is unreachable>.

But even sequencing it after the dhcpcd.service, the error is gone, but it still overwrites the keys.
I was able to fix it only by backing up the keys and restoring after the google-instance-setup is done.
Summary
I'll update https://github.com/NixOS/nixpkgs/pull/33004 and remove the part that closes this issue. I also understand that these problems go beyond the scope of this issue. I'll see what's there in the issue tracker, and maybe create a separate one for the google-instance-setup

After a thorough investigation, […]

@4e6: Thanks for the thorough investigation!

Work to fix this is going on in https://github.com/NixOS/nixpkgs/pull/51566, which uses libnss, pam and metadata.google.internal to configure accounts and ssh keys via oslogin.

I think this can be closed. I use oslogin quite extensively, and it's enabled by default in google-compute-config.nix.


s3-crt: Crash when calling PutObjectAsync without context

Describe the bug
We are encountering a segmentation fault when calling the PutObjectAsync method in the s3-crt client. The issue specifically occurs when the Aws::Client::AsyncCallerContext parameter is not provided.
This issue did not occur with previous versions of the AWS SDK, suggesting a possible regression. Based on the timing, the problem may be linked to changes introduced in https://github.com/aws/aws-sdk-cpp/issues/3138.
Regression Issue

[X] Select this option if this issue appears to be a regression.

Expected Behavior
The program should execute without crashing, even when PutObjectAsync is called without an AsyncCallerContext.
Current Behavior
The program crashes with a segmentation fault.
(gdb)
#0  0x000055c273be98db in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_data (this=<optimized out>)
    at <redacted>/sysroots/skylake-server-64-vigem-linux/usr/include/c++/13.3.0/bits/basic_string.h:223
#1  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_is_local (this=<optimized out>)
    at <redacted>/sysroots/skylake-server-64-vigem-linux/usr/include/c++/13.3.0/bits/basic_string.h:264
#2  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::capacity (this=<optimized out>)
    at <redacted>/sysroots/skylake-server-64-vigem-linux/usr/include/c++/13.3.0/bits/basic_string.h:1171
#3  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign (this=0x28, __str="S3CrtClient")
    at <redacted>/sysroots/skylake-server-64-vigem-linux/usr/include/c++/13.3.0/bits/basic_string.tcc:283
#4  0x00007f80266c8acc in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign (__str=..., this=<optimized out>)
    at /usr/src/debug/aws-sdk-cpp/1.11.432/src/aws-cpp-sdk-core/include/aws/core/client/AsyncCallerContext.h:35
#5  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator= (__str=..., this=<optimized out>) at /usr/include/c++/13.3.0/bits/basic_string.h:814
#6  Aws::Client::MonitorContext::StartMonitorContext (this=0x28, client="S3CrtClient", request="PutObject",
    httpRequest=std::shared_ptr<Aws::Http::HttpRequest> (use count 2, weak count 0) = {...})
    at /usr/src/debug/aws-sdk-cpp/1.11.432/src/aws-cpp-sdk-core/include/aws/core/client/AsyncCallerContext.h:35
#7  0x00007f802669a28c in Aws::S3Crt::S3CrtClient::PutObjectAsync(Aws::S3Crt::Model::PutObjectRequest const&, std::function<void (Aws::S3Crt::S3CrtClient const*, Aws::S3Crt::Model::PutObjectRequest const&, Aws::Utils::Outcome<Aws::S3Crt::Model::PutObjectResult, Aws::S3Crt::S3CrtError> const&, std::shared_ptr<Aws::Client::AsyncCallerContext const> const&)> const&, std::shared_ptr<Aws::Client::AsyncCallerContext const> const&) const (this=0x7f801011ea20, request=..., handler=...,
    handlerContext=std::shared_ptr<const Aws::Client::AsyncCallerContext> (use count 2, weak count 0) = {...})
    at /usr/src/debug/aws-sdk-cpp/1.11.432/generated/src/aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp:1107

Reproduction Steps
N/A
Possible Solution
No response
Additional Information/Context
No response
AWS CPP SDK version used
1.11.432
Compiler and Version used
(GCC) 13.3.0
Operating System and version
Linux / Yocto Scarthgap

Could you please paste your code snippet so that we can troubleshoot your specific case?

You should be able to reproduce the issue with the following code snippet:
#include <aws/core/Aws.h>
#include <aws/s3-crt/S3CrtClient.h>
#include <aws/s3-crt/model/PutObjectRequest.h>
#include <aws/core/utils/ratelimiter/DefaultRateLimiter.h>
#include <aws/core/auth/AWSCredentialsProvider.h>
#include <aws/core/utils/memory/stl/AWSStringStream.h>
#include <aws/core/utils/Outcome.h>
#include <iostream>
#include <fstream>

void UploadFileAsync(const Aws::String& bucket_name, const Aws::String& object_name, const Aws::String& file_path) {
    Aws::S3Crt::S3CrtClient s3_client;

    Aws::S3Crt::Model::PutObjectRequest request;
    request.SetBucket(bucket_name);
    request.SetKey(object_name);

    auto file = Aws::MakeShared<Aws::FStream>("SampleAllocationTag", file_path.c_str(), std::ios_base::in | std::ios_base::binary);
    if (!file->good()) {
        std::cerr << "Failed to open file: " << file_path << std::endl;
        return;
    }

    request.SetBody(file);

    auto callback = [](const Aws::S3Crt::S3CrtClient* client,
                       const Aws::S3Crt::Model::PutObjectRequest& request,
                       const Aws::S3Crt::Model::PutObjectOutcome& outcome,
                       const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) {
        if (outcome.IsSuccess()) {
            std::cout << "File uploaded successfully!" << std::endl;
        } else {
            std::cerr << "Failed to upload file: " << outcome.GetError().GetMessage() << std::endl;
        }
    };

    // SEGFAULT:
    s3_client.PutObjectAsync(request, callback);
}

int main(int argc, char** argv) {
    if (argc != 4) {
        std::cerr << "Usage: " << argv[0] << " <bucket_name> <object_name> <file_path>" << std::endl;
        return 1;
    }

    Aws::SDKOptions options;
    Aws::InitAPI(options);
    {
        const Aws::String bucket_name(argv[1]);
        const Aws::String object_name(argv[2]);
        const Aws::String file_path(argv[3]);

        UploadFileAsync(bucket_name, object_name, file_path);

        std::this_thread::sleep_for(std::chrono::seconds(5));
    }
    Aws::ShutdownAPI(options);
    return 0;
}

A possible workaround is to pass a context to PutObjectAsync():
    std::shared_ptr<Aws::Client::AsyncCallerContext> context =
            Aws::MakeShared<Aws::Client::AsyncCallerContext>("PutObjectAllocationTag");
    context->SetUUID("SOME_UUUID");
    s3_client.PutObjectAsync(request, callback, context);

I could replicate the issue. A bug fix is under way and will be available soon.


Decide about logging in management commands

Fixed with https://github.com/dolamroth/starlette-web/commit/a64f99953e426acf6cf8db9941851f8d6f0d8575
Commands, which are only supposed to run from command line (naturally, most of them), will use print instead of logging, since output is only designed to be passed to STDOUT.


Write DSL for saving/restoring mutable properties' values

e. g.
val smth: Whatever.() -> Unit = {
    +someStringProp
    +someIntProp
    +someParcelableProp // (?)
}

toParcel(smth)
fromParcel(smth)
toByteArray(smth)
toByteArray(smth)

Persistent ViewModels may be very useful.

Should remove useless Byte and Short bindings.
And, on the other hand, should add some bindings for nullable properties.

Looks like we don't need nullable values since users can't write nullable texts in fields.


Script permissions: git trackable?

Thanks for this!
I'm wondering if I could in any way git track the backup and crontab scripts if they're only readable for root? Any clue?
And out of curiosity: why do the file permissions have to be set to 700/600?

Hey,

I'm wondering if I could in any way git track the backup and crontab scripts if they're only readable for root? Any clue?

Let me be honest: I created this years ago and don't even use it myself. I keep it (and update sometimes) due to popularity (number of pulls). So, I can't really tell. Sorry.

And out of curiosity: why do the file permissions have to be set to 700/600?

That's something I don't know any more. It's not well documented but If I wrote it down back then, I am sure I had issues with other file permissions. But which exactly? I don't remember. Sorry again.
We can keep this issue open in case anyone knows and can help.
Have a nice day!


Read EntitySet or Features from a URL

Using ft.load_features() or ft.read_entityset(), it currently is not possible to read from a url such as s3. It would be useful if features and entitysets could be read from a url to avoid the need for local storage.

This library could be a good way to do it: https://github.com/RaRe-Technologies/smart_open

Related to #73


On Prem Azure Devops Migration fails

Hi,
Any plans to support migration from on prem Azure DevOps (git) to gitea?
I have tried and it just fails - possibly because authentication in azure devops is not using basic authentication but something else?
It just logs:
May 19 18:15:27 git gitea[687]: #033[36m2022/05/19 18:15:27 #033[0m#033[32m...ervices/task/task.go:56:#033[32mhandle()#033[0m #033[1;31m[E]#033[0m Run task failed: #033[1mAuthentication failed: Clone: exit status 128 - fatal: Authentication failed for 'http://devops.root.dom/ROOT/common/_git/Helm/'

I am 100% certain that the username/password combo is correct, since I use it on a daily basis - and also can access the repo from another service - using the exact same combo.
I also have this in my app.ini
[migrations]
ALLOW_LOCALNETWORKS = true

My guess is that it is probably because I have a "special" character in my password and when I turn on debug logging I can see the url it tries to clone - and if I copy/paste that URL and do a manual git clone from the prompt - I also get the same:
fatal: Authentication failed for 'http://devops.root.dom/ROOT/common/_git/Helm/'

If I do a
git clone<EMAIL_ADDRESS>
And manually type in the password - it just works.
I have no idea if its some kind of escaping that happens that messes up the http request inside git - or if its simply wrongly escaped from gitea's side.
Do I just have to accept this?
According to "people" on the internet, then it seems to have been escaped correctly according to https://en.wikipedia.org/wiki/Percent-encoding - but no dice - I have used other systems in the past that did not like my password.
To give a hint about what character that messes it up - its # - which I know is bad in a url - but I refuse to change my password just because some systems do not like it.
wget on the other hand just accepts the encoded url - so I am beginning to think its a bug in git.
Edit:
Just tested on a windows machine and git clone just works with the encoded url (git version 2.33) - on the gitea server (Rocky Linux) - git version 2.27.0 it fails - so either its a bug that is fixed in 2.33 - or an OS issue that is causing this.
Edit2:
Updated git to version 2.31 on the server - and its the same issue. So I am thinking its a git on linux issue.
Originally posted by @bjornbouetsmith in https://github.com/go-gitea/gitea/issues/8689#issuecomment-1131956921

Also tested on debian 11 with git version 2.34.1 and its the same issue.
So git on Linux in my very simple test does simply not handle escaping of characters correctly,

Tested with a different username and a plain password without any special characters in it - and its the same issue. I think git does not support proper http authentication as such, i.e. challenge and response.
When I use the same password with wget
It writes out:
Resolving devops.root.dom (devops.root.dom)... <IP_ADDRESS>
Connecting to devops.root.dom (devops.root.dom)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: NTLM
Connecting to devops.root.dom (devops.root.dom)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Then wget properly encodes a response with the username/password the and request suceeds.
So possibly its a git on linux vs azure devops on prem incompatibility - and what might need to be done instead is use ssh for git cloning, since that would fix the issue entirely.
Then whoever wants to migrate a azure devops repository would need to enable ssh on the server, create an authentication token and then it should just work if gitea pipes the git clone with a ssh url a ssh "url".

I can verify that adding a ssh public key to azure devops allows me to git clone.
So I think what needs to be done for "Azure Devops" in gitea is that it gets its own "migration" type and then tell people to use ssh.
Basically I would guess that what needs to be done is

User runninh gitea needs  ssh-keys generated
public key needs to be configured in azure devops
migrate/clone url should only accept ssh

Success.

related:  #1635

Is this still an issue? I'v tested it with a pull and push mirror and both worked.

Is this still an issue? I'v tested it with a pull and push mirror and both worked.

Yes, I just tried to fire up my gitea installation - updated to 17.3 and same exact issue.
Authentication error as I described above.
What type of migration did you try to do?
And please provide exact steps, was it http/https or other url you used?

@kdumontnu asked me about this issue, so I registered at Devops and created a repo. The Devops UI told me to use admin as username and zpv5hppqgmk5p76b...h4bwrrpaq as password. Then I setup a push mirror from Gitea to Devops with the provided url and credentials. Gitea created a mirror information like this in the git config file:
[remote "remote_mirror_CDjCL4odYe"]
    url =<EMAIL_ADDRESS>    mirror = true
    push = +refs/heads/*:refs/heads/*
    push = +refs/tags/*:refs/tags/*

That resulted in

After that I created a (mirror) migration for that repo and that worked too.

[remote "remote_mirror_CDjCL4odYe"]
url =<EMAIL_ADDRESS>mirror = true
push = +refs/heads/:refs/heads/
push = +refs/tags/:refs/tags/

You are using azure devops "cloud version" - this issue is about on prem dev ops - also its pretty poor that gitea stores the credentials for the mirror in the configuration file.
Also - I am not trying to set up a mirror - simply migrate a git repository from on prem azure devops to gitea.

Oh, sorry about that. I will try with an on prem dev ops.

Oh, sorry about that. I will try with an on prem dev ops.

No worries - but make sure you try a migration - and not try to set up any mirrors.

Got it working. Basically the on prem Devops needs the Authorization header for cloning. https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Linux#use-a-pat
I will not create a PR for that because this should be implemented as a generic "add custom headers to git requests" instead of just the Authorization header. A possible implementation needs to support the migration/clone, pull/push mirror, LFS client pull/push, ... and everything I forgot. It may not be worth the effort just to enable migrations from on prem Devops as no other service needs this.
These are the code changes I made:
diff --git a/modules/git/repo.go b/modules/git/repo.go
index 8ba3ae4fd..f601b7300 100644
--- a/modules/git/repo.go
+++ b/modules/git/repo.go
@@ -98,16 +98,17 @@ func (repo *Repository) IsEmpty() (bool, error) {

 // CloneRepoOptions options when clone a repository
 type CloneRepoOptions struct {
-       Timeout       time.Duration
-       Mirror        bool
-       Bare          bool
-       Quiet         bool
-       Branch        string
-       Shared        bool
-       NoCheckout    bool
-       Depth         int
-       Filter        string
-       SkipTLSVerify bool
+       Timeout             time.Duration
+       Mirror              bool
+       Bare                bool
+       Quiet               bool
+       Branch              string
+       Shared              bool
+       NoCheckout          bool
+       Depth               int
+       Filter              string
+       SkipTLSVerify       bool
+       AuthorizationHeader string
 }

 // Clone clones original repository to target path.
@@ -126,6 +127,9 @@ func CloneWithArgs(ctx context.Context, args []CmdArg, from, to string, opts Clo
        if opts.SkipTLSVerify {
                cmd.AddArguments("-c", "http.sslVerify=false")
        }
+       if opts.AuthorizationHeader != "" {
+               cmd.AddArguments("-c").AddDynamicArguments("http.extraHeader=" + opts.AuthorizationHeader)
+       }
        if opts.Mirror {
                cmd.AddArguments("--mirror")
        }
diff --git a/modules/migration/options.go b/modules/migration/options.go
index 1e92a1b0b..944d83bc1 100644
--- a/modules/migration/options.go
+++ b/modules/migration/options.go
@@ -11,13 +11,15 @@ import "code.gitea.io/gitea/modules/structs"
 // this is for internal usage by migrations module and func who interact with it
 type MigrateOptions struct {
        // required: true
-       CloneAddr             string `json:"clone_addr" binding:"Required"`
-       CloneAddrEncrypted    string `json:"clone_addr_encrypted,omitempty"`
-       AuthUsername          string `json:"auth_username"`
-       AuthPassword          string `json:"-"`
-       AuthPasswordEncrypted string `json:"auth_password_encrypted,omitempty"`
-       AuthToken             string `json:"-"`
-       AuthTokenEncrypted    string `json:"auth_token_encrypted,omitempty"`
+       CloneAddr              string `json:"clone_addr" binding:"Required"`
+       CloneAddrEncrypted     string `json:"clone_addr_encrypted,omitempty"`
+       AuthUsername           string `json:"auth_username"`
+       AuthPassword           string `json:"-"`
+       AuthPasswordEncrypted  string `json:"auth_password_encrypted,omitempty"`
+       AuthToken              string `json:"-"`
+       AuthTokenEncrypted     string `json:"auth_token_encrypted,omitempty"`
+       UseAuthorizationHeader bool   `json:"use_authorization_header"`
+       AuthorizationHeader    string `json:"-"`
        // required: true
        UID int `json:"uid" binding:"Required"`
        // required: true
diff --git a/modules/repository/repo.go b/modules/repository/repo.go
index de6de3bda..1e69acb67 100644
--- a/modules/repository/repo.go
+++ b/modules/repository/repo.go
@@ -74,10 +74,11 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User,
        }

        if err = git.Clone(ctx, opts.CloneAddr, repoPath, git.CloneRepoOptions{
-               Mirror:        true,
-               Quiet:         true,
-               Timeout:       migrateTimeout,
-               SkipTLSVerify: setting.Migrations.SkipTLSVerify,
+               Mirror:              true,
+               Quiet:               true,
+               Timeout:             migrateTimeout,
+               SkipTLSVerify:       setting.Migrations.SkipTLSVerify,
+               AuthorizationHeader: opts.AuthorizationHeader,
        }); err != nil {
                return repo, fmt.Errorf("Clone: %w", err)
        }
@@ -95,11 +96,12 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User,
                        }

                        if err := git.Clone(ctx, wikiRemotePath, wikiPath, git.CloneRepoOptions{
-                               Mirror:        true,
-                               Quiet:         true,
-                               Timeout:       migrateTimeout,
-                               Branch:        "master",
-                               SkipTLSVerify: setting.Migrations.SkipTLSVerify,
+                               Mirror:              true,
+                               Quiet:               true,
+                               Timeout:             migrateTimeout,
+                               Branch:              "master",
+                               SkipTLSVerify:       setting.Migrations.SkipTLSVerify,
+                               AuthorizationHeader: opts.AuthorizationHeader,
                        }); err != nil {
                                log.Warn("Clone wiki: %v", err)
                                if err := util.RemoveAll(wikiPath); err != nil {
diff --git a/services/migrations/gitea_uploader.go b/services/migrations/gitea_uploader.go
index 8a7533b3d..5de25dfb6 100644
--- a/services/migrations/gitea_uploader.go
+++ b/services/migrations/gitea_uploader.go
@@ -7,6 +7,7 @@ package migrations

 import (
        "context"
+       "encoding/base64"
        "fmt"
        "io"
        "os"
@@ -118,19 +119,24 @@ func (g *GiteaLocalUploader) CreateRepo(repo *base.Repository, opts base.Migrate
        r.DefaultBranch = repo.DefaultBranch
        r.Description = repo.Description

+       if opts.UseAuthorizationHeader {
+               opts.AuthorizationHeader = fmt.Sprintf("Authorization: Basic %s", base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", opts.AuthUsername, opts.AuthPassword))))
+       }
+
        r, err = repo_module.MigrateRepositoryGitData(g.ctx, owner, r, base.MigrateOptions{
-               RepoName:       g.repoName,
-               Description:    repo.Description,
-               OriginalURL:    repo.OriginalURL,
-               GitServiceType: opts.GitServiceType,
-               Mirror:         repo.IsMirror,
-               LFS:            opts.LFS,
-               LFSEndpoint:    opts.LFSEndpoint,
-               CloneAddr:      repo.CloneURL, // SECURITY: we will assume that this has already been checked
-               Private:        repo.IsPrivate,
-               Wiki:           opts.Wiki,
-               Releases:       opts.Releases, // if didn't get releases, then sync them from tags
-               MirrorInterval: opts.MirrorInterval,
+               RepoName:            g.repoName,
+               Description:         repo.Description,
+               OriginalURL:         repo.OriginalURL,
+               GitServiceType:      opts.GitServiceType,
+               Mirror:              repo.IsMirror,
+               LFS:                 opts.LFS,
+               LFSEndpoint:         opts.LFSEndpoint,
+               CloneAddr:           repo.CloneURL, // SECURITY: we will assume that this has already been checked
+               Private:             repo.IsPrivate,
+               Wiki:                opts.Wiki,
+               Releases:            opts.Releases, // if didn't get releases, then sync them from tags
+               MirrorInterval:      opts.MirrorInterval,
+               AuthorizationHeader: opts.AuthorizationHeader,
        }, NewMigrationHTTPTransport())

        g.sameApp = strings.HasPrefix(repo.OriginalURL, setting.AppURL)

Nice find @KN4CK3R - but what I don't understand is why other implementations do not require this - surely they all use username/password authentication.
Other repositories probably just relies on the git binary doing the authentication for them.
All basic authentication works like that.
Server sends a challenge, client sends a "Authorization" header.
And I am sorry you feel that its not worth it to fix this just because its "only" azure devops on prem that needs this - I can see other settings the the "MigrateOptions" - that are specific other other types, i.e. Wiki.
Also I think it can also be a bug in the git client possibly, it should be able to handle the authentication, but possibly the azure devops server requests "NTLM" authenticaion and then git just says "nope" - and on windows perhaps there is a special handling of that that translates that into "BASIC" instead.
It would be nice to see the actual headers the azure devops server sends to see if its possible to get a hint to why git cannot just provide basic authentication header automatically, as I am sure that is what it does to all other http/https git urls.

Maybe you can find your answer in this thread: https://stackoverflow.com/questions/64800010/why-does-http-basic-auth-works-using-git-c-http-extraheader-authorization-ba

My guess is that at some point urls with username/password in the url will stop working - and in my opinion it should be already.
Inside git, perhaps the username:password gets turned into an authorization header already, but I am guessing that ALL existing implementation would work - if the default behavior in gitea was to ALWAYS add the http.extraHeader=
for authorization and never put it into the url, which also have the added benefit that no username/password combos are stored in git config files.


Populate select2 using Rxjs

I've binded select2 directive to a component field plans:
<select2 id="default-select"
    (valueChanged)="select2Changed($event)"
    [data]="plans"   <<<<<<<<<<<<<<<<
    [width]="250"
    [theme]="'bootstrap'">
</select2>

I'm populating plans field using Rxjs:
export class Signin implements OnInit {
    private plans: Array<Select2OptionData>;
    constructor() {
        this.plans = [];
    }
    ngOnInit():void {
        this.serverService
            .list()
            .subscribe(
                (result: any) => {
                    this.plans.splice(0, this.plans.length);
                    for (let plan of result)
                        this.plans.push({id: plan.id, text: plan.name});
                },
                (error: any) => {

                }
            );
    }
}

Nevertheless, select2 is not populated. I've debugged data is well received and pushed on on plans field.
Should I take in mind any issue?

Can you please debug it a little bit more. Is this (function)[https://github.com/NejcZdovc/ng2-select2/blob/master/lib/ng2-select2.component.ts#L58] called when you receive all success from subscribe?

I've set a breakpoint on:
Select2Component.prototype.ngOnChanges = function (changes) {
        if (!this.element) {  <<<<<<<<<<<<<<<<<<BREAKPOINT
            return;
        }

Nevertheless, when the breakpoint is active, the select2 is populated. When the breakpoint is disabled, the select2 is not populated.
When I go on on the code execution it goes in to return line.

@jeusdi I'm using observables in my solution as well.  I would recommend structuring your code like this:
<select2 id="default-select"
    (valueChanged)="select2Changed($event)"
    [data]="plans$ | async"
    [width]="250"
    [theme]="'bootstrap'">
</select2>

export class Signin implements OnInit {
    private plans$: Subject<any> = new BehaviorSubject([]);
    constructor() {
    }
    ngOnInit():void {
        this.serverService
            .list()
            .subscribe(
                (result: any) => {
                    this.plans$.next(result.map((plan) => {
                      return {id: plan.id, text: plan.name};
                    }));
                },
                (error: any) => {

                }
            );
    }
}

This takes advantage of the built-in subscription to an observable by Angular in the template.  And we can stay immutable by transforming the results from your service with map, then nexting (new word) that new array into the stream for our template subscription to see.
I've used this technique in all of my select2 bindings and it works like a charm.
FYI, Subject and BehaviorSubject are imported from rxjs.

How to set default value, if we are populating data from an Observable ?


✨  now accepts type for scripts

Description
With various bundlers/frameworks providing much improved support for ES modules, it'd be nice if code like:
<Html scripts={[{path: '/foo.js', type: 'module'}] />

generated content like
<script src="/foo.js" type="module" />

Type of change

[x] @shopify/react-html Minor
[x] @shopify/sewing-kit-koa Minor

Checklist

[x] I have added a changelog entry, prefixed by the type of change noted above

@Shopify/web-foundations I've updated the API based on my discussion with Chris, and added some nomodule tests.  Please take another 👀

@Shopify/web-foundations I've updated the API based on my discussion with Chris, and added some nomodule tests.  Please take another 👀


[$500] IOU - 3-dot menu is not stable when open ( keyboard opens when tap 3-dot menu) detailed chat

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.35-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Tap FAB> Request money> Manual> Finish the request flow
Navigate to detailed IOU page
Tap 3-dot menu

Expected Result:
Dropdown menu should open with no visual issues
Actual Result:
3-dot menu is not stable.
When tap on 3-dot menu keyboard opens and push the menu up
Workaround:
Unknonw
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/ce1a4fa1-7c3c-4789-aabf-5646821a9852
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0121bcb39044303abb
Upwork Job ID:<PHONE_NUMBER>702603264
Last Price Increase: 2024-02-02

We think that this bug might be related to #vip-vsp
CC @quinthar

This is working fine for me. Closing as this doesn't seem to be reproducible!
https://github.com/Expensify/App/assets/54866469/cd783080-5bd9-44fd-8759-31f60d577519


feat: 🎸 allow special characters for ticker

Description
allows usage of _ - . and / in tickers
JIRA Link
https://polymesh.atlassian.net/browse/DA-1153
Checklist

[x] Updated the Readme.md (if required) ?

/fast-forward

:tada: This PR is included in version 24.4.0-alpha.2 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 24.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


RAS-1310 Upgrade liquibase dependency in collection exercise service

What and why?
Upgrades liquibase to the most up to date version and moves commons io from a test only dependency to being including when compiling which is what caused liqubase to break
How to test?

run acceptance tests in your environment
deploy this pr to your environment
make sure that it deploys correctly and you can access collection exercises in rOps
run the acceptance tests again and/or try to access collection exercises through rOps/frontstage

Jira
RAS-1310

/deploy scorfs


Vendored importlib_resources uses obsolete typing.io import

Issue description
The vendored version of importlib_resources uses the typing.io namespace, which is deprecated since Python 3.8 and will be removed in Python 3.12 (cf. python/cpython#92871). This was seemingly fixed in importlib_resources v5.2.1 (according to the changelog).

I think we can completely drop this vendored library. I don't see it used any where.


Autocomplete item not being selected on enter

When I press enter after having typed a partially matched tag name, the full autocompleted name for that name is not being selected. Instead the partially typed name is added to the list of tags (e.g. 'Tag o' instead of 'Tag one').
This bug appears when using ngTagsInput in combination with AngularJS 1.5 RC0, but not with AngularJS 1.4.8.
I've tried setting the parameter select-first-match to both true and false, but this did not have any effect.
Here's the configuration I'm using:
<tags-input ng-model="vm.tags"
           key-property="tag_name"
           display-property="tag_name"
           add-on-enter="true"
           add-on-space="false"
           add-on-comma="false"
           add-on-blur="false"
           add-on-paste="false"
           replace-spaces-with-dashes="false"
           on-tag-adding="vm.addTag($tag)"
           on-tag-removing="vm.removeTag($tag)"
           enable-editing-last-tag="false"
           select-on-backspace="false"
           template="{{vm.templateName}}">

    <auto-complete source="vm.GroupTags.search($query)"
                  display-property="tag_name"
                  min-length="1"
                  debounce-delay="0">
    </auto-complete>

</tags-input>

The same is for me.

I am also having the same issue. Is there any solution ?

Looks like on 'input-keydown' registration changes with AngularJS 1.5.
One workaround is to change SimplePubSub's On method to do 'unshift' instead of  push;; but this is not a good solution and seems brittle

definitely an issue with angularjs 1.5.0, selection by enter key from the autocomplete list isn't working for me as well. the markup i'm using is pretty simple:
<tags-input id="tags" ng-model="selected.tokens" add-on-enter="true">
<auto-complete source="loadTags($query)">
</auto-complete>
</tags-input>

same problem

I've found where to change.
https://github.com/angular/angular.js/commit/652b83eb226131d131a44453520a569202aa4aac?diff=unified
auto-complete is compiled after tags-input compile thus to be ensure that is first listener to auto-complete.

so from reading this thread it seems like this has been fixed?
I updated my files and it's still the same.
am I missing something?

Same issue here...using angular 1.5.5 and ng-tags-input 3.0.0

Facing same problem.
Any solution yet??

@yugansh20 have a look at: https://github.com/mbenford/ngTagsInput/issues/638#issuecomment-218357299.  the commit reference a few comments above this one seems to have fixed the issue.

Great this is fixed - can we get a 3.0.1 release with the fix please?

If you need it right now, you can get it by running:
npm install --save wizbii/ngTagsInput#v3.0.1

It's going to pull a built version with the latest commits. Please also note that it includes a new feature to use a custom "track by" expression (it's pending merge #633).

Just so you guys know, version 3.1.1 has been released earlier today on all distribution channels. v3.1.0 has a bug that affects applications using Angular prior than 1.5.x, so don't use it.

This issue was selected to be spring-cleaned by a script. More information can be found here.
If anyone thinks this was a mistake and this issue should be reopened, please leave a message below explaining why. Before doing so, please consider reading the CONTRIBUTING file.


510 breadcrumbs at 500bp

Fixed bug with breadcrumb rendering two arrows at 500px.
This was due to a conflict in breakpoints. Increasing the breakpoint by 1px fixed the issue.

 Issue #759: Breadcrumbs not rendering correctly at breakpoint 500px and below.

Would a better solution be to calculate S breakpoint + 1px or change the definition of the S breakpoint rather than fixing it to 501px?

Would a better solution be to calculate S breakpoint + 1px or change the definition of the S breakpoint rather than fixing it to 501px?

@rmccar I think we can fix this without the need for changing breakpoints. I will revisit this and see what can be done later today.

Would a better solution be to calculate S breakpoint + 1px or change the definition of the S breakpoint rather than fixing it to 501px?

@rmccar I think we can fix this without the need for changing breakpoints. I will revisit this and see what can be done later today.

I'd imagine overlapping breakpoints will cause issues on other components, so probably best to change the bp.

Would a better solution be to calculate S breakpoint + 1px or change the definition of the S breakpoint rather than fixing it to 501px?

@rmccar I think we can fix this without the need for changing breakpoints. I will revisit this and see what can be done later today.

I'd imagine overlapping breakpoints will cause issues on other components, so probably best to change the bp.

Agreed lets remove any min - max usage, and stick to a true mobile first approach with min-width only.


Order of object keys changes between calling first and rest

The following transcript shows what happens inside map!. The functions first and rest are called on the same object, but depending on the current order of the object it will return the values in different orders, which can result in sometimes getting the same value twice. This is shown in line 262, 263, 268 and 269.
This will also happen in other places where first and rest are called on the same object.
I read this section in the documentation and could refer to the same situation. If this was intended to apply to this situation, perhaps this could be made more explicit?

An object can be iterated over as a sequence. The resulting sequence is guaranteed to have no duplicates, but is not guaranteed to return in any particular order.

Transcript:
user [255]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [255]= [(:x . 1) ((:y . 2))]
user [256]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [256]= [(:x . 1) ((:y . 2))]
user [257]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [257]= [(:x . 1) ((:y . 2))]
user [258]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [258]= [(:x . 1) ((:y . 2))]
user [259]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [259]= [(:x . 1) ((:y . 2))]
user [260]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [260]= [(:x . 1) ((:y . 2))]
user [261]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [261]= [(:x . 1) ((:y . 2))]
user [262]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [262]= [(:x . 1) ((:x . 1))]
user [263]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [263]= [(:y . 2) ((:y . 2))]
user [264]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [264]= [(:x . 1) ((:y . 2))]
user [265]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [265]= [(:y . 2) ((:x . 1))]
user [266]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [266]= [(:x . 1) ((:y . 2))]
user [267]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [267]= [(:y . 2) ((:x . 1))]
user [268]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [268]= [(:y . 2) ((:y . 2))]
user [269]> (let ([x {:x 1 :y 2}]) [(first x) (rest x)])
     [269]= [(:x . 1) ((:x . 1))]

Hi @pstuifzand, thanks for reporting. I originally wanted to snapshot the result of toSeq(), but opted not to because of the memory impact. That said, might make sense to do so. Will look into it over the weekend.

Hi @pstuifzand, thanks for reporting. I originally wanted to snapshot the result of toSeq(), but opted not to because of the memory impact. That said, might make sense to do so. Will look into it over the weekend.

Hi @pstuifzand, had a look at it last night. Definitely strange how repeatedly ranging over the keys of an unmodified map would be non-deterministic in Go, but very much seems to be the case.
I've pushed an intermediate solution to master that orders the pairs by the pointer of the keys. It also maintains the (rest) value as an Object. (It had been converted to a list before).
Let me know if it's working for you.

Hi @pstuifzand, had a look at it last night. Definitely strange how repeatedly ranging over the keys of an unmodified map would be non-deterministic in Go, but very much seems to be the case.
I've pushed an intermediate solution to master that orders the pairs by the pointer of the keys. It also maintains the (rest) value as an Object. (It had been converted to a list before).
Let me know if it's working for you.

The iteration order is randomized. See the last section in this article. https://blog.golang.org/maps

The iteration order is randomized. See the last section in this article. https://blog.golang.org/maps

Hi @kode4food, this solves the problem with changing orders of items. Thank you.

Hi @kode4food, this solves the problem with changing orders of items. Thank you.

@kode4food The map type in go seems to be a hash-map (like hash-map type in Clojure, which also is not sorted). Maybe it would be more clear to have a separate sorted-map type. Since ale will run on Go, maybe this would make more sense.

@kode4food The map type in go seems to be a hash-map (like hash-map type in Clojure, which also is not sorted). Maybe it would be more clear to have a separate sorted-map type. Since ale will run on Go, maybe this would make more sense.

Hi @dc0d, might make sense, yes. Though I'd have to introduce a comparator protocol of some kind to manage the sorting since the map allows for keys of any value. Will think about a clean way to do this.
@pstuifzand Glad the change helped. It's far from optimal, but at least you're unblocked

Hi @dc0d, might make sense, yes. Though I'd have to introduce a comparator protocol of some kind to manage the sorting since the map allows for keys of any value. Will think about a clean way to do this.
@pstuifzand Glad the change helped. It's far from optimal, but at least you're unblocked

@pstuifzand Shall I call this closed for now?

@pstuifzand Shall I call this closed for now?

Yeah, no problem.

Yeah, no problem.


SCP-3: Replication Refactoring

https://github.com/orbitdb/SCPs/blob/SCP-001/scps/SCP-001_Replication-Refactoring.md

Work on this is now happening here: https://github.com/orbitdb/orbit-db-store/pull/100

This is complete. @tabcat How do you think we should merge this in?

This is complete.

Yea looks fine to merge. These should probably be merged before the implementation not that it matters.

How do you think we should merge this in?

Seems fine right now? If you want to specify how the file should be named and such now would be the time if that's not already done, and maybe some things can be handled with a PR template?


ORC-646: Add Ubuntu 20.04 docker file

This PR aims to support gcc9 testing.

You are added to the Apache ORC contributor group and ORC-646 is assigned to you.

This is merged via https://github.com/apache/orc/commit/0f33183e116789e6b37e38039d2746f6b59a4f0e


add: function that exposes profile names

Motivation and Context

Tooling will often want the ability to list available profiles for someone to select from. Currently the ProfileSet does not expose this.
Description

Added fn profiles() function to ProfileSet
Testing

New unit test added
Checklist

[ ] I have updated CHANGELOG.next.toml if I made changes to the smithy-rs codegen or runtime crates

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Make sure you have precommit installed per the main README.md
it'll run the formatter for you, plus some other stuff


Analytics sensitivities-type risk computations report sensitivity to 100% shift on underlying

Commonly a user would expect to see sensitivity to a 1BP shift rather than a 100% shift. The existing API  inconveniences them by forcing a divide by 10,000 whenever handling results. (Or, if they are not aware of the convention, substantially alarming them first!)
The current design assumes sensitivity to a 100% shift to avoid any ambiguity between inter-analytics calls. e.g. If function A depends on a sensitivity result from function B, it can always rely on the unit of the return value.
Potential solutions include:

change global standard to report 1BP sensitivity
define (and clearly document!) different quote conventions per product type - in certain places use 1BP, 100% in others
introduce a new object which explicitly specifies the result unit for all analytics calls, thus avoiding any ambiguity

The new measures-level API provides this functionality.


Improve PHP 8.4+ support by avoiding implicitly nullable types

This changeset improves PHP 8.4+ support by avoiding implicitly nullable types as discussed in https://github.com/reactphp/promise/pull/260.
Marking this as WIP until the upstream components have been released. In the meantime, this may use temporary development branches. This change only affects v4, so there is no need to backport these changes to v3 or v2.
Builds on top of #86, #81, #15 and https://github.com/reactphp/promise/pull/260

Updated now that https://github.com/reactphp/promise/releases/tag/v3.2.0 has been released, this is now ready for review :shipit:


F4 set descriptive filter

This looks good!  I only had one suggested change, which I can go ahead and add then I am going to merge


Fix broken example link in readme.md

Fix broken link to example in README

Technically the text should also be changed, since it's no longer an Emoji Chat Room demo, rather the example is an embedded Elm clock.

Good point, @peteygao.
This is orthogonal to this PR, but while we're at it, I also had to do a bit of work to get the latest example working on my machine (updating react/dom, removing emojione-picker and using the published version of the library -- as opposed to the relative path). If the maintainers would be interested, I'd be happy to submit an additional PR containing those changes.

@ethagnawl 👍
Really hoping all these improvement PR's are going to get merged by the repo maintainer(s) at some point. I'm having to do this manually in a forked repo to include all the fixes to present to my colleagues (we're using React, and I'd love to slowly introduce Elm).


Enable aliasing a property that is forwarded in at the same level

Fixes an issue where we could rename properties that were forwarded in above us, but not at the same level.
Due to our insight in #23 https://github.com/dfed/SafeDI/pull/23#discussion_r1458189333 (the PR on which this depends), I have rewritten Dependency.Source to have a separate case for an alias. By adding associated values to the enum, we were able to remove multiple optional properties and hard-to-keep-track-of tribal knowledge in the codebase.
Because we have updated the Dependency.Source which SafeDITool may persist, this PR is a breaking change and we will need to roll to a 0.3.0 when this merges.
On top of that, this is a pretty meaty change. I recommend reviewing this change in side-by-side view and turning off whitespace diffs to best understand what we were accomplishing before vs after.

Closing in favor of #26


Feature/xivy 5006 msgraph preview

I Think this should be it to get a glimpse on it at the Sprint Demo

I Think this should be it to get a glimpse on it at the Sprint Demo


Import WSDL location with user and password

Is it possible to import WSDL location (from HTTPS) which requires authentication? https://[user]:[pass]/... is not working.

Hi @milkotodorov.
No, it is not currently support, but I can add support for it in the next release if you wish?
Thanks!
Best regards,
Karl Dahlgren

Hi @karldahlgren,
that would be great.
Thank you very much!

Hi @milkotodorov.
About to look into this issue, but I would need some further information. How would you like the authentication to be done? Basic authentication or did you have something else in mind?
Basic authentication: https://en.wikipedia.org/wiki/Basic_access_authentication
Thanks!
Best regards,
Karl Dahlgren

Hi @karldahlgren,
did you have any chance to look into this?
Thank you,
Milko

Why not @milkotodorov just download the WSDL file and then upload into castlemock?

Hi @mhewedy,
I already did this (the provided example that I gave you), but within the downloaded WSDL, the dependent WSDLs are referenced with their remote location and not with the local files, which need to be changed by hand. And you don't want to do this if you have many dependencies, isn't it?
Makes sense also to support at least basic authentication.

Is it as WCF web services?

This I don't know - we have credentials to access one, but we don't own it.

Hi, did you has the change to look into this?


[tabular] Add refit_full support for LinearRegression

Issue #, if available:
Description of changes:

When can_refit_full tag was added, I forgot to add the tag to linear models. This meant we were skipping refit and using the first fold model, which gives slightly worse results that doing a proper refit.
This PR enables LinearModels to do the refit.
Because we don't yet use LinearModels in default portfolios, this doesn't impact the normal user experience.

Example on AdultIncome dataset:
Mainline:
                      model  score_test  score_val eval_metric
0          LinearModel_FULL   -0.352494  -0.326698    log_loss
1               LinearModel   -0.352494  -0.326698    log_loss

This PR:
                      model  score_test  score_val eval_metric
0          LinearModel_FULL   -0.351792        NaN    log_loss
1               LinearModel   -0.352380  -0.326852    log_loss

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Previous CI Run
Current CI Run

botocore==1.34.111
botocore==1.34.112

boto3==1.34.111
boto3==1.34.112

tifffile==2024.5.10
tifffile==2024.5.22

botocore==1.34.111
botocore==1.34.112

boto3==1.34.111
boto3==1.34.112

tifffile==2024.5.10
tifffile==2024.5.22


STYLE: Default constructors VectorContainer, Iterator, ConstIterator

Defaulted the default-constructors of VectorContainer, VectorContainer::Iterator, and VectorContainer::ConstIterator. Added in-class default member initializers to their member variables.
Added [[maybe_unused]] attributes to itkVectorContainerTest, to avoid Clang warnings ("unused variable 'p_null' [-Wunused-variable]") which would otherwise appear when defaulting those default-constructors.

FYI, The force-push that I just did aims to address those [-Wunused-variable] warnings from https://open.cdash.org/viewBuildError.php?type=1&buildid=9008080:
Site: Azure.Mac-1695298536063
Build Name: Darwin-Build10395-PR4224-Default-constructors-VectorContainer
Build Time: 2023-09-21 12:18:27

/azp run ITK.Linux.Python


Feature request: restore-size command

Hi, I want to propose a restore-size command
Use case: When i messed up the resizing of my tilings, i want to be able to restore it back to every app taking the same space in the respective parent.
Alternative approaches:
Use flatten-workspace-tree - it does resize all apps back to taking same amount of space, but it also resets the layout to only one parent and I need to recreate my layout.
Synopsis:
USAGE: restore-size [-h|--help]
OPTIONS:
-h, --help             Print help
I am not a swift guy at all, but I am willing to work on this feature if it will be useful, Let me know!

Duplicate of #114


LL-7751 Remove Solana from experimental and add it to supported currencies

Solana has a GO for production. :rocket:
This is the last step to enable it as a supported currency.
Also make the EXPERIMENTAL_CURRENCIES toggle a bit more generic and easy to update.
Type
Feature : Solana as supported currency.

Context
https://ledgerhq.atlassian.net/browse/LL-7751

Parts of the app affected / Test plan

On HODL for a while to confirm infra is stable.


@conda-forge-admin, please add bot automerge

Additional comment:
No response

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/types-psutil-feedstock#3.


util: change the way of calculating the approximate distance (#4017)

What have you changed? (mandatory)
Cherry-pick of #4017
What are the type of the changes? (mandatory)

Bug fix (change which fixes an issue)

How has this PR been tested? (mandatory)
unit-test
Does this PR affect documentation (docs) or release note? (mandatory)
No
Does this PR affect tidb-ansible update? (mandatory)
No

/run-all-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1


Using zfsbootmenu breaks my laptop's touchpad (fixed)

Problem:  using zfsbootmenu breaks the touchpad on my laptop (HP Omen 16 2022)
Symptoms:
Booting via zfsbootmenu results in this 1 logged error:
kernel: i2c_designware AMDI0010:03: Unknown Synopsys component type: 0xffffffff
This prevents i2c-designware-pci from attaching properly to the device and providing the interface that subsequently connects to the touchpad via the i2c_hid_acpi driver.
The touchpad does not work.  Booting directly (via grub,  USB live image, ...) the touchpad works.
Solution:
For kernels with this driver built-in (not a module) - includes Arch.
initcall_blacklist=dw_i2c_init_driver,dw_i2c_driver_init  needs to be added to the zbm kernel options that are set using efibootmgr
For kernels where the designware i2c driver is a module use (untested!!):
i2c_designware_pci.blacklist=yes  needs to be added

A user-editable Wiki to help collect small things like this is probably called for. I'll try to get a basic page outline created for this.

Closing because this is a client-side configuration issue. Setting the right KCL with efibootmgr, rEFInd or other intermediate loader, or editing the embedded KCL with zbm-efi-kcl will accomplish what you need.

I've added a very basic initial wiki page at https://github.com/zbm-dev/zfsbootmenu/wiki/Fixes-for-specific-hardware . Feel free to modify the layout if you're so inclined.


How to optimize CPU usage by modifying test_EDTalk_A_use_exp_weight function to leverage GPU

I noticed a significant increase in CPU usage in the following part of demo_EDTalk_A_using_predefined_exp_weights.py
I suspect that the function test_EDTalk_A_use_exp_weight in generator.py is causing this spike in CPU usage. I am planning to modify this function to utilize GPU (CUDA) more efficiently in order to reduce the load on the CPU and improve the calculation speed, anyone here?
img_target_lip = self.lip_vid_target[i:i+1]
if i >= len_pose:
    img_target_pose = self.pose_vid_target[:, -1, :, :, :]
else:
    img_target_pose = self.pose_vid_target[:, i, :, :, :]

img_recon = self.gen.test_EDTalk_A_use_exp_weight(self.img_source, img_target_lip, img_target_pose, self.exp_vid_target, h_start)

vid_target_recon.append(img_recon.unsqueeze(2))

I noticed a significant increase in CPU usage in the following part of demo_EDTalk_A_using_predefined_exp_weights.py
I suspect that the function test_EDTalk_A_use_exp_weight in generator.py is causing this spike in CPU usage. I am planning to modify this function to utilize GPU (CUDA) more efficiently in order to reduce the load on the CPU and improve the calculation speed, anyone here?
img_target_lip = self.lip_vid_target[i:i+1]
if i >= len_pose:
    img_target_pose = self.pose_vid_target[:, -1, :, :, :]
else:
    img_target_pose = self.pose_vid_target[:, i, :, :, :]

img_recon = self.gen.test_EDTalk_A_use_exp_weight(self.img_source, img_target_lip, img_target_pose, self.exp_vid_target, h_start)

vid_target_recon.append(img_recon.unsqueeze(2))

I have checked the codes, and the current models and function calculation are on GPU. I think only loading data depends on CPU.


Feat(eos_cli_config_gen): Global NAT configuration options

Enhancement summary
Provide all global NAT configuration options. Including:

ip nat pool
ip nat synchronization
ip nat translation
ip nat kernel buffer size

Note: IP NAT on IF level will be handled by dedicated FR.

Which component of AVD is impacted
eos_cli_config_gen
Use case example
EOS configuration example:
ip nat translation address selection hash field source-ip
ip nat translation max-entries 5000
ip nat translation max-entries 1000 host
ip nat translation max-entries 200 <IP_ADDRESS>
ip nat translation max-entries 100 <IP_ADDRESS>
ip nat translation counters
ip nat kernel buffer size 16
ip nat pool P1 prefix-length 24
   range <IP_ADDRESS> <IP_ADDRESS> 2000 20000
   range <IP_ADDRESS> <IP_ADDRESS> 2000 20000
ip nat synchronization
   peer-address <IP_ADDRESS>
   local-interface Ethernet11

Describe the solution you would like
Representation in structured configuration:
nat:
  kernel_buffer_size: 16
  pool:
    - name: P1
      prefix_length: 24
      ranges:
        - first_ip: <IP_ADDRESS>
          last_ip: 198.18.20
          start_port: 2000
          end_port: 20000
        - first_ip: <IP_ADDRESS>
          last_ip: 198.18.120
          start_port: 2000
          end_port: 20000
  synchronization:
    peer_address: <IP_ADDRESS>
    local_interface: Ethernet11
  translation:
    address_selection_hash_field_source_ip: true
    counters: true
    max_entries:
      limit: 5000
      host_limit: 1000
      ip_limits:
        - ip: <IP_ADDRESS>
          limit: 100
        - ip: <IP_ADDRESS>
          limit: 200

Describe alternatives you have considered
No response
Additional context
Full structured config suggestion:
nat:
  kernel_buffer_size: < 1-64 > (int)

  pool:
    - name: < pool_name > (str)
      prefix_length: < 16-32 > (int)
      ranges:
        - first_ip: < IP_address > (str)
          last_ip: < IP_address > (str)
          start_port: < 1-65535> (int)
          end_port: < 1-65535> (int) # >= start_port
      utilization_log_threshold: < 1-100 > (int)

  synchronization:
    description: < description > (str)
    shutdown: < true | false | default -> false > (bool)
    expiry_interval: < 60-3600 > (int) # seconds
    local_interface: < local_interface_name > (str)
    peer_address: < IPv4_address > (str)
    port_range:
      start_port: < 1024-65535 > (int)
      end_port: < 1024-65535 > (int) # >= start_port
    port_range_split: < true | false | default -> true > (bool)

  translation:
    address_selection_hash_field_source_ip: < true | false | default -> false > (bool)

    counters: < true | false | default -> false > (bool)
    low_mark:
      percentage: < 1-99 | default -> 90 > (int)
      host_percentage: < 1-99 | default -> 90 > (int)
    max_entries:
      limit: < 0 -<PHONE_NUMBER> > (int)
      host_limit:  < 0 -<PHONE_NUMBER> > (int)
      ip_limits:
        - ip: < IPv4_address > (str)
          limit: < 0 -<PHONE_NUMBER> > (int)
    tcp_timeout: < 0 -<PHONE_NUMBER> | default -> 86400 > (int) # seconds
    udp_timeout: < 0 -<PHONE_NUMBER> | default -> 300 > (int) # seconds

Contributing Guide

[X] I agree to follow this project's Code of Conduct

Full implementation including testing & documentation can be done by me.

@kornoa thank you for submitting this feature request. We will review the proposed data model early next week and provide feedback before you start working on this PR. Have a great weekend!

Thanks @kornoa for another great research and submission as a model
show cli commands output
Here is a full output of the CLI on a device running EOS 4.29.0F
device(config)#show cli commands | grep "ip nat"
[no|default] ip nat TARGET static LOCALIP GLOBALIP ( INSIDE_VRF_VRF_KW ( INSIDE_VRF_VRF_DYNAMIC ) )
ip nat flow
[no|default] ip nat kernel buffer size BUFSIZE
[no|default] ip nat logging
[no|default] ip nat pool POOLNAME ( ( prefix-length PREFIXLEN ) | ( netmask MASK ) )
ip nat pool POOLNAME STARTIP ENDIP ( ( prefix-length PREFIXLEN ) | ( netmask MASK ) ) [ STARTPORT ENDPORT ]
[no|default] ip nat profile PROFILENAME [ ( VRF_VRF_KW ( VRF_VRF_DYNAMIC ) ) ]
[no|default] ip nat service-list NAME
[no|default] ip nat source ( INSIDE_VRF_VRF_KW ( INSIDE_VRF_VRF_DYNAMIC ) ) rate RATE burst BURST
[no|default] ip nat synchronization
[no|default] ip nat tcp flow creation trigger TRIGGER
[no|default] ip nat translation PROTO TIMEOUT
[no|default] ip nat translation address selection any
[no|default] ip nat translation address selection hash field source-ip
[no|default] ip nat translation counters
[no|default] ip nat translation low-mark PERCENT [ host ]
[no|default] ip nat translation max-entries MAXENTRIES [ host | IPADDR ]

and for the synchronization submode:
device(config-nat-synchronization)#show cli commands
[no|default] description DESCRIPTION
[no|default] expiry-interval INTERVAL
[no|default] local-interface INTF
[no|default] peer-address PEERIP
[no|default] port-range LOWER [ UPPER ]
[no|default] port-range split [disabled]
show active
show active all [ detail ]
show comment
[no|default] shutdown

Comments on the proposed model

Given that the key being implemented is for ip nat let's call the key ip_nat instead of nat
for booleans where the default value is false you don't need to indicate this as a default
given that we can have multiple pools - let's rename pool -> pools
as a general rule we don't include the default values of percentage / timeouts in eos_cli_config_gen (you may find places in the schema where it is the case actually but do try to stay away from this) as they can change across platform and if there is nothing to render, the default value will be used by the switch.
In order to unify the cli for the ranges for ip address and ports we suggest to use first and last everywhereip_nat:
  pools:
      ranges:
        - first_ip: < IP_address > (str)
          last_ip: < IP_address > (str)
          first_port: < 1-65535> (int)
          last_port: < 1-65535> (int) # >= first_port
  synchronization:
    port_range:
      first_port: < 1024-65535 > (int)
      last_port: < 1024-65535 > (int) # >= first_port

for the synchronization.port_range split - given that the default is enabled and there is only a key for disabled we suggest to use the following modelip_nat:
  synchronization:
    port_range:
      first_port: < 1024-65535 > (int)
      last: < 1024-65535 > (int) # >= first_port
      split_disabled: < true | false >

for the ip nat translation tcp/udp-timeout <> lines given that the model is [no|default] ip nat translation PROTO TIMEOUT we suggest modeling it like this:ip_nat:
  translation:
     timeouts: # in seconds
      - protocol: <str> [valid_values tcp / udp>
         timeout: < 0 -<PHONE_NUMBER> > (int)

while the
Looking at cli for ip nat translation address selection and the fact that any and hash field source-ip can be configured at the same time we would like to change the model toip_nat:
  translation:
    address_selection
      any: < true | false> (bool)
      hash_field_source_ip: < true | false> (bool)

Final suggested model:
ip_nat:
  kernel_buffer_size: < 1-64 > (int)
  pools:
    - name: < pool_name > (str)
      prefix_length: < 16-32 > (int)
      ranges:
        - first_ip: < IP_address > (str)
          last_ip: < IP_address > (str)
          first_port: < 1-65535> (int)
          last_port: < 1-65535> (int) # >= first_port
      utilization_log_threshold: < 1-100 > (int)
  synchronization:
    description: < description > (str)
    shutdown: < true | false > (bool)
    expiry_interval: < 60-3600 > (int) # seconds
    local_interface: < local_interface_name > (str)
    peer_address: < IPv4_address > (str)
    port_range:
      start_port: < 1024-65535 > (int)
      end_port: < 1024-65535 > (int) # >= first_port
      split_disabled: < true | false > (bool)
  translation:
    address:
      selection:
        any: < true | false >
        hash_field_source_ip: < true | false > (bool)
    counters: < true | false > (bool)
    low_mark:
      percentage: < 1-99 > (int)
      host: < 1-99 > (int)
    max_entries:
      limit: < 0 -<PHONE_NUMBER> > (int)
      host_limit:  < 0 -<PHONE_NUMBER> > (int)
      ip_limits:
        - ip: < IPv4_address > (str)
          limit: < 0 -<PHONE_NUMBER> > (int)
    timeouts: # in seconds
      - protocol: <str> [valid_values tcp / udp]
        timeout: < 0 -<PHONE_NUMBER> > (int)

Let us know if you have any questions / comments / feedbacks

@gmuloc thank you for your feedback. I fully agree on the final suggested model.


Correct height and width of the WMS image for high DPI

Currently, MFP doesn't take into account the DPI when calculating the size of the image to request to the WMS server. This means that, for instance, with a DPI of 72 and 150 it will request a tile with WIDTH=1093 and HEIGHT=1510. The problem is that with MapServer and MAP_RESOLUTION set to 150, the representation of the layer can be incorrect (height and width too small for current DPI resulting in wrong scaling of symbols). We get:

instead of:

A similar issue should appear with other cartographic servers.
With this commit, the DPI is correctly taken into account to calculate the height and width of the tile. This means that for instance, with a DPI of 72, it will request a tile with WIDTH=1093 and HEIGHT=1510. But with a DPI of 150, it will request a tile with WIDTH=2277 and HEIGHT=3146. This way, the representation of the layer is correct.
The formula used for the calculation is [based on the one used by MapServer.

Good point! Thanks for noticing.
Should the width/height only be adapted if MAP_RESOLUTION is set? See https://github.com/mapfish/mapfish-print/blob/f7900a9/core/src/main/java/org/mapfish/print/map/image/wms/WmsUtilities.java#L70-L72

After doing some testing, I found that it can cause some problems: WMS servers usually have a max image size to prevent the server to use too many resources. However, in 300 dpi, the requested images are quite big and will most likely be higher than the maximum. In such cases, we won't have a tile to print. Can you think of a way to handle this in MFP? I can think of errors but it may be a bit brutal.

Should the width/height only be adapted if MAP_RESOLUTION is set?

I don't know. This implies to know the type of the WMS server and I am not sure we will always know this (eg imported WMS).

After doing some testing, I found that it can cause some problems: WMS servers usually have a max image size to prevent the server to use too many resources. However, in 300 dpi, the requested images are quite big and will most likely be higher than the maximum. In such cases, we won't have a tile to print. Can you think of a way to handle this in MFP? I can think of errors but it may be a bit brutal.

In that case you could use layer type tiledwms instead of wms. Instead of making a single request to get one image, this will cut the image into tiles and make multiple requests.

I don't know. This implies to know the type of the WMS server and I am not sure we will always know this (eg imported WMS).

The way I understand the MapServer docs is that the size should only be adapted if MAP_RESOLUTION is set. And MFP only sets MAP_RESOLUTION if the WMS server type is known (see here). Thus I think the size should only be adapted if the WMS server type is know. Or am I missing something?

The way I understand the MapServer docs is that the size should only be adapted if MAP_RESOLUTION is set

True. Just updated the PR.

In that case you could use layer type tiledwms instead of wms.

This could be a solution. I can print something with tiledwms. However, it may cause problem for layers that are not designed to be tiled (eg labels). But that's a start.

Thanks!

This could be a solution. I can print something with tiledwms. However, it may cause problem for layers that are not designed to be tiled (eg labels). But that's a start.

True. With MapServer you can adjust the label positioning. And GeoServer supports meta-tiling, but this would require some changes to MFP.


Interactive snippet reset scroll to the top

When clicking run option to see a code in action, the doc window scroll is reset to the top.
This can cause readers to lose context.

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

ID: dda93f14-f1b5-fde6-e441-302cdac261ab
Version Independent ID: 96abc7c4-3719-82da-e271-881d62f0640f
Content: Custom Date and Time Format Strings
Content Source: docs/standard/base-types/custom-date-and-time-format-strings.md
Product: dotnet
GitHub Login: @rpetrusha
Microsoft Alias: ronpet

Thanks for your feedback @jeffy-grh. Since this is about the site experience and not the content, I moved this issue to https://github.com/MicrosoftDocs/feedback/issues/695.