x/tools/go/types: int overflow in switch expression

gotype successfully compiles the following program:
package a
func f() {
	switch<PHONE_NUMBER>854775808 {
	}
}

gc rejects it with:
go.go:3: constant<PHONE_NUMBER>854775808 overflows int

gc seems to be right.
on commit af817890aa7b628234075a6cb01a3a435fb8317d

The same happens in switch cases as well:
package a
func f() {
    switch<PHONE_NUMBER>854775808 {
    case<PHONE_NUMBER>854775808:
    }
}

The switch statement is actually underspecified in this respect. It does not say that the switch expression has to fit into a basic type. So technically, I believe gotype is correct. That said, I think the spec needs to be clarified as the current situation is not tenable in general. Leaving as go/types bug.


Uplift package dependencies + handle breaking changes

Is your feature request related to a problem? Please describe.
Several package dependencies could do with being updated.
Several of the packages introduce breaking changes we will need to address if updating the packages to retain an evergreen status.

The above is an ncu audit; the blue and green versions can be updated to with no issue, however those highlighted in red have introduced breaking changed we need to manually handle.
Describe the solution you'd like
Update the vue-qrcode-reader package: https://github.com/bitshares/beet/issues/263
Switch crypto package: https://github.com/bitshares/beet/issues/262
Update all packages which don't introduce breaking changes too.
Describe alternatives you've considered
Leave this package dependency maintenance to the main Beet wallet repo?
Additional context
By driving towards an evergreen state, we chase after true cutting edge technology status. By keeping up to date we avoid package updates overwhelming us, and we also benefit from bug fixes and latest improvements across the board.
The crypto package swap may require changes to be made to the beet-js library.

Updated several of the packages, only the breaking changes remain:

By switching to vite we can reduce the quantity of packages we have to maintain versions for.

99% of packages requiring uplift have been updated now. https://github.com/beetapp/beeteos/releases/tag/v1.1.0


add containerd runtime

Description
For #1232
add containerd runtime support.
# Install Dapr
>>> dapr init --container-runtime containerd --network mynet
⌛  Making the jump to hyperspace...
ℹ  Container images will be pulled from Docker Hub
ℹ  Installing runtime version 1.10.2
↖  Downloading binaries and setting up components...
✅  Downloading binaries and setting up components...
✅  Downloaded binaries and completed components set up.
ℹ  daprd binary has been installed to /home/x.linux/.dapr/bin.
ℹ  dapr_placement_mynet container is running.
ℹ  dapr_redis_mynet container is running.
ℹ  dapr_zipkin_mynet container is running.
ℹ  Use `nerdctl ps` to check running containers.
✅  Success! Dapr is up and running. To get started, go here: https://aka.ms/dapr-getting-started

# Show all the containers
>>> nerdctl ps
CONTAINER ID    IMAGE                                 COMMAND                   CREATED               STATUS    PORTS    NAMES
55f8cd7ad1ad    docker.io/daprio/dapr:1.10.2          "./placement"             About a minute ago    Up                 dapr_placement_mynet
6c4a54236073    docker.io/openzipkin/zipkin:latest    "start-zipkin"            About a minute ago    Up                 dapr_zipkin_mynet
b94b3d45d466    docker.io/library/redis:6             "docker-entrypoint.s…"    About a minute ago    Up                 dapr_redis_mynet

# Uninstall dapr
>>> dapr uninstall --container-runtime containerd --network mynet

Issue reference
Please reference the issue this PR will close: #1232
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Extended the documentation

@tianyax Were you able to verify dapr init with containerd on Macos?

@tianyax Were you able to verify running dapr init with containerd on Macos?

@pravinpushkar  Okay, I'll update the workflows later.

@tianyax Were you able to verify running dapr init with containerd on Macos?

@pravinpushkar Okay, I'll update the workflows later.

I meant locally.
However, should we try updating the workflow for Mac using containerd or have both podman and containerd @mukundansundar

@tianyax Were you able to verify running dapr init with containerd on Macos?

@pravinpushkar Okay, I'll update the workflows later.

I meant locally.
However, should we try updating the workflow for Mac using containerd or have both podman and containerd @mukundansundar

If possible both.

@tianyax Were you able to verify running dapr init with containerd on Macos?

@pravinpushkar Okay, I'll update the workflows later.

I meant locally.
However, should we try updating the workflow for Mac using containerd or have both podman and containerd @mukundansundar

@pravinpushkar I have already verified it on my mac, including lima, colima and rancher-desktop.
This is the result after I cleared the environment and re-run with colima as an example.

@tianyax Thanks for verifying locally. Please resolve the conflicts in the PR .

@tianyax There is small merge conflict that needs to be resolved.

@tianyax There is small merge conflict that needs to be resolved.

@pravinpushkar resolved.

Can we also add e2e tests with containerd?

@shubham1172 containerd just provides a runtime, the e2e test cases can be equivalent to docker, I think we can add the containerd job to the self-host-e2e workflow to do e2e tests, if that's what you mean, I try to update it.

I think we can add the containerd job to the self-host-e2e workflow to do e2e tests, if that's what you mean, I try to update it.

@tianyax, absolutely!

Yeah, better to run the test locally to debug it. Also, any reason why enable it only for macos and not windows and linux ?

@shubham1172 @pravinpushkar According to shubham1172's suggestion I modified README and added e2e tests for containerd runtime. But the job timed out and I am looking for the cause, I suspect that the command dapr init ... is invoked in go that does not get the result and make the program waiting. No problem using dapr init ... locally

Hi @tianyax, are you able to run the e2e test locally?

@shubham1172 Yes, I have no problem running e2e tests locally, but my colima environment is not freshly installed, it has been running for a while, I will clean it and do a retest.

Yeah, better to run the test locally to debug it. Also, any reason why enable it only for macos and not windows and linux ?

@pravinpushkar Yes, I will be debug it locally. About why enable it only for macos, I saw that other runtimes just chose a platform to do the test. I think there may be some reasons for this. I am using macos now, so I chose macos to do the test. After solving this problem I will add. 😄

@pravinpushkar Yes, I will be debug it locally. About why enable it only for macos, I saw that other runtimes just chose a platform to do the test. I think there may be some reasons for this. I am using macos now, so I chose macos to do the test. After solving this problem I will add. 😄

Basically we recently added Podman support and macos runner has some issues with docker and windows runner has some difficulties with Podman, thats why the current setup looks like this. I was just thinking if containerd has good support for all then we can add for all os and exclude what is not supported.

@shubham1172 @pravinpushkar According to shubham1172's suggestion I modified README and added e2e tests for containerd runtime. But the job timed out and I am looking for the cause, I suspect that the command dapr init ... is invoked in go that does not get the result and make the program waiting. No problem using dapr init ... locally

