Question on how to use razorHtmlView

What is the proper way to pass a model to razorHtmlView that is created by a function that runs when the route is accessed? For example:
let webApp =
    choose [
        GET >=>
            choose [
                route "/" >=> razorHtmlView "Home/Show" { Text = "Hello world" }
                route "/orders" >=> razorHtmlView "Orders/Index" getAListOfOrdersFromDb
            ]
        setStatusCode 404 >=> text "Not Found" ]

My razor view is defined to expect this model:
@model Microsoft.FSharp.Collections.FSharpList<Domain.Order>
How should getAListOfOrdersFromDb be written so that it is executed when the /orders route is accessed, and result in the expected list type in the razor view?
The examples in the docs typically have statically created models.
My efforts have so far resulted in the function being called when the application starts, or a wrong type being sent to the view, e.g. "The model item passed into the ViewDataDictionary is of type 'MyAppGiraffe.App+webApp@49-4', but this ViewDataDictionary instance requires a model item of type 'Microsoft.FSharp.Collections.FSharpList`1[Domain+Order]'."

I think you need a custom HttpHandler.
Something like
let home next ctx =
    task {
        let! data = getAListOfOrdersFromDb()
        return! (razorHtmlView "Orders/Index" data) next ctx
    }

And you might need the warbler as well if the orders from db changes.

Thanks @nojaf for the reply. I am new to F#. Would someone please provide an example of how to include this in the webApp definition, and how to use the warbler?

Something like
module RazorWarbler.App

open System
open System.IO
open System.Collections.Generic
open Microsoft.AspNetCore.Builder
open Microsoft.AspNetCore.Cors.Infrastructure
open Microsoft.AspNetCore.Hosting
open Microsoft.AspNetCore.Http
open Microsoft.Extensions.Logging
open Microsoft.Extensions.DependencyInjection
open Giraffe.HttpHandlers
open Giraffe.Middleware
open Giraffe.Razor.HttpHandlers
open Giraffe.Razor.Middleware
open RazorWarbler.Models
open Bogus
open Giraffe
open Microsoft.AspNetCore.StaticFiles

// ---------------------------------
// Web app
// ---------------------------------

let faker =
        Faker<Customer>()
          //Make a rule for each property
          .RuleFor( (fun c -> c.FirstName), fun (f:Faker) -> f.Name.FirstName() )
          .RuleFor( (fun c -> c.LastName), fun (f:Faker) -> f.Name.LastName() )

          //Or, alternatively, in bulk with .Rules()
          .Rules( fun f c ->
                    c.Age <- f.Random.Int(18,35)
                    c.Title <- f.Name.JobTitle() )

let random = System.Random()

let getFromDb() =
    [0..random.Next(0,10)]
    |> List.map (fun i -> faker.Generate())

let homePage next ctx =
    task {
        let data = getFromDb()
        return! (razorHtmlView "Index" data) next ctx
    }

let webApp =
    choose [
        GET >=>
            choose [
                route "/" >=> homePage
                route "/warbled" >=> warbler(fun _ -> homePage)
            ]
        setStatusCode 404 >=> text "Not Found" ]

// ---------------------------------
// Error handler
// ---------------------------------

let errorHandler (ex : Exception) (logger : ILogger) =
    logger.LogError(EventId(), ex, "An unhandled exception has occurred while executing the request.")
    clearResponse >=> setStatusCode 500 >=> text ex.Message

// ---------------------------------
// Config and Main
// ---------------------------------

let configureCors (builder : CorsPolicyBuilder) =
    builder.WithOrigins("http://localhost:8080").AllowAnyMethod().AllowAnyHeader() |> ignore

let configureApp (app : IApplicationBuilder) =
    app.UseCors(configureCors)
       .UseGiraffeErrorHandler(errorHandler)
       .UseStaticFiles()
       .UseGiraffe(webApp)

let configureServices (services : IServiceCollection) =
    let sp  = services.BuildServiceProvider()
    let env = sp.GetService<IHostingEnvironment>()
    let viewsFolderPath = Path.Combine(env.ContentRootPath, "Views")
    services.AddRazorEngine viewsFolderPath |> ignore
    services.AddCors |> ignore

let configureLogging (builder : ILoggingBuilder) =
    let filter (l : LogLevel) = l.Equals LogLevel.Error
    builder.AddFilter(filter).AddConsole().AddDebug() |> ignore

[<EntryPoint>]
let main argv =
    let contentRoot = Directory.GetCurrentDirectory()
    let webRoot     = Path.Combine(contentRoot, "WebRoot")
    WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(contentRoot)
        .UseIISIntegration()
        .UseWebRoot(webRoot)
        .Configure(Action<IApplicationBuilder> configureApp)
        .ConfigureServices(configureServices)
        .ConfigureLogging(configureLogging)
        .Build()
        .Run()
    0

Although I must say the route without the warbler works just as well. So I'm a bit confused myself why.
You can find the project here

That answered my question. Thanks @nojaf for taking the time to explain.

@scorelocity I just found out on the slack channel that you don't need the warbler if you are fetching the data inside the HttpHandler. Consider it a best practice as well.
The route construction also looks cleaner.


feat: enforce-module-boundaries

Description

update missing project tags
fix incorrect project tags
add depConstraints to parent eslintrc.json

Angular Spotify Issue Reference

issue-46

To clear any confusion, the PR was closed as a result of updating the branch name.


Sentence Capitatlization

Directions
Write a function that accepts a string. The function should capitalize the first letter of each word in the string then return the capitalized string. Use functions and methods where needed.
You can code this with any language of your choice!
Examples
capitalize('a short sentence')  ------>  'A  Short Sentence'
capitalize('a lazy fox')  ------>  'A Lazy Fox'
capitalize('look, it is working!'  ------->  'Look, It Is Working'

Am up @xaster-Kies

please assign me

Done @Neba-Emmanuel , @xxxSkypper , happy Coding :-)

thanks

You welcome @Neba-Emmanuel :-)

Hey @xaster-Kies, is the issue still open?

please assing me @xaster-Kies


Add column 'Groups' to the Django admin list of Users

To give us a bit more control in user management, add the following to the user list:

Column that lists for each user all the groups s/he is a member of
Column that indicates whether or not the user is "active"
Column that lists the date of last login
Column that lists the number of times logged in (new field needed?); also add this in detail view of users

See also #40

Done! It was quite hard to get the groups right, as that is not part of the user or the user profile. I also added the counter field and the counter functionality. Note that it only checks when you actually log in, which in my case is almost never: Chrome keeps me logged in. If you want me to figure out to count these visits as well, let me know.

Nah, let's keep it as is.


add typings to deps

This change is

test this

啥意思？。。

This will trigger a rebuild in my jenkins-ci.

Reviewed 2 of 2 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


useMedia hook having wrong initial value in some situations

Current Behavior

Using the useMedia hook in a _layout.tsx file
Having a conditional return above the access of the proxy e.g. media.sm
In some cases (I was not able to reproduce it yet with the starter template) this leads to the hook not updating correctly after refresh
In the provided example code isLoading is initialized with true and after some time changes to false.
When media.sm is accessed before the conditional return it updates correctly e.g. adding console.log(media.sm) directly after the hook (which I guess defeats the purpose of static optimizations)

Expected Behavior
No response
Tamagui Version
1.101.7

Platform (Web, iOS, Android)
Web

Reproduction
const {session, isLoading, signOut} = useSession();
const media = useMedia();

if (isLoading) {
  return <Text>Loading...</Text>; // This early return leads to useMedia not updating
}

console.log('media.sm in _layout.tsx', media.sm);
return <Slot />

What fixes it:
const {session, isLoading, signOut} = useSession();
const media = useMedia();
console.log('media.sm in _layout.tsx', media.sm);

if (isLoading) {
  return <Text>Loading...</Text>; // This early return leads to useMedia not updating
}

return <Slot />

### System Info

_No response_

I am experiencing a similar issue in my project where the navigation menu does not display correctly on the initial page load. When I inspect the hook values, I noticed that the desktop state is set to false. However, once I resize the layout, the media query starts working correctly. The problem consistently occurs only during the first load of the page, the values properly are not set properly.
The problem occurs on Web and Tamagui version 1.101.7

I'm experiencing the same issue with v1.101.0 (shipping with takeout).

Looking at this now.

Is this still happening? I've tried a ton of variations and can't replicate.

@natew I just reverted my temporary fixes  (project is now on 1.104.2) and it seems to be fixed there. Was also not able to reproduce it anymore.

Hi @natew
Yes, I still have the issue on my side, even after the migration to 1.105.4. Is it mandatory to have Next.js 14 for Tamagui latest versions ?

@natew I will try to do it before the end of the week.

Just wanted to confirm that in another case I now still face the issue. I still didn't figure out what exactly is different in this scenario.
It's also a case of conditional return statement and if media.gtSm is access before the condition it works fine. Will try to reproduce with starter.

@natew not sure if this helps i see it on every hard reload on web.
i put some debugging, and the issue is a race condition where useMedia state still has default state when my component  ounts and renders.   internal getSnapshot updates don't cause my component to re-render.    My component mounts, and then it renders in the client with the initalState defaults.  Then useMedia has another snapshot update, and it's internalState get's set.   my component never re-renders again and still has the default state.  this is with most recent next, tamagui etc. (react 18.2.0 rn 0.75.2).
my current workaround is to not use useMedia and use Dimensions from react-native instead.
Ideally, useMedia should have state by the time my component renders.   or pick a better default state based on Dimensions then everything false?

Getting the same issue here. Might have to use useDimensions.

Oh I think I know what's happening - media is SSR safe by default on the web. In order to match the server side on the initial render, it will return the same value as the server on first render, and then update with the right values. This is on purpose.
If you set disableSSR: true either in the root provider or in the config.settings it will disable this behavior - can someone let me know if that resolves?
In general if you want media queries to be SSR safe you have to go through the style props, double render, or just accept there will be warning logs.

Latest release has a few more correctness improvements, I think you guys were seeing the SSR behavior still (at least some of you), but the latest changes may help concurrent mode a bit more as well. Can you comment here if it's still breaking? I'll re-open.

