Dependabot no longer supports Ruby < 3?

Is there an existing issue for this?

[X] I have searched the existing issues

Package ecosystem
Bundler
Package manager version
Bundler 2.4.22
Language version
Ruby 2.7.8
Manifest location and content before the Dependabot update
/Gemfile
dependabot.yml content
---
version: 2

updates:
  - package-ecosystem: bundler
    directory: /
    schedule:
      interval: weekly
      day: saturday
      time: "00:00"

  - package-ecosystem: github-actions
    directory: /
    schedule:
      interval: weekly
      day: saturday
      time: "00:00"

Updated dependency
No response
What you expected to see, versus what you actually saw
I expected Dependabot to correctly resolve Bundler dependencies in a project that uses Ruby 2.7.8. Instead, Dependabot reported Dependabot can't resolve your Ruby dependency files:
 Dependabot can't resolve your Ruby dependency files
Dependabot failed to update your dependencies because there was an error resolving your Ruby dependency files.

Dependabot encountered the following error:

Bundler::SolveFailure with message: Could not find compatible versions

Because rails >= 5.1.3.rc1, < 6.1.0.rc1 depends on bundler >= 1.3.0
  and every version of bundler depends on Ruby >= 3.0.0,
  rails >= 5.1.3.rc1, < 6.1.0.rc1 requires Ruby >= 3.0.0.
So, because Gemfile depends on rails ~> 5.2
  and current Ruby version is ~> 2.7.8,
  version solving has failed.

It seems that Dependabot is deciding that "every version of bundler depends on Ruby >= 3.0.0", which is not correct (unless it is applying additional constraints that I am unaware of). The first version of Bundler to depend on Ruby >= 3 is Bundler 2.5.0, and we use Bundler 2.4.22.
I can see in the Dependabot logs that it successfully access the Bundler versions manifest:
  proxy | 2024/01/10 20:56:56 [476] GET https://index.rubygems.org:443/info/bundler
  proxy | 2024/01/10 20:56:56 [476] 200 https://index.rubygems.org:443/info/bundler

This manifest lists many versions of Bundler that do not require Ruby >= 3, and a handful that do:
---
0.3.1 |checksum:46ee4daadda796c1e9433b45015ff43f67ea47c8cf10e6f224ff5d87126d3302
0.3.0 |checksum:c90db69e215d0caa267149111284bb35558cf9640bfa03c73317218397df2363
[snip]
2.4.21 |checksum:017ae71a7b0a3024c614e344cd0cc56a16cb34afc53ada1899fb379d26624c91,ruby:>= 2.6.0,rubygems:>= 3.0.1
2.4.22 |checksum:747ba50b0e67df25cbd3b48f95831a77a4d53a581d55f063972fcb146d142c5f,ruby:>= 2.6.0,rubygems:>= 3.0.1
2.3.27 |checksum:dde4820453502e6cba55723d1376ccd6d2da049a7bbb922e3e7355cc7601034b,ruby:>= 2.3.0,rubygems:>= 2.5.2
2.5.0 |checksum:8952136f2d10816c73def0e8bc4b25c8f3fec9d4a58d571516e923b7cd2ed6c2,ruby:>= 3.0.0,rubygems:>= 3.2.3
2.5.1 |checksum:6b63f1bb4aedcde7fa2be3b309db7cb897170e9b4c09ad30314d50001b37b117,ruby:>= 3.0.0,rubygems:>= 3.2.3
2.5.2 |checksum:4f41bc156623cc0a99bbf21a03475982bfa27dad6d8d31aa93b90752e7a255db,ruby:>= 3.0.0,rubygems:>= 3.2.3
2.5.3 |checksum:249cd075ac4f335ae70f788c9be0f4c188093a4da7d05bd53be2baef3f25e7cb,ruby:>= 3.0.0,rubygems:>= 3.2.3
2.5.4 |checksum:f7b9f08c47e8c665613a668aa1b633df63f818b99183cee4b797704a816edefe,ruby:>= 3.0.0,rubygems:>= 3.2.3

Native package manager behavior
No response
Images of the diff or a link to the PR, issue, or logs
No response
Smallest manifest that reproduces the issue
No response