@shubham1172 @pravinpushkar The problem is that the utils.RunCmdAndWait method causes blocking.
func RunCmdAndWait(name string, args ...string) (string, error) {
    cmd := exec.Command(name, args...)

    stdout, err := cmd.StdoutPipe()
    if err != nil {
        return "", err
    }
    stderr, err := cmd.StderrPipe()
    if err != nil {
        return "", err
    }

    err = cmd.Start()
    if err != nil {
        return "", err
    }

    resp, err := io.ReadAll(stdout)  // Blocking here!
    if err != nil {
        return "", err
    }
    errB, err := io.ReadAll(stderr)
    if err != nil {
        //nolint
        return "", nil
    }

    err = cmd.Wait()
    ...

Command cannot get a response from StdoutPipe, I wrote a simple test and occasionally this happens.
RunCmdAndWait("nerdctl", "run", "--name", "dapr_redis", "-d", "redis:6")

But why no data is written to the standard output I do not know yet.. 😅 If the image already exists there is no problem.

@shubham1172 @pravinpushkar According to shubham1172's suggestion I modified README and added e2e tests for containerd runtime. But the job timed out and I am looking for the cause, I suspect that the command dapr init ... is invoked in go that does not get the result and make the program waiting. No problem using dapr init ... locally

@shubham1172 @pravinpushkar The problem is that the utils.RunCmdAndWait method causes blocking.
func RunCmdAndWait(name string, args ...string) (string, error) {
    cmd := exec.Command(name, args...)

    stdout, err := cmd.StdoutPipe()
    if err != nil {
        return "", err
    }
    stderr, err := cmd.StderrPipe()
    if err != nil {
        return "", err
    }

    err = cmd.Start()
    if err != nil {
        return "", err
    }

    resp, err := io.ReadAll(stdout)  // Blocking here!
    if err != nil {
        return "", err
    }
    errB, err := io.ReadAll(stderr)
    if err != nil {
        //nolint
        return "", nil
    }

    err = cmd.Wait()
    ...

Command cannot get a response from StdoutPipe, I wrote a simple test and occasionally this happens.
RunCmdAndWait("nerdctl", "run", "--name", "dapr_redis", "-d", "redis:6")

But why no data is written to the standard output I do not know yet.. 😅 If the image already exists there is no problem.

Is it because the output is not going to stdout? I see a related issue here https://github.com/containerd/nerdctl/issues/1685

@tianyax did you get a chance to have a look at the issue?

@tianyax did you get a chance to have a look at the issue?

@shubham1172 I think this problem is caused by lima/colima rather than nerdctl, I opened a discussion https://github.com/lima-vm/lima/discussions/1454, the maintainer suggested to use cmd.Stdout = &stdout to solve this problem, and I responded to it.

@tianyax I am seeing that this PR has been moved to draft ... Do you have an ETA for this feature?

@mukundansundar There is a new problem here, using nerdctl to quickly create and delete containers will cause errors https://github.com/containerd/nerdctl/discussions/2193. this is occasional in e2e tests (with a few retries have completed the full test case), and it may take some time to fix this bug. so I updated the PR to draft, this feature may need more rigorous and comprehensive testing, otherwise I think it needs to be supported with caution at present😅.. I'm trying to find the cause of the nerdctl error and fix it.

@tianyax Do you have any updates on this PR?

@tianyax Do you have any updates on this PR?

@mukundansundar Waiting for https://github.com/containerd/containerd/pull/8550


Change finished check from equal to equal or greater than to protect …

…accident condition
New Pull Request Checklist

[x] I have read and understood the CONTRIBUTING guide

[x] I have read the Documentation

[x] I have searched for a similar pull request in the project and found none

[x] I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)

[x] I have added the required tests to prove the fix/feature I am adding

[x] I have updated the documentation (if necessary)

[x] I have run the tests and they pass

[x] I have run the lint and it passes (pod lib lint)

This merge request fixes / reffers to the following issues: ...
Pull Request Description
Fix the progressive decoding finished status check after #2040

@dreampiggy Technical man ！It is sorry to bother you, and there is a question that has been puzzling me . Why does this place use more than and equal , Why can not use equality? However 0.99 more than and equal is used in YYWebImage ? What is the reason? Thank you!


Remove pinned versions

Related to: https://github.com/test-network-function/cnf-certification-test/pull/1124

The bumping UBI version and the removing package versions are not related. Please, separate PRs or postpone the UBI bump.
We're still discussing the removal of the package versions. To lock the versions (UBI, registry, packages) on a certain Git commit/release is a good approach. I'm sure 'dnf update' causes failures on re-build.
There are ways to lock it:
https://access.redhat.com/solutions/98873
Or remove the update.

https://access.redhat.com/solutions/98873 won't work in a containerized environment.  I think removing the pinned versions is our best option.


Introduce spine-web-client error hierarchy

Summary
This PR brings systematization of errors for spine-web-client.
Error hierarchy
All errors inherit from the SpineWebError and divide into three groups:

Connection errors. Represented with ConnectionError
Client errors. Represented by abstract ClientError and its implementations:

RequestProcessingError - an error which occurs when sending off a request to Spine server endpoint results with a response with 4xx status code.
CommandProcessingError - an error which occurs when sending off a command to Spine server endpoint results with a response containing spine.base.Ack with an error status. It means that a command message was rejected further processing (e.g. because of a validation error).

Server errors. Represented by abstract ServerError and its implementations:

InternalServerError - An error which occurs when sending off a request to Spine server endpoint results with a response with 5xx status code.
ResponseProcessingError - an error which occurs when sending off a request to Spine server endpoint results with a malformed response which can't be processed.

Command sending
The new error hierarchy was applied for the command sending operation to clarify the meaning of its outcome:

the ClientError-kind errors occurrence guaranties that the command wasn't accepted by the server.
the ServerError-kind and ConnectionError errors occurrence means that the command sending result is unknown (can't be considered as succeeded or failed) and should be interpreted respectively on the UI.

@mdrachuk please have a look.

@mdrachuk PTAL


load-images option

I couldn't find a PhantomJS load-images relative option for puppeteer. Is there a way to say you don't want to load images?

Can you elaborate on what "load-images relative option" is?
The block-images.js example shows how to interception image requests. You can either modify or abort them. Does that help?

It helps. Thanks!


Not Compatible with .net core 3.1

We get error if we use unstable Selenium 4.00-alpha04
Could not load file or assembly 'netstandard2.0assembly, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'.

Update the document accordingly

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

ID: 107ce527-7b9c-ff4e-e524-a8ebbc1a6714
Version Independent ID: 6c8de68a-01bf-3426-8427-6daa5dca5f03
Content: WebDriver (Chromium) - Microsoft Edge Development
Content Source: microsoft-edge/webdriver-chromium.md
Product: microsoft-edge
Technology: devtools
GitHub Login: @zoherghadyali
Microsoft Alias: zoghadya

.NET Core 3.1 compatibility issues w/ Se 4.0-a04 confirmed — this issue effectively shuts down integration into and further exploration of Chromium Edge in existing automation platform until resolved.

This is a known issue with Selenium Alpha 04 and has recently been fixed in their repo:
https://github.com/SeleniumHQ/selenium/issues/7932
However, Selenium has not yet published a release that includes the fix. The fix should be included in Alpha 05 once that becomes available.

@pmahend1 and @thedustmonkey, have you tried using the latest Selenium4.0.0-alpha05? It should contain the fix you need so definitely let us know how that goes for you!

Thanks for reporting this issue. Since the document has been updated, I'll go ahead and close this issue. Thanks again!


Improve some docstrings

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (13dfb8f) 100.00% compared to head (fa3a43a) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #342   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           41        41
  Lines         1663      1663
  Branches       339       339
=========================================
  Hits          1663      1663

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Clarify OSTEP Options

Direct most students to read OSTEP and complete homework.
Direct only students specializing in systems to undertake
the course projects
Resolves #1083
Co-authored-by: Waciuma Wanjohi<EMAIL_ADDRESS>Co-authored-by: spamegg<EMAIL_ADDRESS>

@spamegg1 Here's the promised edit of your draft. If you reply and give this the go-ahead, I'll merge it in. If there are changes you'd like to make, just make a PR to the OSTEP-Approaches branch.

@waciumawanjohi I looked over it, looks good to merge :+1:

In the document:
"There is a great solution set here."
Link is missing.

The pre-requisites on the main page says "strong C programming".
It should be changed to "none" then I presume? Assuming the "base" approach is the default?

@riceeatingmachine Good catch, it's my bad I missed that missing link. I'll fix it.
The prerequisites should not be changed to "none" because that leads to people skipping the entire curriculum and jumping into that course by saying "it had no prerequisites, so I just started it", then getting horribly stuck not knowing what to do. (Same happens with Nand2Tetris). Whether the basic or extended approach is taken, Nand2Tetris Part II is a good prerequisite (makes you write a basic "OS" in the last project).


Avoid type aliases

This is just to express a personal preference for avoiding aliases in the type argument. There are already lots of possible values, and it may not be clear to users why there are differences between, for example, h, hist, and histogram, or between j and jitter. Some similar-looking things are different; others are just aliases. Sure, this can be documented, but there are costs to duplication and lack of consistency.
One potential way to distinguish the "families" of geoms, would be to let type argument accept:

One-letter types as character: Standard types provided by the plot() function only. p, l, etc.
Full word types as strings: New types supplied by tinyplot: hist, rect, etc.
Functions: some version of https://github.com/grantmcdermott/tinyplot/pull/168

This would allow users to clearly distinguish functionality with just a glance at the code.
TBC, this is not a big deal at all; just an aesthetic preference. Feel free to close and keep the aliases.

Thanks, Vincent, I agree that this deserves some further thought, especially if tinyplot keeps growing as it has so far.
Disclaimer: I tried to write up my ideas concisely but failed. Feel free to ignore the noise below! I decided to post it, even though it isn't as concise and structured as I would have liked it - maybe some if it is useful for one of you nevertheless.
Basic thoughts: Usually, I like partial matching via match.arg() which is also widely used in base R and many practitioners are used to it. In most situations this avoids to define abbreviated shortcuts. However, here, this is not possible because type = "h" or type = "b" are already well-defined and we probably want to support type = "hist" or type = "boxplot" to really mean different things. I think this leads to at least the following three questions:

Do we want to introduce any 1-letter type specifications at all? Or should we just support the standard one-letter types from the base plot() function?
Do we want to enable partial matching for type specifications starting from 2-letter or 3-letter strings?
Once we refactor the code will there be a 1:1 correspondence between type specfications with more than 1 letter and actual functions?

Functions after refactoring? Based on the discussions so far, I would find it intuitive if type = "foo" would internally call tinyplot_foo() for the drawing (or tp_foo() or something like that). The only exception should be the 1-letter types which could be handled by tinyplot_base or tinyplot_scatterplot or something like that.
New 1-letter abbreviations? In this case I think it would be feasible to add further 1-letter types provided that they are handled with the same tinyplot_base/tinyplot_scatterplot function. Candidates for this would be type = "i" or type = "j" (see https://github.com/grantmcdermott/tinyplot/issues/93 and https://github.com/grantmcdermott/tinyplot/issues/97) which probably don't need a new tinyplot_ function.
Partial matching starting from 2 (or 3) letters? I don't have strong feelings about this. One argument against this (in addition to Vincent's concerns) would be that it will be hard to keep this up if tinyplot is successful and keeps growing. One case in favor of this would be type = "hist" vs. type = "histogram". Both of these will feel very natural to different users so that some will be confused if we settle for just one of the two labels. Of course, we could throw a useful error message a la: You said hist but probably meant histogram, please use the latter. But to me these always feel a bit like: We know perfectly what you mean but still force you to retype your command with the label that we prefer.

Functions after refactoring? Based on the discussions so far, I would find it intuitive if type = "foo" would internally call tinyplot_foo() for the drawing (or tp_foo() or something like that). The only exception should be the 1-letter types which could be handled by tinyplot_base or tinyplot_scatterplot or something like that.

Yes, that’s exactly my motivation for the refactor. The one minor issue is that due to the way the code is organized, each type has to be associated with two functions: (1) type_histogram() processes x, y, inputs, computes breaks, etc. (2) draw_histogram() makes the actual calls to drawing functions. #198 refactor the first part. The second could be done in the future.
Then, PR #168 will allow two very cool and powerful things. First, users can supply a custom type_*() function to draw fully customized plots plt(x, y, type = type_custom()).
Second, users can call the type-specific function themselves, and set type-specific arguments in that function. This would be great for documentation, because it would provide a place to get plot-specific info about what’s available, and it would not require us to add a ton of type-specific arguments to the core plt() function. For example:
plt(x, y, type = type_spline(k = 3, bs = "cr"))
plt(x, y, type = type_histogram(breaks = "Sturges"))

New 1-letter abbreviations?

I’ve always found 1-letter abbreviation difficult to approach, and think that code using these is more difficult to read. That said, I don't feel terribly strongly about this, and I appreciate that there’s a tradeoff with concision.

Of course, we could throw a useful error message a la: You said hist but probably meant histogram, please use the latter. But to me these always feel a bit like: We know perfectly what you mean but still force you to retype your command with the label that we prefer.

Lol yeah. What’s also kind of annoying about this is that you know they had to build special logic in the code to raise a specifically worded warning.
A more defensible approach, I think, is to use a simple assertion at the very top of the script to raise a generic informative error. At least with this strategy, there’s a real benefit in terms of simplicity and maintainability for the developer, and we still get informative errors.
type <- "histogram"
checkmate::assert_choice(type, choices = c("p", "h", "hist"))
# Error in eval(expr, envir, enclos): Assertion on 'type' failed: Must be element of set {'p','h','hist'}, but is 'histogram'.

We merged similar assertions functions in tinyplot already, so they’re available.

Regarding the modularization, I just wanted to point out another possible solution which might be helpful for encapsulating the different types. Rather than having two separate functions one could also have one generator function. Pseudo-code:
type_histogram <- function(data, breaks = "Sturges") {
  ## process arguments
  ## set up actual drawing function
  draw <- function(data) {
    ...
  }
  return(draw)
}

Then one can exploit the lexically scoped function draw() to do the actual drawing. Rather than setting up only a single function in this way, it would also be possible to return a list of such lexically scoped functions, e.g., for handling the data, drawing the main plot, drawing the legend.
The advantage is that you just need a single function and have all the code in one place. It can also make the design cleaner. The disadvantage is that the hurdle for writing new type_ generators is somewhat higher.

I like this a lot. Let me think on it.

Regarding the warning messages and abbreviations: If you would go for a generic warning only, then just using match.arg() might be a convenient solution? Something a la:
if (nchar(type) == 1L) {
  available_types <- c("p", "l", "h", "n", ...)
  type <- match.arg(type, available_types)
  type_fun <- "type_plot"
} else {
  available_types <- c("plot", "histogram", "boxplot", ...)
  type <- match.arg(type, available_types)
  type_fun <- paste0("type_", type)
}

I think this is mostly settled now, so I'm closing.
My obsessions with avoiding aliases was noted, I'm sure 😂


new request

What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

I'm merging this request with the name of the new request. It is different from the main class of the original repo.


support memos >= 76 bytes via OP_PUSHDATA1

When I was looking at the sample code I noticed a stray 76 (0x4c, which turns out to be OP_PUSHDATA1) in the byte sequence.
When I was looking at Dash examples, none of them had this byte, but some of them were truncated.
It appears that OP_PUSHDATA1 is used for memos (OP_RETURN) over 75 bytes in length.
We should probably update to support this.
See https://github.com/bitcoin-sv-specs/op_return/blob/master/01-PUSHDATA-data-element-framing.md#pushdata-data-framing-for-op_return.

via #23


Remove binary compied files from repo (eg .dlls)

These should be re-creatable from the source code as required. If we wish to distribute compiled versions, then we should do this through a publish pack index (issue #14).

this https://github.com/PandemiaProject/pandemia/tree/adding_makefile handles this


Update sbt-github-actions from 0.22.0 to 0.23.0

About this PR
📦 Updates com.github.sbt:sbt-github-actions from 0.22.0 to 0.23.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.sbt", artifactId = "sbt-github-actions" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.github.sbt", artifactId = "sbt-github-actions" }
}]