can confirm this works when using disableSSR: true

Yeah but it is causing other issues on other components with hydration.
We need a proper way to handle it @natew


Stand Children's Services (Auckland) not found

Split from #185
Searching for the keywords "Stand Children's Services" does not return a result for a known service provider with that name in Auckland. Other related service providers around the country are found.
Search for the keywords "Stand Children's Services auckland" finds the expected service provider

After examining the code this appears to be because search results for providers with the same name are collapsed into a single result. This prevents the situation where providers who supply many services show up in the result list once for each service.
In this case it has hidden results for a different provider with the same name. The "Stand Children's Services" results from Auckland are being hidden by the "Stand Children's Services" results from Christchurch - unless an additional term like Auckland is added to the search to exclude the Christchurch results.
An appropriate solution would be to make sure that results are only collapsed together  when the providers share the same name and address.

@sarahneeson @choirboy07 ready for you to review

The Auckland provider is now appearing in the results, however there are some results that are not in the order i would expect - see attached.
[Uploading Card 216 Stand Children Services missing.docx...]


Refactoring: use new features in Terraform 0.12 to remove hacks

What does this PR change?
The main goal of this PR is to use objects to define host grains and serialized them using terraform native methods.
This allows removing a set of hacks that were needed since we are using string templates to generate the file content.
This rector acts in two action items:

remove null string as default value in vars
pass grains as objects instead of strings
Remove type check for base configuration and server configuration

Jenkins Run:

https://ci.suse.de/view/Manager/view/Manager-3.2/job/manager-3.2-cucumber-pipeline-NUE/669
https://ci.suse.de/view/Manager/view/Manager-3.2/job/manager-3.2-cucumber-pipeline-NUE/677/