This problem started sometime within the last few weeks (unfortunately I haven't been able to narrow it down more than that). It looks like Dependabot was recently updated to Bundler 2.5.3, so if that's used in current Dependabot runs it could be related.
There's a Bundler update (3.5.4) that addresses one instance of older-Ruby incompatibility, but I'm not sure if Dependabot using that would be enough to fix the problem I've run into.

This started failing for us as well, same symptom:
dependency_file_not_resolvable {:message=>"Bundler::SolveFailure with message: Could not find compatible versions\n\nBecause rails >= 6.1.0.rc1 depends on bundler >= 1.15.0\n  and every version of bundler depends on Ruby >= 3.0.0,\n  rails >= 6.1.0.rc1 requires Ruby >= 3.0.0.\nSo, because Gemfile depends on rails ~> 6.1\n  and current Ruby version is = 2.7.8,\n  version solving has failed."}

Do you have a public repository where this issue can be reproduced?

Yeah - I think anything with Ruby < 3 will break. E.g. I created a brand new templated Rails application here: https://github.com/toby-brilliant/dependabot-test

Is it possible to specify the version of Bundler that Dependabot should use?

Being able to specify the Ruby/bundler version might help this issue that appears to require Ruby >= 3.2 : https://github.com/dependabot/dependabot-core/issues/8731

Ruby no longer supports Ruby 2.7 so yes, this is no longer supported by Dependabot. As more and more packages remove Ruby 2.7 support (it has been EOL for a year now) it will become increasingly impossible for Dependabot to do its job of updating packages on this language version, which is why we only officially support language versions that are supported upstream.


Feature Request: Provide public Docker image based on java 11

Currently the public Docker image (https://hub.docker.com/r/devshawn/kafka-gitops) is based on java 8.
To use the tool in a CI/CD pipeline, together with other tools, it would be practical to be able to use language features of newer java versions (at least java 11).
Is it possible to provide the public Docker image with a more recent java version?

@koenigroland If you're still interested, there's an image of this project with a few bug fixes and dependency update (for example Java 11) at https://github.com/joschi/kafka-gitops/pkgs/container/kafka-gitops/46491150?tag=0.2.16.
Pull from the command line:
docker pull ghcr.io/joschi/kafka-gitops:0.2.16

Use as base image in Dockerfile:
FROM ghcr.io/joschi/kafka-gitops:0.2.16


"tabstospaces" isn't respected

Description of the problem or steps to reproduce
Setting "tabstospaces": false and "indentchar": "\u0009" in $XDG_CONFIG/micro/settings.json and pressing tab in a file will still input spaces.
tabstospaces still to be set manually for each file
Specifications
Commit hash: 5e80ab9
OS: Ubuntu 16.04.2
Terminal: gnome-terminal running zsh

I think this is working properly. The indentchar setting is just for visual effect. It sets which character is displayed if you would like to be able to visually see tabs. For example if you run > set indentchar » then your code would look like this:

In fact, if you see one of those tab characters then you know that tabstospaces is working properly (if it is set to false).
Is there something here that I'm misunderstanding?

I believe there is. To test this out I tried to write a file with "indentchar": "🌭", but even though I pressed tab, I did not see a grey 🌭 at the start of the line; Instead, I saw 4 spaces and had to set tabstopaces to false manually.

What type of code are you editing? Micro will automatically set tabstospaces to true if you are editing python files because python strongly recommends using spaces (perhaps forcing it by default in micro is too much?). If you'd like to disable this you can set the option ftoptions to false.

I did edit python code, didn't know about the ftoptions option. I believe maybe asking the user if they want it on or off on first startup of the program (perhaps having a setup procedure of some sorts) is good course of action.


Plumb through the apkoFooAppend variables as TF_VAR.

Right now only the TF provider is able to accept extra_packages, but Jason has a PR to add this to apko as a flag (and then the actions will need this).

Alright, these are coming through properly for the terraform leg now:


Error

Whenever I try to run the program in the terminal it shows an error that "The term is not recognized as the name of a cmdlet, function, script file, or operable Program. Check the spelling of
the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1

new

  + CategoryInfo          : ObjectNotFound: (new:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException

Please provide me a proper guide to avoid this error.

It looks like your report is missing some important information, See this wiki page for more info on how to report actionable terminal issues.
/label "needs more info" integrated-terminal


WIP: Fail if a register array is derived

I don't think this feature is implemented yet. I'm not sure how easy or difficult it is to be implemented, but this PR improved the error from something like
[ERROR svd2rust] expected `,`

to something like
[ERROR svd2rust] In device `va108xx`

    Caused by:
        0: In peripheral `IRQSEL`
        1: Parsing register `PORTA[%s]` at 503:9
        2: No support for registers arrays which are derived

when parsing register blocks like this
        <register derivedFrom="INT_RAM_SBE">
          <dim>32</dim>
          <dimIncrement>4</dimIncrement>
          <name>PORTB[%s]</name>
          <description>PORTB Interrupt Redirect Selection</description>
          <addressOffset>0x080</addressOffset>
        </register>

If implementing the support for the  derivedFrom attribute on register arrays is not difficult (or I am indeed not doing something wrong) this PR could of course also be skipped. I also have not tested it with any other files other than the one I am trying to parse here: https://github.com/robamu/va108xx-rs

I like how svd-parse emits some additional information. Do you think something like that would be useful for the device generator in svd2rust as well?

It would be excellent, but I don't have enough time for this now.
Saying about this particular issue, svd2rust work with already parsed Device structure, so you'll not be able to show line where svd2rust-specific error is occurred, only tree path.

Can you have a look at https://github.com/rust-embedded/svd2rust/pull/544 ?
I think this PR can be closed then.


shouldLog() for Logger in v4 breaks the functional boundaries

In v4 it looks like a shouldLog method has been added as a required method for the Logger interface.
Currently this method is being used in one place here in this package.
While adding the requirement for new methods is not a problem, this particular method should Log() should not really be used by the DS server package, since the log level concept is an internal affair of the logger and the DS Server package should only care about calling logger.warn(), logger.error etc (which will internally, based on the set log level, determine if the log should be really printed or not).
Currently this below code is found at https://github.com/deepstreamIO/deepstream.io/blob/7570c20972bbb75ac5d952142cdbddb4ddb9ad66/src/utils/subscription-registry.ts#L198-L201
The if shouldLog() check above is redundant (since the loggers usually do it, and in more performant ways, if we are using something like pino.
Hence the above code should be replaced with single line as below (no need to check the log level):
this.services.logger.warn(EVENT_ACTIONS[this.constants.MULTIPLE_SUBSCRIPTIONS], msg)

Plugin-hosts of logger should not really worry about the log levels, since it will be automatically taken care by the logger (such as watson, pino etc.), and is a contract between user and the logger framework, not really to be exposed or used by other middleware.
The problem is, pino logger naturally worked nicely with V3. Now, v4 breaks this compatibility (and breaks the logger functional boundary also, by poking into the internals of log levels).

hey, yeah you make a good argument. However it will start being used in many more places, reason being creating string templates for debugging is quite expensive and so restraining from doing so is quite a performance win. If you want to use the V3 approach you can always just do this:
shouldLog () { return true; }

Since we still use the correct log level as well

Thank you @yasserf
I closed the issue, but after fiddling some more had to reopen it, since this change is causing ripple effect.
While I agree with your point about performance, I am not sure about the whole scenario. Here is what my problem is:

I was using the workaround Logger.shouldLog = () => true;, which is inline with your suggestion, but the problem is, returning true always, ends up creating the debug template strings always, even though the log level is disabled, which means no performance gains there. So it is not really a production-grade solution.
The alternative is to actually return a valid value (true or false) based on the current log level. Now, this is where the major problem comes from. The log levels are inconsitent. I checked inside this package code, and it is using enums 0,1,2,3, 100, while pino uses something else, and watson uses something else. This means two things:

one: developers cannot plugin the industry standard loggers, as is, directly anymore (which was possible in v3). They have to write separate boilerplate code to customize / marshal the log levels across the modules (scope creeping the logging internals into their app code base).
or, two: we have to just stick to the built-in logger of this package, which renders the whole pluggable logger concept useless to start with.

I understand your intent in starting to use this shouldLog() heavily in the coming days in your code base, but my request is to consider postponing it till such time we have some good alternatives.
The right solution for this is, lazy evaluation of arguments for unused functions - but not sure if JS currently supports it. We may have mechanisms to get that effect, but currently I do not have much on it top of my head - however if we give it some more time, we may come up with good design.
v3 had a very nice interface boundary for this logging (I still remember being pleasantly surprised the first time when I plugged-in pino as the custom logger, it just started working without much ado).

I’m not entirely sure what the ripple effect your talking about is. ShouldLog is an extra stage of performance enhancement that you can optionally implement. If your argument is that semantically always returning true is not correct than yes, I agree. However the performance benefits introduced from avoiding creating thousands of strings that are instantly ignored is really not worth ignoring.
If you get it to return true it will essentially work exactly as V3 which breaks no compatibility with any industrial standards. I may try and create a separate package going forward to contain the plugins and base classes so you can just extend DeepstreamLogger and let it provide you the logic for free, since It should just be a
log level > desired log level
Exposing you the deepstream plugin constants will help massively with that!

Also as much as I would love a lazy design JS implementation oh so badly I would have to argue given JS implementation standards we would probably lose more performance. New concepts like forEach, async/await and libraries with amazing functionality have insane performance implications. Sadly trying to optimise these cases even slow down more optimal classical solutions.
One approach I took in the JS library was to put all the logging messages in the actual logger, but while that works client side quite nicely in the server it would be tracing hell 😕
Thinking about it though, I can move the shouldLog into a util function and out of the interface! 🤦🏼♂ Will do that in the next release! Sorry, a bit of a duh moment! 😊

Thank you @yasserf

... base classes so you can just extend DeepstreamLogger ...

That having to extend the DeepstreamLogger in the app, instead of just plug & play the standard loggers (such as watson, pino etc.), is the exact problem I was mentioning.
If you are expecting the developers to create a logger from scratch, yes, it may well work. But in larger systems, the tendency is to reuse existing standard loggers (which are often shared across different pieces of modules), creating a separate adapter just to wrap around one single base class (that may not be used anywhere else in other modules) is not really a great design.
For example, this statement:

... you can disable it when you want to monitor stats...

that is exactly the role and functionality of the standard loggers, and re-implementing all that logic in the app once again is not really a valid way.
Suggestion:
How about instead of preparing and printing the log yourself, just emit a signal or make a callback with appropriate args so that the handler can lazy evaluate and prepare their own error log string and handle it ? Something like
function getLogMessage() {
  return `repeat subscription to "${name}" by ${socket.user}`;
}
this.emit("LOG", { event: EVENT_ACTIONS[this.constants.MULTIPLE_SUBSCRIPTIONS], msgFn:  getLogMessage });

Handler will do something like:
m.on("LOG", logData => {
  console.log("Log Event Handler Invoked for event: ", logData.event);
  const msg = logData.msgFn();  //<-- lazy evaulation of msg
  console.log("Message: ", msg);
});

If there are no handlers / event-subscribers, the message template string would not be evaluated.
Here is a complete code snippet to verify it indeed does lazy-evaulation of message:
const EventEmitter = require('events');

class MyClass extends EventEmitter {
  f1() {
    const name = "Name1";
    const socket = { user: "some user" };
    console.log("About to emit");
    this.emit("LOG", { event: "EVENT", msgFn: () => `repeat subscription to "${name}" by ${socket.user}, ${console.log("msg evaluated")}` });
  }
};

const m = new MyClass();
m.on("LOG", logData => {
  console.log("Log Event Handler Invoked for event: ", logData.event);
  const msg = logData.msgFn();
  console.log("Message: ", msg);
});
m.f1();

Advantages:

single line logging code:

this.emit("LOG", { event: "...", msgFn: () => `repeat subscription to "${name}" by ${socket.user}` });

message strings are constructed only if there is a handler. Addresses the performance concern.
Most importantly, completely breaks the interface coupling. Developers can use any standard industry logger as they see fit. Deepstream need not worry about logging levels, handling etc.
App developers can fan-out the event as they see fit. Plug & play is easy, since there is no strict interface binding.
Also, removing the event handler stops the logging (and of-course no message string preparation overhead).

The class / inheritance based plugin system is a C/C++/Java style mechanism, which was good for monolithic architectures. In JS it is more suitable to integrate the disconnected components with events, rather than interfaces.
Please give it a thought.

... it is more suitable to integrate the disconnected components with events, rather than interfaces.

Of course, being the creators of Deepstream, you know the value and importance of events better than I do :)
After all, Deepstream is one of the best event processor frameworks out there 👍

Unfortunately emitting in-line factory log methods and using emitters introduces an overhead that would probably be worse than creating an unused string.
Using the .set(‘logger’, DeepstreamWrapper(loggerToReuse) would work for that case (of passing an application wide logger). The problem with JavaScript is most design patterns end up creating instantly orphaned nodes that need to be garbage collected and while later versions of node heavily optimised this all approaches that are not a quick bail out will impact performance.  In an idea world shouldLog would in-line to false which will then remove the debug like as dead code at somepoint.
One of the main goals is us to actually remove event emitters entirely from deepstream internally in exchange for actual method registration. Decoupling is great when you have a front end up or a backend-service, but when your a single threaded server that’s meant to spend cycles real-time looking up dynamic functions that may or may not exist and having to provide it arguments that may or may not be used isn’t exactly a viable option. In the small picture this is obviously not a problem but when you try running a log over 100 thousand subscriptions when an app loads up your looking at a fractions of a second being spent on things that don’t matter, and other fractions spend garbage collecting all those things back up.
Generally speaking deepstream plugins are catered for deepstream. The concept of embedding deepstream within other servers is perfectly acceptable, but i will never make a choice for middleware acceptance over raw performance. And that’s not because I’m care about over optimising, it’s because node is extremely terrible at any decent tuning, specifically between version upgrades.
I generally spiked out the util approach and it sadly didn’t work since the logger is responsible for know what log level it’s at. Because of this I’m sorry the API will remain for the 4.0 release. Returning true is exactly the same as the V3 API it can optionally be implemented like with react should complement update to avoid wasted cycles.

Ignore the insane typos, my phones autocorrect is on a mission to make my grammar worse than it already is 🙈

Thank you @yasserf
No problem. Will close this issue.
On a separate note, JS is the go to choice for distributed systems, where performance takes secondary (or lesser) goal, and connectivity,  development convenience trump all other priorities. (Otherwise, one would be using go, or c/c++)
You are right about the single thread, which is why the performance expectations are satisfied not with high performance code, but rather with scaling-out servers (as many as money could buy).
Ofcourse, It does not mean we should not aim for performance in JS - but if we have a choice to make between performance and development convenience, JS certainly is not the right choice if we are worried about performance.
Not sure why the core is being written in JS. May be I am wrong, but was it not the case that some earlier version of the server was in some other language?
Hope you are aware of tracing systems such as zipkin, Jaeger (https://github.com/jaegertracing/jaeger). Since the goal seems to be 100 thousand subscriptions (as you have suggested), compliance with such systems is inevitable, tomorrow if not today, for such scale of monitoring and debugging.

BTW, if event emitter is costly, the same can be achieved with simple callback also.
LOG({ event: "...", msgFn: () => `repeat subscription to "${name}" by ${socket.user}` });

where,  at the start, the callback is internally initialized to dummy (or default method) something like below:
LOG = () => {}

So, nothing gets logged and no strings are evaluated. And when someone wants to tap into it, they could just use the existing set mechanism, something like below:
  DS.set("LOG", myLogFn);   // set the internal LOG callback to whatever user supplied

where myLogFn can be same as in my earlier reply:
const myLogFn = logData => {
  console.log("Log Event Handler Invoked for event: ", logData.event);
  const msg = logData.msgFn();
  console.log("Message: ", msg);
  // now send the logData to any tracer or logger
}

Since only one log handler is needed per app, this is more suitable than even emitter.
Also, all other advantages as stated earlier holds for this + easy to extend to open tracing standards.

Deepstream is in Node unfortunately because:
a) the original author chose it (back before alot of popular languages like Go and Rust gained traction)
b) The goal is to integrate easily with lots of backend systems (databases/caches), it works really well with that.
I'm personally extremely against throwing machines to make deepstream work better. If I can manage my workload on 2 machines instead of 5 then it will make my life like easier to maintain from a devops perspective. This doesn't apply to where node really shines, which is for things like Lambda and express where state is just stored in an external cache or db. Theres work going into V4 to allow vertical clustering to work as well to use more cores while sharing the same port, but generally speaking if theres a clear/large performance gain I can see I will take it 👍 .
Thanks for the suggestions though! If this was part of the SDK or any of our front-end/micro services I would have definitely been onboard!


fix: not support primitive type

Motivation:
Explain the context, and why you're making that change.
To make others understand what is the problem you're trying to solve.
Modification:
Describe the idea and modifications you've done.
Result:
Fixes #.
If there is no issue then describe the changes introduced by this PR.

Codecov Report

Merging #963 into master will decrease coverage by 0.09%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #963      +/-   ##
============================================
- Coverage     68.86%   68.77%   -0.10%
  Complexity      817      817
============================================
  Files           402      402
  Lines         17375    17376       +1
  Branches       2688     2690       +2
============================================
- Hits          11965    11950      -15
- Misses         4028     4037       +9
- Partials       1382     1389       +7

Impacted Files
Coverage Δ
Complexity Δ

...pay/sofa/rpc/server/triple/GenericServiceImpl.java
91.66% <100.00%> (ø)
0.00 <0.00> (ø)

...sofa/rpc/transport/triple/TripleClientInvoker.java
86.95% <100.00%> (-1.11%)
0.00 <0.00> (ø)

...ipay/sofa/rpc/server/bolt/BoltServerProcessor.java
64.17% <0.00%> (-5.23%)
0.00% <0.00%> (ø%)

...ofa/rpc/registry/zk/ZookeeperProviderObserver.java
72.50% <0.00%> (-2.50%)
0.00% <0.00%> (ø%)

...ofa/rpc/tracer/sofatracer/TripleTracerAdapter.java
53.60% <0.00%> (-1.24%)
0.00% <0.00%> (ø%)

...com/alipay/sofa/rpc/context/RpcRuntimeContext.java
88.88% <0.00%> (-1.24%)
0.00% <0.00%> (ø%)

...ipay/sofa/rpc/tracer/sofatracer/RpcSofaTracer.java
88.65% <0.00%> (-0.93%)
0.00% <0.00%> (ø%)

...lipay/sofa/rpc/message/AbstractResponseFuture.java
56.25% <0.00%> (-0.90%)
0.00% <0.00%> (ø%)

...alipay/sofa/rpc/registry/zk/ZookeeperRegistry.java
62.01% <0.00%> (-0.60%)
0.00% <0.00%> (ø%)

... and 2 more

Continue to review full report at Codecov.

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


many, many rg processes

when starts vscode ca free my iMac pro
I watch the process and rg is duplicate 20 times.

VSCode Version: latest
OS Version: macOS 10.14.1

Steps to Reproduce:

I start vscode
freezes iMac pro until forced restart

Does this issue occur when all extensions are disabled?: No

This issue seems to be a duplicate of https://github.com/Microsoft/vscode/issues/62970. A suggested workaround is to always clear notifications.

Sorry about that @jrieken, I was looking for the hanging issue and got tunnel vision. My bad.

Are you opening a workspace with many folders?

No juste project folder

You dont test that?

Does this happen if you start with --disable-extensions?

Same here. I have 7 folders full of C++ files (100k+) and rg just hangs, probably because of the number of rg processes (launched with the same cmd line it appears) - and this with the --disable-extensions option.
It happens when I trigger my own tasks (that basically call some powershell scripts).
Hope it'll help you guys.

@gmainguet can you explain exactly what you are doing, and what you see? Does this happen when you do file search/text search? What is the command line of those processes?
Does the window stop responding? Are the rg processes using high CPU?
What OS?

Hi Rob,
Thanks for following up.
Basically, whenever i trigger the "quick open" window (Ctrl+P), there's the rg process that kicks in and uses high CPU, even if i don't type anything in the search box. I'm assuming it scans all files in the workspace (its command line is: "%LOCALAPPDATA%\Programs\Microsoft VS Code\resources\app\node_modules.asar.unpacked\vscode-ripgrep\bin\rg.exe" --files --hidden --case-sensitive -g /tsconfig.json -g !/node_modules/* -g !/.git -g !/.svn -g !/.hg -g !/CVS -g !/.DS_Store -g !/.hg* -g !/.cquery -g !/out -g !/.vscode -g !/*.xml -g !/.scn -g !**/.xsd -g !**/.db --no-ignore --follow --no-config
So this command line is the same for any rg process that cause problems
In my workspace setup, I have custom tasks. Some powershell scripts are therefore called after I trigger these tasks (either from quick open window or keyboard shortcut e.g. Ctrl+Shift+B). So whenever I do this, there are 2 rg processes launched (and in vs code's status bar, it says "Fetching build tasks..."). Those 2 processes eats up all CPU. After they terminate, the powershell script is called. And indeed, if I look for a file in the meantime, a 3rd rg process is launched and my whole machine becomes veeery slow.
I'm on an up-to-date Windows 10.
Should there not be some sort of caching of the rg results rather than launching the same process all the time?
*: I don't refer to the rg process used during the global search (Ctrl+Shift+F) as obviously this one is expected to intensively use the CPU

Can you try downloading the Insiders' build and tell me whether it happens there? I fixed an issue that may be related. https://code.visualstudio.com/insiders


pull request for e2e test at 01/18/2017 22:45:10

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add apply_along_axis and apply_over_axis to dask.array

numpy.apply_along_axis and numpy.apply_over_axis should be good candidates to parallelize in dask.  I recently reached for apply_along_axis.

Mapping over axes is pretty easy.
Concatenating the results is not as trivial as it should be currently. Probably adding block will make that simpler. ( https://github.com/dask/dask/issues/2350 )

Attempted to add apply_along_axis in PR ( https://github.com/dask/dask/pull/2698 ). Still a little rough around the edges, but it does work.

Also have some work locally for apply_over_axis that I'm happy to share once apply_along_axis lands (as it depends on the latter).

Added apply_over_axis in PR ( https://github.com/dask/dask/pull/2702 ).


Relax command line parsing: treat the first positional argument as a component target

Make --component optional: if a first positional argument can be parsed as a component target, do so. E. g., cabal-add tests bytestring should be equivalent to cabal-add --component tests bytestring.
This makes CLI more uniform with the usual Cabal conventions, which pass build targets positionally.

Done in a83c827.


DJANGO_API: Double / / if have 3rd level directory

See current test ds https://gui-beta-dandiarchive-org.netlify.app/#/dandiset/010000/draft/files?location=sub-1%2Fsub-1_ses-10_cell-1.z%2F (goes a bit further than our 2 level dandi organize'ed datasets, as eg might happen later with zarr or any BIDS dataset with sessions)

@sanuann - this should be a simple fix and perhaps a way to get used to the codebase. could you please send a PR to fix this?

even at two places in the path for https://gui.dandiarchive.org/#/dandiset/000026/draft/files?location=derivatives%2FEPIC%2Fsub-I46%2F


feat: add method to get all groups of a node and its endpoints

/cc @robertsLando

wondering if getAllAssociationGroups could be implemented in a better way, I mean I think that now there could be some repeated groups on endpoints right?
If node has multiple endpoints I could have group X be listed in both endpoits
wouldn't it be better to have a endpoints  property in metadata along with maxNodes, isLifeline and multiChannel that will be a number[] array of endpoints that support that group?

If node has multiple endpoints I could have group X be listed in both endpoits

Yes, and they could be different association groups. Here's a Qubino device for example:

The problem is we don't know which group on the endpoints correspond to which group on the root without reading and understanding the manual. Then there are some devices which have the groups only on the endpoints, but they are not related.

Ok no problem got it :) Thanks for the explaination


How to bind the change of the item when editing, inserting and filtering?

I have few select fields in my table. And I want them bind with other, which means the options of one select list is depend on the selection of other select list. So I made a new type based on the "select" type by changing the Template and _createSelect. I want to call _createSelect every time I modify the item but have no idea how to bind it. Thank you very much if you can help!
  editTemplate:  function(value,item) {
        if(!this.editing)
            return this.itemTemplate(value);
        var $result = this.editControl = this._createSelect(item.type);

       /*  How to bind?
        $().on("change",function(e) {
        	 $result = this.editControl = this._createSelect(item.type);
        });
       */

        return $result;
    },

_createSelect: function(type) {
    	console.log("Create select:");
    	console.log(type);
        var $result = $("<select>"),
            valueField = this.valueField,
            textField = this.textField,
            selectedIndex = this.selectedIndex,
            boundField = this.boundField;

        $.each(this.items, function(index, item) {
            var value = valueField ? item[valueField] : index,
                text = textField ? item[textField] : item,
                bound = boundField ? item[boundField] : item;

//Only return options with same bound type
            if(bound==type){
            var $option = $("<option>")
                .attr("value", value)
                .text(text)
                .appendTo($result);

            $option.prop("selected", (selectedIndex === index));
            }
        });

        return $result;
    }

Please, checkout the following issues:
https://github.com/tabalinas/jsgrid/issues/46
https://github.com/tabalinas/jsgrid/issues/71

Hi Tablinas,
Thank you for your answer. I tried your answer and it works well. But there still a problem, when I try to editing the row, when I click it, the value disappear. This happen to all my self defined fields. Could you help?
Before I click:

After I

click:
Thank you very much again!

Could you provide a fiddle (maybe modify one of fiddles from the tickets above) to demonstrate the issue?

Thank you for you reply. I added one column based on your previous fiddle. I am new for jQuery, the code may not good enough but it demonstrates my problem.
http://jsfiddle.net/codingbunny/p39kteqh/2/

Hi Tabalinas,
Thank you for you reply. I added one column based on your previous fiddle. I am new for jQuery,the code is not good enough but it's all I can do. It demonstrates my problem. Thank you again!
http://jsfiddle.net/codingbunny/p39kteqh/3/

Looks like in the fiddle you've brought it works just fine. I don't see the issue

When you click the row to edit. The "Time" column value disappeared and it cannot be edited as well.

Sorry for bother you again, I have another question:
Assume there are column1 column2  and column3(C1 C2 C3),
selection of C3 is based on selection of C2 as the fiddle example. But it is also based on selection of C1, if C1 is true, C2 and C3 work normally, if C1 is false, then C3 have to be null or freezed. What I am thinking is every time C2 is on change, make a judgement on C1. But there is no way that I can get current selection of other column on insert or edit mode right? So do you have any advice on this? Thank you very much!

Hi,
The problem is I cannot edit the "Time" column.
http://jsfiddle.net/codingbunny/p39kteqh/16/

Here is the fiddle with fixed editing: http://jsfiddle.net/tabalinas/p39kteqh/23/
Meanwhile the issues are not related to the original question (dependent selects). There were several quite strange issues: eidtValue instead of editValue, using val() for DOM element instead of jQuery element, wrong input index.

Thank you very much! And sorry for bother you with a silly spelling mistake.

Sorry for bothering you again. This question is related to the original question and there is no silly bug. It is about one column depends on 2 columns.
I have 3 select columns, "type", "department" and "team". And "team" column based on both "type" and "department".
When I choose "DEPT" in "type", the selections of "team" column should be empty, when I choose "TEAM" in "type", the "team"is based on "Department" as normal. This function works well as demonstrated. http://jsfiddle.net/codingbunny/p39kteqh/25/
My problem is(you can try editing in the existing row):

At the beginning the "type" is "TEAM", and the "department" is "Dept B", and the selections of "team" are "team B" and "team C", works well.
And then I change the "type" to "DEPT", the selection of "team" disappear as expect, works well.
And then I change the "type" back to "TEAM", and the selections of "team" become "team A", "team B" and "team C".
The "department" column remaining"Dept B" all the time.

I want them to be "team B" and "team C" according to "department" column, but only when I change the selection of "department" and change it back I can get the ideal result, it is because I can't find a way to know the current selection of other columns.
I hope I have explained clear, could you give some advice about how to get current selection of those column not on change, or any other advice? Thank you very much!

I see the issue. Actually, it works like this because in your change handler of type select you filter teams only by type not considering the department.
So you need also to filter by department:
...
var typeTeam = $.grep(team_list, function(team) {
    // TODO: add here filtering by department
    return team.activity_type === selectedType;
});

teamField.items = typeTeam;
$(".team-insert").empty().append(teamField.insertTemplate());
...

Thank you for your reply.
I agree that I should filter by department, and the issue is I don't know how to know the current selection of department when I am changing type.

You can whether find the select by jQuery selector or just get it from jsGrid.option("fields")[index].insertControl.val()

Thank you for your help, problem solved! http://jsfiddle.net/p39kteqh/26/
I used
     var selectedDepartment = $(".department-insert > select").val();

and this worked very well, thank you!
But actually, for
      var selectedDepartment = jsGrid.option("fields")[3].insertControl.val();

browser said "jsGrid.option() is not a function". And for
      var selectedDepartment = jsGrid.fields[3].insertControl.val();

browser said "cannot read insertControl of undefined."

jsGrid is the instance of grid, so it's equivalent to $('#grid').jsGrid('option', 'fields')

Hi tabalinas,
I want to Edit multiple rows and save at once.. Save button is placed outside of grid...Do you have any sample for this ??


Unsupported engine warning, even when node + npm versions meet requirement

Installing this via npm returns the following Unsupported engine warning:

It also appears that the package needs to have some of its dependencies updated (as per screenshot, for formidable, superagent and core-js.

Digging a bit deeper, it appears that the superagent dependency can be trivially upgraded to ^7.0.2.
This will also resolve the formidable dependency in superagent.
The more challenging dependency is babel-runtime, which is the dependency still relying on<EMAIL_ADDRESS>I haven't been able to successfully override and test the use of<EMAIL_ADDRESS>


DM report confusing error message after "too many connection" error

What did you do?
downstream limit max-server-connections to 50
start a task with two source
What did you expect to see?
task fail with downstream too many connection error
What did you see instead?
One source succeed, one source failed with error bad connection
{
            "result": false,
            "msg": "[code=38032:class=dm-master:scope=internal:level=high], Message: some error occurs in dm-worker: ErrCode:10002 ErrClass:\"database\" ErrScope:\"downstream\" ErrLevel:\"high\" Message:\"fail to initial unit Sync of subtask test : database driver\" RawCause:\"driver: bad connection\" Workaround:\"Please check the database connection, then use `pause-task` to pause the task and then use `resume-task` to resume the task.\" , Workaround: Please execute `query-status` to check status.",
            "source": "source2",
            "worker": "dm-<IP_ADDRESS>-8272"
        }

Versions of the cluster
DM version (run dmctl -V or dm-worker -V or dm-master -V):
v5.4.0

current status of DM cluster (execute query-status <task-name> in dmctl)
(paste current status of DM cluster here)

It is important to note that TiDB Cloud "dev tier" sets max-server-connections=50. DM default loader pool size is 16, default sync worker-count is 16, so a all mode task will create more than 32 connection when init task, which means if user create a sharding merge task, the task will always failed and report such a bad connection error.

can we get "downstream too many connection error" in the code?

DM default loader pool size is 16, default sync worker-count is 16, so a all mode task will create more than 32 connection when init task

also, subtask.initUnits init all units first, then close them one by one if that unit is done already, may fail even we don't use those conns.

I think it's necessary to add a clear workaround first (e.g. recommending users to configure their loader's and syncer's worker count)

I think it's necessary to add a clear workaround first (e.g. recommending users to configure their loader's and syncer's worker count)

we can query the connection limit of downstream and calculate the total need when precheck, and also give that total need in walkaround

/assign

/unaffect 5.4

/remove-label affects-5.4
/remove-label affects-5.3
/remove-label affects-6.0
/remove-label affects-2.0.7
/remove-label affects-2.0.6
/remove-label affects-2.0.5


Unclear error message for emitter

When there is an error with sending a POST/GET requests the tracker returns a status code of -1. This makes debugging harder when using containers without inspecting the logs.
The return of the status is done in:
https://github.com/snowplow/snowplow-golang-tracker/blob/50e2f03c3f5c2afb6b3b252d49ab75af987e1b52/tracker/emitter.go#L357
Which defaults to -1 when the status code is not OK 200, instead of the real value.
For comparison the Python tracker returns the status code with the warning message:
https://github.com/snowplow/snowplow-python-tracker/blob/91da00a0549f05169b179c819028409d3d3f7401/snowplow_tracker/emitters.py#L195

Hi @NikStoyanov if there is a status code it does attempt to return it like here for example:
https://github.com/snowplow/snowplow-golang-tracker/blob/50e2f03c3f5c2afb6b3b252d49ab75af987e1b52/tracker/emitter.go#L363-L367
The -1 is for a quick return in the case of the request failing entirely - in which case it is likely that there is no accurate status code to return.
In any case if you have an idea for how to improve the code we would welcome a PR that surfaces the error more clearly!


github_webhook: Update "pull_request unassigned" event fixture.

The older fixture for this event assumed that the "assignee" key
had a value of '{}' if no one was assigned to a PR anymore.
However, that is no longer true because testing with requestbin
showed that in the latest JSON payload for this event, the key
"assignee" now has the value of 'null' (None when converted to
Python) when a user is unassigned from a PR. The current code
didn't handle this correctly. This commit makes sure it does!
Its unclear as to whether the old fixture was simply wrong or
whether GitHub changed its payloads in any way.

Merged, thanks @eeshangarg!


Git Blame page broken by extension

I noticed that when clicking on the Blame button in Github, it seems to not be rendering properly when this extension is installed:
With extension:

Without extension:

Link to page: https://github.com/mitre/heimdall_tools/blame/2bfa20705491867e04eae78d762a0aae241418c3/heimdall_tools.gemspec
I am using the extension with Firefox specifically.

Can't replicate on Firefox. This doesn't look like a bug that the extension can cause. It's more likely to be a GitHub bug that was already resolved

Yep, I'm now seeing it in incognito as well so it seems you are correct. Sorry about that.

No worries, thanks for reporting it


Minimal template example for a news item.

Like promised, here's a minimal example template for a news item.

It's not completely ready... I'd like to add publisher data... stay tuned.

Thans for your contribution ! :)


Not working properly

Sometimes it works and I get a response from Shopify but maximum times I get no response or 504 Gateway Timeout. But it works perfectly in the postman.
GET /admin/script_tags.json HTTP/1.1
Host: refiral5-2.myshopify.com
X-Shopify-Access-Token: 64cbba144bc3cb166da91be13103f785

@manishrefiral feel free to give my version a try: https://github.com/LukeTowers/php-shopify-api


Semantic Segmentation using Deep Learning By Aman Mehta

Project Description: Semantic Segmentation using Deep Learning By Aman Mehta
Overview:
Semantic segmentation is a computer vision task that involves assigning semantic labels to each pixel in an image, enabling precise understanding and analysis of its contents. This project aims to develop a robust deep learning model capable of accurately segmenting objects and scenes within images.
Dataset Selection:
The project begins with the selection of a suitable dataset tailored for semantic segmentation tasks. Datasets such as Pascal VOC, Cityscapes, or COCO provide labeled images with pixel-level annotations, facilitating model training and evaluation.
Data Preprocessing:
Before training the model, extensive preprocessing is necessary to prepare the dataset. This involves tasks such as resizing images to a consistent resolution, normalizing pixel values to a standard range, and generating corresponding segmentation masks for training samples.
Model Architecture:
The core of the project lies in designing an effective neural network architecture capable of performing semantic segmentation. Common architectures like U-Net, Fully Convolutional Networks (FCNs), or DeepLab are well-suited for this task. These architectures typically consist of an encoder-decoder structure with skip connections to capture both local and global context information.
Model Training:
Once the model architecture is defined, it is trained using the prepared dataset. Training involves optimizing the model parameters using techniques like stochastic gradient descent (SGD) or Adam optimization. Additionally, data augmentation techniques such as random rotation, flipping, and scaling are employed to improve the model's generalization ability.
Evaluation:
The trained model's performance is evaluated using appropriate metrics such as Intersection over Union (IoU), Pixel Accuracy, or Mean Intersection over Union (mIoU). This evaluation helps gauge the model's accuracy and generalization ability on unseen data.
Inference:
After training and evaluation, the model is deployed to perform semantic segmentation on new images. The inference pipeline involves feeding input images to the trained model and obtaining segmentation maps as output. Visualization techniques are used to interpret and analyze the segmentation results, enabling insights into the model's performance.
Conclusion:
Semantic segmentation using deep learning is a challenging yet rewarding task with diverse applications across various domains. By undertaking this project, participants gain valuable experience in designing, training, and deploying deep learning models for real-world image analysis tasks. Moreover, the project contributes to advancing the field of computer vision by developing models capable of understanding and interpreting visual information at a pixel level.

Project Description: Semantic Segmentation using Deep Learning
Overview:
Semantic segmentation is a computer vision task that involves assigning semantic labels to each pixel in an image, enabling precise understanding and analysis of its contents. This project aims to develop a robust deep learning model capable of accurately segmenting objects and scenes within images.
Dataset Selection:
The project begins with the selection of a suitable dataset tailored for semantic segmentation tasks. Datasets such as Pascal VOC, Cityscapes, or COCO provide labeled images with pixel-level annotations, facilitating model training and evaluation.
Data Preprocessing:
Before training the model, extensive preprocessing is necessary to prepare the dataset. This involves tasks such as resizing images to a consistent resolution, normalizing pixel values to a standard range, and generating corresponding segmentation masks for training samples.
Model Architecture:
The core of the project lies in designing an effective neural network architecture capable of performing semantic segmentation. Common architectures like U-Net, Fully Convolutional Networks (FCNs), or DeepLab are well-suited for this task. These architectures typically consist of an encoder-decoder structure with skip connections to capture both local and global context information.
Model Training:
Once the model architecture is defined, it is trained using the prepared dataset. Training involves optimizing the model parameters using techniques like stochastic gradient descent (SGD) or Adam optimization. Additionally, data augmentation techniques such as random rotation, flipping, and scaling are employed to improve the model's generalization ability.
Evaluation:
The trained model's performance is evaluated using appropriate metrics such as Intersection over Union (IoU), Pixel Accuracy, or Mean Intersection over Union (mIoU). This evaluation helps gauge the model's accuracy and generalization ability on unseen data.
Inference:
After training and evaluation, the model is deployed to perform semantic segmentation on new images. The inference pipeline involves feeding input images to the trained model and obtaining segmentation maps as output. Visualization techniques are used to interpret and analyze the segmentation results, enabling insights into the model's performance.
Conclusion:
Semantic segmentation using deep learning is a challenging yet rewarding task with diverse applications across various domains. By undertaking this project, participants gain valuable experience in designing, training, and deploying deep learning models for real-world image analysis tasks. Moreover, the project contributes to advancing the field of computer vision by developing models capable of understanding and interpreting visual information at a pixel level.

Project Description: Semantic Segmentation using Deep Learning
Overview:
Semantic segmentation is a computer vision task that involves assigning semantic labels to each pixel in an image, enabling precise understanding and analysis of its contents. This project aims to develop a robust deep learning model capable of accurately segmenting objects and scenes within images.
Dataset Selection:
The project begins with the selection of a suitable dataset tailored for semantic segmentation tasks. Datasets such as Pascal VOC, Cityscapes, or COCO provide labeled images with pixel-level annotations, facilitating model training and evaluation.
Data Preprocessing:
Before training the model, extensive preprocessing is necessary to prepare the dataset. This involves tasks such as resizing images to a consistent resolution, normalizing pixel values to a standard range, and generating corresponding segmentation masks for training samples.
Model Architecture:
The core of the project lies in designing an effective neural network architecture capable of performing semantic segmentation. Common architectures like U-Net, Fully Convolutional Networks (FCNs), or DeepLab are well-suited for this task. These architectures typically consist of an encoder-decoder structure with skip connections to capture both local and global context information.
Model Training:
Once the model architecture is defined, it is trained using the prepared dataset. Training involves optimizing the model parameters using techniques like stochastic gradient descent (SGD) or Adam optimization. Additionally, data augmentation techniques such as random rotation, flipping, and scaling are employed to improve the model's generalization ability.
Evaluation:
The trained model's performance is evaluated using appropriate metrics such as Intersection over Union (IoU), Pixel Accuracy, or Mean Intersection over Union (mIoU). This evaluation helps gauge the model's accuracy and generalization ability on unseen data.
Inference:
After training and evaluation, the model is deployed to perform semantic segmentation on new images. The inference pipeline involves feeding input images to the trained model and obtaining segmentation maps as output. Visualization techniques are used to interpret and analyze the segmentation results, enabling insights into the model's performance.
Conclusion:
Semantic segmentation using deep learning is a challenging yet rewarding task with diverse applications across various domains. By undertaking this project, participants gain valuable experience in designing, training, and deploying deep learning models for real-world image analysis tasks. Moreover, the project contributes to advancing the field of computer vision by developing models capable of understanding and interpreting visual information at a pixel level.

Hi @AmanMehta199816 Can you please sign CLA. Thank you!


added scalar overflow handling

One other place where there was a difference between the 32 bit scalar and 16 bit SIMD code. Unfortunately this is the opposite behavior of what was there before, so for backward compat I had to add another feature setting for that.

Thanks for fixing!


Add support of slices for Str, File, Slices

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Docs: Update POWERTOOLS_DEV default value

What were you searching in the docs?
Me and @ijemmy were checking the default value of the newly introduced POWERTOOLS_DEV environment variable in the docs.
In doing so we noticed that the current version of the docs says the value is 0 instead of false.
Is this related to an existing documentation section?
https://awslabs.github.io/aws-lambda-powertools-python/2.2.0/#environment-variables
How can we improve?
There's an opportunity to improve clarity on that env var by specifying that the default value is `false`.

Got a suggestion in mind?
The value should be false instead of 0.
Acknowledgment

[X] I understand the final update might be different from my proposed suggestion, or refused.

Thanks a lot Andrea! Just rebuilt the latest docs with your PR ;)


Trim whitespace from kubectl in e2e/kubectl.go

Avoids spurious comparison errors while we are still shelling out to cluster/kubectl.sh. This fixes kubectl.go on GKE jenkins. cc @zmerlynn

Awesomesauce.

Travis is under maintenance, one shippable was green.


[Bluetooth, Host, adv.c] Add an interface to seperate the operation of hci_set_adv_data and hci_set_adv_enable

Now, the zephyr bluetooth stack use the interface bt_le_adv_start( ) to start advertising. The interface includes the operation of hci_set_adv_param, hci_set_adv_data, hci_set_scan_rsp_data, hci_set_adv_enable. But sometimes we have the requirement to seperate the operation of  hci_set_adv_data, hci_set_scan_rsp_data and hci_set_adv_param, hci_set_adv_enable.  The function bt_le_adv_update_data can realize the operation of hci_set_adv_data, hci_set_scan_rsp_data. But the operation hci_set_adv_param, hci_set_adv_enable has no interface to correspond to it.
So, I wonder if we can add an interface such as bt_le_adv_enable(const struct bt_le_adv_param *param)  to realize the operation hci_set_adv_param, hci_set_adv_enable . And then we have 2 choices to start advertising:

bt_le_adv_start(param, ad, ad_len, sd, sd_len ); or
bt_le_adv_update_data(ad, ad_len, sd, sd_len);   bt_le_adv_enable(param);

Sorry, afterwards I found that the interface bt_le_adv_update_data( ) isn't  totaly equal to the operation  hci_set_adv_data, hci_set_scan_rsp_data. It is constrained by adv->flags such as BT_ADV_SCANNABLE. So It can just be used to "update adv data" after the adv_param was set instead of what i thought "set adv data" before setting adv_param.
So, I still wonder if we can add interface such as bt_le_adv_set_data(const struct bt_data *ad, size_t ad_len, const struct bt_data *sd, size_t sd_len) and bt_le_adv_enable(const struct bt_le_adv_param *param) to seperate the interface bt_le_adv_start(param, ad, ad_len, sd, sd_len )? If so, then the choice 2 is
2. bt_le_adv_set_data(ad, ad_len, sd, sd_len); bt_le_adv_enable(param);


Alerts in Grafana with datasource VictoriaLogs

I used the latest version of the plugin for datasource Victorialand v0.6.1. It works fine. However, I noticed that I can't create alerts based on this datasource. The plugin itself says "Not supported". I would like to know if the ability to use VictroriaLogs as a datasource for notification via Grafana will be added?

@Loori-R do you know if Grafana expects only plugins with certain type to be supported in Alerting mode?

Initially, this alerting support was disabled because certain APIs required for alerts were not yet implemented in VictoriaLogs. I believe we now have the necessary APIs to develop this functionality. I’ll add the 'enhancement' label to this issue.

Thanks for the quick reply. @Loori-R how long will it take to add this func?

@jackmachine3d, Not ready to provide exact timelines yet. Tentatively, we plan to implement it in November.

Initially, this alerting support was disabled because certain APIs required for alerts were not yet implemented in VictoriaLogs. I believe we now have the necessary APIs to develop this functionality. I’ll add the 'enhancement' label to this issue.

I'd like to clarify that this enhancement will allow creating and managing alerting rules on the Grafana side.
It won't allow fetching rules configured via external ruler (like vmalert) similarly to https://github.com/VictoriaMetrics/victoriametrics-datasource/issues/59.

Hi @jackmachine3d ! The feature was added in the new plugin release. Close this issue as resolved. Feel free to reopen the issue if you find any problems.

Hi @dmitryk-dk  thanks for the work done. You're the best guys.


Automatically use latest template for tests

Description
Instead of hardcoding a template ID, we discover the latest build version of template before running any tests.
Acceptance tests

[x] Have you added an acceptance test for the functionality being added?
[ ] Have you run the acceptance tests on this branch?

Release Note
Release note for CHANGELOG:

NONE

References

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

LGTM once CI is fixed


Update to v3 failed with Error: iconType must be one of the following values: emoji, ascii, unicode

Describe a bug
After updating from v2 to v3 I get the following error message when running the jest build step. Since I have no special configuration, I assume that a bug in the action is responsible for this.
Running using node v18.16.1
Begin initialization stage...
Initialization stage failed
Error: Error: iconType must be one of the following values: emoji, ascii, unicode
iconType must be one of the following values: emoji, ascii, unicode
Error: iconType must be one of the following values: emoji, ascii, unicode
iconType must be one of the following values: emoji, ascii, unicode
    at sC (/home/runner/work/_actions/ArtiomTr/jest-coverage-report-action/v3/dist/index.js:2220:3460)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ei (/home/runner/work/_actions/ArtiomTr/jest-coverage-report-action/v3/dist/index.js:2221:158)
    at async UD (/home/runner/work/_actions/ArtiomTr/jest-coverage-report-action/v3/dist/index.js:22[30](https://github.com/***/***/actions/runs/5636375272/job/15268391600?pr=91#step:4:32):14458)
Initialization stage ended
/home/runner/work/_actions/ArtiomTr/jest-coverage-report-action/v3/dist/index.js:2230

Expected behavior
I would expect the test to run through with the below configuration without error.
Details

Action version: v3

OS, where your action is running (windows, linux): ubuntu-latest

Node Version: v18.16.1

workflow.yml file
jobs:
 jest:
   runs-on: ubuntu-latest
   permissions:
     checks: write
     pull-requests: write
     contents: write
   steps:
     - name: Checkout
       uses: actions/checkout@v3
     - name: Install node.js
       uses: actions/setup-node@v3
       with:
         node-version-file: .nvmrc
     - name: Jest with Coverage
       uses: ArtiomTr/jest-coverage-report-action@v3

Screenshots

Additional context
If necessary, I can also attach the complete log of this runs.

Hello @iamfj :wave:,
The v3 version is not released yet, actually, I've just started working on it 😄
I need a few months to finish it, so yeah, currently it is not even "alpha" or "beta" - it just doesn't work at all.

Dependabot has suggested the update from v2 to v3 in my repositories. I am not sure where it got the version from. If it is the GIT tag, maybe it makes sense not to tag the version until you have a stable version.

Thank you, didn't know that dependabot suggests updating actions, even if there is no release tag. I'll rename the branch

Renamed v3 branch to wip-v3, so dependabot should not suggest updating anymore 👍

Right, dependabot suggested it for me too. Thanks for the fast response!


Don't use async timeout

There is no need to use async timeout as the aiohttp ClientSession
has its own timeout capability. In fact, a timeout of 5s seems to
be problematic in a HomeAssistant installation at startup where
many asynchronous operation happens within a short time. Is the CPU
does not get around to check opendata_transport integration in time
the integration fails with:
Can not load data from transport.opendata.ch.

@fabaff do you plan to make a release soon? Would be cool to get this fix into HA :blush:


Get something like Dependabot configured

https://dependabot.com/
Let's do a better job of keeping our dependencies up to date.

I poked it briefly last night ...
Issue

Repo must contain either a Gemfile, a gemspec, or a gems.rb.

Expected
Said files are in the project root
Actual
Files are in /src
Recommendation
Customize dependabot configuration which allows project to continue on unmodified.
Steps
Create directory with yaml file as below ...
.dependabot/config.yml
Configure alternative location in file for the ruby gemfile ...
version: 1
update_configs:
  # custom dependency file to allow build process on sessionizer for vag/ansible
  - package_manager: "ruby:bundler"
    directory: "/src"
    update_schedule: "live"

I generally program from a cloud ide - so I haven't setup my test box at home in awhile & haven't syntax checked this one.  Thus no time spent on a PR.

As it stands the process makes a github issue everytime there's a needed update.
I'm also guessing you want someone to map out the dependency auto updating process in a safe manner?  Which can get a bit subjective so I'm leaving it for now.
Example: automerge based on dependency type
version: 1
update_configs:
  # required properties omitted ...
  automerged_updates:
    - match:
        dependency_type: "development"
        # Supported dependency types:
        # - "development"
        # - "production"
        # - "all"
        update_type: "all"
        # Supported updates to automerge:
        # - "security:patch"
        #   SemVer patch update that fixes a known security vulnerability
        # - "semver:patch"
        #   SemVer patch update, e.g. > 1.x && 1.0.1 to 1.0.3
        # - "semver:minor"
        #   SemVer minor update, e.g. > 1.x && 2.1.4 to 2.3.1
        # - "in_range"
        #   matching the version requirement in your package manifest
        # - "all"
    - match:
        dependency_type: "production"
        update_type: "semver:patch"

Closing. 'Tis part of GitHub's default behavior now. e.g.
https://github.com/minnestar/sessionizer/pull/298


Bug in zooming and switching between sensor units

Description:
Android Chrome
In my tests I am browsing on both normal sensor card chart and compare sensors chart.
I see this zoom bug where user cannot get out if he zooms and switches between sensor units.
Maybe I am shown battery voltage values on the Y axis at this stage, I am not sure.
Steps:

user selects 3 days viewport and chooses temperature
user chooses humidity
user chooses pressure and zooms in chart
user chooses battery, then switches back to pressure and zooms in chart
suddenly user is shown very small values and cannot zoom out anymore

Sensor card zoom:
https://github.com/user-attachments/assets/c8de7d58-e0dc-4b05-a423-c8b93db4ad2b
Compare sensors zoom:
https://github.com/user-attachments/assets/8d4f39b1-b435-4b59-824b-7f9c69d8d24c

QA passed


I just realized that this is as expected while writing this 🤦♂


[BUG] Some problems with symlinks, slash and backlash characters

Hello,
I'm using Pure-FTPd under Ubuntu 20.10 and termscp 0.4.0 under Windows 10
and there are some problems with symlinks, slash and backlash characters:
1- [INFO ]: Established connection with '<IP_ADDRESS>': "220 This is a private system"
2- [INFO ]: Changed directory on remote: /Documents
3- [ERROR]: Could not change working directory: Connection error (FTP InvalidResponse: Expected code [250], got response: 553 Prohibited file name: /Documents\HOUSE)
4- [INFO ]: Changed directory on remote: /Documents/HOUSE

1- It connects correctly and show correctly the symlink Documents but I can't enter it
2- So I try the Goto command and type Documents and it works
3- Then I try to enter the HOUSE directory but it fails since termscp is sending /Documents\HOUSE instead of /Documents/HOUSE
4- So I try the Goto command again and type /Documents/HOUSE and it works

Fixed and merged into 0.4.1


World Breakage when breaking a Pipe with contents on its way

Breaking a pipe while a connected pipe is going to be sending an item to the broken pipe causes a world-breaking bug. Not sure what more help I can offer, but I do have [this crash report!] (http://pastebin.com/ByYYTw4p) Short story long: sent an item from a chest into one of my CrissCross machines, and it was sending them off just fine. But, after one had been sent off (but before arriving to my machine), I broke a pipe in the connection and got this once the item arrived to what used to be the meeting point of the now broken pipe.

Oh, that's silly.


Update README.md

Corrected the MIT badge and now it can redirect users to the right place. Removed duplicates

Hey @KPCOFGS, thank for your contribution


Implement a background service like multi-timer to support long-term timers w/o app running

The multi-timer app has a clever way of using a background service with temporal events to keep track of long-running timers while the app is "closed".
Since app timers are killed when the app closes, we need a way to let something run similarly for extended periods and this seems to be the best approach. This service would be usable by the app, widget, or glance view to see the overall status of a smoking operation.

requires CIQ >= 2.4 for background services so this will only work on newer devices.

I think this is trivial to emulate with the datastore. Saving the timestamp before closing. On re-opening the app do a diff between the two and recalculate the timer. Obviously, no alarms, but if I'm smoking I would be checking the app. On Saturdays, for example, I put the meat on the smoker and instead of the app I check the time. Then try to remember at what time I started. The older I get the harder it gets to remember whether I started at 7:00 or 8:30 that day. Then do adjustments as I go throughout the day.
Other than the lack of warnings/reminders. Am I missing something?
Another interesting question is whether the datastore is sandboxed in the app. Is there a way to share data among apps? That is, app 1 writes a message for app 2 via de datastore on a shared memory area.

According to a bunch of posts on the Garmin forum there's no way on-device to share data between apps. You could do it in a companion app for Connect Mobile though.
You're right - you would lose alerts. It would be easy enough to be able to store/restore state so when the app re-opens it can catch up on the timers. It would also be usable as a widget and all the settings persist between the two.

I think this is working with the datastore. Perhaps the only thing would be to look for corner cases like when the timer exceeds the ETA and numbers go negative. I'll look into it.

This is handled well by the current implementation. It simply sets to 0. Closing.


Cannot find module 'eslint-plugin-react' in production

Just for info.
To fix issue, "eslint-plugin-react": "^7.13.0" should be added to the main dependencies instead of devDependencies.
P.S. With "react-scripts": "^2.1.8" all was fine, but starting from v.3 error was founded.

Why would you be running the linter in production?? linters are a dev dep, and are never installed in production.

Why would you be running the linter in production?? linters are a dev dep, and are never installed in production.

Yes, but...
https://stackoverflow.com/questions/54677395/error-failed-to-load-plugin-import-cannot-find-module-eslint-plugin-import-w

ok - since that’s a problem with CRA and not this plugin (or the rest of the eslint-using ecosystem), and since that SO question answers it, I’m going to close this.


Search pane exclude filter does not work in multi-root workspaces

VSCode Version: 1.30.1
OS Version: Windows_NT x64 10.0.16299

When searching for a keyword in a multi-root workspace, and choosing a folder to exclude in the search results, that folder is still visible.
Steps to Reproduce:
I created a very simple sandbox illustrating the problem: https://github.com/lodybo/vscode-multi-root-search-exclude-bug

In the search pane: search for the key 'localhost'

When adding the folder 'back-end' to the 'files to exclude' input (like so: ./back-end, because it would limit the search to a single root folder), the folder still shows up in the search results.

This also happens if the folder is added to search.exclude in workspace settings.
It appears to work for the 'files to be include' filter, strangely enough..

Does this issue occur when all extensions are disabled?: Yes/No
I tested this in my normal VS Code instance, as well as in one with all extensions disabled and in an Insiders instance.

https://github.com/Microsoft/vscode/issues/63303


Version 2.1.0

Version 2.1.0
Description

:sparkles: update to Invoices v3
:recycle: refactor Endpoint classes and document building
:arrow_up: Update PikePDF to 5.0.1
:sparkles: add a basic logger

How Has This Been Tested
Refactored and updated unit tests.
Types of changes

[x] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

We should add information about the logging in the README

@fharper we changed the readme recently to be very minimal, only the basic stuff to get going.
This is not at all required for using the lib, it should go in the docs.

We should add information about the logging in the README

@fharper we changed the readme recently to be very minimal, only the basic stuff to get going.
This is not at all required for using the lib, it should go in the docs.

Good point, yes, in the doc :)


TTLStrategy.secondsAfterCompletion does not work with value > 22 seconds

Checklist:

[x] I've included the version.
[x] I've included reproduction steps.
[x] I've included the workflow YAML.
[x] I've included the logs.

What happened:
I specified TTLStrategy.secondsAfterCompletion to a value of 30 seconds (also tried 60, 22, 25, 120 and 20). However if a value of 22+ seconds was specified, the workflow was not garbage collected as expected.
What you expected to happen:
I expect completed workflows to be garbage collected if a TTLStrategy.secondsAfterCompletion is defined, no matter how high the value of secondsAfterCompletion is. I believe, it should be possible to garbage collect a workflow a day after it has completed, not only within the first 20 seconds after completion.
How to reproduce it (as minimally and precisely as possible):
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: example
spec:
  TTLStrategy:
    secondsAfterCompletion: 30 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished
  entrypoint: sleep-5
  templates:
    - name: sleep-5
      container:
        image: alpine:latest
        command:
          - sh
          - -c
        args:
          - "echo running sleep-5 template && sleep 5 && echo done"

Anything else we need to know?:
There was also 1 instance I observed where a value of 20 seconds did not lead to garbage collection of the workflow.
Environment:

Argo version:

$ argo version
argo: v2.9.2
  BuildDate: 2020-07-08T23:55:01Z
  GitCommit: 65c2bd44e45c11e0a0b03adeef8d6800b72cd551
  GitTreeState: clean
  GitTag: v2.9.2
  GoVersion: go1.13.4
  Compiler: gc
  Platform: darwin/amd64

Kubernetes version :

$ kubectl version -o yaml
clientVersion:
  buildDate: "2020-01-15T08:26:26Z"
  compiler: gc
  gitCommit: e7f962ba86f4ce7033828210ca3556393c377bcc
  gitTreeState: clean
  gitVersion: v1.16.6-beta.0
  goVersion: go1.13.5
  major: "1"
  minor: 16+
  platform: darwin/amd64
serverVersion:
  buildDate: "2020-01-15T08:18:29Z"
  compiler: gc
  gitCommit: e7f962ba86f4ce7033828210ca3556393c377bcc
  gitTreeState: clean
  gitVersion: v1.16.6-beta.0
  goVersion: go1.13.5
  major: "1"
  minor: 16+
  platform: linux/amd64

Other debugging information (if applicable):

workflow result:
in this example secondsAfterCompletion was set to 22 seconds

argo --loglevel DEBUG get <workflowname>
DEBU[0000] CLI version                                   version="{v2.9.2 2020-07-08T23:55:01Z 65c2bd44e45c11e0a0b03adeef8d6800b72cd551 v2.9.2 clean go1.13.4 gc darwin/amd64}"
DEBU[0000] Client options                                opts="{{ false false}  0x2277640 0xc00004d0e0}"
Name:                example
Namespace:           argo
ServiceAccount:      default
Status:              Succeeded
Conditions:
 Completed           True
Created:             Mon Jul 13 11:43:35 +0200 (3 minutes ago)
Started:             Mon Jul 13 11:43:35 +0200 (3 minutes ago)
Finished:            Mon Jul 13 11:43:45 +0200 (2 minutes ago)
Duration:            10 seconds
ResourcesDuration:   12s*(1 cpu),12s*(100Mi memory)

STEP        TEMPLATE  PODNAME  DURATION  MESSAGE
 ✔ example  sleep-5   example  8s

executor logs:
Not applicable.

kubectl logs <failedpodname> -c init
kubectl logs <failedpodname> -c wait

workflow-controller logs:

kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name)
time="2020-07-13T09:43:22Z" level=info msg="Deleting TTL expired workflow argo/example"
time="2020-07-13T09:43:22Z" level=info msg="Successfully deleted 'argo/example'"
time="2020-07-13T09:43:35Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Updated phase  -> Running" namespace=argo workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Pod node example initialized Pending" namespace=argo workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Created pod: example (example)" namespace=argo workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1560798 workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1560802 workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Updating node example message: ContainerCreating"
time="2020-07-13T09:43:35Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1560803 workflow=example
time="2020-07-13T09:43:35Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:36Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:41Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:41Z" level=info msg="Updating node example status Pending -> Running"
time="2020-07-13T09:43:41Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1560820 workflow=example
time="2020-07-13T09:43:41Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:45Z" level=info msg="Processing workflow" namespace=argo workflow=example
time="2020-07-13T09:43:45Z" level=info msg="Setting node example outputs"
time="2020-07-13T09:43:45Z" level=info msg="Updating node example status Running -> Succeeded"
time="2020-07-13T09:43:45Z" level=info msg="Updated phase Running -> Succeeded" namespace=argo workflow=example
time="2020-07-13T09:43:45Z" level=info msg="Marking workflow completed" namespace=argo workflow=example
time="2020-07-13T09:43:45Z" level=info msg="Checking daemoned children of " namespace=argo workflow=example
time="2020-07-13T09:43:45Z" level=info msg="Found Workflow argo/example set expire at 2020-07-13 09:44:07 +0000 UTC (21.240159s from now)"
time="2020-07-13T09:43:45Z" level=info msg="Queueing workflow argo/example for delete in 21.240159s"
time="2020-07-13T09:43:45Z" level=info msg="Found Workflow argo/example set expire at 2020-07-13 09:44:07 +0000 UTC (21.239524s from now)"
time="2020-07-13T09:43:45Z" level=info msg="Queueing workflow argo/example for delete in 21.239524s"
time="2020-07-13T09:43:45Z" level=info msg="Workflow update successful" namespace=argo phase=Succeeded resourceVersion=1560833 workflow=example
time="2020-07-13T09:43:45Z" level=info msg="Labeled pod argo/example completed"
time="2020-07-13T09:44:00Z" level=info msg="Running xxxxxxxxxxx-xxxxxxxxxxxxxxxx" namespace=argo workflow=xxxxxxxxxxx-xxxxxxxxxxxxxxxx
time="2020-07-13T09:44:03Z" level=info msg="xxxxxxxxxxx-xxxxxxxxxxxxxxxx is suspended, skipping execution" namespace=argo workflow=xxxxxxxxxxx-xxxxxxxxxxxxxxxx
time="2020-07-13T09:44:08Z" level=info msg="Alloc=20030 TotalAlloc=228395 Sys=71040 NumGC=23 Goroutines=162"

Logs
see above
argo get <workflowname>
kubectl logs <failedpodname> -c init
kubectl logs <failedpodname> -c wait
kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name)

Message from the maintainers:
If you are impacted by this bug please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

Hi @arbielsk - your YAML is invalid. It should be:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: example
spec:
  ttlStrategy:
    secondsAfterCompletion: 30
  entrypoint: sleep-5
  templates:
    - name: sleep-5
      container:
        image: 'alpine:latest'
        command:
          - sh
          - '-c'
        args:
          - echo running sleep-5 template && sleep 5 && echo done

I ran with this YAML and it worked for me?

@alexec Please excuse me. It seems this was actually an issue with my local kubernetes setup. A restart of the workflow-controller pod did not remedy the issue for me (I did that before creating the bug report), but tearing down the whole namespace and reinstalling argo in it, did it.

think i've been hitting the same issue on 2.9.5.  Using 6000 seconds used to work, but anymore.   atm don't have too much time to look into it, just setting it to 0 which works.
the controller logs all had ... set expire at ... <some large negative number> from now and Queueing workflow ... 0.0s, but never Deleting TTL expired.  Anyway, will look into it later, when more time.


Add note about Vivaldi support for theme-color

Add note about vivaldi's support for the theme-color meta tag

Thanks!


Development mode reload is broken for exposed CXF services

Fix #551

Let me check like this and check the damage in Camel Quarkus later because I have some subsequent commits ready now.


Removed all empty translations present in the challenges in the seed files

Pre-Submission Checklist

[x] Your pull request targets the staging branch of freeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Closes currently open issue (replace XXXX with an issue no): Closes #12899

Description

Removed all empty translations i.e the translations with no text present in seed/challenges folder. Changed all code in the form
    translations: {
        "de": {
          "description": [],
          "title": ""
        }
    }

to
    translations: {}

Please rebase to remove conflicts

@envy7 thanks for doing this. Looking forward to merging this as soon as you've resolved the conflicts. Please let me know if I can be of any help with this.

@QuincyLarson I have resolved all the conflicts.

Wow, this is my first PR that has been merged in a big organisation, certainly learnt a lot, I hope to keep contributing in the future.

@envy7 Glad to hear that! :smile: If you want to help out more, there are plenty of open issues [labeled as "Help Wanted"](is:open label:"help wanted" ).


prefer-object-spread

Current dependencies on/for this PR:

main

PR #63   👈

This comment was auto-generated by Graphite.


example notebook/tutorial: solving model & adding a solver

Similar to #238

@rtimms  would it be possible to implement mass matrix for the scikits ode solver (currently passed but not used)?

cvode requires the send to be given explicitly in the form y’=f(t,y). would need to invert the mass matrix to use it with solver. I’m not sure how efficient that is, or whether we should encourage use of the scipy solver or gives the odes implicitly to IDA? I think sundials recommend ARKode for odes with a nonsingular mass matrix, but this isn’t in scikits

Ok, I was thinking about the case where the mass matrix is tri-diagonal, but happy to just leave it out of the cvode solver and have it available if someone writes their own ODE solver and wants to use it

One option would be to check if the mass matrix is the identity and then do nothing, otherwise invert and multiply rhs by the result (maybe with a warning). There is some discussion here about inverting sparse matrices with scipy


Make sample_weights and class_weights multiplicative.

Summary
This is an item to sync Keras with a pending change in tf.Keras
Previously class_weights was ignored with a logging warning if
sample_weights was also provided.
Related Issues
PR Overview

[ y] This PR requires new unit tests [y/n] (make sure tests are included)
[ y] This PR requires to update the documentation [y/n] (make sure the docs are up-to-date)
[ y] This PR is backwards compatible [y/n]
[ n] This PR changes the current API [y/n] (all API changes need to be approved by fchollet)

Could you please link to the corresponding commit/PR in tensorflow?


Gracefully shutdown expressjs server when Docker container is closed

Fixes #127

I have no idea if this is working but it should.


Add documentation for MSBuild target framework functions

Intrinsic functions for handling target framework and target platform values were added in microsoft/msbuild#5429 and microsoft/msbuild#5234

Fixed with https://github.com/MicrosoftDocs/visualstudio-docs-pr/pull/6866


Fix data volume import / export functionality when using swift as secondary storage

Description
This PR is a fix for the data volume import and export functionality when using swift as secondary storage.
Background:
Secondary storage is used for templates, snapshots and iso's. A data disk is a volume and is meant to reside on primary storage. However, when importing a volume it is first uploaded to secondary storage and then copied to over to primary storage when attached to a VM. Similarly when exporting a volume, it is copied to secondary storage before it is made available to the user for download. When using swift as a secondary storage, an intermediate staging nfs store is needed when copying volumes between primary and secondary storage. This staging nfs store is leveraged for the volume import and export functionality since volumes need not have a footprint on secondary storage.
Currently this functionality does not work:
When importing a volume the following error is observed:
org.apache.cloudstack.storage.to.VolumeObjectTO cannot be cast to org.apache.cloudstack.storage.to.TemplateObjectTO
Further investigation reveals that there is no provision in the code to handle import of volumes. Currently only template import is supported.
When exporting a volume a URL to the secondary storage is generated but it clicking it does not initiate a download of the exported volume. Further investigation revealed that the url points to a broken symlink which points to an invalid path on the SSVM
Use Cases

User should be able to import a volume from a URL when using swift as secondary storage and XenServer as the hypervisor.
User should be able to export a volume to a secondary storage VM URL when using swift as secondary storage and XenServer as the hypervisor.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
This addresses https://github.com/apache/cloudstack/issues/4874
Feature/Enhancement Scale

[ ] Major
[*] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[*] Minor
[ ] Trivial

How Has This Been Tested?

Create data volume (non-managed storage)
Attach it to a VM.
Create a file system and a test file on the new data volume.
Export volume.
Upload exported volume to a bucket and generate a URL.
Import volume back into CloudStack from URL.
Attach imported disk to a VM.
Verify previously created test file.

@khos2ow could you take a look at this ?

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 268

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 339

@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-1071)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35011 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4875-t1071-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_usage.py
Smoke tests completed. 87 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_volume_usage
Error
127.92
test_usage.py

Let's try again
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian. SL-JID 705

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian. SL-JID 713

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian. SL-JID 792

Ping @skattoju4 cc @syed @swill - can you check and fix the build failure? Is this PR ready for reviewing/merging?

Ping @skattoju4

Ping @skattoju4 can you fix conflicts and address comments?

Ping @skattoju4

@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 3789

Moving this to 4.18.0 milestone as this is targeted for main
@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 3851

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/4875 (SL-JID-2028)

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 3854

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 4877

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 4899

@skattoju4 are you still prepared to work on this? there is a compile error:
[ERROR] /jenkins/workspace/acs-centos7-pkg-builder/dist/rpmbuild/BUILD/cloudstack-<IP_ADDRESS>-SNAPSHOT/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java:21:15: Unused import - com.cloud.storage.snapshot.SnapshotManager.BackupSnapshotAfterTakingSnapshot. [UnusedImports]

@skattoju4 can you look at the unused import? If you don´t have time now we can move this to 4.18.1

@DaanHoogland That unused import might be my doing while addressing review comments. Will fix that. But since we don't have hw and setup to test this I don't think can make it to 4.18.0 unless author can help out

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 5203

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-5772)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 49023 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4875-t5772-kvm-centos7.zip
Smoke tests completed. 105 look OK, 2 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_01_volume_usage
Error
126.82
test_usage.py

test_08_upgrade_kubernetes_ha_cluster
Failure
3648.03
test_kubernetes_clusters.py

test_09_delete_kubernetes_ha_cluster
Failure
0.07
test_kubernetes_clusters.py

ContextSuite context=TestKubernetesCluster>:teardown
Error
68.56
test_kubernetes_clusters.py

@skattoju4 i marked this for 4.18.1 for now. feel free to put it back to 4.18.0 if you feel it is ready.

@blueorangutan package

@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: el9 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 7044

@Sjnas can you please check the failures? Should we consider this for <IP_ADDRESS>?

@blueorangutan package

@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: el9 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 7212

@blueorangutan package

@blueorangutan package

@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 7220

@blueorangutan test

@DaanHoogland a [SF] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-7835)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 52151 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4875-t7835-kvm-centos7.zip
Smoke tests completed. 111 look OK, 2 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_01_volume_usage
Error
127.05
test_usage.py

test_list_vms_metrics_admin
Error
3609.53
test_metrics_api.py

test_list_vms_metrics_history
Error
5.39
test_metrics_api.py

test_list_volumes_metrics_history
Error
4.36
test_metrics_api.py

@blueorangutan test

@DaanHoogland a [SF] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-7854)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 42218 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4875-t7854-kvm-centos7.zip
Smoke tests completed. 112 look OK, 1 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_01_volume_usage
Error
130.17
test_usage.py

@skattoju4 the usage test failure seem consistent: 'Command failed due to Internal Server Error' can you check it locally?

@skattoju4 are you still concerned with this?