RuntimeError: register_forward_hook is not supported on ScriptModules

Try executed this code, but print RuntimeError message.
Is there any solution?
import torch
import torchvision.models as models

from torchsummary import summary

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

model = models.detection.fasterrcnn_resnet50_fpn().to(device)

summary(model, (3, 416, 416))

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/torchsummary/torchsummary.py", line 68, in summary
    model.apply(register_hook)
  File "/usr/local/lib/python3.7/site-packages/torch/nn/modules/module.py", line 287, in apply
    module.apply(fn)
  File "/usr/local/lib/python3.7/site-packages/torch/nn/modules/module.py", line 287, in apply
    module.apply(fn)
  File "/usr/local/lib/python3.7/site-packages/torch/nn/modules/module.py", line 287, in apply
    module.apply(fn)
  File "/usr/local/lib/python3.7/site-packages/torch/nn/modules/module.py", line 288, in apply
    fn(self)
  File "/usr/local/lib/python3.7/site-packages/torchsummary/torchsummary.py", line 42, in register_hook
    hooks.append(module.register_forward_hook(hook))
  File "/usr/local/lib/python3.7/site-packages/torch/jit/__init__.py", line 1689, in fail
    raise RuntimeError(name + " is not supported on ScriptModules")
RuntimeError: register_forward_hook is not supported on ScriptModules

enviroment
-- python 3.7.4
-- torch 1.3.1
-- torchvivsion 0.4.2
-- torchsummary 1.5.1

This is because ScriptModules (what fasterrcnn_resnet50_fpn is represented as here) doesn't currently support forward hooks, and torchsummary currently assumes that the model passed in inherits from  nn.Module, so then the method register_forward_hook is supported. Hope that helps!

@Naireen
Thank you for Reply.
I tried debugging but didn't know where the problem was.
Do you know which layer of fasterrcnn_resnet50_fpn is the problem?


Run Command

Add upp run command.

TODOs and Improvements required,

Run cmd sets global git user.name and user.email, change the scope to repo
Add logging using winston
Unbundle the CA Certs
Introduce other of Uptime-Monitor CIs and functionalities


Integrate API for login and signup

Hi!
In this branch I made the API integration for login and signup
let me know if something could be improved!

Hello @lisandroseia! Congratulations on your work, it looks very professional. I would recommend adding an intermediary screen after the login to tell the user processes are happening in the background eg. You are being redirected, If it does not happen automatically, you can click here. Apart from that, the login page and registration work really well. Well done!

yes, I am saving the messages in the store because we will implement notifications to tell what's happening in the background


Tests

Added more tests and fixed cardinality inference for many cases (function calls, index dereferencing, slices, etc.)

(merged by hand)


feat: Native Support for Netflix OSS transformation

Signed-off-by: K mehant<EMAIL_ADDRESS>

@ashokponkumar Thank you for the review! I have addressed the changes!


Loop demutation bug

The following gives us an error:
function count(f:: Function, d::Matrix) :: Priv()
          (dim, _) = size(d)
          counter = 0
          for i in 1:dim
             dd = d[i,:]
             if f(dd) == 1
                 counter = counter + 1
             end
             counter
           end
       counter
       end

This currently demutates to:
                          FLet count =
                            LamStar ([f :- (Function, interesting), d :- (Matrix{Any}, interesting)])
                            (
                              TLet [dim :- Any, _ :- Any] = Size (Just d)
                              SLet counter :- Any = 0.0
                              SLet counter :- Any =
                                Loop (ceil [/ [- [Just dim, - [1.0, 1.0]], 1.0]], [counter], (Just i,gen_loop_capture_0))
                                (
                                  SLet counter :- Any = Just gen_loop_capture_0
                                  Reorder [1]
                                  (
                                    SLet dd :- Any = Row (Just d, Just i)
                                    Phi (== [Just f[Just dd], 1.0])
                                    (
                                      TLet [dd :- Any, counter :- Any] =
                                        SLet counter :- Any = + [Just counter, 1.0]
                                        Tup [Just dd, Just counter]

                                      Tup [Just dd, Just counter]
                                    )
                                    (
                                      TLet [dd :- Any, counter :- Any] = Tup [Just dd, Just counter]
                                      Tup [Just dd, Just counter]
                                    )
                                  )
                                )

                              Just counter
                            )

                          LastTerm Just count
                          -----------------------------------

We currently have:
                          FLet count =
                            LamStar ([f :- (Function, interesting), d :- (Matrix{Any}, interesting)])
                            (
                              TLet [dim :- Any, _ :- Any] = Size (d)
                              SLet counter :- Any = 0.0
                              SLet counter :- Any =
                                Loop (ceil [/ [- [dim, - [1.0, 1.0]], 1.0]], [counter], (Just i,gen_loop_capture_0))
                                (
                                  SLet counter :- Any = gen_loop_capture_0
                                  SLet dd :- Any = Row (d, i)
                                  Phi (== [f[dd], 1.0])
                                  (
                                    SLet counter :- Any =
                                      SLet counter :- Any =
                                        SLet counter :- Any = + [counter, 1.0]
                                        counter

                                      counter

                                    counter
                                  )
                                  (
                                    SLet counter :- Any = counter
                                    counter
                                  )
                                )

                              counter
                            )

                          LastTerm count

This one uses references and thus is currently blocked by #199

For the count example:
function count(f:: Function, d::Matrix) :: Priv()
  (dim, _) = size(d)
  counter = 0
  for i in 1:dim
    dd = d[i,:]
    if f(dd) == 1
      counter = counter + 1
    else
      counter = clone(counter)
    end
  end
  counter
end

we currently get:
---------------------------------------------------------------------------
Type:
{
  -  {
    -  Vector<n: τ_31, c: τ_10>[s_8](τ_82)
        @ s_23
    --------------------------
     -> τa_26

  }
      @ (∞, ∞)

  -  Matrix<n: τ_31, c: τ_10>[s_9 × s_8](τ_82)
      @ (∞, ∞)
  --------------------------
   ->* Int[--]

}
---------------------------------------------------------------------------
Constraints:
   - top:
constr_7 : [final,worst,global,exact,special] IsTypeOpResult (Binary == (τa_26 @ η_17,Num(Int[1]) @ η_18) Bool)
   - others:

That this now mostly works is due to #201.

One constraint is still left. We keep it at that for now. Further tracking in #208.


fix(tsoa): unable to debug tsoa app side

For https://github.com/winglang/setup-tsoa-hybrid/issues/2

@MarkMcCulloh - were you able to reproduce this issue? Do you see it fixed after applying your changes?

@staycoolcall911 Yep and yep. I pulled down https://github.com/winglang/setup-tsoa-hybrid, ran a test and noticed the breakpoint never loaded.
Then I manually changed that sourcemaps false to true in the node_modules copy @winglibs/tsoa, then rerunning the test hit the breakpoint

Great, so I'll close the original issue, thank you


more modeling fixes

show loader instead of empty model
middle click and drag to pan
pan to element on selection via outline
center on element for outline double click
clean up navbar!
fix popup dismissal logic for apply change set modal
fix right click behaviour in outline
clean up style on confirm delete change set modal
add "+ New" back into change set selection dropdown

git merge

bors merge


Login access failed

I Siamon123, I had copy all the fils to the server and changed the password via MD5 for admin user in database table but still it is saying wrong password/ username can you help me.
Thanks

Changing file permission it works. Thanks


FIx a description of the agent option

Among the options for '--wallet-storage-type' that were not previously supported, 'indy' was modified to 'default'.
For this problem, if you follow the description of the option and set it to 'indy', you will receive an error of 'Unknown wallet storage type'.
This is received from the indy library and only handles the 'default' option as a map in the WalletService of the indy library, and does not add the 'indy' option.
So I modified & reinforced the description of '--wallet-storage-type'.

Codecov Report

Merging #689 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #689   +/-   ##
=======================================
  Coverage   98.98%   98.98%
=======================================
  Files         252      252
  Lines       13620    13620
=======================================
  Hits        13482    13482
  Misses        138      138


Update removed-deprecated-features-windows-server-2025.md

The WMIC feature owner, Siddhartha Ray Barua, has asked to modify the first sentence in the WMIC cell to this:
"WMIC has been converted to a feature on demand (FoD) and won't come preinstalled on new installations of Windows Server."

@robinharwood, @Xelu86
Can you review the proposed changes?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Migrate to using Ash as a base

[x] Added an entry to CHANGELOG_VULKANO.md or CHANGELOG_VK_SYS.md if knowledge of this change could be valuable to users
[x] Updated documentation to reflect any user-facing changes - in this repository
[ ] Updated documentation to reflect any user-facing changes - PR to the guide that fixes existing documentation invalidated by this PR.
[x] Ran cargo fmt on the changes

This migrates Vulkano to use Ash, which closes #1500. I went with Ash in the end because it has some design decisions I agreed with more, and because I became more familiar with it. But I don't think it will matter too much.
Despite being a massive change affecting large parts of the codebase, the number of breaking changes is very small. The most obvious breaking change is that I took #1583 to its logical conclusion and created a SampleCount enum, which is now used everywhere to represent sample counts. Vulkano previously used a simple u32 for this, but this didn't match the actual Vulkan spec, which only allows power-of-two values and defines symbols for them. The Ash migration made the old Vulkano approach more difficult to deal with, so I went ahead and included this change.
The only other breaking changes are those to the raw function pointers, which Vulkano exports from FunctionPointers, Instance and Device. This is by necessity, since these were types and symbols exported directly from vk-sys, and had to be adapted to how Ash handles them.
The vk-sys library now isn't used by Vulkano at all anymore, but I've left it alone in this PR. It could be kept around for anyone to use, but since it's so incomplete I doubt it will be used much. I'll leave it to the maintainers to decide what to do with it.
I went for a relatively minimal conversion to Ash (if you can still call it that, with 101 files changed...), where not much is changed in Vulkano other than what's needed to get the code to work. This means I used Ash's raw structs rather than the accompanying builders, and I used the raw Vulkan functions rather than Ash's "idiomatic" wrappers. This is mainly a matter of code style, and can always be changed in the future if anyone wants to.

@Rua One last question before I proceed with merging. I noticed that MainLayout is no longer accessed in the shader's generated module. How the user is supposed to access it after this migration?

Huh, did my PR actually change that? Where?

@Rua hm... no, it's not. But it appears somewhere in unreleased changes. I'm looking into it