labels: dependencies, sbt-plugin-update, early-semver-major, semver-spec-minor, commit-count:1

Closed as it will no longer be used in response to https://github.com/takapi327/ldbc/pull/127


Create LICENSE

Fix for #27

Good point @edwardcwang . I believe @chick has instructions in the README.md for initializing a real project using this template. I'll update them to include removal/updating of the LICENSE.

@edwardcwang @ucbjrl Not that I want to drag this out, but would it be better to rename the License file to SAMPLE.LICENSE with instructions to re-name it, or provide another in the README. Splitting hairs, but I think that would protect against TLDR and the university ultimately owning all software.

But it is the template code we're licensing. I don't know the legal difference between LICENSE and SAMPLE-LICENSE.

That makes sense, so best to leave it.

2 thoughts.

Instead of putting the code in LICENSE, we could just put it at the bottom of README.md and mention in a line above it that "the following code only applies to the template code". Avoids any LICENSE contamination.

How important is it to copyright sample/template code anyway? BSD license requires you to include the original code's copyright notices which maybe doesn't make sense for commercial chip projects using Chisel template code. Maybe we could just make the template CC0/public-domain and so avoid any issues with user code being copyrighted?

https://creativecommons.org/share-your-work/public-domain/cc0/

I'd like to follow up on @edwardcwang's suggestion and update the license references in the code to refer to the README, and add the following text (http://unlicense.org/) to the README:
This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.

In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.

IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to <http://unlicense.org/>

@ucbjrl Do you want to just go ahead and update the PR, then we can move forward?


Consider adding OEB Natural Gas prices

Love this - it made using the energy dashboard much for useful. OEB also publishes gas prices and it would be handy to have cost values for those as well.

A little late to respond, though this is something that I was working on and will submit a PR once it's ready! I'll try and set some time aside to continue working on it as I've had to put it off for a little bit.
It will be similar to the recent update https://github.com/jrfernandes/ontario_energy_board/releases/tag/v0.3.2, where it'll reveal all data points from the XML file provided by the OEB. It'll also be super useful as I was recently able to pull in gas meter usage into Home Assistant so having that data would be perfect!

Just an update! I have the natural gas data pulling in and displaying alongside electricity sensors. With that, I just need a few more days to clean up and optimize some parts of the code before it's PR time!
I've also chatted with the team at OEB and was able to get a field-to-name mapper, as well as the calculations/formulas and would love to include that as well!
If you have electricity or natural gas sensors setup, it's going to be a great addition! Hopefully help estimate your next bill as well - which was my initial intent haha

Just tagging the PR that represents/resolves this issue #22

Curious if there is an update for this? I just updated my gas rate manually in the Energy dashboard and wondered why the OEB integration didn't include gas rates, came here, and found this.  Thanks in advance!

+1


Ability to remove omitempty globally

I've run into this issue before when consuming JSON from Go, and it's unfortunately one of the pitfalls of how Go handles structs to JSON.
Unless I missed a config option, every struct that ent makes for each entity has omitempy tagged onto every field. This makes sense, to omit empty values. However to Go, false, 0, "" are all empty values for bool, int/float, string.
This means that when marshalling the struct to JSON, these fields are ommitted. So a value of false when turned into JSON, is removed from the struct, which is fine but also implies it's null as JSON can have null/unset values and so can SQL, but Go can't unless everything is a pointer which causes headaches. When digesting this JSON with, say, JavaScript, these become undefined instead of their default value. The omission of these fields like zero, or false, provide a bad representation of what could actually be stored in the database as fields can be "unset" as well as be a default value.
Now in terms of ent this isn't technically a problem, because its purpose is not to interact with JSON, but instead with structs. There are situations where omitempty may be wanted.
I've had success with the null package before (https://github.com/guregu/null) specifically when dealing with SQL values, as it marshalls nicely compared to the sql package which does not. I don't think this dramatic of a change is necessary however.
Consider the following example:
type omitted struct {
	StringField string  `json:",omitempty"`
	IntField    int64   `json:",omitempty"`
	FloatField  float64 `json:",omitempty"`
	BoolField   bool    `json:",omitempty"`
}

type notOmitted struct {
	StringField string
	IntField    int64
	FloatField  float64
	BoolField   bool
}

func main() {
	o := omitted{
		StringField: "",
		IntField:    0,
		FloatField:  0,
		BoolField:   false,
	}

	// Prints {}
	jo, _ := json.Marshal(o)
	fmt.Println(string(jo))

	n := notOmitted{
		StringField: "",
		IntField:    0,
		FloatField:  0,
		BoolField:   false,
	}

	// Prints {"StringField":"","IntField":0,"FloatField":0,"BoolField":false}
	jn, _ := json.Marshal(n)
	fmt.Println(string(jn))
}

Let me know what you think.

Hey @napei!
You can use the StorageKey option in order to override the JSON tag for fields, or you can use a custom template to override the template that generates these tags. 1st option is preferred IMO, and can be written with some helper as follows:
func (T) Fields() []ent.Field {
	return fieldutil.WithStructTags(
		field.String("name"),
		field.String("address"),
		// ...
	)
}

// fieldutil.go
func WithStructTags(fields ...ent.Field) []ent.Field {
	for i := range fields {
		desc := fields[i].Descriptor()
		desc.Tag = fmt.Sprintf(`json:"%s"`, desc.Name)
	}
	return fields
}

Thanks for proposing this option, but unfortunately I don't think I want to add it to ent, as I'm trying to keep configuration options small and trying to avoid adding an option for each customization (others may want to control the tag format for example).
Anyway, I'm trying to encourage others to create OSS tools that can extend and customize ent (e.g. ent-contrib) - if you find this option useful for others, consider making it OSS.
Closing, but feel free to continue the discussion or re-open if you have troubles with it.

Hey @a8m that makes sense. Adding extra complexity isn't what I was after and yes I can just override the struct tags myself.
I was more taking the viewpoint that having omitempty on all fields can actually yield an invalid representation of the data stored in the DB and is thus it is incorrect in a sense.
For example Go supports true and false only for booleans (non-pointers), and subsequently does not even include the keys with a value of false in the marshalled JSON when omitempty is specified. In terms of the output JSON, this field does not exist and if accessed is undefined or null (not false) even if the value in the database is explicitly false. This also does not match the database correctly as unless a column is not null then booleans can be true false or unknown (https://www.postgresql.org/docs/12/datatype-boolean.html)
I recently had this issue representing products in a store, where their prices in JSON (used in API) were undefined instead of zero like I saved in the database.

I was more taking the viewpoint that having omitempty on all fields can actually yield an invalid representation of the data stored in the DB and is thus it is incorrect in a sense.

Did you see the Nillable option?

I was more taking the viewpoint that having omitempty on all fields can actually yield an invalid representation of the data stored in the DB and is thus it is incorrect in a sense.

Did you see the Nillable option?

Yeah I did look at that, however Nillable fields must also be optional, and I have several fields that are not optional and I don't want omitempty. I think for me the best alternative would be what you mentioned above with extending fields manually.
Pointer fields in structs with Nillable() are omitted when they are nil instead of false, which again is not accurate because in JSON fields can be null as well as have a value.

I was more taking the viewpoint that having omitempty on all fields can actually yield an invalid representation of the data stored in the DB and is thus it is incorrect in a sense.

Did you see the Nillable option?

While the setting makes sense for most the types in go, it does not make sense for bool, for example having a bool field with a default value of false would not be consistent when serializing as it would be omited.


SignalR C++ Client

Brain dump

@BrennanConroy  anything I can do to help this get merged?/

Nope, we're just waiting until we're ready for it to be an actual doc.
This one would be nice to get in though https://github.com/aspnet/AspNetCore.Docs/pull/11126

@BrennanConroy  let me know if there's anything I can do to help with #11126

@BrennanConroy @JamesNK should we finish this or close it?

We can close, wont be going into the 3.0 docs until a much later time


fix: create the rename template without error

Signed-off-by: Liucw<EMAIL_ADDRESS>
What type of PR is this?
/kind bug

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes https://github.com/kubeclipper-labs/kubeclipper/issues/171
Special notes for reviewers:

Does this PR introduced a user-facing change?

None

Additional documentation, usage docs, etc.:

@x893675

Codecov Report

Merging #174 (38c566d) into master (267a254) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #174      +/-   ##
==========================================
- Coverage   12.63%   12.62%   -0.01%
==========================================
  Files         104      104
  Lines       15987    15994       +7
==========================================
  Hits         2020     2020
- Misses      13718    13725       +7
  Partials      249      249

Impacted Files
Coverage Δ

pkg/apis/core/v1/handler.go
0.33% <0.00%> (-0.01%)
:arrow_down:


uncomfortable view showing while dragging up and down,,

you can see attached images for further help

Duplicate of #13.

so why are you closing...??? when it haven't fix yet.


flate: improve flate hcode spatial locality

Improving hcode spatial locality and optimize accesses when iterating over len. For example:https://github.com/golang/go/blob/4469f5446ad754d87afb340f59c213aec2dc4fb8/src/compress/flate/huffman_bit_writer.go#L211-L213
I would propose that instead of having in huffmanEncoder a slice of hcode, to have an hcode struct holding a slice of code and a slice of len. It would optimize the utilization of the CPU cache lines.


False negative assertion error

Environment:

Cypress 8.3.0 Cypress
Cypress-Harvester plugin 1.1.0
IntelliJ IDEA 2021.2 Ultimate
Chrome Version 92.0.4515.159

Issue:
I have been seeing this issue since I first started using cypress-harvester, but I thought it was a cypress-intelliJ-reporter issue (because of a cypress mocha error that is thrown when this test is run within IntelliJ). In my troubleshooting efforts, I finally just closed down IntelliJ to eliminate that from the equation and ran the tests from both a Windows CMD console and the Cypress Test Runner GUI.
This is the test code. It fails the sorting assertion, but the screenshots show  that the sorting is correct. The test fails while sorting both the Unit Name column and the Date Received column:
            //Sorting by UNIT NAME asc
            cy.task('log', '  Testing sorted by UNIT NAME ascending...')
            cy.getByID('unitNameNumberHeader').click()

            cy.get('#dataTable')
                .should('have.length.above', 0)
                .scrapeTable()
                .then((table) => {
                        expect(table.columnLabels).to.deep.eq([
                            '',
                            'Task #',
                            'Unit Name ↓',
                            'Date Received',
                            'Type',
                            'Group'])

                        expect(table.isPropertySorted(['unit_name'], ['asc'])).to.be.true
                    }
                )

            //Sorting by DATE RECEIVED asc
            cy.task('log', '  Testing sorted by DATE RECEIVED ascending...')
            cy.getByID('dateReceivedHeader').click()

            cy.get('#dataTable')
                .should('have.length.above', 0)
                .scrapeTable()
                .then((table) => {
                        expect(table.columnLabels).to.deep.eq([
                            '',
                            'Task #',
                            'Unit Name',
                            'Date Received ↓',
                            'Type',
                            'Group'])

                       expect(table.isPropertySorted(['date_received'], ['asc'])).to.be.true
                    }
                )

This is a screenshot of the CMD console for the tests:

These are screenshots from the Cypress Test Runner GUI for each of the tests. They show the columns in question sorted properly, but the assertion insists they are not:
UNIT NAME SORT FAILURE

DATE RECEIVED SORT FAILURE

I'm wondering, looking at the data, if the sort routine is not liking that an entry under UNIT NAME starts with non-alphabetic chars... i.e. "(Def" and, that the DATE RECEIVED column maybe is being evaluated by harvester using a date code/format instead of as the text is displayed. IDK... just guessing.

thanks for raising this.  I will look into soon

@kodriscollics this is fixed in 1.2.0.  See updated doc => https://github.com/ryanrosello-og/cypress-harvester#date-assertions

After updating, Cypress fails on test startup. Getting the following error. I haven't changed any of the configuration. Just updated harvester:
Oops...we found an error preparing this test file:
cypress\support\index.js
The error was:
Error: Webpack Compilation Error
./node_modules/cypress-harvester/cypress/support/commands.js
Module not found: Error: Can't resolve 'date-fns/get_time' in 'C:\dev\AdminApp-QA\node_modules\cypress-harvester\cypress\support'
resolve 'date-fns/get_time' in 'C:\dev\AdminApp-QA\node_modules\cypress-harvester\cypress\support'
Parsed request is a module
using description file: C:\dev\AdminApp-QA\node_modules\cypress-harvester\package.json (relative path: ./cypress/support)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
C:\dev\AdminApp-QA\node_modules\cypress-harvester\cypress\support\node_modules doesn't exist or is not a directory
C:\dev\AdminApp-QA\node_modules\cypress-harvester\cypress\node_modules doesn't exist or is not a directory
C:\dev\AdminApp-QA\node_modules\cypress-harvester\node_modules doesn't exist or is not a directory
C:\dev\AdminApp-QA\node_modules\node_modules doesn't exist or is not a directory
C:\dev\node_modules doesn't exist or is not a directory
C:\node_modules doesn't exist or is not a directory
looking for modules in C:\dev\AdminApp-QA\node_modules
using description file: C:\dev\AdminApp-QA\package.json (relative path: ./node_modules)
Field 'browser' doesn't contain a valid alias configuration
using description file: C:\dev\AdminApp-QA\package.json (relative path: ./node_modules/date-fns/get_time)
no extension
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time.js doesn't exist
.json
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time.json doesn't exist
.jsx
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time.jsx doesn't exist
.mjs
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time.mjs doesn't exist
.coffee
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time.coffee doesn't exist
.ts
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time.ts doesn't exist
.tsx
Field 'browser' doesn't contain a valid alias configuration
C:\dev\AdminApp-QA\node_modules\date-fns\get_time.tsx doesn't exist
as directory
C:\dev\AdminApp-QA\node_modules\date-fns\get_time doesn't exist
[C:\dev\AdminApp-QA\node_modules\cypress-harvester\cypress\support\node_modules]
[C:\dev\AdminApp-QA\node_modules\cypress-harvester\cypress\node_modules]
[C:\dev\AdminApp-QA\node_modules\cypress-harvester\node_modules]
[C:\dev\AdminApp-QA\node_modules\node_modules]
[C:\dev\node_modules]
[C:\node_modules]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time.js]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time.json]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time.jsx]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time.mjs]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time.coffee]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time.ts]
[C:\dev\AdminApp-QA\node_modules\date-fns\get_time.tsx]
@ ./node_modules/cypress-harvester/cypress/support/commands.js 28:18-46
@ ./cypress/support/commands.js
@ ./cypress/support/index.js