I need to remove the type check since it was defined as map and all fields were converted to string.
To solve this we have two approaches:
1 - Do not specify the variable type and allow any type as input.
2- Define as object, and specify each field in the object. This needs to be propagated in several modules, and if we need to add another field, we should synchronize in all modules
In this case, since it is for internal use only, I think it is safe to not specify the variable type, and use solution 1.
Some more detailed information from documentation:
If we specify the base input as map, it should have all the same type and  If we define as map of any, it will be converted to string.
"The keyword map is a shorthand for map(any), which accepts any element type as long as every element is the same type. " (https://www.terraform.io/docs/configuration/types.html#collection-types)
We are not obligated to specify the variable type, and in that case, it can have any type:
"The type argument in a variable block allows you to restrict the type of value that will be accepted as the value for a variable. If no type constraint is set then a value of any type is accepted.
While type constraints are optional, we recommend specifying them; they serve as easy reminders for users of the module, and allow Terraform to return a helpful error message if the wrong type is used."  (https://www.terraform.io/docs/configuration/variables.html#type-constraints)
Signed-off-by: Ricardo Mateus<EMAIL_ADDRESS>

Two questions:

Don't we need to update the markdown files? For example TROUBLESHOOTING.md
Did you check if the main.tf examples at the root folder need to be updated?

Two questions:

Don't we need to update the markdown files? For example TROUBLESHOOTING.md
Did you check if the main.tf examples at the root folder need to be updated?

Thanks for the comment Julio.
Regarding the "md" files I don't think we need any update in the context of this PR.
I have updated the examples files.
Cheers

Results from latest testsuite runs are positive, merging.


Long Live token not working Keycloak 11

I've tried the following docker command to run,
docker run -p 8080:8080/tcp -p 8443:8443/tcp -e KEYCLOAK_LONG_LIVED_ROLE_NAME=long_lived_token -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin kc-longlive:latest
POST http://localhost:8080/auth/realms/platform-realm/configurable-token
{
"tokenLifespanInSeconds": 63113904
}
where kc-longlive:latest is my local docker image created based on readme, still returns the same access token expiry. Please help us to solve
FYI im using a client which is using password grant type / public client, access token lifespan set to 1 day.

Hi @abdulfousan,
Could you provide a repository containing your Dockerfile and your realm configuration ?

i'll share it shortly, Do we need to enable this preview option in keycloak?
-Dkeycloak.profile=preview` -Dkeycloak.profile.feature.token_exchange=enabled

token_exchange is not required for this library.
If you use Keycloak from quay.io, I have updated the README accordingly (the target path is different).


Project Home page - link to the Github organization

Estimated hours worked 2 hours
https://clubs-at-manoa.github.io/


Prisma examples - phase 2

This is a continuation of https://github.com/prismagraphql/prisma/pull/2422
Incorporates feedback and missing examples:

[x] Subscriptions - graphql yoga
[x] Authentication

Noted. Incoming PR soon.

Added 3 comments on feedback comments (those are partially done), rest is done.

I rebased this PR to current master here: https://github.com/marktani/prisma/tree/prisma_examples. Please verify my changes and overwrite your PR with the rebased version 🙂

@marktani: Verified your changes and they look good. Overwrote my branch with your changes.


policy_report_result{} should include type of policy

policy_report_result{} metric should include type of a policy. (ClusterPolicy vs Policy). Otherwise, there might be issues when ClusterPolicy and Policy have the same name.
For instance, with this metric (exported under "simple" mode):
policy_report_result{category="Best Practices, EKS Best Practices", endpoint="http", exported_namespace="calico-apiserver", instance="policy-reporter", job="policy-reporter", namespace="policy-reporter", policy="broken-cluster-policy-deployment", severity="medium", source="kyverno", status="error"}

I can't tell if this is referring to clusterpolicy named broken-cluster-policy-deployment, or the policy with the same name

Hey, thanks for mentioning, I will have a look on it

unfortunately I am not able to add the type of the Policy because I just have no information about it. The entire source of the metrics are (Cluster)PolicyReports, which don't have any information if the policy was a ClusterPolicy or Policy.
While PolicyReporter is mostly but not exclusively used with kyverno, I cannot include kyverno-specific information to remain independent of it.

Don't the policy report names include a prefix to indicate the type? (I haven't tried the regular policies, but) clusterpolicy reports are prefixed with "cpol"

Yes but the type of the PolicyReport is not related to the type of Policy, its related to the validated resource. So if you create a ClusterPolicy that validates a namespaced resource like Pods, Deployments, Services, etc. it creates a PolicyReport in the related namespace of the resources. If you create a Policy that valides a cluster scoped resource, it will create a ClusterPolicyReport (e.g. for Namespaces, ClusterRoles, etc.)


[prompt] Fix liquidprompt preview

breaking the current prompt after prompt -p. Actually liquidprompt is pretty invasive in the way it is implemented, defining extra prompt_on, prompt_off and prompt_OFF functions to switch it after it is executed.
Fixes #112

LGTM


Fix security vulnerability CVE-2017-18342.

This PR fixes #131.
Specifically there's a security vulnerability in PyYAML that could allow an attacker to execute arbitrary code using a YAML file. Even though we don't use PyYAML directly, connextion, one of our deps, does as does clickclick, a lib connexion depends on.
At the moment, there's no official PyYAML release with the fix, only pre-release versions. It seems PyYAML hasn't been getting much love in the last couple of years, but fortunately they're planning to release version 4.2 which should include the fix for CVE-2017-18342.
Since there's no official PyYAML 4.2, the best we can do for the time being is to bring in a patched version through an explicit dependency in our Pipfile:
pyyaml = ">=4.2b1"

But this has the downside we now have to generate the lock file with
$ pipenv lock --pre

which tells pipenv to consider pre-release/patched versions too when resolving dependencies. So the next time we generate the lock file we might end up with some potentially unstable or not-yet-fully-polished libs in our dependency chain. (This is not the case at the moment.)
The good news is that as soon as PyYAML 4.2 comes out, we can remove the explicit dependency and generate the lock file as usual, without the --pre flag. In fact, both connexion and clickclick specify a dependency on PyYAML > 3 so that if 4.2 is available in PyPi then pipenv will use it.
Also note I had to add another explicit dependency on a library we don't use directly:
certifi = "==2018.10.15"

it's got to be pinned otherwise pipenv will use a later version which doesn't work with requests. For the record, this is the error I get:
ImportError while loading conftest '/src/ngsi-timeseries-api/src/conftest.py'.
 conftest.py:6: in <module>
     import requests
/usr/local/lib/python3.6/site-packages/requests/__init__.py:112: in <module>
     from . import utils
/usr/local/lib/python3.6/site-packages/requests/utils.py:24: in <module>
     from . import certs
/usr/local/lib/python3.6/site-packages/requests/certs.py:15: in <module>
     from certifi import where
E   ModuleNotFoundError: No module named 'certifi'

closes #131.


Update LHC version to 25.0.0

Update LHC form widget to version 25.0.0

The existing form controls in master look good to me. If we can verify enableWhen works for Chris, we are good to go.


import/order incorrectly classifies linked in modules.

I have a project where I link in a library I'm working on at the same time as the app... the import/oder lint rules change based on linked state... even though the library's link is under node_modules.

.eslintrc:
rules:
  import/order:
    - error
    - groups: [builtin, external, internal, [sibling, index]]
      newlines-between: always

package.json:
{
  "dependencies": {
    "@own-local/platform-dtd": "link:../platform-dtd"
  }
}

Code:
import { injectIntl } from 'react-intl';
import type { Category, Business as BusinessType } from '@own-local/platform-dtd/lib/types';

Expected: no error
Actual: There should be at least one empty line between import groups (import/order)

Update: Looks like this is caused by the hyphen in our scoped module name: @own-local. This PR fixes the issue! https://github.com/benmosher/eslint-plugin-import/pull/744

I don't have scoped modules.
On Tue, Jul 25, 2017 at 11:03 AM Danny Andrews<EMAIL_ADDRESS>wrote:

Update: Looks like this is caused by the hyphen in our scoped module name:
@own-local. This PR fixes the issue! #744
https://github.com/benmosher/eslint-plugin-import/pull/744
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/benmosher/eslint-plugin-import/issues/882#issuecomment-317783234,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAjPrY50tFrxsr5NXFvjD-JUyckvGyZYks5sRhGzgaJpZM4OFrsv
.

Ah, bummer, was hoping you had the same problem. Best of luck, mate!

Closing because it's irrelevant now


Feature request - Removing time stamp from .sum, .out, .ech files

The timestamp in these files create unnecessary noise when comparing files.
I believe most systems will update the creation/update date of the file anyway.
Describe the solution you'd like
Remove the timestamp.
Let me know your thoughts..

The one potential problem I see is if a file is copied, such as a transfer to a different system, the file timestamp would change and the original time would be lost.

I'd be okay with removing that from the .sum and .ech files. I'd prefer to keep the timestamp in the .out/.outb results files, though.

That's a compromise :)


adding a selector for target error

I may have found a bug... trying to pass a selector in I get this error, Uncaught TypeError: target.getBoundingClientRect is not a function, because target is a string on line 20.
on line 20 of jump js
should it be
: this.options.offset + this.target.getBoundingClientRect().top;
instead of
: this.options.offset + target.getBoundingClientRect().top;
http://codepen.io/nevinlaughlin/pen/zBqpwe
Thanks, love the script!!
Sorry, this may have been a duplicate find.

@nevinlaughlin its addressed in the v1.0.0 branch 👍 not released yet (haven't had time) but its working, and available on that branch 🍻


[BUG] Mixing global scope, local scope, and helper does not work

I have a global scope to omit all records with field test.
I have an explicit scope to include all records called withTest.
If I used the explicit scope with a helper, the explicit scope is applied, then the global scope is re-applied including the global scope.
Produced by calling
const experience = yield Experience
      .query()
      .withTest()
      .where('id', 1)

select * from "experiences" where "test" = true and "id" = 1

Produced by calling
const experience = yield Experience
      .query()
      .withTest()
      .where('id', 1)
      .first()

Notice the test clause applied twice.
select * from "experiences" where "test" = true and "id" = 1 and "test" = false limit 1

And here are the scopes:
  static boot () {
    super.boot();
    this.addHook('beforeCreate', 'Experience.setDefaults');
    // We never want test experiences in our results
    this.addGlobalScope((builder) => {
      builder.where('test', false);
    });
  }

  static scopeWithTest (builder) {
    builder.where('test', true);
  }

Global scopes are applied on all queries so what's wrong with that?

You're right, it does make sense but there is still an inconsistency then unless I'm missing something.
In the first case, the explicit scope overrides the global scope. In the second case the global scope takes precedence (only when a helper is used).
Thanks!

It's not the inconsistency, things like global scopes, getters & setters are called when the query chain is executed by calling fetch method and first method calls the fetch method internally

Ok, thanks. Understood!
Although, I do disagree and think that the API exposed should be consistent (regardless of how things are implemented). But that's just my opinion. :)

Nope there is no way for Adonis to know when your query has finished unless you tell it explicitly

Gotcha!


Run specific jobs INSIDE the main process

I'd like to tell jobby to invoke my closure directly inside the main process - when calling $jobby->run() to be clear.
That way I can use the same environment, w/o the need to spawn a new process

The idea with Jobby is that the main process is just a "controller" for your actual jobs. If it did run jobs, it also might block if the job takes a long time.
Usually, you can set up your environment by importing some sort of bootstrap or environment file in your job, same as you would on a web request. Does that help?


Change return type for Aliases::findAlias

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues

Merged. Thanks!


希望能出个jar支持绝大多数平台的

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

希望能够有志愿者来参与Java模块的开发和编译


[Fix-8056] Rectify this issue about failing to edit worker groups for an environment.

Purpose of the pull request
This PR will close #8056 .

Brief change log

Verify this pull request
This change added tests and can be verified as follows:

Manually verified the change by testing locally.

Codecov Report

Merging #8072 (baedc07) into dev (ec7898d) will decrease coverage by 0.08%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##                dev    #8072      +/-   ##
============================================
- Coverage     41.42%   41.34%   -0.09%
+ Complexity     3726     3719       -7
============================================
  Files           637      637
  Lines         27114    27115       +1
  Branches       3075     3075
============================================
- Hits          11233    11211      -22
- Misses        14801    14824      +23
  Partials       1080     1080

Impacted Files
Coverage Δ

...duler/api/service/impl/EnvironmentServiceImpl.java
82.71% <0.00%> (-0.39%)
:arrow_down:

...er/master/processor/queue/TaskResponseService.java
50.00% <0.00%> (-18.19%)
:arrow_down:

...rver/master/processor/queue/TaskResponseEvent.java
93.54% <0.00%> (-6.46%)
:arrow_down:

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
:arrow_down:

...inscheduler/common/task/sqoop/SqoopParameters.java
74.00% <0.00%> (-2.00%)
:arrow_down:

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 ec7898d...baedc07. Read the comment docs.

Thanks.


Added LICENSE.txt

The solution works. But can we be consistent with the other existing plugins to include a element instead, which is kind of a more standardized way?
<licenses>
    <license>
        <name>Apache License, Version 2.0</name>
        <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
</licenses>


Add a special hardsuit for nukie medic

About the PR

The elite hardsuit is it's own thing and is visually distinct from the other operatives.
Giving the medic their own hardsuit not only fixes recognition issues (being mistaken for security) but also helps give more visual cohesion to all of the operatives.
The hardsuit differs by having a +-shaped visor as well as dark green bands along the arms and legs.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

add: Nuclear Operative medics now come with a custom hardsuit.

Why give it such shitty resistances? Secoff's armor is better than this. You're just encouraging them to throw it into space at their earliest convenience and buy a better suit.

Nevermind I was looking at the helmet i'm a dumbass

Why give it such shitty resistances? Secoff's armor is better than this. You're just encouraging them to throw it into space at their earliest convenience and buy a better suit.

it has identical resistances to the blood-red suit.

it has identical resistances to the blood-red suit.

now that I've promptly realized I can't read the word "helmet", I'll put my actual opinion here again:
This is a really weird and unnecessary nerf to the nukie medic while also not solving the recognition issue of the elite hardsuit should it be used elsewhere. I feel just respriting the elite hardsuit is a much, much better solution.

Why give it such shitty resistances? Secoff's armor is better than this. You're just encouraging them to throw it into space at their earliest convenience and buy a better suit.

it has identical resistances to the blood-red suit.

Doesn't the current Elite Hardsuit have better resistances than the normal blood-red suit? I don't think the agent should be nerfed, this new suit should have the same resistances as the old elite hardsuit.

i like elite hardsuit more

this looks realy good!!

good idea and i like the visor, but you should make the green bands white instead because green just doesn't look as good and has less contrast
also make the elite hardsuit purchasable, would be a shame to let it go to waste and you could buy an elite hardsuit in SS13, i think 10TC would be a good price because if it was any higher people would just buy the jug suit instead, or just give the medic hardsuit the elite suit resistances

Looks good. But definitely needs the elite hardsuits resistances. Shouldn't be purchasable either.

updated screenshot with new design

Still don't see the point in nerfing the medics' hardsuit.

i like the white patches but i dont like how the entire left arm is white, looks out of place

What didn't you like about the elite suit?  He is more than recognizable and well suited for a medic.

I have no comments on the armor value balance changes, only that I think this resprite is a good idea because it's easy to get the old medic hardsuit confused with security.

Now commenting on the armor balance since apparently discussion on this has ended.
I feel like the nerf to the hardsuit damage modifiers (compared to the elite hardsuit) is acceptable, and intend to merge this. But if this is controversial we can do just only the hardsuit sprite changes (making this parent from the elite hardsuit still) and kick the can down the road.

i think if we give the medic their own hardsuit then the elite suit should be purchasable, its only really a minor upgrade and the jug suit is available already

That's fine, let's see how it plays out.


Add new intent: coin

https://github.com/the-vision/jarvis-core/wiki

Hi I would Like to work on this. would you please assign it to me.

@gan3i  I have assigned this issue to you. Let me know if you need any help!

@gan3i I have assigned this issue to you. Let @sgpritam know if you need any help!

Hey @sgpritam , I see Model folder when I open the project in gitpod but not when I clone the project, please let me know what am I missing here.

@gan3i When I run the project on gitpod, I do not see Model Folder

@sgpritam  I think I am missing something here, I do see the model folder.


parse_lookup_result throws WebServiceError when no results exist

I expected WebServiceError to only be thrown when there is an issue with the lookup on the server. To me, the fact that there's no matching track doesn't feel like an exceptional case, let alone a problem with the webservice.
I would expect either a NoResults exception to be thrown, or an empty tuple.

Good call. I've changed the parser to iterate over all results instead of just returning the first one. This way, the "no results" case just means that an empty result set will be returned.


Commands that support --format=json but have no other flags do not show it in their help

First noticed this when looking at: https://github.com/pivotal-cf/om/issues/228
with latest master, these commands that support the --format flag don't show it in their help for some reason:
certificate-authorities
dm $ om certificate-authorities -h
ॐ  certificate-authorities
lists certificates managed by Ops Manager

Usage: om [options] certificate-authorities
  --client-id, -c, OM_CLIENT_ID          string  Client ID for the Ops Manager VM (not required for unauthenticated commands)
  --client-secret, -s, OM_CLIENT_SECRET  string  Client Secret for the Ops Manager VM (not required for unauthenticated commands)
  --connect-timeout, -o                  int     timeout in seconds to make TCP connections (default: 5)
  --env, -e                              string  env file with login credentials
  --help, -h                             bool    prints this usage information (default: false)
  --password, -p, OM_PASSWORD            string  admin password for the Ops Manager VM (not required for unauthenticated commands)
  --request-timeout, -r                  int     timeout in seconds for HTTP requests to Ops Manager (default: 1800)
  --skip-ssl-validation, -k              bool    skip ssl certificate validation during http requests (default: false)
  --target, -t, OM_TARGET                string  location of the Ops Manager VM
  --trace, -tr                           bool    prints HTTP requests and response payloads
  --username, -u, OM_USERNAME            string  admin username for the Ops Manager VM (not required for unauthenticated commands)
  --version, -v                          bool    prints the om release version (default: false)

available-products
dm $ om available-products -h
ॐ  available-products
This authenticated command lists all available products.

Usage: om [options] available-products
  --client-id, -c, OM_CLIENT_ID          string  Client ID for the Ops Manager VM (not required for unauthenticated commands)
  --client-secret, -s, OM_CLIENT_SECRET  string  Client Secret for the Ops Manager VM (not required for unauthenticated commands)
  --connect-timeout, -o                  int     timeout in seconds to make TCP connections (default: 5)
  --env, -e                              string  env file with login credentials
  --help, -h                             bool    prints this usage information (default: false)
  --password, -p, OM_PASSWORD            string  admin password for the Ops Manager VM (not required for unauthenticated commands)
  --request-timeout, -r                  int     timeout in seconds for HTTP requests to Ops Manager (default: 1800)
  --skip-ssl-validation, -k              bool    skip ssl certificate validation during http requests (default: false)
  --target, -t, OM_TARGET                string  location of the Ops Manager VM
  --trace, -tr                           bool    prints HTTP requests and response payloads
  --username, -u, OM_USERNAME            string  admin username for the Ops Manager VM (not required for unauthenticated commands)
  --version, -v                          bool    prints the om release version (default: false)

credentials
On the other hand, om credentials -h does show it:
dm $ om credentials -h
ॐ  credentials
This authenticated command fetches credentials for deployed products.

Usage: om [options] credentials [<args>]
  --client-id, -c, OM_CLIENT_ID          string  Client ID for the Ops Manager VM (not required for unauthenticated commands)
  --client-secret, -s, OM_CLIENT_SECRET  string  Client Secret for the Ops Manager VM (not required for unauthenticated commands)
  --connect-timeout, -o                  int     timeout in seconds to make TCP connections (default: 5)
  --env, -e                              string  env file with login credentials
  --help, -h                             bool    prints this usage information (default: false)
  --password, -p, OM_PASSWORD            string  admin password for the Ops Manager VM (not required for unauthenticated commands)
  --request-timeout, -r                  int     timeout in seconds for HTTP requests to Ops Manager (default: 1800)
  --skip-ssl-validation, -k              bool    skip ssl certificate validation during http requests (default: false)
  --target, -t, OM_TARGET                string  location of the Ops Manager VM
  --trace, -tr                           bool    prints HTTP requests and response payloads
  --username, -u, OM_USERNAME            string  admin username for the Ops Manager VM (not required for unauthenticated commands)
  --version, -v                          bool    prints the om release version (default: false)

Command Arguments:
  --credential-field, -f      string             single credential field to output
  --credential-reference, -c  string (required)  name of credential reference
  --format, -t                string             Format to print as (options: table,json) (default: table)
  --product-name, -p          string (required)  name of deployed product

My suspicion is that we're not showing help for --format for commands for which it's the only flag.

Thanks!
I suspect there may be other commands, but didn't do a full search to check...
We can open separate issues or reopen this one if we do a quick survey and discover others

Just reviewed the commands we touched in that earlier feature.
But here are a few other commands with help we need to fix up:

generate-certificate-authority
installations
deployed-products
pending-changes
staged-products
certificate-authority

[ ] generate-certificate-authority
[ ] installations
[ ] deployed-products
[ ] pending-changes
[ ] staged-products
[ ] certificate-authority


[qt5-base] make libpq an optional dependency

Describe the pull request

What does your PR fix?
Make libpq an optional dependency. Reason: libpq does not build when cross compiling from linux -> windows and does not build with mingw and adding support for these two cases is a lot of work, additionally only a few users need the libpq support in qt5-base.

the x86_windows pipeline error looks like an error in the pipeline and not in the port

The openmvg:x86-windows failed with following failures, I have rerun the CI testing.
\main_svgSample.dir/manifest.res" failed (exit code 1201) with the following output:
LINK : fatal error LNK1201: error writing to program database 'D:\buildtrees\openmvg\x86-windows-dbg\Windows-AMD64-Debug\main_svgSample.pdb'; check for insufficient disk space, invalid path, or insufficient privilege
ninja: build stopped: subcommand failed.

LGTM, thanks for the improvement!


JWTExpiryTime property under APIKeyValidator element cannot be set in the new config model

This section is available in the 2.6.0 docs:
https://docs.wso2.com/display/AM260/Passing+Enduser+Attributes+to+the+Backend+Using+JWT#PassingEnduserAttributestotheBackendUsingJWT-ExpirytimeoftheJWT
This was removed in the 3.0.0 docs since this cannot be set from the deployment.toml file.

taggin: https://github.com/wso2/product-apim/issues/7228


[WIP] Use tagged pointer for TypePtr, reduce/remove virtual dispatch in types

This PR is super WIP and will be landed as a bunch of smaller changes. The commits in this PR build on each other and are each individually green (at least, in testing locally) which will make it easy to cherry-pick them into smaller PRs later.
Still TODO:

[ ] Inline ClassType (and potentially some other types) into the tagged pointer.
[ ] Remove ProxyType
[ ] Determine if it is feasible to make BlamedUntyped/etc not use subclassing on ClassType.

Possible to set a bit in ClassType and store data in a object to the side?
Could steal the counter field on TypePtr to point to something...?

Motivation

Speed. I noticed atomic counter contention on shared class types (e.g., nilClass) is expensive during infer due to cache thrashing. This is a super roundabout way of fixing that problem that also happens to have other benefits (smaller Type objects, faster casting, etc).
Test plan

See included automated tests.

I forgot to open as draft. This is not intended for review. :)

oh wow

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build result here:
→ https://go/builds/bui_IG7EtmSCSxgjwD

https://github.com/sorbet/sorbet/pull/3651 covers the last of the changes contained in this WIP PR.


Add a HTTP Link Header to the response

Is there any way to specifically create a Link header in the HTTP response?
More specifically, I'm looking for how to add the Link header in the following example. I understand we could use the Response.headers to add a header but just wonder if there's any convenient method specific for Link headers.

GET /ordinary-json-document.json HTTP/1.1
Host: example.com
Accept: application/ld+json,application/json,*/*;q=0.1

====================================

HTTP/1.1 200 OK
...
Content-Type: application/json
Link: <https://json-ld.org/contexts/person.jsonld>; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"

{
  "name": "Markus Lanthaler",
  "homepage": "http://www.markus-lanthaler.com/",
  "image": "http://twitter.com/account/profile_image/markuslanthaler"
}

There's no builtin tooling for this, but there's nothing stopping you from writing your own

Thanks for the help here @Mause and @ycd ! :clap: :bow:
If that solves the original problem, then you can close this issue @jiaola  :heavy_check_mark:

Sorry for the long delay! 🙈  I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.


fix for issue #120

#120

Delete is fixed and verified.

https://github.com/megamsys/nilavu/issues/528


[Bazel CI] FATAL: Bazel crashed due to an internal error while evaluating node

CI: https://buildkite.com/bazel/bazel-at-head-plus-downstream/builds/4089#0191a183-3d73-4aad-af20-b1c2ee0d7b40
Platform: Ubuntu
Logs:
bazel --nosystem_rc --nohome_rc info
WARNING: Option 'experimental_strict_action_env' is deprecated: Use --incompatible_strict_action_env instead
FATAL: bazel crashed due to an internal error. Printing stack trace:
java.lang.IllegalStateException: java.lang.RuntimeException: Unrecoverable error while evaluating node 'PlatformMappingValue.Key{path=platform_mappings, wasExplicitlySetByUser=false}' (requested by nodes 'BuildConfigurationKeyValue.Key{buildOptions=d0337467a81a2969d7626e84b637953bdd8f392ca5ff0e265d89c1d577613a1e}')
    at com.google.devtools.build.lib.skyframe.SkyframeExecutor.evaluateSkyKeys(SkyframeExecutor.java:2026)
    at com.google.devtools.build.lib.skyframe.SkyframeExecutor.evaluateSkyKeys(SkyframeExecutor.java:2002)
    at com.google.devtools.build.lib.skyframe.SkyframeExecutor.createBuildConfigurationKey(SkyframeExecutor.java:1958)
    at com.google.devtools.build.lib.skyframe.SkyframeExecutor.getConfiguration(SkyframeExecutor.java:1882)
    at com.google.devtools.build.lib.runtime.commands.InfoCommand.lambda$exec$0(InfoCommand.java:158)
    at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:181)
    at com.google.devtools.build.lib.runtime.commands.InfoCommand.exec(InfoCommand.java:219)
    at com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.execExclusively(BlazeCommandDispatcher.java:679)
    at com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.exec(BlazeCommandDispatcher.java:252)
    at com.google.devtools.build.lib.server.GrpcServerImpl.executeCommand(GrpcServerImpl.java:607)
    at com.google.devtools.build.lib.server.GrpcServerImpl.lambda$run$1(GrpcServerImpl.java:676)
    at io.grpc.Context$1.run(Context.java:566)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Unrecoverable error while evaluating node 'PlatformMappingValue.Key{path=platform_mappings, wasExplicitlySetByUser=false}' (requested by nodes 'BuildConfigurationKeyValue.Key{buildOptions=d0337467a81a2969d7626e84b637953bdd8f392ca5ff0e265d89c1d577613a1e}')
    at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:547)
    at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:435)
    at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Null repoMapping
    at com.google.devtools.build.lib.cmdline.AutoValue_Label_RepoContextImpl.<init>(AutoValue_Label_RepoContextImpl.java:20)
    at com.google.devtools.build.lib.cmdline.Label$RepoContext.of(Label.java:122)
    at com.google.devtools.build.lib.skyframe.config.PlatformMappingFunction.compute(PlatformMappingFunction.java:82)
    at com.google.devtools.build.lib.skyframe.config.PlatformMappingFunction.compute(PlatformMappingFunction.java:60)
    at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:467)
    ... 7 more

Culprit: bazelbuild/bazel@5881c38
CC Greenteam @mai93

This looks like an internal bazel crash. Why is this filed in the Kythe repository?

This is about bazelmod conversion. based on the culprit (bazelbuild/bazel@5881c38) in the issue description, you may need to add --enable_workspace explicitly as it is flipped to false in bazel @ head

but bazel should not crash regardless, cc @Wyverald

I have a Bazel change incoming to fix the crash.
@lfolger: Bazel 8.0 will flip the default value of --enable_workspace (introduced in 7.1.0) to false. Kythe has --enable_bzlmod set to false in its .bazelrc (https://github.com/kythe/kythe/blob/e35bed7032a7c605fa99b5e97fa32b9104e7bfdd/.bazelrc#L18). Both flags can't be false at the same time, so this is is an early warning that Kythe will break with 8.0; you could simply delay this by explicitly setting --enable_workspace to true in your .bazelrc. (But obviously better if you migrate to Bzlmod!)

FWIW, when I looked into supporting bzlmod, the major blocker was protobuf.  As that seems to support bzlmod now, I suspect doing the migration should at least be feasible now. There will be some C++ dependencies which can't support bzlmod. ISTR at least one BUILD-file patch required using the "fully qualified" repository name for a difference dependency so that will complicate migration until https://github.com/bazelbuild/bazel/issues/19301 is addressed.


az webapp config ssl bind fails for slot

Describe the bug
This command fails:
az webapp config ssl bind --certificate-thumbprint $thumbprint --resource-group $rg --ssl-type SNI --name $name --slot $slot
Can not perform requested operation on nested resource. Parent resource '[name]([slot])' not found.

With valid name=foo; slot=bar, that would read: Parent resource 'foo(bar)' not found. With an invalid (nonexistent) slot=baz, the message instead reads: Parent resource 'foo/baz' not found. I can confirm with az webapp show --resource-group $rg --name $name --slot $slot that the slot does exist.
Running az webapp config ssl bind without the --slot also works as expected, as does manually creating the binding in the Azure Portal.
Running with the --slot in --debug mode shows a plausible-looking PUT request, with the correct custom domain having been found and specified in the hostNameSsslStates array:
{"location": "xxx", "properties": {"hostNameSslStates": [{"name": "xxx", "sslState": "SniEnabled", "thumbprint": "xxx", "toUpdate": true}], "reserved": false, "scmSiteAlsoStopped": false}}

To Reproduce

Create a web app foo.
Add a slot bar.
Upload a certificate to foo.
Run az webapp config ssl bind with --slot bar.
Observe the above error message.

Expected behavior
The SSL binding should be added to the slot, as documented:
https://docs.microsoft.com/en-us/cli/azure/webapp/config/ssl?view=azure-cli-latest#az-webapp-config-ssl-bind
Environment summary
azure-cli 2.0.32 / Ubuntu 16.04 / apt respository [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ xenial main / version 2.0.32-1~xenial

@sseveringhaus-newclassrooms i haven't tried to repro this myself yet, however had a few follow-up questions on the behavior you are seeing. Do you have a default name or resourcegroup set on CLI (using az configure --defaults ?Also are you running the command with az webapp config ssl bind with -n &  -g explicitly set? This could still be a bug on our end but wanted to confirm with you. Thanks!

Hi, @panchagnula; thanks for following up! I have nothing in my ~/.azure/config, so I don't think that's affecting it. Yes, I'm explicitly passing --resource-group and --name. I thought it was interesting that the error message is slightly different when the --slot is different (detailed in the initial report). It does seem to know when I'm passing it a valid slot (particularly because it does appear to identify the correct custom domain). I believe I saw somewhere that there could be issues when the slot was in a different RG than the production slot, but that's definitely not the case here. I have not yet tried passing --ids instead, since that doesn't fit into my workflow very well yet.

@sseveringhaus-newclassrooms thanks for the quick response, I will investigate this further.

I can confirm this behavior. I experience the same. With the debug flag, I see the following:
urllib3.connectionpool : Starting new HTTPS connection (1): management.azure.com
urllib3.connectionpool : https://management.azure.com:443 "PUT /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/sprint-eu/providers/Microsoft.Web/sites/fcwb-sprint-eu-appservice%28feature%29/slots/feature?api-version=2016-08-01 HTTP/1.1" 404 175
msrest.http_logger : Request URL: 'https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/sprint-eu/providers/Microsoft.Web/sites/fcwb-sprint-eu-appservice%28feature%29/slots/feature?api-version=2016-08-01'
msrest.http_logger : Request method: 'PUT'
msrest.http_logger : Request headers:
msrest.http_logger :     'User-Agent': 'python/3.6.1 (Linux-4.13.0-32-generic-x86_64-with-debian-stretch-sid) requests/2.18.4 msrest/0.4.29 msrest_azure/0.4.31 azure-mgmt-web/0.35.0 Azure-SDK-For-Python AZURECLI/2.0.33'
msrest.http_logger :     'Accept-Encoding': 'gzip, deflate'

The CLI is trying to locate the slot at :  /Microsoft.Web/sites/fcwb-sprint-eu-appservice%28feature%29/slots/feature?
which in reality should be /Microsoft.Web/sites/fcwb-sprint-eu-appservice/slots/feature? without the extra %28feature%29

Assigning to myself to investigate this further.

This patch has fixed the issue for me:
--- a/src/command_modules/azure-cli-appservice/azure/cli/command_modules/appservice/custom.py
+++ b/src/command_modules/azure-cli-appservice/azure/cli/command_modules/appservice/custom.py
@@ -1473,8 +1473,7 @@ def _update_host_name_ssl_state(cli_ctx, resource_group_name, webapp_name, locat
                                                                  thumbprint=thumbprint,
                                                                  to_update=True)],
                           location=location)
-    name = '{}({})'.format(webapp_name, slot) if slot else webapp_name
-    return _generic_site_operation(cli_ctx, resource_group_name, name, 'create_or_update',
+    return _generic_site_operation(cli_ctx, resource_group_name, webapp_name, 'create_or_update',
                                    slot, updated_webapp)

I have somewhat low confidence in it beyond "works for me", because it's not clear why the name would have been passed in that format in the first place.

The code above also fix the issue for me. I think there 2 type of naming scheme for the slot

webapp_name + slot
just slot
Any plan to fix this one?

Will get this out for the next release


Investigate how to propagate data from Mir to Eudico to be able to derive block miners

To send a Filecoin block in Eudico we need the miner who has mined this block.
At present, Mir doesn't provide control-plane information regarding proposed blocks.
In integrating Tendermint into Eudico, we used the following approach: Filecoin block miner is a Eudico node which corresponding Tendermin node proposed this block.

Subsumed by more general #308 .


Add a repository_trigger event to the case-data-update workflow

This prepares our workflow action to run when we receive a repository_dispatch event from the nCoV2019 repo (which isn't yet sending them)

 Trigger automatic import of new data into prod


Add a missing dispatch

@avik-pal this needs fmap and thus a Functors.jl dependency. Could that be avoided somehow or is it necessary? I would guess you could turn it into a componentarray and then apply backing?

Codecov Report

Merging #204 (e8073ba) into master (02c95fe) will decrease coverage by 0.32%.
The diff coverage is 0.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##           master     #204      +/-   ##
==========================================
- Coverage   73.46%   73.14%   -0.32%
==========================================
  Files          20       20
  Lines         686      689       +3
==========================================
  Hits          504      504
- Misses        182      185       +3

Impacted Files
Coverage Δ

src/compat/chainrulescore.jl
64.28% <0.00%> (-17.54%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Functors is an extremely lightweight dependency (it literally just depends on LinearAlgebra).

I would guess you could turn it into a componentarray and then apply backing?

That was my first attempt. But Tangent is not an AbstractArray so CA wouldn't flatten it.

Functors is an extremely lightweight dependency (it literally just depends on LinearAlgebra).

That should be fine, then.


When deleting a job, we should first copy it to "JobArchive"

A job is in relationship with

a project
a workflow
one or two datasets

Expected behaviors:

Removing a project removes all associated jobs (ref #633, in progress with #666)
Removing a workflow removes all associated jobs - to be implemented.
Removing a dataset removes all associated jobs - to be implemented.

Note that 2 and 3 can be counterintuitive, let's make sure we are OK with them. If not, we can find a workaround.
Current situation is not acceptable, because removing a dataset would lead to a broken state in which the job table has rows with foreign keys pointing to non-existing datasets.

Side comment: we need a much more thorough testing for all DELETE endpoints, especially in the presence of relationships.

Note that 2 and 3 can be counterintuitive, let's make sure we are OK with them. If not, we can find a workaround.

That is a very interesting question. My gut feeling is that deleting a project should remove all its contents. But would a user expect that the job log disappears after they delete a dataset? Probably not?
May require a bit more thinking on this for workflow & dataset deletion.

The broader question: How strictly & how long should the server keep track of all the things it ran?
I can see an argument that we'd always like to go through the server history to see what was actually run. This is probably a broader feature than the discussion here though. My main history priority would be storing history in the OME-Zarr file itself (see discussion here: https://github.com/fractal-analytics-platform/fractal-server/issues/506).
In that spirit, I think I'd be fine if we are deleting associated jobs upon dataset or workflow deletion for the time being. And, if after the history work we realize we also want the server to store logs even upon deletion of projects, datasets, workflows or a subset thereof, we'd specifically design that feature and change this again (i.e. instead of deletion, it just marks these object with a flag so the user doesn't actively see them anymore). Whether we will add such a feature is unclear to me as of now though.

EDIT:
"how this thing should work" means "how this thing should work, if we decide that (some) jobs should be persistently stored"

(note: the latest commit referencing to this issue, aedbf38, was a typo in the commit message)

Just following up on the need for Job Archives:
A thing that gets confusing to users sometimes is why they can't delete datasets once they have run a job on them. That's mostly because we don't show the error in the interface (see https://github.com/fractal-analytics-platform/fractal-web/issues/250). But even then, would be useful if that eventually becomes possible.

We had a brainstorming with @ychiucco and @mfranzon, and came up with a plan for an experimental implementation.
We can discuss it further, but in the meanwhile here is the corresponding to-do list:

Add applyworkflow.input_dataset_dump and applyworkflow.output_dataset_dump columns, and fill them within the apply endpoint (in the same way as we already do for workflow_dump)
Add new applyworkflow.archived boolean column, False by default
Create new archived_applyworkflow table

Only one FK, pointing to project_id (needed e.g. for access control, but also for project listing)
The project_id FK is such that a project deletion also triggers cascade deletion of the related archived_job rows
All the “dump” columns from the FKs that we remove (I/O datasets and workflow)

Add new GET /api/v1/project/{project_id}/job/{job_id}/archive endpoint

Check that job.archived is False, otherwise fail 422 (or do something smart)
Set job.archived = True
Create new archived_job row, with the same project_id FK and a copy of all the “dump” columns

Add new DELETE /api/v1/project/{project_id}/job/{job_id}  endpoint

If job.archived is False -> do something (either raise 422, or call archive first and then delete job)

Add new GET /api/v1/project/{project_id}/archived_job/ endpoint
Add new GET /api/v1/project/{project_id}/archived_job/{archived_job_id} endpoint
In project/dataset/workflow DELETE endpoints, detect when you would delete a job, and act in a specific way. Options:

Raise an informative error (please first archive jobs 1,2,3)
Automatically archive&delete the job

Looks promising!
In the options on what to do during deletion, I think they should basically always be "Automatically archive&delete the job" where possible.
The only thing I'm not fully sure yet is the complete deletion of the job records on project deletion. It makes sense to allow this way of cleaning up (and we may then want to add an additional warning text in the web interface to make the user aware that everything gets deleted that way).
But we may need to keep some record for accounting purposes of number of jobs run for a given user, their runtimes and some of the details. At that point, maybe the user has no more access to the job, but could it be kept such that admins still see them and accounting can still track them?

While reviewing #906 with @ychiucco and @mfranzon, we came up with an alternative proposal (as compared to https://github.com/fractal-analytics-platform/fractal-server/issues/667#issuecomment-1766051376) which looks promising. We are now exploring that option as well.
The main point is that we may remove several ApplyWorkflow FKs (or at least make them optional): workflow_id, input_dataset_id, output_dataset_id. This is true for at least two reasons:

In principle we can always use the new "dump" columns, as defined in #906.
Even more important: the submit_workflow function already includes these three IDs as input parameters, so that we never really use e.g. ApplyWorkflow.workflow_id.

Thus the new TODO would be:

[ ] Make the three FKs of ApplyWorkflow table nullable (while keeping project_id as required)
[ ] Include {input,output}_dataset_dump columns (same as workflow_dump)
[ ] Remove checks from delete-dataset and delete-workflow endpoints
[ ] Sanity check: when deleting a dataset or workflow, the FKs of the corresponding jobs are automatically set to null (via cascade option)


Smarter symmetric decompression

DI source

Use the new symmetric decompression from SparseMatrixColorings v0.3.5, with the additional star_set argument
Merge identical for loops in jacobian and hessian

Codecov Report
Attention: Patch coverage is 0% with 4 lines in your changes missing coverage. Please review.

Project coverage is 45.34%. Comparing base (f5d4e32) to head (fec140b).

Files
Patch %
Lines

DifferentiationInterface/src/sparse/hessian.jl
0.00%
4 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (f5d4e32) and HEAD (fec140b). Click for more details.
HEAD has 41 uploads less than BASE

Flag
BASE (f5d4e32)
HEAD (fec140b)

48
7

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #370       +/-   ##
===========================================
- Coverage   96.58%   45.34%   -51.25%
===========================================
  Files          99       70       -29
  Lines        4888     2640     -2248
===========================================
- Hits         4721     1197     -3524
- Misses        167     1443     +1276

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


[SMALLFIX] Add javadoc for RemoteBlockInStreamIntegrationTest#RemoteBlockInStreamIntegrationTest

Add javadoc for RemoteBlockInStreamIntegrationTest#RemoteBlockInStreamIntegrationTest.
The third parameter reader is never used

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/13145/
Test PASSed.

LGTM. Thanks for the improvement.


[Node 6] General issue for tracking compatibility with Node 6

The latest version of Node is now Node 6. We want to support all versions of Node LTS and up, but most people are either using Node LTS (4.x) or the latest Node (was 5.x, now 6.x) so my thinking is that we should focus on testing those two releases of Node the most.
Things we need to do:

[ ] Try out Node 6, see what works and what doesn't (native modules might have issues though node-gyp is pretty good about keeping things compiling)
[ ] Change CI env from Node 5 to Node 6

Related: #7287

Tested quickly by running UIExplorer and everything worked properly,

Closing since Node 6's been working fine.


Prepare a new release 0.3.0

@NJaku01 Can you please prepare a short list summarising the changes in the current dev branch? I'd like to make a new release asap so we get the bugfixes included here on to the demo server. Thanks!

Release 0.3.0
Bindings
With this release we introduce the automatic creation of bindings. For more information, read the author guidline
To make the preview work it is now also possible to terminate a BindingsService. This feature could also be used to kill a service after a certin amount of time to improve the performance.
Comparison View
Next the comparison view was improved:

It is possible to scroll synchronous through the three documents. On Firefox this works only when the curser is placed of the left-most document.
In a opened full-page dialog, like the comparison view, the back button of the browser does not direct the users back to the starting page. Instead it just closes the dialog.

Further Improvements
Furthermore, we have fixed some bucks and improved some features:

The button to view the PDF is only available if the ERC contains a DOI or a PDF.
The button to upload a ERC is only active if the users is logged in
The metadata is now also visible while inspecting the ERC

Last, we improved the design and general usability of the page.


Remove dockershim from crictl

/kind feature
/kind deprecation
What this PR does / why we need it:
Removes dockershim from the crictl docs and main_unix / main_windows in preparation for the 1.24 deprecation of dockershim.

Remove dockershim.sock from default runtime endpoints for unix and windows
Change dockershim.sock to containerd.sock in the default description for --runtime-endpoints.
Remove dockershim from the crictl docs (including code examples in the docs)

This PR doesn't address critest mentions of dockershim as I'm not sure how to do that (but I'm happy to learn).
Which issue(s) this PR fixes:
Fixes #870
Special notes for your reviewer:
Does this PR introduce a user-facing change?
`dockershim` is no longer one of the runtime endpoints for `crictl`.

looks like all the bases are covered. thanks @shannonxtreme
https://cs.k8s.io/?q=dockershim.sock&i=nope&files=&excludeFiles=&repos=kubernetes-sigs/cri-tools
/assign @adisky
one thing though ... for hack/run-dockershim-critest.sh we could add some comments that i can only work with https://github.com/Mirantis/cri-dockerd and not with any other CRI implementation. (either in this PR or in a follow up, i don't mind)

Do we want crictl to be able to talk to earlier versions of k8s clusters while they are still supported? Once crictl is moved to use v1 of CRI API only, this will be totally reasonable PR. Before that, I'd suggest we keep it.

Do we want crictl to be able to talk to earlier versions of k8s clusters while they are still supported?

One thing is that the matrix is not up to date: https://github.com/kubernetes-sigs/cri-tools#current-status

Do we want crictl to be able to talk to earlier versions of k8s clusters while they are still supported? Once crictl is moved to use v1 of CRI API only, this will be totally reasonable PR. Before that, I'd suggest we keep it.

@SergeyKanzhelev doesn't users expected to use matching version of crictl & k8s, if K8s 1.24 removed dockershim crictl 1.24 also expected to do the same?possiblt we should release a 1.23 tag for crictl then merge this PR?
Also this isn't essentially removing any support, only removing dockershim from default endpoints users can still configure unix:///var/run/dockershim.sock  manually

@SergeyKanzhelev doesn't users expected to use matching version of crictl & k8s

as a general statement, this wouldn't be ideal. crictl may be used alongside the containerd. For instance, it is installed on COS. And it works independently on the version of k8s installed on that COS image.
Since the dockershim.sock is only exposed by k8s itself, this statement has more sense. Also, defaults are deprecated and customers are encouraged to specify the socket explicitly (#599). So even if we will break customer scenario here, where the fallback to default is expected, it will not be completely unexpected. It also will be a good notification for customers to migrate :-).

Let's discuss the release related bits in https://github.com/kubernetes-sigs/cri-tools/issues/856

We would have hate having to use different versions of crictl in minikube, for different versions of kubernetes.

Note that the packages are still installing crictl 1.19.0. (never mind 1.23.0)
 cri-tools |  1.19.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
 cri-tools |  1.13.0-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
 cri-tools |  1.13.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
 cri-tools |  1.12.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
 cri-tools |  1.11.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
 cri-tools |  1.11.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
 cri-tools | 1.0.0-beta.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl

Since the defaults are deprecated anyway, isn't this loss of functionality
more of an incentive to move off relying on just the defaults, and instead
specifying explicit endpoints?
Idk, someone from sig-node probably knows better than me
On Thu., Jan. 13, 2022, 16:16 Anders Björklund, @.***>
wrote:

Note that the packages are still installing crictl 1.19.0. (never mind
1.23.0)
cri-tools |  1.19.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
cri-tools |  1.13.0-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
cri-tools |  1.13.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
cri-tools |  1.12.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
cri-tools |  1.11.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
cri-tools |  1.11.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
cri-tools | 1.0.0-beta.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl
—
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/cri-tools/pull/871#issuecomment-1012083703,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHH4EFSP7AMCGZB5I7ADO5TUV27DDANCNFSM5LY6AQUA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Since the defaults are deprecated anyway, isn't this loss of functionality more of an incentive to move off relying on just the defaults, and instead specifying explicit endpoints?

But then you could remove all endpoints, instead of just one.

I'm not sure why that hasn't happened. Maybe a deprecation policy thing?
I guess a middle ground could be to move dockershim.sock to last on the
list so that it isn't the first endpoint tried by default
On Thu., Jan. 13, 2022, 16:25 Anders Björklund, @.***>
wrote:

Since the defaults are deprecated anyway, isn't this loss of functionality
more of an incentive to move off relying on just the defaults, and instead
specifying explicit endpoints?
But then you could remove all endpoints, instead of just one.
—
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/cri-tools/pull/871#issuecomment-1012090276,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHH4EFWOBNMOIF5BNFD6BJTUV3AEBANCNFSM5LY6AQUA
.
You are receiving this because you were mentioned.Message ID:
@.***>

as a general statement, this wouldn't be ideal. crictl may be used alongside the containerd. For instance, it is installed on COS. And it works independently on the version of k8s installed on that COS image.

Same thing for minikube, currently using a random version 1.21.0 for the crictl installation

It also will be a good notification for customers to migrate :-).

They don't have to migrate, they just have to start using CRI

Is it that the defaults currently do not work? I thought the case is that
the defaults are deprecated and will be removed at some point, but still
work for now
On Thu., Jan. 13, 2022, 17:27 Anders Björklund, @.***>
wrote:

@.**** commented on this pull request.
In docs/benchmark.md
https://github.com/kubernetes-sigs/cri-tools/pull/871#discussion_r783955520
:

Additional options

-ginkgo.focus: Only run the tests that match the regular expression.
-image-endpoint: Set the endpoint of image service. Same with runtime-endpoint if not specified.
-- -runtime-endpoint: Set the endpoint of runtime service. Default to Unix: unix:///var/run/dockershim.sock or Windows: tcp://localhost:3735.
+- -runtime-endpoint: Set the endpoint of runtime service. Default to Unix: unix:///var/run/containerd.sock or Windows: tcp://localhost:3735.

there is no default: #597
https://github.com/kubernetes-sigs/cri-tools/issues/597
—
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/cri-tools/pull/871#discussion_r783955520,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHH4EFXUWCWAMZP76JGPB4DUV3HMHANCNFSM5LY6AQUA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Is it that the defaults currently do not work?

The project doesn't dare to pick a new favorite, so recommends using any container runtime that follows the CRI
And if crictl needs to try all the possible locations, that introduces a latency when checking the various sockets...

@SergeyKanzhelev and @afbjorklund in this case, should we leave dockershim.sock in the list of fallback options? If we keep it, we should mention in the docs that the endpoint won't work in 1.24+. The main changes for this PR would then just be to update the language around "default" behaviour in the warnings.
WDYT?

The question is: can you use crictl 1.24 to control a cluster running kubernetes 1.23 ?
We currently install crictl as part of the OS (together with the container runtime).
So it is the same crictl that is being used for all versions of Kubernetes, later on.
We do set the /etc/crictl.yaml (as instructed), so if it is "only" the list of default sockets...
But once you start changing the CRI version, this rule will become more important.
Unless it is always backward compatible, so that the new tool can talk to old clusters ?

And like I mentioned elsewhere, currently crictl 1.19+ is being packaged and required.
So there is no mapping between crictl version and kubernetes version, in requirements.

@afbjorklund I'm honestly not sure about the versioning thing, sorry. I'd assume if we left the list of fallback endpoints as-is, the behaviour wouldn't change, but I'm not positive.
Maybe someone from SIG node can confirm, or @SergeyKanzhelev.

I still think this is a nice workaround
I guess a middle ground could be to move dockershim.sock to last on the
list so that it isn't the first endpoint tried by default

I made a few changes @afbjorklund and @SergeyKanzhelev:

Add dockershim.sock as the last item in the list of "default" endpoints
In the docs, position setting the endpoint manually as the recommended approach
For the description of default endpoints in docs, add "unsupported in Kubernetes 1.25" to dockershim.sock

This should keep crictl working for previous versions of Kubernetes. We should remove the default endpoints at some point, preferable in a version release of crictl.
I'd like to get this change merged. This no longer breaks users on previous versions of K8s, makes the removal of dockershim in 1.25 clear, and doesn't require crictl to be versioned to work.

makes the removal of dockershim in 1.25 clear,

was it moved again ? It was supposed to be 1.24

Lol it was not moved again, I just apparently had a brain fart. Thank you. That's also why I am trying to change the wording to be more "the fallback (or backup) endpoints are deprecated".

IDK why VS Code is adding the extra line 1 in main_unix.go and main_windows.go (//go:build !windows). Will it affect the file? I can't save the file without it being auto added

If your gofmt is "too new", it will update the line to the new syntax (you can remove the old syntax)

"the fallback (or backup) endpoints are deprecated"

It's deprecated alright, just not entirely removed yet.

@afbjorklund thanks for the clarity. I opened #893 as a suggestion to remove these fallbacks with minimal impact.

We enabled a feature to minikube, to start the extra background service (or socket) that is required with the new setup.
For containerd and cri-o, nothing needs starting. For docker, nothing needed started with dockershim but now it does:
sudo systemctl start cri-docker.service
Ideally cri-dockerd should be "started" with socket activation of /var/run/cri-dockerd.sock, but there are no packages yet.
So the user needs to remember to start it, after starting "docker.service" (which is maybe more obvious that is required)

@afbjorklund I changed most of what you pointed out except the info about the critest default endpoint. LMK if that needs to be reverted or not. Also the info about starting cri-dockerd is not in scope for this PR. Not sure where it needs to go in the cri-tools docs (if it does at all).

Also the info about starting cri-dockerd is not in scope for this PR.

Makes sense, it was just that I thought it was still confusion about the location - but it turned out that it wasn't started...

Have we reached any consensus with this one?

Do you want to make crictl part of the release ?
Or is it OK to use the same system installation for all versions of k8s, like both 1.23 and 1.24 ?

Or is it OK to use the same system installation for all versions of k8s, like both 1.23 and 1.24 ?

I'd prefer that. But we can still introduce breaking changes if we document them accordingly. For example we will have to remove support for CRI v1alpha2 when we vendor in Kubernetes which also does not support the conversion any more.

I don't see any version requirements on cri-tools and cni-plugins, and they seem to frequently be lagging behind ?

Currently (v1.24.0), it is just failing. It never gets around to trying unix:///var/run/cri-dockerd.sock
WARN[0000] runtime connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead.
ERRO[0000] unable to determine runtime API version: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory"
E0510 08:00:35.184124   12046 remote_runtime.go:925] "Status from runtime service failed" err="rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
FATA[0000] getting status of runtime: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService

make a rebase again?

@mikebrow
Currently (v1.24.0), it is just failing. It never gets around to trying unix:///var/run/cri-dockerd.sock
WARN[0000] runtime connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead.
ERRO[0000] unable to determine runtime API version: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory"
E0510 08:00:35.184124   12046 remote_runtime.go:925] "Status from runtime service failed" err="rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
FATA[0000] getting status of runtime: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService

It works fine with the -r parameter. I think it is done that way in kubeadm, instead of relying on CRI config.
$ crictl -r unix:///run/cri-dockerd.sock version
Version:  0.1.0
RuntimeName:  docker
RuntimeVersion:  20.10.12
RuntimeApiVersion:  1.41.0

ok.. thx for the heads up.. need some more debug so we can see which container runtime on which socket doesn't have a matching runtime.v1alpha2.RuntimeService...

It was either 1.4 or 1.5, should be easy to reproduce

It was either 1.4 or 1.5 (whatever docker used), should be easy to reproduce
There were some weird ghost reports of it "failing" even with containerd 1.6, since the error message can be misleading if the daemon is not answering/running for some reason...
By providing it explicitly, the error is more clear.
And by using configuration, it is less cluttered than having to lug that -r parameter around. So I think that kubeadm should require /etc/crictl.yaml use well as crictl

If containerd is installed but you have disabled the cri plugin on purpose (standard for docker install's version of the containerd config.toml) the containerd sock will not have any cri services to serve and crictl will see that as a failure.  It shouldn't stop it's loop rather it should continue on reporting that the containerd sock does not have cri enabled.

The error here https://github.com/kubernetes-sigs/cri-tools/blob/master/cmd/crictl/main.go#L82 isn't very useful when the err returned does not mention the endpoint that failed...

IMO the loop thing should be a oh .. you don't have a container runtime configured in your crictl config and you have not set one at the command line or in the ENV.. here are your options we've found at the typical default configurations.. which would you like to set as your default in the config...: grab stdin wait for response for 30sec.. or fail to prompt

I tried again, with the latest minikube beta - but with k8s version 1.24.0 and crictl version 1.24.0:
docker@minikube:~$ sudo rm /etc/crictl.yaml
docker@minikube:~$ sudo crictl version
WARN[0000] runtime connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock]. As the default settings are now deprecated, you should set the endpoint instead.
ERRO[0002] connect endpoint 'unix:///var/run/dockershim.sock', make sure you are running as root and the endpoint has been started: context deadline exceeded
FATA[0002] getting the runtime version: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService

Ok so I rebased, but I'd really like someone to take another look at these changes to make sure this is right

I tried again, with the latest minikube beta - but with k8s version 1.24.0 and crictl version 1.24.0:
minikube start --kubernetes-version=v1.24.0
docker@minikube:~$ sudo rm /etc/crictl.yaml
docker@minikube:~$ sudo ./crictl --version
crictl version 1.24.0
docker@minikube:~$ sudo ./crictl version
WARN[0000] runtime connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead.
ERRO[0000] unable to determine runtime API version: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory"
E0525 18:30:45.757607   51352 remote_runtime.go:168] "Version from runtime service failed" err="rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
FATA[0000] getting the runtime version: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService
docker@minikube:~$ containerd --version
containerd containerd.io 1.6.4 212e8b6fa2f44b9c21b2798135fc6fb7c53efc16
docker@minikube:~$ dockerd --version
Docker version 20.10.15, build 4433bf6
docker@minikube:~$ cri-dockerd --version
cri-dockerd 0.2.0 (a4d1895)
docker@minikube:~$ sudo ./crictl -r unix:///var/run/cri-dockerd.sock version
Version:  0.1.0
RuntimeName:  docker
RuntimeVersion:  20.10.15
RuntimeApiVersion:  1.41.0

So we always set up the /etc/crictl.yaml config.

you may have tried it again but did you fix the broken config.toml yet?

It using docker, not containerd

Here is the output from the version in this PR:
docker@minikube:~$ sudo ./crictl --version
crictl version 1.24.0-38-g43477844
docker@minikube:~$ sudo ./crictl --debug version
DEBU[0000] get runtime connection
WARN[0000] runtime connect using default endpoints: [unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock unix:///var/run/dockershim.sock]. As the default settings are now deprecated, you should set the endpoint instead.
DEBU[0000] Note that performance maybe affected as each default connection attempt takes n-seconds to complete before timing out and going to the next in sequence.
DEBU[0000] Connect using endpoint "unix:///run/containerd/containerd.sock" with "2s" timeout
DEBU[0000] Connected successfully using endpoint: unix:///run/containerd/containerd.sock
DEBU[0000] VersionRequest: &VersionRequest{Version:v1,}
E0526 10:31:27.234639     568 remote_runtime.go:168] "Version from runtime service failed" err="rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
DEBU[0000] VersionResponse: nil
FATA[0000] getting the runtime version: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService
docker@minikube:~$

It never tries the other endpoints.

correct if docker's edit of the containerd config has disabled the cri services the containerd sock won't serve cri services

If I enable the cri plugin, then it will think that it should use the containerd runtime (instead of the docker runtime)

this is your view.. makes sense to you.. may not make sense to people who are not using a dockershim version of kubelet on their workernode or development environment
crictl has a config option and a cli option to let users specify which container runtime they want to use
for ages the defaulting sequence list in crictl was dockershim first and the list was deprecated .. I believe with the intention of removing it and letting people choose manually via config or cli.. given the number of options available for choosing it makes sense to let users choose which container runtime they want.
choices: either delete the default code and force manual config, or keep it as it is with a fix to continue to the next when the sock is there but docker has disabled the cri api, or get docker to stop disabling the cri api in containerd, and/or give crictl users a list to choose from and ask them which one they want..

So then it won't match the CRI configuration from kubeadm, which will confuse things later.

why does kubeadm require containerd not be configured correctly for working with kubeadm? I believe kubeadm also works with containerd/cri-o?

/var/lib/kubelet/kubeadm-flags.env:KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --node-ip=<IP_ADDRESS> --pod-infra-container-image=k8s.gcr.io/pause:3.7"
Found multiple CRI endpoints on the host. Please define which one do you wish to use by setting the 'criSocket' field in the kubeadm configuration file: unix:///var/run/containerd/containerd.sock, unix:///var/run/cri-dockerd.sock
So I think it is better to leave the default docker configuration for containerd, and configure crictl ?

it is better to have containerd, and the other container runtimes, configured correctly for their clients, and configure crictl for your specific use case.  There are a great number of clients of the container runtimes... not just this particular kubeadm use case.

/etc/crictl.yaml
runtime-endpoint: unix:///var/run/cri-dockerd.sock

yup and
crictl config --get runtime-endpoint
unix:///run/containerd/containerd.sock

or
crictl config --set runtime-endpoint unix:///var/run/cri-dockerd.sock

why does kubeadm require containerd not be configured correctly for working with kubeadm?

It uses a separate flag / config item for kubeadm, and then uses crictl -r with it for all the calls.


unable to build default example image

Hello!
I'm trying to build custom image for glinet_gl-ar750s profile router. it also hasnand variant instead of generic so I manually adjusted this value in builder.nix and in files.nix
Using all this adjustments build gives me:
nix run .#example-image
error: No match for OpenWRT profile glinet_gl-ar750s

Then i decided to build just pure example image, and I got:
$ nix run .#example-image
error: unable to execute '/nix/store/yxl6dhv5w1r4nxyvndvv1r7s3m4gxk79-openwrt-21.02.3-nix-lantiq-xrx200-avm_fritz7412/bin/openwrt': No such file or directory

I'm starting to suspect that images should be build on the router itself... or am I doing something wrong? Please help :)

Use nix build -vL .#profiles-list to see what profiles are available. There are three with similar names:

glinet_gl-ar750
glinet_gl-ar750s-nor
glinet_gl-ar750s-nor-nand


Additional option for list command

Add an additional "--upgradeable / --updateable" option to the list command so that it only shows those packages that are both out of date and known to winget.
I may be just me , but it seems rather pointless showing dozens of programs that winget knows nothing about and/or can't update. Particularly as a list of all installed packages is already available via Settings > Apps & features.

An additional filter that only displays a package for which

Winget has a record and therefore could  upgrade it.
The installed package either has a down-level version or an unknown version

This new feature would have the additional benefit of showing which packages would likely be affected should the user issue the "upgrade --all" command. For example a program that would move from freeware to paid for if updated.

@pjaj I believe winget upgrade does exactly what you are looking for.
We are looking at other improvements with winget list as well.
https://github.com/microsoft/winget-cli/issues/977
https://github.com/microsoft/winget-cli/issues/964

@denelon Maybe I'm mistaken, but I thought that winget upgrade actually performs an upgrade on as many packages as it could. What I'm suggesting is a way of listing those packages, but without actually doing anything to them. That is a list of the packages that would be upgraded by winget upgrade. One  advantage of this is that upgrading some packages changes them from freeware to paid for and a user might not want to do that. Or there may be compatibility problems between newer versions and other legacy programs.

winget upgrade lists all packages with possible upgrades.
winget upgrade -all executes the upgrades for all possible packages with upgrades.

Mea culpa, I'm new to winget. I'll close this suggestion as already implemented.

@pjaj, no worries. Thanks for making the suggestion 😊
I know how hard it is to find duplicate issues.


Session keys should be case-INsensitive to match default ASP.NET behavior

When switching from StateServer to RedisSessionProvider, I found that you're handling session keys case-sensitively, because you're using the default ConcurrentDictionary IStringEquality behavior.
MSDN docs don't specify, but at least based on Internet discussions: http://stackoverflow.com/questions/1731283/net-httpsessionstate-case-insensitivity that to match classic ASP behavior, session keys along with other ASP.NET collections are case-insensitive.

@welegan Any chance you're going to build an updated nuget.org package soon?  I'd like to stop having to use my custom nuget package with this commit in it.


Thanh you

Why:
Closes [issue link]

What's being changed:

Check off the following:

[x] I have reviewed my changes in staging (look for the latest deployment event in your pull request's timeline, then click View deployment).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[x] This pull request impacts the contribution experience

[x] I have added the 'writer impact' label
[x] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files chhange

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed

Files changed finish

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request

Finish request


Pluggable BTM context

Currently only one instance of BTM can exist in single classloader.
This is because class TransactionManagerServices keeps services instances
in static fields.
This commit adds BitronixContext which is responsible for keeping service
instances. The default implementation does not change any semantics.
Instances are still kept statically. But different BitronixContext
implementations can be selected by the user using ServiceLoader
infrastructure.

+1


How do I create a simple GraphQL query resolver using VTL in Amplify

** Which Category is your question related to? **
API, GraphQL
** What AWS Services are you utilizing? **
AWS AppSync
** Provide additional details e.g. code snippets **
Using Amplify CLI, I want to create a custom resolver for the GraphQL query below. It seems like I should be able to do it only using VTL. There is no need to call a Lambda function or use a data source like DynamoDB.
type Query {
supportedVersion: String
}
The function will return a simple string like "4.3.7"
I have added 2 VTL files to .\backend\api<project>\resolvers
Query.supportedVersion.req.vtl has the following content
{
"payload": "4.3.7"
}
Query.version.res.vtl has the following content
$util.toJson($context.result)
or
"4.3.7"
After I run 'Amplify push', and look in AppSync, the resolver is not connected to the query. I feel that I am missing a step that connects the query to the resolver.
I have created several custom Lambda node.js resolvers that utilize the 'Amplify add function' process. In this case, I don't want the overhead of Lambda.

@jon144 Yes, you're missing a step here to tie in the resolvers with the query. Please take a look at https://aws-amplify.github.io/docs/cli-toolchain/graphql#custom-resolvers


CUDA out of memory

Hi!
I encountered an issue while running the training code with python train.py dataset=ps_female_3 option=iter30k pose_correction=none on a single Nvidia RTX 4090 GPU with default config setting. It appears that the rasterizer is demanding 33.47 GB GPU memory.
I'm reaching out to inquire if any specific parameters within the script or configuration can be adjusted to reduce the GPU memory requirements to a more manageable level.
Thank you for your assistance.

I tried to change the init Gaussians number from 50k to 10k in Dataset. It worked.


Chore: enable serde feature in example code

Checklist

[ ] Updated guide with pertinent info (may not always apply).
[X] Squash down commits to one or two logical commits which clearly describe the work you've done.
[ ] Unittest is a friend:)

This change is

Hi, I am not quite sure about why we didn't see these errors in the past, but this PR should not be considered a fix for them, we should not add a feature flag that won't be used but simply for a workaround of a clippy lint, especially in example code. If this derive does not work at all, maybe we should remove it🤔

Hi, I am not quite sure about why we didn't see these errors in the past, but this PR should not be considered a fix for them, we should not add a feature flag that won't be used but simply for a workaround of a clippy lint, especially in example code. If this derive does not work at all, maybe we should remove it🤔

need discussion

The #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] is a misuse and should be removed.
I found this issue too and have had it fixed in: #1268 :
https://github.com/databendlabs/openraft/pull/1268/files#diff-8f8d2d841365befc4ced06a6646431e67d0d5a0632a7f96573ce97fb69a47ad5


New version: DynamicalSystemsBase v2.3.2

Registering package: DynamicalSystemsBase
Repository: https://github.com/JuliaDynamics/DynamicalSystemsBase.jl
Created by: @Datseris
Version: v2.3.2
Commit: 4868e0bd5187982faf846e2c85d54eaf6d65d168
Git reference: HEAD

Please close in favor of https://github.com/JuliaRegistries/General/pull/45463

okay, don't close, this targets a new version now. Please merge instead :)