@Rua ok, I can clear say this issue is happening after https://github.com/vulkano-rs/vulkano/pull/1581 merge.
This is not a blocker for this PR, but it will be a blocker for the next release. Please take a look at this issue as you have the best expertise in this field. Basically, shader's MainLayout type is no longer accessed/generated.

PR merged.

@Rua ok, I can clear say this issue is happening after #1581 merge.

Ah, well that makes sense then. That PR moves away from representing pipeline layouts as distinct types, and uses the single PipelineLayoutDesc type instead. So there is no more MainLayout type at all being generated by vulkano-shaders, instead it generates a PipelineLayoutDesc value with the same information. Is there anything in Vulkano that still refers to MainLayout?

@Rua Well, the problem(or maybe not a problem) is that we have users who generate shaders from spirv directly(from RustGPU to be more specific). There are several layouts, and they need to distinct between them somehow.


Add 47933.patch

Add option to jl_print_task_backtraces(bool) to control whether or not to print DONE tasks (https://github.com/JuliaLang/julia/pull/47933).
To be merged once the backport is merged in RelationalAI's code

This patch was merged to raicode, so i'm merging here.


Error deleting GCP database subnetwork

When deleting a stack that has been deployed with a SQL database on GCP the following error occurs:
Error when reading or editing Subnetwork: googleapi: Error 400: The subnetwork resource 'projects/example/regions/australia-southeast1/subnetworks/nitric-db-subnetwork' is already being used by 'projects/example/regions/australia-southeast1/addresses/serverless-ipv4-1721014303789269923'

The stack can only be destroyed after GCP cleans up its address reservation, which can take a couple of hours. This seems to be a problem with GCP, as it's impossible to delete the stack manually using the gcloud CLI or the portal.
Related issues:

https://discuss.hashicorp.com/t/gcp-delete-automatic-created-resources-not-by-terraform/28749
https://stackoverflow.com/questions/78524117/failed-to-release-serverless-ipv4-because-in-use-by-some-address-reservation
https://cloud.google.com/knowledge/kb/unable-to-delete-project-due-to-ghost-subnetwork-and-instance-000004625

Resolved by: https://github.com/nitrictech/nitric/pull/623


Justinbarry/ch5945/reporting upcoming reporting markets

@sharkcrayon It looks like you are the epic owner here. Please review and add feedback.


[BEAM-3979] Start completing the new DoFn vision: plumb context parameters into process functions.

This PR starts plumbing remaining parameters directly to function arguments, eliminating the need for ProcessContext of TimerContext in most places. For example, a WordCap ParDo might now contain the following:
'@'ProcessElement
public void process('@'Element String word, OutputReceiver receiver) {
receiver.output(word.toUpperCase());
}
The majority of arguments (element, timestamp, pane, output receiver, time domain) are plumbed in this PR. This PR does not yet add support for finish-bundle output or for side inputs; both require some design discussion first, which will happen on the dev list.
R: @kennknowles

Nice. There are a few sketches of further moves outlined here: https://s.apache.org/a-new-dofn#heading=h.5ckj5udg4pn8
The designs there focus on ways that the new DoFn adds construction-time information. For dynamically generated sets of input/output tags there's not really such a benefit. So it is probably just copy/paste/delete (noting that ProcessContext itself is merely another new DoFn parameter).

@kennknowles Thanks for the pointer! This PR does not attempt side inputs, as I believe that requires a bit more design discussion. Also note that Dataflow test failures are expected, as the ArgumentProvider changes need to be merged first and baked into the Dataflow worker image.

@kennknowles have you had time to look at this, or would it be better off with another reviewer?

Other than this, LGTM.

retest this please


Dump in file is not sql extension

Dump in file is not sql extension

Do you mean it's not generated the file extension?
Anyway I don't know if this code still working or not right now but regarding your issue, I think you can add it manually by renaming the generated file.
Please use .bz2 extension then you can extract it.
I'd be glad if you could do a PR to resolve the issue 👍


datasette one.db one.db opens database twice, as one and one_2

% mkdir /tmp/data
% cp ~/Dropbox/Development/datasette/fixtures.db /tmp/data
% datasette /tmp/data/*.db /tmp/data/created.db --create -p 8852
...
INFO:     Uvicorn running on http://<IP_ADDRESS>:8852 (Press CTRL+C to quit)
^CINFO:     Shutting down
% datasette /tmp/data/*.db /tmp/data/created.db --create -p 8852
...
INFO:     <IP_ADDRESS>:49533 - "GET / HTTP/1.1" 200 OK

The first time I ran Datasette I got two databases - fixtures and created
BUT... when I ran Datasette the second time it looked like this:

This is the same result you get if you run:
datasette /tmp/data/fixtures.db /tmp/data/created.db /tmp/data/created.db

This is caused by this Datasette issue:

https://github.com/simonw/datasette/issues/509

So... either I teach Datasette to de-duplicate multiple identical file paths passed to the command, or I can't use /data/*.db in the Dockerfile here and I need to go back to other solutions for the challenge described in this comment: https://github.com/simonw/datasette-publish-fly/pull/12#issuecomment-1031971831

Originally posted by @simonw in https://github.com/simonw/datasette-publish-fly/pull/12#issuecomment-1032029874

I found this bug while trying to get the following to work:
datasette /data/one.db /data/two.db /data/*.db --create

I want this to create any missing database files on startup out of that literal list of one.db and two.db and to also open any other *.db files in that folder - needed for datasette-publish-fly in https://github.com/simonw/datasette-publish-fly/pull/12#issuecomment-1032029874

I'm going to fix this in a 0.60.2 bug fix release.

I'm going to fix this in the CLI code itself, rather than fixing it in the Datasette constructor. That way if someone has a truly weird reason to want this behaviour they can construct Datasette directly.
https://github.com/simonw/datasette/blob/03305ea183b1534bc4cef3a721fe5f3700273b84/datasette/cli.py#L535-L550

For the record, here's the code that picks the one_2 name if that stem is already used as a database name: https://github.com/simonw/datasette/blob/03305ea183b1534bc4cef3a721fe5f3700273b84/datasette/app.py#L401-L417

That implementation broke on Python 3.6 - which is still a supported Python version for the 0.60.x branch.
>       assert (
            "2 rows in 1 table, 5 rows in 4 hidden tables, 1 view" == counts_p.text.strip()
        )
E       AssertionError: assert '2 rows in 1 ...ables, 1 view' == '1 table, 4 h...ables, 1 view'
E         - 1 table, 4 hidden tables, 1 view
E         + 2 rows in 1 table, 5 rows in 4 hidden tables, 1 view
E         ? ++++++++++         ++++++++++

That's because this idiom isn't guaranteed to preserve order in versions earlier than Python 3.7:
https://github.com/simonw/datasette/blob/fa5fc327adbbf70656ac533912f3fc0526a3873d/datasette/cli.py#L552-L553
I could say that 0.60.2 is the first version to require Python 3.7 - but that feels a little surprising.
I'm going to use a different idiom for order-preserving de-duplication from this StackOverflow instead.

Released in https://github.com/simonw/datasette/releases/tag/0.60.2


Review of reference-based RNA-seq tutorial

I went through this tutorial in preparation for the practical course we are running for master's students in Freiburg atm and made a few small corrections (mostly typos and similar).
There were a couple of more major things that were not clear to me, I'll write some comments below.

I'm happy for this to be merged - does anyone have any comments?

Thanks a lot @simonbray! And sorry for the delay, between GCC and holidays, time flies

Cool, thanks a lot @shiltemann!


implicit val x: X[A] = implicitly[X[A]]

When doing the following:
implicit val x: X[A] = implicitly[X[A]]

x is null and so things break. We should ensure this doesn't compile.

At the template level the reference isn't to the concrete local value x, it's to the virtual path this.x, which may or may not turn out to be the same thing, and isn't necessarily null.
Inside of a block, there's no way to override the val.
Not saying this is a useful way to do things, only that there's a reason it's not the same thing.

trait B[K] {
  implicit val x: Ordering[K] = implicitly[Ordering[K]]
  println(x)
}
class C[K](override val x: Ordering[K]) extends B[K]
object M {
  // scala.math.Ordering$Int$@312b1dae
  def main(args: Array[String]): Unit = new C( implicitly[Ordering[Int]] )
}


[Amazon Drive] Can't Add Amazon Drive

OS：Windows 10
Keepass ver. 2.45
KeeAnywhere 1.60

After clicking "Allow", I get

No account is added successfully. It just stay on that page.
Plearse help. Thanks.

Ok I am trying to fix it

Okk the thing is it is a bug which is now when I write this message. You try again and now it is fixed

i have the same error and i have installed the newest version of the software and still got the same bug. i would appreciate the help

Amazon has decided to not support other parties to use/access Amazon Drive anymore. It worked just because they kept it intact for some time.
It seems it is not the case anymore, so I think I will completely remove Amazon Drive support.


update nb

brush up MBO nb, more functional look, ref to k overlap

Fixed the tests + some math rendering in other notebooks, merging this so that the tests pass.


[stable/gocd] Removed extra char from role config instructions

What this PR does / why we need it:
Removed an extra character from the role setup instructions in the GoCD chart readme.
I believe this extra character got added by mistake when a person copied the command from their command line.
Allows users to copy this command into their terminal and not encounter a bug when they run it.
Special notes for your reviewer:
N/A

@Noah-Huppert - please update Chart.yaml and the changelog

Gotcha

/ok-to-test

/lgtm

@Noah-Huppert -- The commits are not signoff. Mind taking a look at DCO Check.

/ok-to-test /lgtm

/lgtm


Can add not instance method to Bool class in std library, and all_index to Enumerable?

Bool instance'sitself method inheriting from Object, allow we select true value conveniently, with &.itself, but it is invalid for false value. So why don't add not method to Bool in std library, use &.not to select false value?

Since we have select to do a.map.with_index{|x, i| x if x.meet_some_conditions}.compact!, Is it need all_index method to do a.map.with_index{|x, i| i if x.meet_some_conditions}.compact!?

It already exists as Object#!.
What's the usecase for this?

1: Also there is reject to select false values.

1: Also there is reject to select false values.

Yes, it is. I mean, this opposite belongs to Bool itself, not Enumerator's method. This means, we must define opposite method with each Enumerator's method, such as {select: reject, take_while: skip_while, ...}. Is it necessary? And, There is no opposite method of find and index, even unnecessary .

It already exists as Object#!.
What's the usecase for this?

Object#! can't write as count(&.!), with Error: expecting any of these tokens. We need a word rather than a symbol method. And it is same to ~. Furthermore, is there method defined with word of Bool or class derived from Bool, to override——we can't write define !, such as and, xor, nand etc. ?

There are some cases that index is significative variable——such as used to calcalute offset of another array——and value is only used by meet_some_conditions filter. Using array rather than hash to store it is in view of performance, since the index is finite numeric.

I think that's actually just a bug. &.! should work. But yes, you can't reimplemt that method because its a pseudo method provided by the compiler. If you need different (overridable) behaviour, you need to define a custom method for this. But that doesn't require that method being in the stdlib.
So this would essentially be an extension to Enumerable#index which returns the index of the first matching element to return the indices of all matching elements. Sounds reasonable.

can this be closed since https://github.com/crystal-lang/crystal/pull/8445#issuecomment-554316878 is merged?

Closed by #8445


RCQ wakup actively when resource group is in trickle mode

What problem does this PR solve?
Issue Number: close #8391
Problem Summary:
To make RU usage more accurate and stable:

add estWaitDuraMS, so RCQ can wakeup when token refill in trickle mode

Before:

After:

others:

Update where metrics changes occur, rather than uniformly updating it every 5 seconds within collectMetrics(), which ensures more accurate metrics.
Delete fetch_tokens_from_gac_count metrics because it doesn't help debug

What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[x] Manual test (add detailed scripts or steps below)

create resource group

create user u5 identified by '1234';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,PROCESS,REFERENCES,ALTER,SHOW DATABASES,SUPER,EXECUTE,INDEX,CREATE USER,CREATE TABLESPACE,TRIGGER,CREATE VIEW,SHOW       VIEW,CREATE ROLE,DROP ROLE,CREATE TEMPORARY TABLES,LOCK TABLES,CREATE ROUTINE,       ALTER ROUTINE,EVENT,RELOAD,FILE,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'u5';
create resource group rg5 ru_per_sec = 80000;
alter user u5 resource group rg5;

run ossinght workload(events-total) for x hours using 8 concurrency

SELECT     COUNT(1) AS cnt,     MAX(created_at) AS latest_created_at,     UNIX_TIMESTAMP(MAX(created_at)) AS latest_timestamp FROM github_events;

[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/rebuild

/run-all-tests

/run-integration-test

/run-all-tests

/run-all-test

/run-all-tests


DeployWithoutLicense True/False around the wrong way.

The description for "DeployWithoutLicense" has $TRUE and $FALSE around the wrong way.
It's correct in the description for the "set-cmsoftwareupdateautodeploymentrule" command.
I've also tested this on a Windows 2016 Server with Config Manager 1910.

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

ID: a909f32d-5808-1dfc-f835-95fb8b260c54
Version Independent ID: 9b1587a0-72ba-a5c6-3404-ac26b0797ed9
Content: New-CMSoftwareUpdateAutoDeploymentRule - Configuration Manager
Content Source: sccm-ps/ConfigurationManager/New-CMSoftwareUpdateAutoDeploymentRule.md
Product: configuration-manager
Technology: configmgr-other
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

Thanks @IJustKnowStuff for catching that. I made a change to the article, which will publish live soon with the 2006 content release.


Add macro for portInputRegister()

Fix #210 (follow-up from #193).

I see both an implementation and a test, so this is 👍


Remove resources on folder level

Currently, if I need to remove a folder containing some resources, terragrunt won't be able to detect the removed folder since the state is removed as well. A workaround would be to set the count = 0 for each resource. I think it would be nice to have the ability to set the count on the folder level instead of setting it for each resource I have since I am not aware of any other solution for such a case.
Thanks

Not sure I follow your question. Could you provide some examples?

We have the usecase that we want to fully remove a component from time to time (e. g due to end of life of it or a refactoring of the structure).
For now we added count = "0" to all contained terraform resources, but this can be a difficult task because missing references have to handled correctly.
The question is, if it has already been considered to include a feature which eases the removal of all resources of a component through a special configuration.
A proposal would be to have a count in terragrunt.tfvars like:
terragrunt = {
  count = "0"
}

This would trigger the removal of the complete component during a call of terragrunt apply-all (by executing terraform destroy on this particular module.
Of course there are more details like broken dependencies which would have to be considered.
Does this seem to be a valid approach or is there a current best practice, which makes such an operation feasible?

Hm, that strikes me as running counter to the "principle of least surprise." I imagine running apply in one of my modules and then, to my great horror, it instead runs destroy because of some left over configuration in it...

@brikis98 In a world where we want all Terraform changes to happen inside of a CI/CD pipeline, how do you propose to avoid having to manually run terragrunt destroy?
We could have some logic within our deploys to run that command against a module given some trigger.
But if we want all of the changes to be visible and reviewable via a PR process, it certainly makes sense to support an explicit destroy trigger within terragrunt itself.
Ideal (to me) process:

Developer decomissions a module by setting destroy = true for that resource.
Developer creates a PR, which runs unit tests and terragrunt plan.
Terragrunt interprets the destroy = true option, and runs a destroy plan against that resource.
Team members review the PR, and once approved, an apply is triggered.

In a world where we want all Terraform changes to happen inside of a CI/CD pipeline, how do you propose to avoid having to manually run terragrunt destroy?

Make your CI / CD process more flexible!
For example, provide a way to specify the Terraform command that's executed by your CI / CD process and the folder where it runs that command. You could pass that in via a commit message (for CircleCI or TravisCI systems) or, if using something like Jenkins, via a parametrized build. Of course, the CI / CD process can have defaults for each of those params (e.g., apply-all in the root), but it's very useful to be able to override them.
See also atlantis for another way to run commands in your CI / CD system. Note, however, Atlantis does not currently support Terragrunt, but the basic idea of triggering CI / CD builds via GitHub comments is a very good one.

We are actually planning to roll out something similar to atlantis locally :).
I guess this is just a matter of preference, as I think declarative approach of destroy = true scoped to the particular resource (similar to ensure.absent in config management) is more explicit, and better reflected in commit history, vs. a comment on a PR that actually destroys infrastructure.
This behavior could also be optional, activated by a runtime parameter passed to terragrunt :).

Those are good question. The main difference here being the fact that when you remove resources from a vanilla Terraform project (e.g. your merge diff shows resource declarations are being removed), they will explicitly be destroyed.
However, as OP indicated, if you remove a Terragrunt-initiated module (subfolder), then those changes will not be considered when you run plan-all post removal. This deviates from the vanilla Terraform behavior.
In any event, I appreciate your responses here, and thank you for your continued work on the wrapper. This is a small issue that can be worked around as needed, with a solution that fits each team's needs.

@brikis98, thank you for the discussion. In our daily use terraform apply is indeed the only command in use. The other commands like destroy, import, state, etc. are only rarely used in the case when there is a need for manual adaptions. Usually we try to avoid that by modifying resources from inside the configuration.

@wuan That right there is a fantastic idea :-) I'd expected Terragrunt to delete resources if you delete a folder, as Terraform destroys resources that have been removed. However, the tricky part is that Terragrunt won't know the state is gone because the state is managed per folder.

The idea behind the terraform / gitops approach is that the environment should reflect the state of the code. Hence, a developer can establish the state of the env by simply looking at the code.
If you delete a folder containing a terragrunt.hcl file, the resources specified therein will not be destroyed, hence the code will deviate from the env, so this breaks the gitops paradigm and means that terragrunt's behaviour funamentally differs from terraform's.
For this reason, we need some sort of flag within terragrunt to specify that the resources specified within a particular terragrunt.hcl file are not passed to the terraform binary. Not that I did not say that a destroy instruction should be sent. Rather, you should remove those resources from the input and then run whatevever terraform command the user specifies.
This would cover all use cases.
If the resources are already applied, they will be destroyed.
If they are already destroyed, nothing will happen.
A plan command will print out the changes which will be produced from a subsequent apply - just as the user expects.

As mentioned in previous posts - the simple use-case of a terragrunt module being "disabled" can be handled by manipulating the source value. i.e. source = local.enable ? "git::https://git…" : "/module/empty"
..and perhaps this has been stated in other posts as well, but I'll add -
This type of "disable" is completely broken when a terragrunt module has a dependency, even when that dependency uses the same "enable/disable" switch. This is because when applying a module, which is now disabled, the modules need to be applied in reverse order, opposite of what is used for construction. "apply-all" and "destroy-all" operate in different order because of this. Apply-all always processes dependencies first so removing modules with dependencies can not supported with apply-all.
Additionally destroy/destroy-all case in terragrunt is always painful because you need to have dependency outputs. If those dependencies are destroyed you are stuck. (you can never run destroy-all twice, second run will always bomb on the destroyed dependencies. ..yeah there are skip options but I'm pretty sure that is not a complete solution)
Seems to me, enable/disable modules (w/dependencies) needs to be formally supported by terragrunt so that the dependency ordering issues can be dealt with properly.

That type of behaviour is broken more generally, as I recently found out.  Suppose you have one module that creates, say, 5 vms and another resource that adds those vms to a cluster.  Now I update the config so that there are only 4 vms and run apply-all.
What I (naively) expected to happen: The 5th vm is removed from the cluster and then destroyed.
What actually happened: The 5th vm is destroyed and then it tries to remove it from the cluster (which fails because the clusrer is in a degraded state and doesn't accept changes).
It gets even worse if you update the config so that one of the vms is different (and therefore needs to be destroyed and recreated), because in that case you can't fix it by tweaking the module order.  It would need to first run the 'destroy' part of the second module, then run the first and finally run the 'add' part of the second resource...  Or vice versa depending on what you want the intermediate state to be.

True. I never expected terragrunt to understand how changes in dependencies propagate through outputs. I always use the example of changing aws availability zones from 3 to 2. for the apply-all the vpc module would be processed first but would not be able to delete the subnet due to resources from other modules referring to it. This always seemed like a migration operation which would require more admin intervention. I'm not even sure that would work if all the resources were in the same terraform module.

Ran into this today as well. Unfortunately all the solutions offered here feel quite hacky, would love if Terragrunt came up with some better way to deal with this.

Has a solution for this arisen?

Seeing similar issue while removing the resources(folders) and applying the changes. The order of apply is making it difficult to remove the dependent resources. Is there any solution that terragrunt is currently working on?

+1

+1

+1

+1

We have now found a solution, which works fine for us. We defined an 'empty' terraform module which we reference from the parts we want to have removed during an apply-all operation. If we have a service defined through its terraform.tfvars file with the following content:
terragrunt = {
  include {
    path = "../../terraform.tfvars"
  }

  terraform {
    source = "../../../module/public-standalone-service"
  }

  dependencies {
    paths = [
      "../../cluster/public"]
  }
}

service_name = "foo"
service_version = "0.0.22"

We just remove all resources in this folder's *.tf file and reference the empty module as a dummy:
terragrunt = {
  include {
    path = "../../terraform.tfvars"
  }

  terraform {
    source = "../../../module/empty"
  }

  dependencies {
    paths = [
      "../../cluster/public"]
  }
}

service_name = "foo"
service_version = "0.0.22"

During the next terragrunt apply-all all resources contained in that folder are removed.

It does the job, I confirm
terraform {
  source = "/dev/null"
}

really need smth real solution

+1

Did someone find a doable solution for that ?
The advantage of of having infrastructure by using folders you can figure out what you have in place at a glance, however it seems a bit hacky to source an empty terraform source in order to delete specific terraform module.
Therefore, there is no advantage, since you have to get deep into folders and check whether module is being used in fact.

+1

Any news here? A terragrunt native solution to this would be greatly appreciated.  I guess you could handle this in some simple cache / reference tree, without integrating with Git and doing any commit diffs.
For example: somehow, somewhere on the root level (e.g. root statefile), after each apply run-all, store a tree of the statefile hierarchy. During a plan run-all, if any states are identified which don't seem to have a corresponding TF configuration (terragrunt.hcl) executed, suggest destruction of said states + resources.


docs: update usage of repair command

We should really have a python script to generate such things. @slarse you opened an issue for that, as far as I remember. Could you link it?

@algomaster99 I don't think I did. If I did it's one of the 46 open issues, just scroll through them :)

You might have said it during one of our meetings and maybe that's why I was recalling it, otherwise, I can't find it in the open issues.


Change SvgSymbol namespace.

Reference Issue

ref. #93.
What does this implement/fix? Explain your changes.

Only Svg.Document_Structure, _(underscore) is included in namespace.
So, change namespace without _(underscore).
I think Svg.Symbol is good.(like SvgDefinitionList, SvgFragment and SvgGroup.)
However, because there is a possibility of build error in existing environments, I decided on this namespace.
Any other comments?

Also referring this to @tebjan - I'm unsure about the policy here.

I'm not happy with this duplicated code just for the sake of a more convenient namespace name. If there were a way to just add an alias to the namespace it would be ok. As far as I know, a namespace alias can only be used on import and cannot be exported, but hopefully someone knows a better possibility?

@mrbean-bremen
SvgSymbol seems to be stable class, so merge this PR ?

rebase.

rebase.

@mrbean-bremen
I wrote the following in this PR:

I think Svg.Symbol is good.(like SvgDefinitionList, SvgFragment and SvgGroup.)
However, because there is a possibility of build error in existing environments, I decided on this namespace.

But, still do not need this namespace, so I decided to remove it in this commit.
This commit, will CS0104 build error in code, such as the following.
using Svg.Document_Structure;

...

var symbol = new SvgSymbol // error
{
    Fill = new SvgColourServer(Color.Red),
    Stroke = new SvgColourServer(Color.Black),
    StrokeWidth = 2
};

However, I think this error would make users aware of the change.(It's easy to fix.)
(Of course, it will run correctly in pre-built executables.)

@mrbean-bremen
I wrote the following in this PR:

I think Svg.Symbol is good.(like SvgDefinitionList, SvgFragment and SvgGroup.)
However, because there is a possibility of build error in existing environments, I decided on this namespace.

But, still do not need this namespace, so I decided to remove it in this commit.
This commit, will CS0104 build error in code, such as the following.
using Svg.Document_Structure;

...

var symbol = new SvgSymbol // error
{
    Fill = new SvgColourServer(Color.Red),
    Stroke = new SvgColourServer(Color.Black),
    StrokeWidth = 2
};

However, I think this error would make users aware of the change.(It's easy to fix.)
(Of course, it will run correctly in pre-built executables.)

While this looks ok to me, I'm still a bit unsure about the consequences to users.
@wieslawsoltes, can you please have another look?

While this looks ok to me, I'm still a bit unsure about the consequences to users.
@wieslawsoltes, can you please have another look?


Add myself as a contributor

Your pull request seems good, but must be checked by a human maintainer for the following reason(s):

This file modifies a pre-existing file.

Please be patient until a maintainer has time to look over your contribution.
This is an automated response, beep boop.
if you think there is a mistake, contact a maintainer

97e5e4b4f64a2659d3550a700b278418e6d87c15

Whoops. Meant to merge not close lol


Fixing a few issues with texelFetch calls

I fixed a couple of issues with my array access -> texelFetch conversion for buffers:

The case when buffers are part of an array is now handled
The generated intrinsic is now similar to what HLSL parser would generate, so it can be treated the same as non-generated texelFetches

I have also added a cast for the texelFetch location parameter in the GLSLConverter. At one point it might be nice to have a list of all intrinsics with all their overloads, and handle all casts automatically? Or is this already somewhere and I'm missing it?

P.S.
I had to add a shared_ptr alternative to const TypeDenoter& GetAliased() because the non-ptr version wasn't letting me retrieve sub-type-denoters because of the constness.

No, there is no enumeration for all intrinisc overloads, because I wanted to avoid having thounsands of intrinsic enumerations.
For this I tried a more generic approach with the IntriniscAdept, i.e. the arguments are treated as some sort of template types as they are declared in the HLSL API docu, like T lerp(T x, T y, T s).
If you need a shared_ptr of  a TypeDenoter, just replace GetAliased() with GetSub().
GetAliased is just used to avoid creating a new shared_ptr instances eyertime a TypeDenoter is passed around.


NoSuchFileException in JointGenotyping

Dear GATK developers,
I have a question regarding the ImportGVCFs step of JointGenotyping.
Independent of the file path (relative or absolute) in the sample name map, I get the following error although the file is existing and readable:
Picked up _JAVA_OPTIONS: -Djava.io.tmpdir=/cromwell-executions/JointGenotyping/9d5f94a1-46fe-4e79-b671-676b61e10740/call-ImportGVCFs/shard-98/execution/tmp.Zzmonv [March 9, 2018 8:00:55 AM UTC] org.broadinstitute.hellbender.tools.genomicsdb.GenomicsDBImport done. Elapsed time: 0.00 minutes. Runtime.totalMemory()=4116185088 htsjdk.tribble.TribbleException$MalformedFeatureFile: Unable to parse header with error: /storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/HaplotypeCallerGvcf_GATK4/3e5a2ae0-5529-4344-b187-9ceac771e1ed/call-MergeGVCFs/execution/pa.hg38.g.vcf.gz, for input source: file:///storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/HaplotypeCallerGvcf_GATK4/3e5a2ae0-5529-4344-b187-9ceac771e1ed/call-MergeGVCFs/execution/pa.hg38.g.vcf.gz         at htsjdk.tribble.TribbleIndexedFeatureReader.readHeader(TribbleIndexedFeatureReader.java:254)         at htsjdk.tribble.TribbleIndexedFeatureReader.<init>(TribbleIndexedFeatureReader.java:101)         at htsjdk.tribble.TribbleIndexedFeatureReader.<init>(TribbleIndexedFeatureReader.java:126)         at htsjdk.tribble.AbstractFeatureReader.getFeatureReader(AbstractFeatureReader.java:110)         at org.broadinstitute.hellbender.tools.genomicsdb.GenomicsDBImport.getReaderFromPath(GenomicsDBImport.java:620)         at org.broadinstitute.hellbender.tools.genomicsdb.GenomicsDBImport.getHeaderFromPath(GenomicsDBImport.java:355)         at org.broadinstitute.hellbender.tools.genomicsdb.GenomicsDBImport.initializeHeaderAndSampleMappings(GenomicsDBImport.java:341)         at org.broadinstitute.hellbender.tools.genomicsdb.GenomicsDBImport.onStartup(GenomicsDBImport.java:296)         at org.broadinstitute.hellbender.cmdline.CommandLineProgram.runTool(CommandLineProgram.java:134)         at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMainPostParseArgs(CommandLineProgram.java:179)         at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:198)         at org.broadinstitute.hellbender.Main.runCommandLineProgram(Main.java:152)         at org.broadinstitute.hellbender.Main.mainEntry(Main.java:195)         at org.broadinstitute.hellbender.Main.main(Main.java:275) Caused by: java.nio.file.NoSuchFileException: /storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/HaplotypeCallerGvcf_GATK4/3e5a2ae0-5529-4344-b187-9ceac771e1ed/call-MergeGVCFs/execution/pa.hg38.g.vcf.gz         at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)         at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)         at java.nio.file.Files.newByteChannel(Files.java:361)         at java.nio.file.Files.newByteChannel(Files.java:407)         at htsjdk.samtools.seekablestream.SeekablePathStream.<init>(SeekablePathStream.java:41)         at htsjdk.tribble.util.ParsingUtils.openInputStream(ParsingUtils.java:110)         at htsjdk.tribble.TribbleIndexedFeatureReader.readHeader(TribbleIndexedFeatureReader.java:244)         ... 13 more Using GATK wrapper script /gatk/build/install/gatk/bin/gatk Running:     /gatk/build/install/gatk/bin/gatk GenomicsDBImport --genomicsdb-workspace-path genomicsdb --batch-size 50 -L chrY:26753603-57227415 --sample-name-map /cromwell-executions/JointGenotyping/9d5f94a1-46fe-4e79-b671-676b61e10740/call-ImportGVCFs/shard-98/inputs/storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/sample_name_map.txt --reader-threads 5 -ip 500
I'm using the latest version of cromwell (30.2). Do you have some idea how this can be solved?
There are no hard links of the input g.vcf file in the inputs folder but there is also no error message in the logs that hard linking fails. Could this still be the reason?

I've tried to run JointDiscovery with the example files for NA12878 and the same error occurs. I've also added the fields "JointDiscovery_GATK4.input_gvcfs_list" and "JointDiscovery_GATK4.input_gvcfs_indices_list" in the inputs.json but that doesn't help either.
Now, I have no idea what else I could try. Maybe the issue is caused because I don't run it on the cloud?

Hi,
Mind posting the json file being used to execute the wdl along with the command.

Hi,
attached you can find my inputs.json, the wdl (I've added a docker_user at some points to avoid that docker is running as root), the conf (to limit the number concurrent workflows) and the command to call joint discovery. Do you need any further information?
joint-discovery-gatk4.hg38.wgs.example.inputs.json.txt
joint-discovery-gatk4.wdl.txt
my.conf.txt
run_gatk4-joint-discovery-docker_user-cohort_example.sh.txt

Try the following commands and post here please.

Run command ls -l /storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/HaplotypeCallerGvcf_GATK4/3e5a2ae0-5529-4344-b187-9ceac771e1ed/call-MergeGVCFs/execution/
Run cat /storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/HaplotypeCallerGvcf_GATK4/3e5a2ae0-5529-4344-b187-9ceac771e1ed/call-MergeGVCFs/execution/rc
(to confirm a successful attempt)
Show the sample name map cat /storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/JointGenotyping/9d5f94a1-46fe-4e79-b671-676b61e10740/call-ImportGVCFs/shard-98/inputs/*

Ok, here are the results:

-rw-r--r--. 1 tim.jeske OG-IBIS-User         64 Mar  7 00:37 docker_cid
-rw-r--r--. 1 tim.jeske OG-IBIS-User<PHONE_NUMBER> Mar  8 14:21 pa.hg38.g.vcf.gz
-rw-r--r--. 1 tim.jeske OG-IBIS-User    3449641 Mar  7 00:42 pa.hg38.g.vcf.gz.tbi
-rw-r--r--. 1 tim.jeske OG-IBIS-User          2 Mar  7 00:42 rc
-rw-r--r--. 1 tim.jeske OG-IBIS-User      18309 Mar  7 00:37 script
-rw-r--r--. 1 tim.jeske OG-IBIS-User        948 Mar  7 00:37 script.background
-rw-r--r--. 1 tim.jeske OG-IBIS-User        817 Mar  7 00:37 script.submit
-rw-r--r--. 1 tim.jeske OG-IBIS-User    1251119 Mar  7 00:42 stderr
-rw-r--r--. 1 tim.jeske OG-IBIS-User          0 Mar  7 00:37 stderr.background
-rw-r--r--. 1 tim.jeske OG-IBIS-User        189 Mar  7 00:42 stdout
-rw-r--r--. 1 tim.jeske OG-IBIS-User          6 Mar  7 00:37 stdout.background
drwxrwxrwx. 3 tim.jeske OG-IBIS-User         14 Mar  7 00:42 tmp.wVjQAf
`

0

I'm running cat /storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/JointGenotyping/9d5f94a1-46fe-4e79-b671-676b61e10740/call-ImportGVCFs/shard-98/inputs/storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/sample_name_map.txt instead and here is the relevant line:

pa	/storageNGS/ngs3/projects/other1/KinderKlinik/Exomes/04_GRCh8_GATK4_cohort/GATK4_testrun/cromwell-executions/HaplotypeCallerGvcf_GATK4/3e5a2ae0-5529-4344-b187-9ceac771e1ed/call-MergeGVCFs/execution/pa.hg38.g.vcf.gz

Hey timjeske,
This wasn't something I was able to quickly solve but you may  be correct about the issue being related to running the wdl locally vs cloud.  You'll have better luck and more help in the gatk forum.  Please post this question along with a link to this issue in gatk forum.

Hi @timjeske
The repo has been updated to include a gcloud and local version for the joint-discovery wdl

That's great, thank you very much @bshifaw !


2650 restore invites

Description

Added the invite screens
logic is done only via smart contracts
need latest smart contracts to run

About #2650 #2604

@serdiukov-o-nordwhale oops i didnt push my changes based on your review.
please check now again


[stable/prestashop] Add prestashopCookieCheckIP new parameter

What this PR does / why we need it:
Adds a new property to configure the Prestashop application. In some kubernetes environments, once you access to the admin panel of the application, you get automatically logged out after a few seconds.
In order to fix it, we need to disable the IP check in the application.

/ok-to-test
/lgtm


Added Dijkstra.py

Related Issue
Solved issue number: #280
Describe the changes you've made
A clear and concise description of what you have done to successfully close your assigned issue. Any new files? or anything you feel to let us know!
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
A clear and concise description of it.
Language used for coding
Mention the language you have used for coding here.
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have documented the code.
[x] New and existing unit tests pass locally with my changes.

@arbazalam01 Please add some comments in your code so that beginners can find it easy to understand.

I have added the comments can you please review it


chore: release main

:robot: I have created a release beep boop
nest-utils: 2.3.2
2.3.2 (2024-10-30)
Bug Fixes

auth: Fixed an issue with SessionResource being wrongly typed that would prevent family_name from being accessible (b76cb8e)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

nest-utils-v2.3.2
:sunflower:


Add wrapper over run_cypher for using Cypher Projections

Based on #413
TODOs:

[x] Validate that only one RETURN gds… call exists
[x] Deal with or forbid the usage of WITH gds… calls (dealt with by only looking for RETURN)
[x] Require the graph name as first parameter and use it as query param

@s1ck thanks for the review, 🏓

@FlorentinD thanks for the review and 🏓

@FlorentinD test failures? nevah! 🙈
Apparently the squeeze("rows") thing didn't work out :/
I though I ran the ITs locally, but apparently I did not. Anyway, back to the old squeezing like you suggested initially

Looking at the failure, we need to update the aura_db_arrow_query_runneras well


[Feature] Allow for Registries to be specified/controlled via local JSON file --external-registries

Is your feature request related to a problem? Please describe.
Currently Endpoints can be specified/controlled via local JSON file specified at startup via --external-endpoints.  It would be great if Registries had the same ability.  Without it, they must be created/managed programatically via the API.
Describe the solution you'd like
I'd like to see an --external-registries flag added for startup.  Like endpoints this would also allow someone to specify fixed registry entries that can't be modified via the UI.
Describe alternatives you've considered
I'm currently doing it via scripted API calls, but it's definitely more complex than managing a JSON file.

We've decided that we were not going to support this scenario. We're trying to progressively stay away from configuration over CLI flags and won't add new "configuration via flags" features starting from now.


Fix centering of main content

Fixes #58 (was pushed on https://testing.webots.cloud for testing).
Note: this PR introduces empty lines on the last page of the tables to ensure the height of the page is always the same.

Honestly I am not super fan of the new layout.
I prefer the one where everything was aligned left.
I think that the blanks (especially the right margin) feel too big.

I changed to have the table spread over the full width of the page, which also looks better to me. I also fixed the width of all the columns except one of the title.

Can this be tested on testing.webots.cloud?

yes, I think you can see it on testing.webots.cloud/animation

It is fine to have the table spread over the full width.
But the position of the "Add a new..." button is not strange as it is not centered or aligned with anything.
Then, it looks bad in my opinion how the table is now displaying the empty rows.
It was much better before where no rows where shown.
testing.webots.cloud:

webots.cloud:

Empty rows should only be visible on the last page, which will soon become not easily visible. I added these empty rows to justify the fact that the buttons remains at the bottom position, otherwise, it looks strange to have an empty white space and the buttons below this empty space. I will try to remove these empty lines while keeping the equivalent white space to see if that looks good, but I am not sure.

But the position of the "Add a new..." button is now strange as it is not centered or aligned with anything.

I agree, I will fix that and align it to the left hand side.

I fixed all the problems reported so far. In particular, I removed the empty rows on the last table. Can you review it again and approve or ask for changes?

Thank you! I confirm all the reported problems are now fixed.
With respect to the previous version, on the server tab there is much more empty space before the table. Is this wanted?
Because it seems better previously.
Just for note I also noticed that the tables rows height is now slightly bigger than before, but it is not a problem.

I would prefer if there is no grey line after the last simulation/scene/...
It is nice to have it between two rows but not at the end I think

With respect to the previous version, on the server tab there is much more empty space before the table. Is this wanted?
Because it seems better in the previous version.

Yes, this due to the fact that there is no search tool for servers now. I wanted to reserve this space for when we will add a search tool there.

I fixed the last problems reported. Can you review it again and approve or ask for changes?


Release 2.5.0

I have tried git merge origin/main -X ours on this branch, but there are conflicts that can't be automatically resolved. Also, this strategy for merging to main means that a lot of old commits will always show up in the branch diff, making it hard to see what is part of the new release.
Maybe we should just make release-X.Y.Z branches off of develop and keep them? It would also mean not having to move the git tag from the release branch onto main at the end of a release? @jdidion @commandlinegirl

Fixed. There was really only one conflict due to a file being moved in one branch and deleted in another. I find the value of a main branch questionable. The biggest argument for it that I see is that it is protected so it's hard to delete main where as it's easy to delete tags and release branches.

Fixed. There was really only one conflict due to a file being moved in one branch and deleted in another. I find the value of a main branch questionable. The biggest argument for it that I see is that it is protected so it's hard to delete main where as it's easy to delete tags and release branches.

It's possible to add a protection rule for a name pattern as well as individual branches, so you could protect all release-* branches<EMAIL_ADDRESS>In case of deleting a tag, it would generally be the last commit on the same-named release branch, so not hard to find where it should go.
The process of merging into main just makes me a bit nervous, since so much history shows up in the diff (the commit ids once applied on main don't match the ones in develop / release branch's history), so it's hard to review, and I don't want to make a mistake while resolving conflicts that changes the record of what was released. @jdidion  @commandlinegirl

We should still keep main around & protected, since it records some past releases. @jdidion  @commandlinegirl


Running timeflip-discover on macOS does not seem to return BT MAC addresses?

I have installed pytimeflip on my macOS machine, and I'm trying to connect to my Timeflip device.
FYI - I had some issues running pytimeflip under the fish shell - it would seem to silently fail (with some signal abort). I will have to try to debug that later.
For now, I'm running it under the bash shell, and here's a sample output (note that it took timeflip-discover around 5 minutes to return - not sure if that's expected or not?)
❯ timeflip-discover
Looking around (this can take up to 1 minute) ... Done!
Results::
- TimeFlip devices: 4E95D46E-0376-7803-E6D6-40D2213BA156 (TimeFlip v2.0)
- Other BLE devices: B3BC7A66-62C0-C780-545A-BA2D8C4D3859 (Foo), E93557E7-BABE-6AEA-72CD-2951E52540C2 (Bar), C0295501-E49C-B62D-877E-2780F7D4FB3A (Wiz), 398976C1-221D-BC56-79D6-FB084B44C126 (LE-Acrux) etc.
- Other devices: EAA0A538-41BE-910F-0B32-6C1D2919A90A, 05AE2D1A-96CA-534E-6D03-83612D81A301, 9CB83DB9-A32A-DED0-A8EC-26C807B8FF0F, 41CDA805-FD2B-1941-B8A2-79F12EAAAB44, 1ECC194A-FEA8-FA83-85D2-FADC2FF0B93B, 8C8DF516-A414-9B6F-3BB5-4980283B67B8, 958CAE73-FEFE-F6D6-8128-39E6F01EA820, A7DE5719-88D7-2884-220D-69CFD4D3BFC2, 311CA114-15C0-CFFA-63FB-C534C7BA4E3B, C14A6C2A-EE69-692C-EF8A-21F14755D035, 94E01FB2-879D-2042-41A2-28728233EB86, 0C5C1CAD-8830-7A8F-2BCB-8F01B7F721E9, 25123793-AF99-2308-DCC9-D67DBF169854, 3F70B2E4-8D9D-4692-D365-61AC65D07042, F9B702BA-FB0D-0C79-6809-A8BA69048CCB, 9EB72888-F9A1-48A1-AC8D-F418E98DF30B, 5CBB5E40-26C7-CAEF-297F-581A4C629A2A, 679215FB-D66D-D6AB-1B7E-854349EA7E43, A654079E-11CB-0D33-CB2A-08C6BBF406D0

~/code/timeflip_testing is 📦 v0.1.0 via 🐍 v3.11.3 (timeflip-testing-py3.11) on ☁<EMAIL_ADDRESS>took 4m6s

The above identifiers don't seem to be MAC addresses, and of course, they don't work when pass into timeflip-check:
❯ timeflip-check -a 4E95D46E-0376-7803-E6D6-40D2213BA156
usage: timeflip-check [-h] [-v] -a ADDRESS [-p PASSWORD]
timeflip-check: error: argument -a/--address: 4E95D46E-0376-7803-E6D6-40D2213BA156 is not a valid address

Searching online, it seems like this might be some macOS issues with Bleak:
https://github.com/hbldh/bleak/issues/284
https://github.com/hbldh/bleak/issues/140
It seems on macOS at least, macOS doesn't provide MAC addresses by default, but uses a generated UUID.
However, in Bleak 2.0, they merged in a change that uses a hack that can give you back the MAC address:
https://github.com/hbldh/bleak/pull/1257
Specifically, the use_baddr flag, which you can use with the macOS specific scanner.
What do you think of this?
Would you be open to changing it so that it could work better on macOS? (Or maybe you have some obvious workaround I missed, that means you can use it on macOS today?)

For reference, here is the discussion where I asked the Bleak team about macOS and using MAC addresses:
https://github.com/hbldh/bleak/discussions/1324

Ok, that got eventually fixed. I "just" removed the check to know if it is a valid MAC address :)


Testing samples

Thanks for your great work! Can you share all the testing videos on your project page?

Hi. The source of more testing videos is indicated in the paper. You can check them out.


FEAT-4463: Add experimental fuzzydata integration for testing against a randomized dataframe workflow

Signed-off-by: Suhail Rehman<EMAIL_ADDRESS>What do these changes do?

[X] commit message follows format outlined here
[X] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[X] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[X] signed commit with git commit -s
[X] Resolves #4463
[X] tests added and passing
[X] module layout described at docs/development/architecture.rst is up-to-date
[ ] added (Issue Number: PR title (PR Number)) and github username to release notes for next major release

@suhailrehman, please also squash your commits into one and sign it as it is specified here. We require the first commit of a PR to be signed. ci-required / lint (commit) job will be green then.

@suhailrehman, in addition to the left comments to be resolved, please also add a release note under New Features and your GH nickname under Contributors in https://github.com/modin-project/modin/blob/master/docs/release_notes/release_notes-0.16.0.rst.

@suhailrehman, thank you, the changes look great. Left a suggestion to run CI on pull_request.
Unfortunately, your rebase+reword didn't fixed the problem. You likely want to look at this page on how to squash all commits into one and amend it with the right commit message. Another option would be to let us fix the problem if that is fine to you.

Unfortunately, your rebase+reword didn't fixed the problem. You likely want to look at this page on how to squash all commits into one and amend it with the right commit message. Another option would be to let us fix the problem if that is fine to you.

Please go ahead and fix this. My git client was not allowing squash because of some merges that happened on the branch for those commits. Mashing git commands to try to fix is always a bad idea, so I'll leave it you to fix :)

@suhailrehman, hopefully I have fixed all the problems. Will see if tests pass.


engines blocks yarn install, adds warning to npm install

Description of the issue
In our elements' package.jsons, the engines setting for node is >=10 <13, which equates to node 10 and 12.  As far as I remember, the intent of this restriction was to be a guardrail for PFE contributors, because node-sass won't run on node 14 and above.  By restricting node to 10 and 12, contributors get a clear error about their node version when attempting to run the build.
In an ideal world, this would be better accomplished through a devEngines flag, because the only thing we wanted to restrict was what node version is used when building PFE.  Unfortunately no devEngines flag exists.
Meanwhile, the engines flag also limits what node versions users of PFE can be running.  For instance, I'm using node 16, and I can't install PFE components into a project because my node verison is outside the range.  Because our components run in the browser and not in node, the engines flag is less useful.
I think nvm and the .nvmrc we already have do a good job of being a guardrail for contributors.  As for the engines flag, I think we should either:
  a. Remove engines entirely and rely on nvm
  b. Keep engines but expand it to be very generous, such as >=10
Thoughts, opinions, ideas?
Impacted component(s)

All of them

Steps to reproduce
With nvm installed.

nvm install 14 && nvm use 14
npx yarn add @patternfly/pfelement
npm i @patternfly/pfelement

Actual behavior
npm successfully installs @patternfly/pfelement, but issues a warning:
npm WARN notsup Unsupported engine for<EMAIL_ADDRESS>wanted: {"node":">=10 <13"} (current: {"node":"14.17.1","npm":"6.14.13"})

yarn refuses to install @patternfly/pfelement
$ npx yarn add @patternfly/pfelement
yarn add v1.22.11
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=10 <13". Got "14.17.1"
error Found incompatible module.

Note, yarn does have an --ignore-engines flag, but using it is problematic because it has to be included on every single dependency installation, even ones unrelated to PFE.  For instance, if I want to yarn add lodash, I must include --ignore-engines.
Expected behavior
yarn is able to install @patternfly/pfelement (and all other elements) successfully.  npm is able to install @patternfly/pfelement (and all other elements) without a warning.
Related issues

#1268

from pfe-2 this should no longer be relevant


not load index page in razor pages

Description
After making the settings according to the documentation, after running the project, the index page will be white
Details (please complete the following information):

Project Type: razor page
Framework Version  .NET 7
WatchDog Version latest
Database mssql
Browser Chrome, Edge

Hi @AbbasHokmabadi71
This sounds similar to issues in this trail
Let us know if those solutions do not work for you.

adding app.UseMvcWithDefaultRoute() to program.cs
its ok.

That’s great to hear


Where is this package on conda?

You mentioned grabbing this from conda over at astropy (https://github.com/astropy/astropy/pull/14819) but where is the feedstock? How do we make sure the conda version won't fall behind? If no one diligently merge the conda feedstock updates, it is going to fall behind.

We need to set this up at conda forge and we should enable auto merging of automatic update PRs (it's an option)

Is this something @mwcraig can help with?

I've added the recipe here: https://github.com/conda-forge/staged-recipes/pull/23209


Documentation site is down

Hi, the documentation site is down. Can you please rectify and fix the issue.

duplicate of #1615. Fixed thanks!


Support adding artifact files to runs

Add relationship between artifacts and runs in the DB
Add upgrade_3 DB upgrade function to support the new relationship
Support run_id in the controller and openapi spec
Show the artifacts in the frontend for the run details page

Example screenshot artifact I uploaded to a run:

Oh yeah that's a good idea, I can move it out to the utilities function. I'll work on that today.


Remove non-default Configs and Finders

Replaces #1635

ping @GrahamCampbell, @sstok

ping @GrahamCampbell, @sstok

:+1:

:+1:

Do we even need the finder and config interfaces?

Do we even need the finder and config interfaces?

They are cool for tests

They are cool for tests

:+1:

recreated after https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1670
please, could anyone take a look?

:+1:


Scan History does nothing in CentOS/RHEL

Hi all,
I'm using latest release in a Mac and scan-history works well (both in bash and zsh), but if I run the same in other environments (a RHEL 7.5 vm, but even in some Docker containers like CentOS) the exit code is 0 but the command terminates immediately without doing anythins ... very strange.
I get 'git-secrets' from a git clone so this happens on latest code ... but same issue if I do a ceckout back to latest release (1.2.1).
There is something that I can do to enable DEBUG and understand what's happening (to help fix) ?
Note: in an Alpine (latest release) Docker container when run I had an error on a wrong -w flag used in grep, but only there.
I'm testing it with a sample test repository with committed some passwords, AWS_ACCESS_KEY, etc added and deleted, in different branches.
Thanks a lot for the help.
Regards, Sandro

Sorry it was a problem in my test repo ... sorry for the noise.


Crashes clicking a drive

Describe the bug
When I click any driver the app crashes.
To Reproduce
Click any Drive.
Expected behavior
Open the drive folder.
Desktop:

OS Version: Windows 10 20H2 19042.631
App version: <IP_ADDRESS>

Additional context
It happens always.
Log file
log.txt

Related appcenter:<PHONE_NUMBER>u
Appcenter points to this line, and I don't know what it means.

Related appcenter:<PHONE_NUMBER>u
Appcenter points to this line, and I don't know what it means.


Polars Backend Tests for pytimetk v0.2.0

Need help with someone to convert the docstring examples into pytests. The backends that @JustinKurland and the team are working on are listed here: https://github.com/business-science/pytimetk/issues/77#issuecomment-1763539878

Will address these as needed in the future.


Help me retrieve my balances and withdraw

How do I import my tokens and claim all m my assets

To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Contact the Support page to resolve your error.
Note: you can also initiate a chat with the live agent on the chat button to get more information about your request via Live Chat
@Mohurd
Support.

Not related to wallet-core, closing.


Why did Tekton change its base image?

Why did Tekton change its base image from gcr.io/distroless/static to ghcr.io/distroless/static? Has Kubernetes and other projects made a similar change? The base image is an absolutely critical part of things and although I'm sure there are good intentions her I have no idea how and if this image will be maintained.

For what is worth:

gcr.io/distroless images comes from https://github.com/GoogleContainerTools/distroless
ghcr.io/distroless images comes from https://github.com/distroless

gcr.io/distroless is maintain mainly by google I think, ghcr.io/distroless is maintain by the distroless org, which today, is mainly composed by ChainGuard folks I think 🙃. Both are maintained, and kept up-to-date.
/cc @imjasonh @mattmoor

We believe the new distroless images are a better alternative to gcr.io/distroless, for a few reasons:

They are built using apko, which lets them be described in YAML instead of Bazel's Python-ish bzl. This makes it easier to tell at a glance what's going into the image, easier to update the image, and easier to build your own variant if you so choose (e.g., to include another package, or pin to an older version)
Because describing the image is easier, maintaining it is easier, and updates are applied to the image much more quickly. A new distroless.dev/static is built every night with updated packages, compared with gcr.io/distroless/static, which receives updates more slowly. Though there isn't a lot in the image, there's still something, and we'll get updates faster with these images.
In addition to being signed as the previous distroless images are, the apko-based distroless images include thorough SBOMs of the contents, which ko is capable of discovering and referencing in its own SBOMs. We plan to improve this even further, so ko's generated SBOMs (i.e., Tekton's SBOMs) are as complete and useful as possible.

(A brief aside on naming; we recommend reaching these images through distroless.dev/static instead of ghcr.io/distroless/static, as we plan to move the images to a new GitHub org soon, and ghcr.io/distroless/* will not receive updates afterward -- distroless.dev currently points to ghcr.io/distroless/*, and we will update it to point to the new repo automatically.)
In any case, if you build your own Tekton images, you are absolutely free to keep building them on gcr.io/distroless/static, or any base image that fits your needs. You'd simply need to update .ko.yaml to point to those images (including the git base image, which is currently based on distroless.dev/git), and update the shell-image used.
Some relevant PRs that may have relevant discussions:

https://github.com/tektoncd/pipeline/pull/4758
https://github.com/tektoncd/pipeline/pull/4762
https://github.com/tektoncd/pipeline/pull/5009
https://github.com/tektoncd/pipeline/pull/5341

Thanks all. It sounds like we're on a good path here and it would definitely be great if in the future by using this new image ko could  generate a perfect SBOM for the dependencies. I'm not sure if this makes sense or would just be overkill but it might be good in this this case if ko generated an apk package for the tekton binary and added it with apko.
For the base image changes in general though please be careful as at least for us it is sort of like API. The ship has sailed here but the way we scan and permit images in our infrastructure requires us to pre-bless a set of known base images so this came as a surprise and because of the one letter change in the image name was made harder to figure out. distroless.dev would have been definitely more obvious so agree that definitely makes sense when the time comes.

Thanks all. It sounds like we're on a good path here and it would definitely be great if in the future by using this new image ko could generate a perfect SBOM for the dependencies. I'm not sure if this makes sense or would just be overkill but it might be good in this this case if ko generated an apk package for the tekton binary and added it with apko.

That's certainly possible, especially using apko's sibling project melange, which is designed to make building new apks simpler, like apko makes constructing images from apks simpler.
If we did that, we could build Tekton images without ko at all, just using melange+apko, though we'd lose the YAML templating features, and other Go-specific optimizations that ko is aware of.
As for ko building apks and assembling with apko, that would break users who use ko to build on their own arbitrary base images, but perhaps another tool wrapping melange+apko to build optimal application images in such a way is worth exploring.

For the base image changes in general though please be careful as at least for us it is sort of like API. The ship has sailed here but the way we scan and permit images in our infrastructure requires us to pre-bless a set of known base images so this came as a surprise and because of the one letter change in the image name was made harder to figure out. distroless.dev would have been definitely more obvious so agree that makes sense when the time comes.

Thanks for this feedback. I don't think we plan to make major structural changes to the base image again any time soon, but if we do we'll make sure to announce it better.

(Closing this as I think the question has been answered, but feel free to keep this discussion going)

Also related: https://github.com/tektoncd/pipeline/pull/5542 proposes changing the image references from distroless.dev/static (etc) to the equivalent cgr.dev/chainguard/static (etc) refs.
This is not a functional change at all; both URLs point to exactly the same backend and blob storage, and there will never be a diff between distroless.dev/static:$tag and cgr.dev/chainguard/static:$tag or even $digest. But just in case there's a runtime policy about what image refs are allowed, this may require an update to that policy.


Submit your GitHub username

Hi team,
I would like to add all of you to the jupytercalpoly organization here on GitHub. Please send a response to this issue with your username. See my example below.
If you have not set up a GitHub account yet, please do.
Thanks! :cake:

@willingc

@rnetro

@roshancvp

@eskirk

@charnpreetsingh185

katiewhite360


Mobile dropdown menu

I'd love to see a good mobile menu added, the current site doesn't work well with mobile.

This is not supposed to work with mobile. It was made for desktops.

https://github.com/3s3s/opentrade/blob/master/server/views/partials/header.ejs#L9
At this line add:
<div class="collapse navbar-collapse" id="navbarSupportedContent">
and after
</div>


translate (Redux: Get State from the Redux Store)'s description and instructions to Arabic

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Reason:  Your PR did not add the necessary html and markdown syntax which was in the English version of the challenge.  You must include those and only translate the verbiage inside the section tags.
## Description

The Redux store object provides several methods that allow you to interact with it. For example, you can retrieve the current state held in the Redux store object with the getState() method.

## Instructions

The code from the previous challenge is re-written more concisely in the code editor. Use store.getState() to retrieve the state from the store, and assign this to a new variable currentState.

Feel free to create a new PR with the correct syntax.
Thank you and happy coding.


speakers to 3x3 grid

since some of the speaker's photos are low-res, what if we reduced the height*width and make the 2x2 into a 3x3? just food for thought.

approved. do it.


Update with Megatron

Please add Megatron V17 by Shawn Raboutou! Thank you!

Hey! I had actually already added it but it appears that I messed up something and it disappeared again. Thanks for pointing that out. :)
I have added it again!


CodeReady Studio 'crc setup detection' algorithm broken with CRC 1.24.0

General information

OS: Windows
Hypervisor: Hyper-V
Did you run crc setup before starting it (Yes/No)?No
Running CRC on: Laptop

CRC version
CodeReady Containers version: 1.24.0+5f06e84b
OpenShift version: 4.7.2 (embedded in executable)

CRC status
# Put `crc status --log-level debug` output here

CRC config
Machine does not exist. Use 'crc start' to create it

Host Operating System

Nom de l’hôte:                              DESKTOP-U2EVGBM
Nom du système d’exploitation:              Microsoft Windows 10 Professionnel
Version du système:                         10.0.19042 N/A build 19042
Fabricant du système d’exploitation:        Microsoft Corporation
Configuration du système d’exploitation:    Station de travail autonome
Type de build du système d’exploitation:    Multiprocessor Free
Propriétaire enregistré:                    Jeff MAURY
Organisation enregistrée:
Identificateur de produit:                  00330-80819-37372-AA911
Date d’installation originale:              29/06/2020, 14:54:33
Heure de démarrage du système:              29/03/2021, 15:14:51
Fabricant du système:                       LENOVO
Modèle du système:                          20LAS3NJ0H
Type du système:                            x64-based PC
Processeur(s):                              1 processeur(s) installé(s).
                                            [01] : Intel64 Family 6 Model 142 Stepping 10 GenuineIntel ~1910 MHz
Version du BIOS:                            LENOVO N27ET36W (1.22 ), 04/07/2019
Répertoire Windows:                         C:\WINDOWS
Répertoire système:                         C:\WINDOWS\system32
Périphérique d’amorçage:                    \Device\HarddiskVolume1
Option régionale du système:                fr;Français (France)
Paramètres régionaux d’entrée:              fr;Français (France)
Fuseau horaire:                             (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris
Mémoire physique totale:                    32 379 Mo
Mémoire physique disponible:                12 884 Mo
Mémoire virtuelle : taille maximale:        57 979 Mo
Mémoire virtuelle : disponible:             30 613 Mo
Mémoire virtuelle : en cours d’utilisation: 27 366 Mo
Emplacements des fichiers d’échange:        C:\pagefile.sys
Domaine:                                    WORKGROUP
Serveur d’ouverture de session:             \\DESKTOP-U2EVGBM
Correctif(s):                               15 Corrections installées.
                                            [01]: KB4601554
                                            [02]: KB4560366
                                            [03]: KB4561600
                                            [04]: KB4562830
                                            [05]: KB4566785
                                            [06]: KB4570334
                                            [07]: KB4577266
                                            [08]: KB4577586
                                            [09]: KB4580325
                                            [10]: KB4586864
                                            [11]: KB4589212
                                            [12]: KB4593175
                                            [13]: KB4598481
                                            [14]: KB5000802
                                            [15]: KB5000858
Carte(s) réseau:                            6 carte(s) réseau installée(s).
                                            [01]: TAP-Windows Adapter V9
                                                  Nom de la connexion : Ethernet 2
                                                  DHCP activé :         Oui
                                                  Serveur DHCP :        <IP_ADDRESS>
                                                  Adresse(s) IP
                                                  [01]: <IP_ADDRESS>
                                                  [02]: fe80::d527:58a7:4965:c2ad
                                            [02]: Bluetooth Device (Personal Area Network)
                                                  Nom de la connexion : Connexion réseau Bluetooth
                                                  État :                Support déconnecté
                                            [03]: Intel(R) Dual Band Wireless-AC 8265
                                                  Nom de la connexion : Wi-Fi
                                                  DHCP activé :         Oui
                                                  Serveur DHCP :        <IP_ADDRESS>
                                                  Adresse(s) IP
                                                  [01]: <IP_ADDRESS>
                                            [04]: Intel(R) Ethernet Connection (4) I219-LM
                                                  Nom de la connexion : Ethernet
                                                  État :                Support déconnecté
                                            [05]: Hyper-V Virtual Ethernet Adapter
                                                  Nom de la connexion : vEthernet (Default Switch)
                                                  DHCP activé :         Non
                                                  Adresse(s) IP
                                                  [01]: <IP_ADDRESS>
                                                  [02]: fe80::1186:c938:a49b:4bda
                                            [06]: Hyper-V Virtual Ethernet Adapter
                                                  Nom de la connexion : vEthernet (minishift)
                                                  DHCP activé :         Non
                                                  Adresse(s) IP
                                                  [01]: <IP_ADDRESS>
                                                  [02]: fe80::3881:3360:4d27:e878
Configuration requise pour Hyper-V:         Un hyperviseur a été détecté. Les fonctionnalités nécessaires à Hyper-V ne seront pas affichées.

Steps to reproduce
The CRC integration into CodeReady Studio that detects if CRC setup needs to be executed. It is based on the existence of:

$HOME/.crc folder
$HOME/.crc/crc.json file
$HOME/.crc/crc.log file
$HOME/.crc/bin folder
$HOME/.crc/bin/oc or $HOME/.crc/bin/oc.exe file

if check returns false we run crc setup then recheck before running crc start. As the oc binary is not extracted under $HOME/.crc/bin start integration is failing.
@robstryker can comment about Linux use case
Is this change permanent ?
Expected
Actual
Logs
Before gather the logs try following if that fix your issue
$ crc delete -f
$ crc cleanup
$ crc setup
$ crc start --log-level debug

Please consider posting the output of crc start --log-level debug  on http://gist.github.com/ and post the link in the issue.

Yes but we would need json output then

Our single point of integration is the crc binary as we need to cover use case where nothing is installed or running on the user's machine

I am not understanding why you would need to check for:
$HOME/.crc folder
$HOME/.crc/crc.json file
$HOME/.crc/crc.log file
$HOME/.crc/bin folder
$HOME/.crc/bin/oc or $HOME/.crc/bin/oc.exe file

Issuing a crc status would at least indicate that the VM exists... which can only exist when the setup has been run. However, a request to provide a 'ready' state would have certainly been accepted.

crc binary

The executable might not be delivered in future as for macOS and Windows only native installers will be available.

This check is only to make sure if studio need to run crc setup or not just to avoid the sudo prompt (I hope). crc setup is intelligent enough to not ask any sudo permission if the required changes are already in place. Shouldn't studio can always run crc setup and don't worry about all those changes?

Shouldn't crc start always run crc setup checks? We could remove then crc setup.

Our single point of integration is the crc binary

The executable might not be delivered in future as for macOS and Windows only native installers will be available.

When is this packaging changed planned ? We need to integrate that into our roadmap as we also provide download and installation (NOP as of yet) into our tooling

This check is only to make sure if studio need to run crc setup or not just to avoid the sudo prompt (I hope). crc setup is intelligent enough to not ask any sudo permission if the required changes are already in place. Shouldn't studio can always run crc setup and don't worry about all those changes?

No the check is here to detect crc setup must be run as it's not integrated into crc start. Please note that as we provide crc download from the IDE, the workstation could not have been initialized

When is this packaging changed planned ? We need to integrate that into our roadmap as we also provide download and installation (NOP as of yet) into our tooling

We already ship a macOS .pkg with the latest crc releases. It has the benefit of providing signed binaries. This was mentioned in https://github.com/redhat-developer/vscode-openshift-tools/issues/1817#issuecomment-805164029
With this installer, the crc binary is available in /usr/local/bin though.

Yes but I meant breaking change as I understood crc.exe as a starting point would not be available anymore. This is still not the case for MacOS as .tar.xz is still there

We strongly recommend to switch to the .pkg though, as this provides signed binaries contrary to the tarball, and we may stop shipping the tarball soon.

Yes I got it but in order to plan it, we need to know when the old packaging will be removed

Undecided, but will set up a meeting to discuss some of the upcoming 'features' and changes, but also to investigate needs. /cc: @code-ready/crc-team

BTW, we were already looking into this for our own purposes; https://github.com/code-ready/crc/pull/2162 but a definitive solution hasn't been defined. It should likely be a field added to the crc status output.

Shouldn't crc start always run crc setup checks? We could remove then crc setup.

So I just thought I'd take this moment to show you a glimpse from a user:
[rob@rawbeast crc-linux-1.24.0-amd64]$ ./crc status -o json
{
  "success": false,
  "error": "Machine does not exist. Use 'crc start' to create it"
}
[rob@rawbeast crc-linux-1.24.0-amd64]$ ./crc start
Run 'crc setup' to unpack the bundle to disk

I run crc status, it tells me to run crc start. I run crc start, it tells me to run crc setup. Even if crc status was updated to recognize that it's not set up yet and provide a more clear error message, our tools still aren't going to go parsing specific error messages, as the error messages can change at any time or any locale. So that's not really a possibility.
Other things that are important to note:  When we run crc start, we launch the process through the equivalent of Runtime.exec(). It's wrapped in eclipse APIs, but that's what we do. We then link the output to a console view so the user can see it.
This is insufficient for crc status. For crc status we need a PTY terminal (to hide typed passwords) and input ability. Our current hack / workaround is to launch it through a PTY process launcher and connect that to the terminal view in eclipse. Without this workaround, we can't type the root credentials invisibly etc etc. This is something that the cdk / crc team has overlooked often in the past. We generally don't like the terminal view. It doesn't work as well, it's more overhead, it's part of eclipse TM project (which has no real maintainers to speak of) and has been buggy before. Relying on this dependency is dangerous.
The point here is I don't think we'd be very happy if crc setup was removed, and crc start did it automatically as part of the first startup. If that happened, we'd need to switch our entire launch to use the terminal view, which would be quite difficult when wrapped with the servertools API. It's fine for us to do that on our own for one-off processes (like crc setup), but when it's part of the "start server" action, well, it becomes way more difficult.

According to the documentation the steps are:

crc setup
crc start
and usage

While I agree that this is very much sending people for a runaround. Though, crc start concludes the right thing.

For crc status we need a PTY terminal (to hide typed passwords)

^^^ are you sure? I believe you meant crc setup.

workaround is to launch it through a PTY process launcher

If so, yes... but this will be handled in 'future' by the OS on macOS as this will be replaced by the yellow package.

we'd be very happy if crc setup was removed, and crc start did it automatically as part of the first startup

You can prevent the popups and requests for the password IF you supply the pull-secret by file via crc config set. This has been implemented IIRC by the VScode adapters. We worked to add configu options which can be provided beforehand to prevent those
In other words, a quick conversation in our IRC channel or slack channel would have been able to resolve this.

According to the documentation the steps are:
1. `crc setup`

2. `crc start`

3. and usage

While I agree that this is very much sending people for a runaround. Though, crc start concludes the right thing.

For crc status we need a PTY terminal (to hide typed passwords)

^^^ are you sure? I believe you meant crc setup.

workaround is to launch it through a PTY process launcher

If so, yes... but this will be handled in 'future' by the OS on macOS as this will be replaced by the yellow package. but ...

we'd be very happy if crc setup was removed, and crc start did it automatically as part of the first startup

You can prevent the popups and requests for the password IF you supply the pull-secret by file via crc config set. This has been implemented IIRC by the VScode adapters. We worked to add configu options which can be provided beforehand to prevent those
Are you sure ? We provide pull secret via command line arguments, Rob was referring to sudo like password which I don't think can be prevented
In other words, a quick conversation in our IRC channel or slack channel would have been able to resolve this.

I run crc status, it tells me to run crc start. I run crc start, it tells me to run crc setup. Even if crc status was updated to recognize that it's not set up yet and provide a more clear error message, our tools still aren't going to go parsing specific error messages, as the error messages can change at any time or any locale. So that's not really a possibility.

This is very useful feedback for us, always useful to know the hurdles people encounter in their use of crc. Just reach out to us on slack or file issues as soon as you encounter such issues so that we can work together towards improving crc usability.

Current detection code is here https://github.com/jbosstools/jbosstools-openshift/blob/a56ac0b772569df4b19564fcd067e6de7be1d620/plugins/org.jboss.tools.openshift.cdk.server/src/org/jboss/tools/openshift/internal/crc/server/core/adapter/CRC100Server.java#L65-L85
this assumes that crc.log exists, that us created for any command that is run.

Hopefully #2179 would fix this issue?
$ ./crc setup --checks-only
INFO Checking if running as non-root
INFO Checking if podman remote executable is cached
INFO Checking if admin-helper executable is cached
admin-helper executable is not cached

$ echo $?
2

$ ./crc setup --checks-only -ojson
INFO Checking if running as non-root
INFO Checking if podman remote executable is cached
INFO Checking if admin-helper executable is cached
{
"success": false,
"error": "admin-helper executable is not cached"
}

$ echo $?
0

Why do we get non JSON output ? Is it using a different stream ?

crc setup has the same behaviour, INFO goes to stderr, the json goes to stdout.

@jeffmaury would this be do what you need? or is this better for you if we provide this functionality differently? I'd like to address this in 1.25, and code freeze is at the end of the week.

No we should be good assumed the JSON goes to a single stream.

This is reusing the existing code for json output, so  this should be fine.

crc setup --check-only will be in the 1.25 release, and once you use this, this should fix the issue you were having, feel free to reopen this issue if you think there should be more discussions around this.


ci: use pnpm

Codecov Report

Merging #1179 (ed3b927) into v2 (e4858f9) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##               v2    #1179   +/-   ##
=======================================
  Coverage   98.00%   98.00%
=======================================
  Files           9        9
  Lines         400      400
  Branches      104      104
=======================================
  Hits          392      392
  Misses          4        4
  Partials        4        4

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 e4858f9...ed3b927. Read the comment docs.


Fixed pet script

Cleaned up the code and changed some variable names
Fixed pet script running in the scene editor
Fixed the speed of the pet being slow in low FPS
Fixed the pet from slightly going out of bounds
Cleaned up the pet scene
Rename Control node to Pet
Added in Panic mode:
To activate it, you have to click on it 5 times under 2 seconds

Also ignore the two other PRs, the vscode plugin I was using for git somehow messed it all up.

Oh i see you really improved pet code! Thanks a lot, it helped indeed!