I will investigate

@kodriscollics this should be fixed in 1.3.0
I will keep this issue open until you get this working on your end.

Would you be able to show me the full output for this?  You'll need to open up devTools and go to the Console tab

e

Sure, no problem:
Console was cleared
cypress_runner.js:191069 Command:  wrap
cypress_runner.js:191069 Yielded:  DataTable
DevTools failed to load source map: Could not load content for https://dev-56789660.okta.com/__cypress/runner/popper.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angular/angular.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angular-resource/angular-resource.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angular-ui-router/release/angular-ui-router.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/ng-idle/angular-idle.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/moment/min/moment.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angularjs-dropdown-multiselect/dist/maps/angularjs-dropdown-multiselect.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angular/angular.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angular-resource/angular-resource.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angular-ui-router/release/angular-ui-router.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/moment/min/moment.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/angularjs-dropdown-multiselect/dist/maps/angularjs-dropdown-multiselect.min.js.map: Unexpected token < in JSON at position 0
DevTools failed to load source map: Could not parse content for https://my-app.myCompany.org/my-app/lib/ng-idle/angular-idle.map: Unexpected token < in JSON at position 0

hey @kodriscollics , I was after the output similar to ...

Cheers

@ryanrosello-og ... Doh!


Web server hangs when content is returned in Windows IoT build 10.0.14393.693

I've been trying to put Restup to use on my Raspberry Pi 3 and I'm having reliability issues whenever I try to return any content e.g. for a Get request.
As long as I only return a status code, then the server seems to work and at least doesn't hang, but even then Postman says that it didn't receive any response (although it sees that the connection was closed).
However, if I try to return any data for a Get request, even just a string literal, then the web server hangs and after a few tens of seconds the background task terminates.
The request is arriving and being parsed and routed successfully, but everything hangs when returning the response.
Here's an example of the code that exhibits the problem:
namespace TA.PiLights
    {
    [RestController(InstanceCreationType.PerCall)]
    public sealed class LampController
        {
        [UriFormat("lamp/{id}/{action}")]
        public IGetResponse LampControl(int id, string action)
            {
            var lampPins = LampHardwareInterface.LampPins;
            var lowerAction = action.ToLowerInvariant();
            var turnOn = lowerAction == "on";
            Debug.WriteLine($"Request to turn {action} lamp(s) {id}");
            if (id > lampPins.Count || id < 0)
                {
                Debug.WriteLine($"Invalid lamp ID={id}");
                return new GetResponse(GetResponse.ResponseStatus.NotFound);
                }
            var pin = lampPins[id];
            pin.Write(turnOn ? GpioPinValue.Low : GpioPinValue.High); // Switches are active low
            var state = turnOn ? "On" : "Off";
            var statusMessage = $"Lamp {id} turned {state}";
            Debug.WriteLine(statusMessage);
            return new GetResponse(GetResponse.ResponseStatus.OK, statusMessage);
            }
        }
    }

If I run that code and send a request to http://xxxxxxx:8800/api/lamp/0/On then the lamp turns on but no response comes back and after a few tens of seconds the background task terminates and all the lamps turn off. In Postman, here's what I see:

In the Visual Studio debug output, I see:

Request to turn On lamp(s) 0
Lamp 0 turned On
The thread 0x854 has exited with code 0 (0x0).
'backgroundTaskHost.exe' (CoreCLR: CoreCLR_UWP_Domain): Loaded 'C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\TA.PiLights-uwpVS.Debug_ARM.Tim\Newtonsoft.Json.dll'. Cannot find or open the PDB file.
'backgroundTaskHost.exe' (CoreCLR: CoreCLR_UWP_Domain): Loaded 'C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\TA.PiLights-uwpVS.Debug_ARM.Tim\System.Runtime.Serialization.Primitives.dll'. Cannot find or open the PDB file.
'backgroundTaskHost.exe' (CoreCLR: CoreCLR_UWP_Domain): Loaded 'C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\TA.PiLights-uwpVS.Debug_ARM.Tim\System.Linq.Expressions.dll'. Cannot find or open the PDB file.
'backgroundTaskHost.exe' (CoreCLR: CoreCLR_UWP_Domain): Loaded 'C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\TA.PiLights-uwpVS.Debug_ARM.Tim\System.ObjectModel.dll'. Cannot find or open the PDB file.
'backgroundTaskHost.exe' (CoreCLR: CoreCLR_UWP_Domain): Loaded 'C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\TA.PiLights-uwpVS.Debug_ARM.Tim\System.Xml.XDocument.dll'. Cannot find or open the PDB file.
'backgroundTaskHost.exe' (CoreCLR: CoreCLR_UWP_Domain): Loaded 'C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\TA.PiLights-uwpVS.Debug_ARM.Tim\System.Xml.ReaderWriter.dll'. Cannot find or open the PDB file.
The program '[2952] backgroundTaskHost.exe' has exited with code 1 (0x1).

If I change the last line of the code to:
            return new GetResponse(GetResponse.ResponseStatus.OK/*, statusMessage*/);

Then the background task no longer crashes and it'll accept another request - but it still doesn't return any responses.
I'm not sure if this is because I'm using a newer build of Windows 10 IoT Core - I'm on 10.0.14393.693 and using the matching SDK.

Hi @NameOfTheDragon ,
Since you're using a back ground task, have you made sure to us a BackgroundTaskDeferral to make sure the task stays alive and doesn't get garbage collected?
Also you need to make sure to store a reference to the created HttpServer in the task.
See https://github.com/tomkuijsten/restup/blob/master/src/HeadlessDemo/StartupTask.cs for more information.
I have also just tested a slightly modified HeadlessDemo on a PI 2 with version 10.0.14393.693 (per call controller returns "bla" as its response) in https://github.com/tomkuijsten/restup/tree/master/src/HeadlessDemo and it seems like it's working as it should.

Hope this helps and that you'll be able to figure it out!
Cheers,
Jark

Thanks for the reply.
Yes I'm creating a task deferral, but it looks like I'm not keeping a reference to the HttpServer object.
    public sealed class StartupTask : IBackgroundTask
        {
        public async void Run(IBackgroundTaskInstance taskInstance)
            {
            var taskDeferral = taskInstance.GetDeferral();
            await LampHardwareInterface.InitializeHardware();
            var restRouteHandler = new RestRouteHandler();
            restRouteHandler.RegisterController<LampController>();

            var configuration = new HttpServerConfiguration()
                .ListenOnPort(8800)
                .RegisterRoute("api", restRouteHandler)
                .EnableCors();

            var httpServer = new HttpServer(configuration);
            await httpServer.StartServerAsync();
            }

I will try holding a reference to be on the safe side and get back to you.
--Tim

Please also hold a reference to the created taskDeferral, since the class I linked above (https://github.com/tomkuijsten/restup/blob/master/src/HeadlessDemo/StartupTask.cs) has an explicit comment saying that you need to keep a reference to the task deferral as well.
I believe @tomkuijsten might have put it in there.

OK, yes that seems to have been the problem. The server is now stable and I'm getting responses. That seems like a bit of a rookie mistake in hindsight, but I think it may have dropped out of some flailing around trying to solve other problems I was having with the Visual Studio tooling. Sorry for the false alarm :)

Good to hear that the issue has been resolved. Can we improve the wiki to prevent others to make this mistake, what do you think @NameOfTheDragon ?

That's a reasonable question, and I would say the answer is "yes".

The "one pager" quick start example makes the exact mistake of not saving a reference to the HttpServer object, nudging the user into the pit of failure. In hindsight, this could well be how I got to my situation as I probably would have copied that code. So I would say, make the "one pager" work as a background task, because that's the most likely way anyone would host a web server and its the first thing users will look at. Add the deferral and comments about saving references as you have done in the "Headless sample".

Mention what will happen if the code does not save the references correctly. In my case, it didn't simply not work, it worked in a strange and counter-intuitive way that led me to think there may be a bug in the server. I could get it to respond to requests but not return any results.

Hope that helps!
--Tim

The extra documentation is definitely a good idea, I'm thinking of also changing the default log factory in LogManager to something that logs to Debug.WriteLine so the disposing of the http server would be visible in the debug output and hopefully allow pinpointing of problems in a quicker way as well.

@Jark That has to be worth a try too. In my situation I saw the debugger "freezing" for long periods of time (tens of seconds) prior the background task terminating, so I'm not sure if the output would make it to the debugger, but it has to be worth a shot. I think that defaulting to Debug.WriteLine is a good idea, where else would you send it?

@NameOfTheDragon restup has a feature of plugging in your own Logging implementation that you would use in your application (like MetroLog for instance).  See https://github.com/tomkuijsten/restup/wiki/Logging. In fact I see that that article has a DebugLogger we could just include and instantiate in the source.
The default Logger is a NullLogger, which just ignores any log statements that come in. The idea being that someone would not want any logging by default and if they did then they would use their own log library.
So yeah, I think it's a bit of an oversight at the time, I'll do some work later this afternoon to include it and make it the default. Unless @tomkuijsten disagrees?

I agree

I'm sorry I can't offer to help - I'm snowed under at the moment. Thanks for a really useful utility though.


Remove unused parameter warnings (12 of 20)

This is part of a 20-PR sequence to remove unused parameter warnings.

Sure.

Just curious - any idea why this passed the linter?

I believe for normal argument comment it's accepted, but lint is not smart enough to detect whether it's a name or a comment.
Similarly, for named arguments, the recommended style is:
f(/*x=*/1)

But the liner cannot detect the following which is used all over the place in gRPC:
f(1 /* x */)


the limit of global virtual network peering

[Enter feedback here]
Connectivity doesn't work over global virtual network peering for the following resources:
Application gateway (uses Basic ILB SKU)

Would you please correct "Application gateway" to "Application gateway V1" ? Because AppGWv2 uses Standard ILB.

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

ID: 457b3ba7-7ac5-93be-981c-677553ad39dd
Version Independent ID: 18182311-9919-ac93-0d13-de8b05a986a7
Content: Troubleshoot virtual network peering issues
Content Source: articles/virtual-network/virtual-network-troubleshoot-peering-issues.md
Service: virtual-network
GitHub Login: @v-miegge
Microsoft Alias: kaushika

Thanks for the feedback! We are currently investigating and will update you shortly.

@donghui-wu777 Thank you for pointing this. We have updated the document. Thank you!

Thanks a lot! @SaiKishor-MSFT


CSS build issues

I thought I'd open an issue here, although I'm not sure if this could actually be related to https://github.com/gohugoio/hugo/issues/7278#issue-618943431. In any case, I'm still getting the POSTCSS: failed to transform "css/main.css" error when I try to build the site, despite making sure all of the dependencies in the documentation are installed.
I'm not actually using a snap installation of Hugo, though Hugo Static Site Generator v0.71.1-A301F6B2/extended linux/amd64 BuildDate: 2020-05-25T09:18:12Z

I'm getting this error also. I've created a new hugo site and added this theme as a submodule. I'm able to serve locally, but not able to build.
My environment:

node v12.18.1
Hugo Static Site Generator v0.72.0/extended darwin/amd64 BuildDate: unknown

Error: Error building site: POSTCSS: failed to transform "css/main.css" (text/css): resource "sass/sass/style.sass_b1195a7e151e6f4379f823b1b2b4f87a" not found in file cache

Ok nvm I was able to fix this by reading this post. I ran these two commands and I was able to build:
sudo npm i -g postcss-cli
sudo npm i -g autoprefixer

Thank you for sharing @gray419!

Hello, I'm having the same issue, using the theme via gitlab-ci.
Would anyone have a suggestion on how the issue could be solved in that context. I don't know if the solution proposed by @gray419 can be applied in such docker environment.

@eauchat , I fixed the same issue by adding a package.json file, with the following content :
{   "name": "netlify-deps",   "version": "0.1.0",   "dependencies": {     "postcss-cli": "7.1.1",     "autoprefixer": "9.8.4"   } }
I did not try with gitlab-ci, I use netlify. By default, Netlify runs npm install to install the dependencies listed in my package.json file. So, if you configure your CI to install the dependencies, the issue will be solved.

i've already done all your solutions and not worked for me ;(

i've already done all your solutions and not worked for me ;(

@dannie-ml If you provide some error feedback, information about your set up, or a link to your site repository, we can try and help! 😄

Ok nvm I was able to fix this by reading this post. I ran these two commands and I was able to build:
sudo npm i -g postcss-cli sudo npm i -g autoprefixer

After solving this problem, I have a new problem during the build 😄
sudo hugo
Start building sites …
Total in 723 ms
Error: Error building site: POSTCSS: failed to transform "css/main.css" (text/css): /usr/local/lib/node_modules/postcss-cli/node_modules/yaml/dist/compose/composer.js:33
                if (prelude[i + 1]?.[0] !== '#')
                                   ^

SyntaxError: Unexpected token '.'
    at wrapSafe (internal/modules/cjs/loader.js:915:16)
    at Module._compile (internal/modules/cjs/loader.js:963:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/postcss-cli/node_modules/yaml/dist/index.js:3:16)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)

Linux site-cat 5.10.0-19-cloud-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux
Hugo Static Site Generator v0.80.0/extended linux/amd64 BuildDate: 2021-07-18T09:31:51Z (debian 0.80.0-6+b5)
{
  npm: '7.5.2',
  node: '12.22.12',
  v8: '7.8.279.23-node.57',
  uv: '1.40.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.17.1',
  modules: '72',
  nghttp2: '1.43.0',
  napi: '8',
  llhttp: '2.1.4',
  http_parser: '2.9.4',
  openssl: '1.1.1n',
  cldr: '37.0',
  icu: '67.1',
  tz: '2019c',
  unicode: '13.0'
}

For folks who find this issue because they are still tripping over the error:
POSTCSS: failed to transform "css/main.css"
I added the package.json shown in this comment and I still had the error, because I forgot to run:
npm install
This cleared the error for me.


Removes option deleted from aad o365group list

Closes #5384

Thank you @MathijsVerbeeck, we'll try to review it ASAP!

Merged manually, thank you! 👏


Add support for resource file extension (.resx)

Thanks for the contribution.
But I don't have an icon for the resource extension yet.
Maybe this extension will fit one of the existing ones? For example, "Configuration/Settings" or "Schema".
If it doesn't fit, then we can leave it like this. I'll make the icon later then.

It could fit in the config/settings one. Ill change it later :)


[Feature]: Make Auto Backup commits amendable

Hi,
it would be good to have Auto Backup commits Amendable
and
split AutoCommit and AutoPush.
So I can set Auto Commit interval to 0.1 so it would Amend new changes into the previous commit.
Thanks

I don't want the auto backup to be even more complicated and I don't see the great value of always amending. So I don't plan to implement that feature.


make the queue generic

/develop/sync/fetch_queue
queue       chan []types.Hash32     //types.TransactionID

Hey @salvatore63, thanks for taking an interest in Spacemesh!!
I agree with what you did in this issue and PR, but I will close them for now until we do a more concentrated effort to accompany all of our code todos with matching issues (that should have a specific format).
Please don't let this disparage you from making future contributions! I highly recommend joining our Discord and coordinating with us there before your next contribution: https://discord.gg/7xxJp8E (look for me in the dev_discussion room).


user_activity table not found

Please write script so its make required table in the database.

This is at the end of the file in the model!


Upgrade to Java8

Hi,
Does this mean you are not supporting Java 6 as a target runtime? README.md currently states:

You need Java 6 or later.

But, even with 1.4.0 release, I cannot use it with Java 6, due to an error:
com/netflix/hystrix/HystrixCommand : Unsupported major.minor version 51.0
Because the release jar on maven is built with Java 7:
$ javap -verbose Hystrix.class | grep -E "major|minor"
  minor version: 0
  major version: 51

Thanks

Yeah, my mistake in not updating the README (it's updated now).  Java7 upgrade was included in 1.4.0 (#373), and I'm currently targeting Java8 for inclusion in 1.5.0 (https://github.com/Netflix/Hystrix/wiki/Migration-Guide#proposed-changes-from-14x-to-15x)

Also, thanks for the report.  Good catch!

Note that we are now back on Java 6 as of Hystrix 1.4.3.  So this is delayed indefinitely.
One way that this could go is that I could discover a few breaking changes I'd like to make, and then make them in a Hystrix 2.0 branch, along with all removal of deprecated features and a jump to Java 8.
I don't have a concrete timeline here - just an idea that bundling breaking changes together in a 2.0 is likely better than doing it piecemeal through the 1.x series.

Is the goal of this Java 8 language features or Java 8 APIs?  Spring supports Java 8 API's for clients that use it, while maintaining backwards compatibility to Java 6.

It's a good question.  I haven't explored what Java 8 would add to the implementation of hystrix-core yet, but my hunch is that the functional Rx flow is very well-represented using lambdas.  I also think default methods might make some of the super-verbose constructor options more straightforward.
Do you have a pointer for any documentation around their approach? - I'd be interested to learn more.

I know they compile with java 8 targeting java 6.  Maybe @jhoeller, @philwebb or someone else from the core spring team could comment.

From: Spring Framework build.gradle
	task sniff {
		group = "Verification"
		description = "Checks the Java API signatures"

		dependsOn compileJava
		dependsOn copyJavaApiSignature

		inputs.dir sourceSets.main.output.classesDir
		inputs.dir copyJavaApiSignature.to
		outputs.upToDateWhen { true }

		doLast {
			ant.taskdef(
				name: 'animalSniffer',
				classname: 'org.codehaus.mojo.animal_sniffer.ant.CheckSignatureTask',
				classpath: configurations.sniffer.asPath
			)

			ant.animalSniffer(
					signature: "$buildDir/javaApiSignature/javaApi.signature",
					classpath: sourceSets.main.compileClasspath.asPath) {
				path(path: sourceSets.main.output.classesDir)
				annotation(className: "org.springframework.lang.UsesJava7")
				annotation(className: "org.springframework.lang.UsesJava8")
				annotation(className: "org.springframework.lang.UsesSunHttpServer")
			}
		}
	}

Looks like they use animal sniffer and mark code that uses Java 8, etc. and enforce it.

They also run their tests against each jdk version.

Many thanks to @rwinch for the details.

Coincidentally, we're in the process of writing a blog post on this topic, scheduled for next week...
The gist is that we're conditionally activating Java 8 features in quite a few places, reacting to the use of Java 8 features in a user's field/method/constructor declarations (e.g. the JSR-310 date-time types, Optional, Stream, default methods). This is quite straightforward, but then that judgement comes from somebody who even bridged JDK 1.4 / 5 / 6 the same way back in the Spring 2.5 line ;-)
Lambdas are very naturally compatible with Spring's API style in general, without us having to do much about it, just through the common compiler convention in use there. In specific places, we started offering lambda-friendly single-method callbacks as an alternative to a few multi-method interfaces, but most callback interfaces in Spring were single-method interfaces to begin with.
In any case, the goal simply is: From an application developer's perspective, Spring 4.x should feel like a Java 8 based framework when working with it on Java 8... with the very same jars, without any special setup, just through auto-adapting at runtime. The only limitation that I'm aware of at this point is that we're not declaring default methods in any of the framework's interfaces but rather still provide pre-implemented abstract base classes for some of our SPIs as an implementation convenience.
Now, would I recommend this approach for other frameworks? In principle, yes, in particular when oftentimes used on existing application server platforms where people don't independently choose their JDK vendor and version. However, the stronger the benefit of Java 8 language and API features is for a framework's usage model, the more I would lean towards fully going Java 8+, at least as of 2016.

That's very helpful feedback, @jhoeller , thanks for sharing it.  I look forward to reading the blog post.

For those on this thread interested, the blog is now posted at https://spring.io/blog/2015/04/01/ongoing-support-for-java-7-and-even-java-6
cc @mattrjacobs

Hello Everyone,
I am new to explore Hystrix and currently working on a PoC on Hystrix.
I cloned the Hystrix source, pointing to the master, I believe its the latest version 1.4.21
I just followed README and installed Java 6 and later found out the compatibility issues with JRE versions, major and minor, as already discussed in the thread.
Later tried to install JDK 7 for Hystrix 1.4.21, but when I do a build, I get the following error:

What went wrong:
Could not resolve all dependencies for configuration ':hystrix-rx-netty-metrics-stream:compile'.

Could not resolve io.reactivex:rxnetty:0.4.12.
Required by:
com.netflix.hystrix:hystrix-rx-netty-metrics-stream:1.5.0-SNAPSHOT
Could not resolve io.reactivex:rxnetty:0.4.12.
Could not get resource 'https://jcenter.bintray.com/io/reactivex/rxnetty/0.4.12/rxnetty-0.4.12.pom'.
Could not GET 'https://jcenter.bintray.com/io/reactivex/rxnetty/0.4.12/rxnetty-0.4.12.pom'.
peer not authenticated
Could not resolve org.codehaus.jackson:jackson-core-asl:1.9.2.
Required by:
com.netflix.hystrix:hystrix-rx-netty-metrics-stream:1.5.0-SNAPSHOT
Could not resolve org.codehaus.jackson:jackson-core-asl:1.9.2.
Could not get resource 'https://jcenter.bintray.com/org/codehaus/jackson/jackson-core-asl/1.9.2/jackson-core-asl-1.9.2.pom'.
Could not GET 'https://jcenter.bintray.com/org/codehaus/jackson/jackson-core-asl/1.9.2/jackson-core-asl-1.9.2.pom'.
peer not authenticated
Could not resolve org.codehaus.jackson:jackson-mapper-asl:1.9.2.
Required by:
com.netflix.hystrix:hystrix-rx-netty-metrics-stream:1.5.0-SNAPSHOT
Could not resolve org.codehaus.jackson:jackson-mapper-asl:1.9.2.
Could not get resource 'https://jcenter.bintray.com/org/codehaus/jackson/jackson-mapper-asl/1.9.2/jackson-mapper-asl-1.9.2.pom'.
Could not GET 'https://jcenter.bintray.com/org/codehaus/jackson/jackson-mapper-asl/1.9.2/jackson-mapper-asl-1.9.2.pom'.
peer not authenticated

I tried with JDK 8, it gave me build errors in hystrix-javanica. I kind of feel JDK 8 would still have compatibility issues.
So i am only left with JDK 7 and not sure how to resolve the build errors. Any help would be appreciated. Thanks.

@vijayeswari Thanks for the report.
The Nebula plugin does not support Java6, as mentioned above.
Java 7 worked for me, and I also retried with a clean Gradle cache.  That worked as well.  Can you re-try?
Java 8 did not work, and that was a news to me.  I opened #988 for @dmgcodevil to look at.

@mattrjacobs  Thanks very much for the quick reply.
I will try with clean Gradle cache and JDK 7 and update you on that.
JDK8_Hystrix_MasterBranch_1.4.21_buildError.txt

@mattrjacobs  Yes if worked with JDK 7 after clearing the Gradle cache!! Thanks so much!

This update is now merged into the 2.0.x branch


[Custom Command] Added my own selection command

I don't really know if I implemented it correctly since I had to try to teach myself Go from nothing just to make it in only like, a day. But I found the whole, Cmd+E, next, Cmd+E, tedious and wanted to implement a Select All. I found a work around, I think maybe someone would find it useful or you could implement yourself in a more robust way. Anyways, this is it,
I don't know how to use git so I'm probably showing this wrong 😅
And also since I'm not experienced in Go I didn't want to do git pull or anything like that (don't know how and might do it wrong), the command is just for personal use and it might be cool if it was proper.

https://user-images.githubusercontent.com/77587392/119278732-fd7d2080-bbdb-11eb-89b9-1a907ade3913.mp4

It would be nice to add some kind of language filter to the mangalist. I don't know how to work with the API so I don't know if I could implement it myself. But possibly add something like, a new page that you can do like ctrl+[someKey] that will find all of the available languages, allow you to select a language, and then filter shown chapters like that?
I really don't know, but thatd be convenient.

I have added these 2 features in the latest commit.

Welcome to the Golang community :)
Working with Git may be scary but it is easy once you get a hang of it. Here are the steps:

Fork the current repository that you want to contribute to.

This will add a copy of the repository into your own account.

Add your features/bug fixes into your forked repository.

Remember to push your changes into the repository!

Once you are happy with the changes, head on over to the current repository's Pull Requests tab.

Then, create a new pull request.
Click Compare across forks.

Choose the base repository to pull into (the repo you want to contribute to), and the head repository to push from (this is where you select your forked repo).

Remember to read the contributing guidelines for whichever repo you want to contribute to.


Set default OS to bottlerocket

There were earlier problems with deploying bottlerocket as the default OS.  These issues are thought to be dependent on bare metal plans.
I'd expect we won't have problems changing over to bottlerocket now.

Hello! It's great to see you doing this. For any issues, feel free to reach out at bottlerocket-os/bottlerocket

We need Bottlerocket as the OS because Ubuntu is no-longer available:
https://github.com/equinix-labs/terraform-equinix-metal-eks-anywhere/issues/32

Here are the net.toml changes needed to make bottlerocket work on an m3.small.x86
          CONTENTS: |
            # Version is required, it will change as we support
            # additional settings
            version = 1

            # "eno1" is the interface name
            # Users may turn on dhcp4 and dhcp6 via boolean
            [enp1s0f0np0]
            dhcp4 = true
            dhcp6 = false
            # Define this interface as the "primary" interface
            # for the system.  This IP is what kubelet will use
            # as the node IP.  If none of the interfaces has
            # "primary" set, we choose the first interface in
            # the file
            primary = true

Key aspects are the interface name and disabling dhcp6.

Here are the bootconfig.data changes needed to make bottlerocket send console output to our SOS consoles.
          BOOTCONFIG_CONTENTS: |
            kernel {
                console = "ttyS1,115200n8"
            }

According to the documentation, this should be set in a TinkerbellTemplateConfig, like this:
---
apiVersion: anywhere.eks.amazonaws.com/v1alpha1
kind: TinkerbellTemplateConfig
metadata:
  name: ${cluster_name}
spec:
  template:
    global_timeout: 6000
    id: ""
    name: ${cluster_name}
    tasks:
    - actions:
      - environment:
          COMPRESSED: "true"
          DEST_DISK: /dev/sda
          IMG_URL: https://anywhere-assets.eks.amazonaws.com/releases/bundles/14/artifacts/raw/1-23/bottlerocket-v1.23.7-eks-d-1-23-4-eks-a-14-amd64.img.gz
        image: public.ecr.aws/eks-anywhere/tinkerbell/hub/image2disk:6c0f0d437bde2c836d90b000312c8b25fa1b65e1-eks-a-14
        name: stream-image
        timeout: 600
      - environment:
          CONTENTS: |
            # Version is required, it will change as we support
            # additional settings
            version = 1

            # "eno1" is the interface name
            # Users may turn on dhcp4 and dhcp6 via boolean
            [enp1s0f0np0]
            dhcp4 = true
            dhcp6 = false
            # Define this interface as the "primary" interface
            # for the system.  This IP is what kubelet will use
            # as the node IP.  If none of the interfaces has
            # "primary" set, we choose the first interface in
            # the file
            primary = true
          DEST_DISK: /dev/sda12
          DEST_PATH: /net.toml
          DIRMODE: "0755"
          FS_TYPE: ext4
          GID: "0"
          MODE: "0644"
          UID: "0"
        image: public.ecr.aws/eks-anywhere/tinkerbell/hub/writefile:6c0f0d437bde2c836d90b000312c8b25fa1b65e1-eks-a-14
        name: write-netplan
        pid: host
        timeout: 90
      - environment:
          BOOTCONFIG_CONTENTS: |
            kernel {
                console = "ttyS1,115200n8"
            }
            init {
                systemd.log_level=debug
            }
          DEST_DISK: /dev/sda12
          DEST_PATH: /bootconfig.data
          DIRMODE: "0700"
          FS_TYPE: ext4
          GID: "0"
          MODE: "0644"
          UID: "0"
        image: public.ecr.aws/eks-anywhere/tinkerbell/hub/writefile:6c0f0d437bde2c836d90b000312c8b25fa1b65e1-eks-a-14
        name: write-bootconfig
        pid: host
        timeout: 90
      - environment:
          DEST_DISK: /dev/sda12
          DEST_PATH: /user-data.toml
          DIRMODE: "0700"
          FS_TYPE: ext4
          GID: "0"
          HEGEL_URLS: http://${pool_admin}:50061,http://${tink_vip}:50061
          MODE: "0644"
          UID: "0"
        image: public.ecr.aws/eks-anywhere/tinkerbell/hub/writefile:6c0f0d437bde2c836d90b000312c8b25fa1b65e1-eks-a-14
        name: write-user-data
        pid: host
        timeout: 90
      - image: public.ecr.aws/eks-anywhere/tinkerbell/hub/reboot:6c0f0d437bde2c836d90b000312c8b25fa1b65e1-eks-a-14
        name: reboot-image
        pid: host
        timeout: 90
        volumes:
        - /worker:/worker
    version: "0.1"

To use this TinkerbellTemplateConfig, you need to modify the generated my-eksa-cluster.yaml file to reference it in the TinkerbellMachineConfig sections, like this:
kind: TinkerbellMachineConfig
metadata:
  name: my-eksa-cluster-cp
spec:
  hardwareSelector:
    type: cp
  osFamily: bottlerocket
  templateRef:
    kind: TinkerbellTemplateConfig
    name: my-eksa-cluster
  users:

Unfortunately, it seems the current version of EKS-A doesn't respect these overrides. I plan to open a bug on aws/eks-anywhere after validating this is still broken in 0.11.1.

/cc @stockholmux

https://github.com/aws/eks-anywhere/issues/3179

Was missing this stuff from the templateconfig file:
      name: my-eksa-cluster
      volumes:
        - /dev:/dev
        - /dev/console:/dev/console
        - /lib/firmware:/lib/firmware:ro
      worker: '{{.device_1}}'

Fixed by #31
There are new concerns that we'll want to express as issues expressed in this comment:
https://github.com/equinix-labs/terraform-equinix-metal-eks-anywhere/pull/31#issuecomment-1228970760


Gate PR builds until a comment is left approving the build

Right now, CircleCI is configured to not include secrets in forked builds because a malicious user could simply open a PR and echo them out.
My ideal workflow would be:

Turn on “Pass secrets”
User submits PR from forked repo
CircleCI build does not begin until I comment “ok to test” on the pull request

This gives me the opportunity to review the code to make sure secrets aren’t being dumped out of the CircleCI build on purpose by the person who submitted the PR.
No idea how to accomplish this at the moment - tracking in forums here: https://discuss.circleci.com/t/hold-back-testing-pull-request-until-a-comment-has-been-made/22584

Saving this for further reading: https://circleci.com/docs/2.0/workflows/#holding-a-workflow-for-a-manual-approval

Fixed in https://github.com/clong/DetectionLab/pull/182


Improve existing distribution detection for install task

Cover this task by tests
Relates to #24252

@bot-gradle test and merge

I've triggered a build for you.


changing View Mode

When I try to change the ViewMode, errors occur in the design and the data is not displayed correctly, and I tried to add two widget and each of them with a different ViewMode, the same error occurs and the data is not displayed successfully ,

Hi @Hesham-Dev-LY, thank you for open the first issue!
Can you show me a reproducible example?

Switching between View models
https://user-images.githubusercontent.com/66942907/129542489-915bc109-21e9-4ba7-8668-021ee05c3a89.mp4

adding two TimeChart with different ViewMode
https://user-images.githubusercontent.com/66942907/129542519-c1096e80-77b5-4a11-85f5-54e3b50b76dd.mp4

Hi @Hesham-Dev-LY,
I fixed the first issue, but I don't know the second issue is fixed because I can't reproduce it.
Can you show the example code?

I didn't do anything big, I just put them in one column
TimeChart(                     data: data,                     timeChartSizeAnimationDuration:                     Duration(milliseconds: 200),                     chartType: ChartType.time,                     barColor: mainBlue,                     viewMode: ViewMode.weekly,                   ),                   TimeChart(                     data: data,                     timeChartSizeAnimationDuration:                     Duration(milliseconds: 200),                     chartType: ChartType.time,                     barColor: mainBlue,                     viewMode: ViewMode.monthly,                   )

Well, the below code is working without any bugs. For now, I'll release the plugin that fixed the first issue. And please test again. Thank you.
import 'package:flutter/material.dart';
import 'package:time_chart/time_chart.dart';

// Data must be sorted.
final smallDataList = [
  DateTimeRange(
    start: DateTime(2021, 2, 24, 23, 15),
    end: DateTime(2021, 2, 25, 7, 30),
  ),
  DateTimeRange(
    start: DateTime(2021, 2, 22, 1, 55),
    end: DateTime(2021, 2, 22, 9, 12),
  ),
  DateTimeRange(
    start: DateTime(2021, 2, 20, 0, 25),
    end: DateTime(2021, 2, 20, 7, 34),
  ),
  DateTimeRange(
    start: DateTime(2021, 2, 17, 21, 23),
    end: DateTime(2021, 2, 18, 4, 52),
  ),
  DateTimeRange(
    start: DateTime(2021, 2, 13, 6, 32),
    end: DateTime(2021, 2, 13, 13, 12),
  ),
  DateTimeRange(
    start: DateTime(2021, 2, 1, 9, 32),
    end: DateTime(2021, 2, 1, 15, 22),
  ),
  DateTimeRange(
    start: DateTime(2021, 1, 22, 12, 10),
    end: DateTime(2021, 1, 22, 16, 20),
  ),
];

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Time chart example app')),
        body: SingleChildScrollView(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: Column(
              children: [
                const Text('Weekly time chart'),
                TimeChart(
                  data: smallDataList,
                  timeChartSizeAnimationDuration: Duration(milliseconds: 200),
                  chartType: ChartType.time,
                  viewMode: ViewMode.weekly,
                ),
                TimeChart(
                  data: smallDataList,
                  timeChartSizeAnimationDuration: Duration(milliseconds: 200),
                  chartType: ChartType.time,
                  viewMode: ViewMode.monthly,
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

I've released version 0.2.7.


[AWS/EKS] Scheduler Failing To Start for CeleryKubernetesExecutor: "airflow.exceptions.AirflowException: Could not get scheduler_job_id"

What is the bug?
Trying out a quick cluster of the Airflow 2.0 on AWS EKS, and I've noticed that using CeleryKubernetesExecutor causes the scheduler to fail to start. Other executors are working just fine and I haven't changed any of the values other than the executor, so I'm wondering if this is a bug or if there's something further that I have to customize not indicated. Output as follows:
jmaglutac@j-maglutac02:~/projects/airflow-helm$ helm install airflow-kube airflow-stable/airflow --namespace airflow-kube --set airflow.executor=CeleryKubernetesExecutor
NAME: airflow-kube
LAST DEPLOYED: Tue Mar 30 10:56:03 2021
NAMESPACE: airflow-kube
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
================
Congratulations, you have just deployed Apache Airflow!

----------------
Access the Webserver Service with your browser
----------------
  export POD_NAME=$(kubectl get pods --namespace airflow-kube -l "component=web,app=airflow" -o jsonpath="{.items[0].metadata.name}")
  echo "URL: http://<IP_ADDRESS>:8080"
  kubectl port-forward --namespace airflow-kube $POD_NAME 8080:8080
================
jmaglutac@j-maglutac02:~/projects/airflow-helm$ kubectl get po -n airflow-kube
NAME                                      READY   STATUS             RESTARTS   AGE
airflow-kube-flower-5849c756ff-2wb8r      1/1     Running            0          2m
airflow-kube-postgresql-0                 1/1     Running            0          2m
airflow-kube-redis-master-0               1/1     Running            0          2m
airflow-kube-scheduler-5d94dfc7bf-ndbpl   0/1     CrashLoopBackOff   2          2m
airflow-kube-web-7fb77f4666-xzr5z         1/1     Running            0          2m
airflow-kube-worker-0                     1/1     Running            0          2m
jmaglutac@j-maglutac02:~/projects/airflow-helm$ kubectl logs airflow-kube-scheduler-5d94dfc7bf-ndbpl -n airflow-kube
  ____________       _____________
 ____    |__( )_________  __/__  /________      __
____  /| |_  /__  ___/_  /_ __  /_  __ \_ | /| / /
___  ___ |  / _  /   _  __/ _  / / /_/ /_ |/ |/ /
 _/_/  |_/_/  /_/    /_/    /_/  \____/____/|__/
[2021-03-30 02:58:24,757] {scheduler_job.py:1247} INFO - Starting the scheduler
[2021-03-30 02:58:24,758] {scheduler_job.py:1252} INFO - Processing each file at most -1 times
[2021-03-30 02:58:24,759] {kubernetes_executor.py:473} INFO - Start Kubernetes executor
[2021-03-30 02:58:24,759] {scheduler_job.py:1298} ERROR - Exception when executing SchedulerJob._run_scheduler_loop
Traceback (most recent call last):
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py", line 1272, in _execute
    self.executor.start()
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/executors/celery_kubernetes_executor.py", line 60, in start
    self.kubernetes_executor.start()
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/executors/kubernetes_executor.py", line 475, in start
    raise AirflowException("Could not get scheduler_job_id")
airflow.exceptions.AirflowException: Could not get scheduler_job_id
[2021-03-30 02:58:24,760] {dag_processing.py:451} WARNING - Ending without manager process.
[2021-03-30 02:58:24,760] {scheduler_job.py:1301} INFO - Exited execute loop

What are your Helm values?
airflow.executor=CeleryKubernetesExecutor
What is your Kubernetes Version?:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17+", GitVersion:"v1.17.12-eks-7684af", GitCommit:"7684af4ac41370dd109ac13817023cb8063e3d45", GitTreeState:"clean", BuildDate:"2020-10-20T22:57:40Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

What is your Helm version?:
$ helm version
version.BuildInfo{Version:"v3.4.1", GitCommit:"c4e74854886b2efe3321e185578e6db9be0a6e29", GitTreeState:"clean", GoVersion:"go1.14.11"}

I've got the same problem with the KubernetesExecutor.
I can trigger DAGs though but when I try to run just run a task or test a dag, it fails with airflow.exceptions.AirflowException: Could not get scheduler_job_id

I believe this is related to https://github.com/apache/airflow/issues/13805
The CeleryKubernetesExecutor is broken in airflow 2.0.1, I guess we will have to wait for 2.0.2

Same issue here, FWIW


Sort liked songs by date

Would like to see the songs I've liked but sorted by date rather than ABC order. It's hard to figure out which songs I've liked recently in the current alphabetical list...

This is already supported.  If you keep clicking the “Artist - Song” column header, you toggle between alphabetical, reverse alphabetical and reverse chronological.  (At least that's the way things work for me!)

Cool, guess you're right. Would be a nice touch if the "Artist - Song" column header changed to say "Newest to Oldest" or "Chronological" or something.
Thanks

Agree the UI is horribly overloaded.  Worth putting on the list :-)