Allow to explicitly pass type parameters via JSDoc

Search Terms
jsdoc generics type parameters constraints
Suggestion
It seems like it is not possible via JSDoc to explicitly tell compiler which type parameters to pass to a generic function.
Use Cases
In TypeScript it is possible to explicitly pass type parameters such as mongoose.model<Model, Schema>('modelName', Schema) while I could not find a way to do same with JSDoc.
Examples
mongoose.model has two signatures, first one with one type parameter and the other with two. To make use of the second signature we must pass types explicitly.
export function model<T extends Document>(
  name: string,
  schema?: Schema,
  collection?: string,
  skipInit?: boolean
): Model<T>;

export function model<T extends Document, U extends Model<T>>(
  name: string,
  schema?: Schema,
  collection?: string,
  skipInit?: boolean
): U;

//  Choose second signature in typescript.
const model = mongoose.model<Model, Schema>('modelName', Schema);

// With JSDoc, compiler always chooses first signature and we receive a type mismatch error.
/** @type {Schema & mongoose.Model<Model>} */
const model = mongoose.model('modelName', Schema);

// But something like this would be great.
const model = mongoose.model/**<Model, Schema>*/('modelName', Schema);

My apologies if this is already possible, but I've spend almost a week battling this.
Related: https://github.com/Microsoft/TypeScript-Node-Starter/issues/101
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. new expression-level syntax)

I would also like to see something like this. Currently it's really hard to use functions with generic types from JS.

Another use case with React Hooks:
// useState<string> is derived correctly
const [aString, setAString] = useState("default value");

Removing default value there is no way to pass type info:
// useState<any>
const [aString, setAString] = useState();

Anything on this? Also stuck on the useState example as shared above:
// Doesn't set type properly
const [error, setError] = /** @type {React.useState<?string>} */ useState(null);
// Nor does this
  /** @type {[?string, React.Dispatch<React.SetStateAction<?string>>]} */
  const [error, setError] = /** @type {React.useState<?string>} */ useState(
    null
  );

// we have an error we want to set now.
setError('Error!') // Shows a type error

For functions that take an argument of the generic type, casting the argument itself is reasonably practical. We've settled on these patterns with useState and useRef in React for example:
const [thing, setThing] = useState(/** @type {SomeType|null} */ (null));
const widgetRef = useRef(/** @type {HTMLElement|null} */(null));

In cases where there is no argument for everything else to be inferred from, it gets much more verbose unfortunately. What would be helpful is being able to do something like:
const aSet = /** @type {?<string>} */(new Set());

Where the ? is inferred as Set. In this example it only saves a few characters, but it could be a lot more if the generic type name is lengthy and/or has to be imported from somewhere.

Where the ? is inferred as Set. In this example it only saves a few characters, but it could be a lot more if the generic type name is lengthy and/or has to be imported from somewhere.

Something like that would be awesome, it would majorly simplify the code required for React.forwardRef and React.memo:
- const Component = /** @type {React.ForwardRefExoticComponent<React.RefAttributes<Props>>} */ (React.forwardRef(() => { ... }))
+ const Component = /** @type {?<Props>} */ (React.forwardRef(() => { ... }))

Calling functions with generic types is important in AssemblyScript. This would help to possibly get us to a point where we can write working plain JS, but also compile the same code to WebAssembly.

Casting the argument sometimes is too verbose. For example, when you pass a map of strings to T, now you have to cast the whole map to /** @type {{ [key: string]: MyInterface }} */. When you want the map values to be () => T or even more complex, the cast gets uglier.
I'd suggest changing the parser to look for a /** @typeparam {MyInterface} */ in between the function expression and the function argument-set parentheses.

@weswigham Hi, I would like to kindly as if the discussion has evolved? (you've added a tag "In Discussion")
Could we hope for this feature?

JSDoc comments are for documentation. We should avoid repurposing JSDoc comments for features that aren't documentation

@trusktr JSDoc is has not been only for documentation for a long time now. It supports almost anything TS does, with very few exceptions. As for syntax, the /** */ is well-established and parsed by the compiler if you're programming in JS.

// But something like this would be great.
const model = mongoose.model/**<Model, Schema>*/('modelName', Schema);

There is already existing JSDoc syntax for declaring generic types: @template. So surely this tag should be reused (?)
const model = mongoose.model/** @template Model, Schema */('modelName', Schema);

I use this way to send types as parameters, but it's a bit dirty
/**
 * @template T
 * @param {Object} props
 * @param {string} props.key
 * @param {T} [props.templateType]
 * @returns {T}
 */
const getLocalStorage = ({ key = "" }) => {
  const data = localStorage.getItem(key);
  return JSON.parse(data);
};

/**
 * @type {{
 * id: number,
 * name: string,
 * phoneNumber: number
 * }}
 */
const templateType = null;
getLocalStorage2({
  templateType,
  key: "somebody",
});

is there any plan moving this forward? @RyanCavanaugh

Any updates?

BTW I just found out this works:
import { useState } from "react"

/** @type {typeof useState<number>} */
const useNumberState = useState

const [value] = useNumberState(123)

or
import { useState } from "react"

const [value] = /** @type {typeof useState<number>} */ (useState)(123)

equivalent to
import { useState } from "react"

const [value] = useState<number>(123)

@phaux Yes, they're called "instantiation expressions" (see #47607) and were added in 4.7
Another option is doing something like:
/** @type {ReturnType<typeof fn>} */
const myVar = fn('whatever')
No intermediate variables or nasty inline casting syntax, but I guess less semantically 'pure', and can't be used in certain edge cases where ReturnType doesn't work well.

I don't think there's much of a problem with using type assertions (type conversions) :
const elRef = useRef(/** @type {HTMLElement | null} */ (null));
const [value, setValue] = useState(/** @type {SomeType | null} */ (null));

Only the readability of the code decreases with the increase of type comment.

TypeScript Doc

Cast Syntax

https://github.com/microsoft/TypeScript/issues/27387#issuecomment-659671940
this should be in https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#template

+1

As mentioned in #56102 , I think it'd be really great to add better support for this. Lots of projects are using JSDoc for typechecking instead of full-on TS (either approaches are valid and fine, lets not start that discussion), and it seems to me like better support for generics in jsdoc is long overdue.
I also think the example proposed by the OP would be a great candidate:
const model = mongoose.model/**<Model, Schema>*/('modelName', Schema);
// or perhaps some variation of an @ tag, that seems more in-line with the current approach JSDoc takes
const model = mongoose.model/** @generic {<Model, Schema>} */('modelName', Schema);

What I think is nice about these approaches is that:

Still valid JS, so will run without a compilation/build step
Visually similar to the TS way of typing this

Would love to discuss and see what we can do to get the ball rolling on this, especially considering that this issue has been open for 5 years :)

@thepassle Technically this is already solved as per https://github.com/microsoft/TypeScript/issues/27387#issuecomment-1223795056
For example you can now do:
const model = /** @type {typeof mongoose.model<Model, Schema>} */(mongoose.model)('modelName', Schema);

If you're aware of this but your argument is that you would prefer for there to be a more ergonomic syntax, probably best to say that explicitly.

@noinkling, those are not equivalent. A generic method would become unbound from its target if aliased or type annotated that way.

@noinkling, those are not equivalent. A generic method would become unbound from its target if aliased or type annotated that way.

You mean methods won't have the right this value, essentially? I can see the issue with the alias approach in those cases, but nothing new there. Can you give an example where the casting syntax could be problematic/have a different result compared to TS syntax?

const model = /** @type {typeof mongoose.model<Model, Schema>} */(mongoose.model)('modelName', Schema)

is equivalent to:
const model = (mongoose.model as typeof mongoose.model<Model, Schema>)('modelName', Schema)

not to:
const model = mongoose.model<Model, Schema>('modelName', Schema)

The fact that this ugly but useful workaround exists doesn't mean a proper syntax for actually passing type parameters (instead of casting the whole function) shouldn't be pursued.

@gustavopch It didn't exist when this issue was created was the point, it was impossible to provide type params unless they corresponded to runtime params. In that sense the person who created the issue might consider it "solved" now. Personally I've learned to take what I can get when it comes to JSDoc, given that it's something of a second-class citizen for TS. But you're right, it would be nice to have a nicer syntax, just wanted to make it clear that there's an option that works now (even if it isn't pretty).

I return to this thread to point out that the "solution" with instantiation expressions doesn't seem to work when the function has multiple overloads:
const fileInput =
  /** @type {typeof document.querySelector<HTMLInputElement>} */
  (document.querySelector)("input[type=file]")

It seems to check all the overloads at once instead of choosing only one:
Type 'HTMLInputElement' does not satisfy the constraint 'keyof HTMLElementDeprecatedTagNameMap'. deno-ts(2344)
Type 'HTMLInputElement' does not satisfy the constraint 'keyof HTMLElementTagNameMap'. deno-ts(2344)
Type 'HTMLInputElement' does not satisfy the constraint 'keyof MathMLElementTagNameMap'. deno-ts(2344)
Type 'HTMLInputElement' does not satisfy the constraint 'keyof SVGElementTagNameMap'. deno-ts(2344)

In TypeScript it works:
const fileInput =
  document.querySelector<HTMLInputElement>("input[type=file]")

@phaux You're right, worth noting it could potentially be considered a bug: #51694

playground
That looks good.
/** @type {ReturnType<typeof func<MyType>>} */
const val = func(obj)

@sandersn I am looking into implementing something like:
const model =
  /** @specialize {Model, Schema} */
  mongoose.model('modelName', Schema)

Do you think there's a chance this approach will be accepted?

Our approach to JSDoc has evolved since this issue was created. At that time I didn't want to add anything that didn't have precedent in the jsdoc documentation generator, or at least in Closure compiler. However, Typescript is the largest processor of JSDoc at this point, and TS users who want typing are probably the most prolific authors of it. So we've decided on a few new principles:

If you're exposing existing TS syntax and semantics to JS, the semantics should be identical and the syntax should be as close as possible. @import is a good example, as is your own @overload work.
However, new tags should be normal tags as much as possible. That means:
a. Starts with @alphanumeric.
b. Isn't nested -- starts at @ and continues till the next @.
c. Is used in a /** comment directly above a declaration. Both @import and @overload violate this, for good reasons.

(1) means that TS users will be able to use the new JS syntax with a minimum of surprise. (2) means that jsdoc processors (including TS itself!) will be able to understand the new tag with a minimum of new parsing.
Re (2c), the rough descending order of goodness, or familiarity, in my opinion is:

In a /** comment directly preceding a declaration -- like @type.
A /** comment not connected to any JS syntax (which is to say, preceding some non-declaration) -- like @import.
A /** comment preceding an expression -- like @type as a cast.
A /** comment preceding another /** comment that eventually precedes a declaration -- like @overload.
A /** comment preceding some other, non-top-level node in the parse tree.
A /*:: comment or some other new syntax.
A // @ts-alphanumeric comment preceding a declaration.

I think we can come up with something for (3).
This is a very long way to say that, yes, we'd consider a tag for this that looks a lot like your @specialise. You're probably going to need parentheses around the call expression to make it attach correctly, though.
Also I'm not sure whether <Model, Schema> would be better than {Model, Schema}. I think it's down to how hard it is to convert all the type-parameter syntax to that form. The grammar isn't huge there so probably pretty easy.
@DanielRosenwasser you've thought about jsdoc a lot too and you may have interesting insights from working on the types-in-JS proposal, which ran into exactly this problem.

I've got a PR ready for the following syntax:
let a = /** @specialize <number> */(f());

/** @specialize <string, number> */
let b = f();

/** @specialize {string} */
let c = f`template with ${variable}`;

let d = /** @specialize <string> */(new D());

So basically one can put the @specialize tag at any parent node that accepts JSDoc, e.g. assignment statement or parethesized expression. We can also choose between wrapping type arguments with <...> or {...}.
This will also work for JSX, though the element with type arguments will need to put inside curly braces so that we can also add JSDoc there:
function MyForm() {
  return (
    <form>
     {/** @specialize {number} */(
       <Input value={0} />
     )}
    </form>
  )
}

It's something we'll have to consider. It's not perfect, but the solution right now is to cast to a value that's already specialized:
/**
 * @template T
 * @param x {T}
 */
function f(x) {
    return x;
}

let obj = {
    /**
     * @template T
     * @param x {T}
     */
    f(x) {
        return x;
    }
};

let g = /** @type {typeof f<string>} */ (obj.f);
//  ^?
// typeof f<string>

let objG = (/** @type {typeof obj.f<string>} */ (obj.f)).bind(obj);
//  ^?
// typeof obj.f<string>

https://www.typescriptlang.org/play/?filetype=js#code/PQKhFgCgAIWgBALgUwLYAcA2BDF0AqUsC62ATtqtAB7QDe+AvkSMFAGYCuAdgMaIBLAPbdo7ABTUAlPSLR5ZZIk5lR1ANxRmkKJiXQhAIwBW0ALyyY86KAhXrcJGiy5kBOQ5LlKNekw-yrAES0pbW4dCKyqo0mvbQ2oxxuvoA5uY2YAiIAJ7obnS5+ULsYgA8AM6IZALcqQB8jLDA0OJGxgB07FJxwC3QAHoA-FApiAYmAOIZ4rbZeQVFyCUTneyV1bUNTayt7V1SUh2GtQAmbSY9UH3yw0A

@DanielRosenwasser

Though noted above in https://github.com/microsoft/TypeScript/issues/27387#issuecomment-1925609832, it doesn't work in the case of overloads.

Good point! Btw, the reason this currently does not work:

@DanielRosenwasser

Though noted above in https://github.com/microsoft/TypeScript/issues/27387#issuecomment-1925609832, it doesn't work in the case of overloads.

Good point! Btw, the reason this currently does not work:
const fileInput =
  /** @type {typeof document.querySelector<HTMLInputElement>} */
  (document.querySelector)("input[type=file]")

is already pointed out in the other issue, here:
https://github.com/microsoft/TypeScript/issues/51694
Do you think there's a chance the other PR will be merged? i.e. https://github.com/microsoft/TypeScript/pull/51695

I'm a big TypeScript fan that's trying out a new project where I use JSDocs instead of TS. Here are some of the learnings I've been forced to do along the way.
Passing in a generic
The key here is utilizing ReturnType.
TypeScript version:
const patchReq = async <T>(path: string, data: Partial<T>): T => makeRequest('PATCH', path, data);

const updateBallot = async (ballot: Partial<Ballot>) => patchReq<Ballot>(`elections/${ballot.id}`, ballot);
//      ^? returns Promise<Ballot>

JSDocs version:
/** @template T; @param {string} path; @param {Partial<T>} data; @returns {Promise<T>} */
const patchReq = async (path, data) => makeRequest('PATCH', path, data);

/** @param {Partial<Ballot>} ballot; @returns {ReturnType<typeof patchReq<Ballot>>} */
const updateBallot = async (ballot) => patchReq(`ballots/${ballot.id}`, ballot);

React useState
This was already mentioned above, but I think it's useful to rewrite. Typecasting the initial value has never failed me. Make sure to remeber the parentheses
const [optionalTitle, setOptionalTitle] = useState(/** @type {null | string} */(null));
//      ^? null | string


[docs] Update contributing guide

Why
To update the contribution docs (CONTRIBUTING.md) to include yarn build step. Fixes #350
How
I added words.
Test Plan

Open CONTRIBUTING.md
Read

@nateemerson

update "How" to be what you have in "Why", something like "Include yarn build as step within contributing guide"
change "Why to be a link to issue #350
test plan should indicate how a user can test your solution works vs the current state so say "follow contributing guide to set up with local development" with a link to the guide

LGTM :)


Introduce registries management

Make the option to have several registries available for the zpm-client

done (long ago)


A few issues using the decapoda-research/llama-7b-hf model as hf config seems to have changed

I am still testing the models from Sears Moriarty's  Open-Source Elixir Alternatives to ChatGPT post. I'm having some issues with the decapoda-research/llama-7b-hf model.
Here's the code:
{:ok, model} = Bumblebee.load_model({:hf, "decapoda-research/llama-7b-hf"})
{:ok, tokenizer} = Bumblebee.load_tokenizer({:hf, "decapoda-research/llama-7b-hf"})
{:ok, generation_config} = Bumblebee.load_generation_config({:hf, "decapoda-research/llama-7b-hf"})
serving = Bumblebee.Text.generation(model, tokenizer, generation_config, defn_options: [compiler: EXLA])
Nx.Serving.run(serving, "Elixir is a")

A few things seem to have changed on huggingface:

loading the model fails because the architecture returned from the spec is LLaMAForCausalLM (https://huggingface.co/decapoda-research/llama-7b-hf/blob/main/config.json) and Bumblebee expects it to be LlamaForCausalLM (case difference - https://github.com/elixir-nx/bumblebee/blob/main/lib/bumblebee.ex#L133)
once this fixed, loading the tokenizer fails because its name is tokenizer_config.json (https://huggingface.co/decapoda-research/llama-7b-hf/blob/main/tokenizer_config.json) and Bumblebee expects tokenizer.json
once this fixed, the tokenizers library fails to parse it and returns this error:

iex(1)> {:ok, tokenizer} = Bumblebee.load_tokenizer({:hf, "decapoda-research/llama-7b-hf"})
** (RuntimeError) failed to read tokenizer from file, reason: Tokenizer(Error("expected `,` or `}`", line: 1, column: 13))
    (bumblebee 0.3.0) lib/bumblebee/utils/tokenizers.ex:146: Bumblebee.Utils.Tokenizers.load!/1
    (bumblebee 0.3.0) lib/bumblebee/text/llama_tokenizer.ex:8: Bumblebee.HuggingFace.Transformers.Config.Bumblebee.Text.LlamaTokenizer.load/2
    (bumblebee 0.3.0) lib/bumblebee.ex:741: Bumblebee.load_tokenizer/2

And here's the tokenizer config content (https://huggingface.co/decapoda-research/llama-7b-hf/resolve/main/tokenizer_config.json):
{"bos_token": "", "eos_token": "", "model_max_length":<PHONE_NUMBER>000000019884624838656, "tokenizer_class": "LLaMATokenizer", "unk_token": ""}

I imagine those changes are part of a bigger one, does someone knows what it is?

Hey! The decapoda-research/llama-7b-hf repo is a bit broken honestly, it was generated before the llama PR was finished in huggingface/transformers, hence the capitalization difference. As for the tokenizer there are generally two variants: slow (using tokenizer_config.json and fast using tokenizer.json), oftentimes a specific repo doesn't have the fast tokenizer.json, but it's possible to find a different repo with the same tokenizer that has it.
tl;dr try huggyllama/llama-7b, as far as I remember it is the same checkpoint as decapoda-research/llama-7b-hf, but shouldn't have any of these issues :)


Harfbuzz version too old (1.4.2)

Original issue : https://github.com/foxdog05000/serina/issues/33
Detail :
I cannot execute the binary because of this error. (OS: Fedora 31)
I suggest updating the Harfbuzz version?
Or is there a workaround?

I recently started to update Electron in 9x version. Then I will look for the crash problem on Mac OS.

I start to generate a version for mac which starts to work. But there is still something to solve before the release

Have a good new ! Update Electron to 9x and Build app on Mac OS fix problem :)
Release available soon ..


Allow customizing how many times it tries to do auth credential callback

Allows specifying auth_tries to the credential managers which currently controls just how many times it does the credential callback but we could use it for other auth retrying if we feel like it.
Didn't want to add callback_tries to just control that one aspect of authentication (the callback count), but could be argued either way.

Codecov Report

Merging #25 (bda02cd) into master (aa73465) will increase coverage by 1.24%.
The diff coverage is 96.20%.

@@            Coverage Diff             @@
##           master      #25      +/-   ##
==========================================
+ Coverage   89.57%   90.82%   +1.24%
==========================================
  Files          20       21       +1
  Lines         355      414      +59
  Branches       39       45       +6
==========================================
+ Hits          318      376      +58
- Misses         29       30       +1
  Partials        8        8

Impacted Files
Coverage Δ

laituri/docker/credential_manager/__init__.py
100.00% <ø> (ø)

laituri/docker/credential_manager/docker_v1.py
100.00% <ø> (ø)

laituri/docker/credential_manager/dummy.py
87.50% <0.00%> (ø)

...turi/docker/credential_manager/ecr_with_role_v1.py
31.03% <0.00%> (ø)

...uri_tests/test_registry_credentials_callback_v1.py
95.83% <90.90%> (-1.47%)
:arrow_down:

...ential_manager/registry_credentials_callback_v1.py
93.33% <100.00%> (ø)

laituri/utils/retry.py
100.00% <100.00%> (ø)

laituri_tests/test_retry.py
100.00% <100.00%> (ø)

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

Looks good. One could argue how many times retry function should try when tries are set to 0 or to negative number. I think 1 time should be the minimum and is the expected behaviour.

yeah, should probably throw an exception if that is tried~


Fill in the stub - break this ticket into n tickets.

DoD: n Tickets to determine implementation requirements / order.

MdisPlugin
does csm have standard for documentation? id doc even necessary since trd has doc?

[ ] #13 - keywords must be determined, implement members.

[ ]Implement and document the accessors for model metadata:

[ ] implement ISD construction methods

canModelBeConstructedFromISD()
constructModelFromISD()

[ ] implement state construction methods

canModelBeConstructedFromState()
constructModelFromState()
getModelNameFromModelState()

[ ] implement ISD conversion methods

canISDBeConvertedToModelState()
convertISDToModelState()


[Issue] azd deploy reports success, but deployment failed in Web App

I hit an issue where azd deploy completed successfully for a Web App, but the Web App actually failed to deploy because of a build-time error in Oryx.

Azd should have reported as failed and return a non-zero exit code instead of reporting success.
$ azd version
azd version 0.6.0-beta.2 (commit c4a201e55a13eba77f9037b296a90e0f81b00dbe)

To reproduce, deploy a Python app with an invalid requirement in requirements.txt so that deployment fails.

Filed an issue with Oryx on this. Since the underlying Oryx build failure isn't getting bubbled up through REST API which Azd depends on.
Waiting on the upstream deps on the findings. Moving to Backlog

This is still an issue. azd deploy reported a successful deployment in the cli but the actual deployment failed.
I am using azd version 1.5.1


How to find latest version for dependency

How to find latest version for dependency

the latest version can always be seen at the top of the readme.md


Fix itest failure

Issue
CI fails because loki is not yet seen as "up" by prom:
_________________ test_prometheus_scrapes_loki_through_traefik _________________
Traceback (most recent call last):
  File "/home/runner/work/cos-lite-bundle/cos-lite-bundle/tests/integration/test_bundle.py", line 212, in test_prometheus_scrapes_loki_through_traefik
    assert (f"/{ops_test.model.name}-loki-0/metrics", "up") in targets_summary
AssertionError: assert ('/test-bundle-doxh-loki-0/metrics', 'up') in [('/test-bundle-doxh-alertmanager/metrics', 'up'), ('/metrics', 'up'), ('/metrics', 'up'), ('/metrics', 'up'), ('/metrics', 'up'), ('/metrics', 'up'), ...]

Solution

Force an idle period of 90s for bundle deployment.

Context
NTA.
Testing Instructions
Run itests on github.
Release Notes
Fix itest failure.

Itest passed in the CI here twice in a row, but still failed in the scheduled task for the same reason :thinking:

Oh it's the beta channel that failed. Gonna rework the workflow a bit.


feat: add suggested filters to saved searches

This PR resolves ONYX-517
Description
https://github.com/artsy/eigen/assets/11945712/8e1c33b5-2546-4943-80d5-08224b4c702a
https://github.com/artsy/eigen/assets/11945712/58e41535-78cf-4da4-99e0-6caab1168b93

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[X] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

add suggested filters to saved searches - mounir

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Cross-platform user-facing changes (add suggested filters to saved searches - mounir)

  Generated by :no_entry_sign: dangerJS against 3ef8ee93f9ef7f6da3b2278f76b48811ad9f12e1

Awesome, thanks all for the reviews. Let's gooo 🚀🚀🚀


🚀 [Feature Request] - Implement Dark Mode Functionality

Is your feature request related to a problem ? Please describe. ✍
Nowadays most of the people in society feel comfortable in dark mode, I want to implement the same in the project.
Describe briefly how you would implement this enhancement.
Some steps to implement this enhancement-
1. Change all the hardcore colors used in CSS files to CSS variables that will be easy to manage.
2. Implement two classes - one for light mode and another for dark mode.
3. Create a toggling button for toggling between the two modes.
4. Also, add the functionality for checking the system default and implementing it by default.

Additional context or screenshots
No response
Are you contributing for a program?
GSSoC2023
Code of Conduct

[x] I have read and agree to the Contributing Guidelines of this project.

@kartikjoshi267 sounds great, just wait for a day or two.

@kartikjoshi267 sounds great, just wait for a day or two.

Ok!

@kartikjoshi267 sounds great, just wait for a day or two.

Can I start now?

already open another issue related to dark mode


feat: Added support for running on the Raspberry Pi Zero W.

On the Raspberry Pi Zero W, after being disconnected, _peripheral .state is frequently changed to disconnecting, and once that happens, the connection will not be possible.
For this reason, I have changed the behavior as follows.

After disconnecting, _peripheral. state is disconnecting, it behavior as disconnected.

Thank you so much!


endless.NewServer() Struct Variable

I want to make a struct like this:
type App struct {
	Server *endless.endlessServer
	Router *gin.Engine
}

func (a *App) Initialize(config *config.Config) {
	a.Server = endless.NewServer(fmt.Sprintf(":%d", a.Config.Server.Port), a.Router)
}

Using this struct: https://github.com/fvbock/endless/blob/master/endless.go#L72
But it's give me error:
cannot refer to unexported name *endless.endlessServer
How can i that endless reference in my own App struct?

type server interface {
ListenAndServe() error
}
you can try it ?

Thank you @zheng013, since its been over 6 years, I honestly don't remember what I was trying to do here. LOL.


Rename Pipeline

Description of problem
When we talk about a pipeline object, it's really confusing because it's usually not clear if we're talking about a carto/Pipeline or a tekton/Pipeline.
Proposed solution
Literally anything else. Chronicle, ResourceTrigger, ImmutableResourceTrigger, naming is hard so suggestions are welcome.

I haven't seen the RunTemplate yet and I haven't found its definition.  From what I read about Pipeline and RunTemplate in source code and the RFC about Delivery,   it seems today Pipeline only instantiates a single RunTemplate that has no relationship with the concept of Pipeline. IMHO a pipeline is a set of tasks. So The execution of the Pipeline is to trigger a kind of kubectl create of an associate resource via the RunTemplate and to maintain its state. Am I right ?

@rawlingsj suggested we call it Sequence


Support decoding logs via tx id

Users should be able to retrieve logs or even response values for a transaction given it's id.
They can already fetch receipts of transaction that has been executed, we just need to expose a proper interface for decoding and document it.

clodes in: https://github.com/FuelLabs/fuels-rs/pull/1220


#25 Movie Time Skill

Added movie time skill
Description
Want to watch a movie now but don't know what's a good choice? Use Movie Time! This skill gives you a good movie recommendation.
Updates #25
Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings

Mention the issue and change folder name to MOVIE_TIME_SKILL

Mention the issue and change folder name to MOVIE_TIME_SKILL

Done

Done

Good work!

Good work!

Thanks @garimasingh128 . Can we close issue #25

Thanks @garimasingh128 . Can we close issue #25

Let it be open. 2 skills can have different implementations.

Let it be open. 2 skills can have different implementations.


Pre-created test-database for actor and protocol tests

Problem Statement
At the moment we always setup up the state of the system by actually performing all tasks in the system to achieve a certain state. E.g. in order to perform a rollover we actually run a contract setup between the two parties and then trigger the rollover once we created the Cfd.
Note that such a setup does not only concern the actor tests, but is also very useful for protocol tests. For don't have tests for the rollover and collab settlement protocol at the moment because of a lack of having a database that provides the necessary state.
The more protocol tests we can write in isolation the less more complex actor tests for the whole system we need.
Our current actor test setup is expensive and can be optimized. Instead of creating the state to perform a task we can just provide the state. There are different ways to achieve this.
Solution Proposal
I propose to have a separate test-data crate withou the itchysats repo that provides a specific databases (one for the maker and one for the taker) that can then used in the actor tests and protocol tests. This database files are checked into the repository and linked to other crates wherever we need it. Whenever changes to the test data are needed we can update the database.
A specific db filled with test data has the advantage that we don't have to do any setup in the test prior to running it, but can just load the Cfd and test performing certain tasks.
It has the disadvantage that when we want to extend / change the test database setup we cannot just do that in the test, but have to update the database - or potentially go further and create multiple, versioned databases (initially I would not do that).
Initially it will be sufficient to provide a database that contains one Cfdthat is Open. This Cfd will always be the same and is not configurable. This is a quite rigid yet simple setup.
A test depending on the test database creates a copy (file copy) of the database and then use it; since tests run in parallel we should never access the same database from multiple tests.
Eventually we can change this setup to allow having multiple Cfds in the database. When running a test we can then:

Create a copy of the database
Delete all Cfds that we are not interested in (i.e. delete all Cfds besides id xxx that the test will load). - delete is cheap
Use the database for the test setup
Run the test

Note:
I did think about a setup where, instead of using a pre-defined database, we would have e.g. JSON data that we write into the database upon creation. But I did not see an advantage in that. We cannot really modify the JSON because that would just get messy, we would have to re-generate it. Then we might as well just re-generate the database instead of losing time writing the data to the database in each test setup.
As far as I know rust's test framework does not have a setup and tear-down functionality that can be run for a complete test suite. That would come in handy, because then we could create the database for all tests before running the tests. If it is possible to achieve this let me know :)

This project is unmaintained


Create docs page Sailbot Workspace/Setup

Purpose
Move setup instructions to docs site, as they are quite long and vary depending on OS

Work on once UBCSailbot/sailbot_workspace#34 is merged

Page Tree
nav:
  ...
  - Sailbot Workspace:
    ...
    - Setup: workspace/setup.md

Resources

https://github.com/UBCSailbot/sailbot_workspace/blob/main/README.md#setup
@Tsuchijo's notes for getting it working on Arch Linux

Run These Two Commands Locally to setup X11 fowarding

Install xhost using sudo pacman -S xorg-xhost
export DISPLAY=0.0
xhost +local:docker

Dev-Containers only works on the right flavor of Vscode, make sure you are using the official Microsoft distribution

The one from Pacman doesnt work with microsoft plugins

After the image is running on your machine, follow standard procedures
[Put this in a collapsible admonition titled Debugging with the bug icon; applies to all non-debian distros I think] To run Ros1, run these commands as the system has trouble resolving the local hostname

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

Put in new project tab


Fix search filtering order

This PR fixes the problem with the search in LTS - NDCs Explorer and LTS tracker
The order of filtering was not correct on the selectors so some data that was not shown was taken into account on the search.
Note: There are still some cases on some links that the href matches with the search but the text doesn't. I don't think we can do much about this as we are receiving the HTML directly on this case. We could parse it but that would be a different task

Ready again!


Node key type was expected but not set

I am trying to create a new node and I keep getting a error saying they node key .type was expected but not sit need to know what is causing this error. The node type is a border leaf, we have l3leafs connected to our endpoints which uplinks to spine and spines uplink to border leaves need guidance

Hello - thanks for reaching out.
When using the eos_designs role, each device (host) needs to be assigned a type and this is missing in your case. This is documented here: https://avd.sh/en/stable/roles/eos_designs/doc/fabric-topology.html#node-type-variables.
An example of assigning types to groups of nodes in the inventory: https://github.com/arista-netdevops-community/atd-avd/blob/master/atd-inventory/inventory.yml#L28
Another example, assigning types in the group_vars: https://github.com/arista-netdevops-community/avd-cEOS-Lab/blob/main/labs/evpn/avd_asym_irb/group_vars/DC1_SPINES.yaml / https://github.com/arista-netdevops-community/avd-cEOS-Lab/blob/main/labs/evpn/avd_asym_irb/group_vars/DC1_LEAFS.yaml
To be able to help you further it would be necessary to get a bit more context regarding your current setup - inventory file and group_vars


Calculate nCr

#Description
Calculate nCr in C++
Fixes #2095
Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings

Review my PR under LGMSOC'21
@Amit366 @ravikr126 @Ayush7614


Feature: Normalized VBR support

IMPORTANT: PRs without the template will be CLOSED
Description of your pull request and other information
Adds support for Normalized VBR as a feature.
VBR are normalized to a comparable value across different codecs, with H264 quality as ground truth.
Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

[x] I am the original author of this code and I am willing to release it under Unlicense

What is the purpose of your pull request?

[ ] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[x] New feature (It is strongly recommended to open an issue first)

Copilot Summary

🤖 Generated by Copilot at 9430f10
Summary
🆕🛠📊

Added support for normalized video bitrate (nvbr) as a new format attribute in yt_dlp/YoutubeDL.py and yt_dlp/utils/_utils.py. This allows users to compare and select formats based on their actual video quality, rather than the nominal bitrate reported by the source.

To sort formats by quality and size
The FormatSorter class is quite wise
It now has a new field
nvbr it can wield
To show the normalized video bitrate prize

Walkthrough

Add nvbr field to format dictionaries and sorters to represent normalized video bitrate (link, link, link, link, link)
Display nvbr value in format note and table output, using fixed width and suffix (link, link, link)

Where are these factor values coming from? Is there a spec for this somewhere?

also please clarify which:

[x] I am the original author of this code and I am willing to release it under Unlicense
[x] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

Where are these factor values coming from? Is there a spec for this somewhere?

sorry for the confusion, it's from an image in this page , I've included this link in code comment where the factors are specified as well for future reference.

I haven't looked much at this, but I love that it would finally add a field that takes into account both bitrate and codec. It seems like a very common complaint that "this format may be an inferior codec, but it's a much higher bitrate, so it should be prioritised" to which the response is "yeah, but where do you draw that line".
This isn't me promising that this will get approved and merged, I'm just listing a potential benefit

it's from an image in this page

2018?? A lot has changed since then...

it's from an image in this page

2018?? A lot has changed since then...

I see similar result from a Facebook research.
As for the not-up-to-date, I would assume large cooperation like YouTube utilize some dedicated hardware for video transcoding, which they typically implement relatively not so up to date algorithm.
I could be far wrong, but as long as they don't release the exact algorithm behind each exact encoding, especially how many passes they have been applied to the result, an accurate estimate won't be possible.
At least we have some data here for us to get an educated guess.

As for my personal experience, I observe YouTube decides to provide diff video with diff codec and diff sets of bitrate targets.
E.g.
for this vid we have relative close quality for av1 and vp9
[info] Available formats for rOKSMcLtY1A:
ID  EXT   RESOLUTION FPS HDR CH │    FILESIZE    TBR PROTO │ VCODEC           VBR   NVBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
<other res emmited>
315 webm  3840x2160   60        │     1.21GiB 19858k https │ vp<IP_ADDRESS> 19858k 27581k video only          2160p60, webm_dash
628 mp4   3840x2160   60        │ ~   1.75GiB 28069k m3u8  │ vp<IP_ADDRESS> 28069k 38984k video only
337 webm  3840x2160   60 10     │     1.74GiB 28634k https │ vp<IP_ADDRESS> 28634k 39770k video only          2160p60 HDR, webm_dash
642 mp4   3840x2160   60 10     │ ~   1.92GiB 30863k m3u8  │ vp<IP_ADDRESS> 30863k 42866k video only
701 mp4   3840x2160   60 10     │     1.49GiB 24580k https │ av01.0.13M.10 24580k 44690k video only          2160p60 HDR, mp4_dash

as for this one, we have best ver of av1 clearly inferior to vp9
[info] Available formats for V3dbG9pAi8I:
ID  EXT   RESOLUTION FPS CH │   FILESIZE    TBR PROTO │ VCODEC           VBR   NVBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
<emitted>
401 mp4   3840x2160   30    │   81.33MiB  5018k https │ av01.0.12M.08  5018k  9123k video only          2160p, mp4_dash
625 mp4   3840x2160   30    │ ~290.56MiB 17502k m3u8  │ vp<IP_ADDRESS> 17502k 24308k video only
313 webm  3840x2160   30    │  188.15MiB 11608k https │ vp<IP_ADDRESS> 11608k 16122k video only          2160p, webm_dash

prioritize over neither codec or VBR gives a constant best result.

Video quality is a hugely complex topic and does not only depend on the bitrate and codec, but also the specific encoder used, the content being encoded, and the exact encoding settings.
Even if a rough estimate could be made for one site, this won't necessarily hold true for another and imo. hides too much complexity.
There sadly is no surefire way to know which format is higher quality ahead of time. If a user really wants to get the best quality, they will just have to download all formats and compare themselves. We don't even always know the exact video bitrate ahead of time.
If this were to be merged, I would be opposed to making format sorting use nvbr. Using nvbr in such a way could lead to inconstant behavior where two videos might be downloaded using different formats just because the nvbr is very close to each other.
Also, you should link the actual source and not some blog post. They also have some more recent reports, but part of those is behind a paywall.

Video quality is a hugely complex topic and does not only depend on the bitrate and codec, but also the specific encoder used, the content being encoded, and the exact encoding settings. Even if a rough estimate could be made for one site, this won't necessarily hold true for another and imo. hides too much complexity. There sadly is no surefire way to know which format is higher quality ahead of time. If a user really wants to get the best quality, they will just have to download all formats and compare themselves. We don't even always know the exact video bitrate ahead of time.
If this were to be merged, I would be opposed to making format sorting use nvbr. Using nvbr in such a way could lead to inconstant behavior where two videos might be downloaded using different formats just because the nvbr is very close to each other.
Also, you should link the actual source and not some blog post. They also have some more recent reports, but part of those is behind a paywall.

Thank you for pointing out the actual source, would you kindly provide the links to the "some more recent reports"?
+1 for not including nvbr as default sorting strategy. I personally do have the opportunity to constant update my all devices to be able to hardware accelerate new codecs of which I presume most people don't have the luxury.

Video quality is a hugely complex topic and does not only depend on the bitrate and codec, but also the specific encoder used, the content being encoded, and the exact encoding settings.

I would love to get into some detail how much we would be able to derive the implication of different encoders.
For starters YouTube allow difference codec as for their uploading process, recommending H.264 as the go-to. I presume unlike most research does, instead of using an BD as ground truth, diff codec as ground truth transcoding to other targets would result in diff quality loss rates. I am not aware of any research done on this topic, albeit I'm also not sure if there is a way to accurate know what source codec be used to a release vid on YouTube.

All their reports can be found here. Do note how they started splitting their 1080p and 4k analysis. If I remember correctly h264 performs pretty badly at 4k.
Here a similar graphic to the one from the blog post in their 2021 report:

I would love to get into some detail how much we would be able to derive the implication of different encoders.

Once the file is downloaded, it sometimes contains the x264/x265 settings used, though many sites have also started stripping those. With the amount of videos they get, YouTube uses custom developed ASICs for video encoding (src).

diff codec as source transcoding to other targets would result in diff quality loss rates

I don't think different codecs for the input will directly affect the quality. The video is decoded anyway before being encoded again. Rather, the video quality of the source file will impact the output video quality. While this is partially dependent on the codec used, most professional YouTubers should be uploading visually transparent encodes anyway.

instead of using an BD as ground truth

Even BDs can be (and surprisingly often are) badly encoded. For a fully accurate comparison, you would need to use the actual master files. Blurays also support multiple different codecs (MPEG-2, AVC, VC-1, HEVC).


[sourcegraph-bot] Fixed docker image(s) with vulnerabilities.

1 . Snyk has detected vulnerabilities in the docker image(s)   ubuntu:20.04
used in this repository. Please refer to the docker security metrics to know the exact number and severity of the vulnerabilities .
2 . We recommend using the following image and your Dockerfile has been updated to reflect this.

528451384384.dkr.ecr.us-west-2.amazonaws.com/segment-ubuntu:latest

3 . To know more about the best practices around building docker images at Segment, please refer to the following documents:-

Docker Compendium
Docker Build Processes

Created by Sourcegraph batch change akshata.shivaprasad/docker.image.vulnerability.

closing this for now


Wrong type narrowing on union type.

🔎 Search Terms
type narrowing
🕗 Version & Regression Information
typescript version: 5.4.5
⏯ Playground Link
https://www.typescriptlang.org/play?#code/C4TwDgpgBAYgNgQwOZQLxQIxQD5QEw5QDMhALIQKwBQVAxgPYB2AzsFALYICWjaUAFAEo0APigBvKlGlQGLNgDNESAFyxlfDFJlzWUYAgBOSCMDWMAruwBGEQ3yLbpXBQKXI0qdBmGSZ-2SZmejgIADo4eiR+AAN3FC5mTBjBJwDDUwtDRjSAXygIOGZoFzcNL3Q8XzT-XRDwyOi4jUT8FJqZDOAsnP98wuKJDudXfgNjU090UmqAucCWeoio2PGTNlbSdvn0zOzhqFyDgHpjqAALO2hgS-1wCHpXeKhWxggANzsAGhe2ZnP6BY4AATKC2YhkSgHUr8Z4VYizHY6IJLRqxZ6tIjbeZHPo0XJAA
💻 Code
type Flag = 1 | 2 | 3 | 4 | 5

const main = () => {
    const flag: Flag = 1
    const target: number = 3
    if (flag === 1) {
        console.log(`flag is 1`)
        return
    } else if (flag === 2) {
        console.log(`flag is 2`)
        return
    } else {
        if (target === 4) {
            console.log(`target is 4`)
            return
        }
        // here the typeof flag is never, it should be 3 | 4 | 5
        if (flag === 3) {
            console.log(`flag is 3`)
        }
    }

}

🙁 Actual behavior
The type of variable flag at line 18 is never.
🙂 Expected behavior
The type of variable flag at line 18 should be 3 | 4 | 5, because the target === 4 should not narrow the type of flag.
Additional information about the issue
No response

This is working as intended. flag is already never in line 9, because at that point TypeScript can tell that it's never, because the only value ever assigned to it is ?1, and you already checked 1.

Ohh, my mistaked the literal type.


Add type for context property

I have an application in TypeScript with custom popover logic built on the @floating-ui/react API which combines useFloating, useInteractions and some other hooks from the package. The Floating UI context property is passed around a lot. It would be easier to refactor / write wrappers around it, if the context property had a concise type.
Suggested solution:
Create a type alias such as FloatingContext for the current
{
    placement: Placement;
    strategy: Strategy;
    x: number;
    y: number;
    middlewareData: MiddlewareData;
    update: () => void;
    isPositioned: boolean;
    floatingStyles: React.CSSProperties;
    ... 7 more ...;
    elements: ExtendedElements<...>;
}

FloatingContext is already exported and that is the type, you're seeing a prettified expanded version in your IDE.

Aha, thanks for clearing it out.
Great work with the poject!


A problem occurred configuring project ':native'.

I've imported project and it doesn't build:
A problem occurred configuring project ':native'.
> java.lang.NullPointerException (no error message)

If I comment native module importing project built successfully

Fixed it:

Update gradle version to newest (4.1.2 in my case)
Add android.useAndroidX = true to gradle.properties file
Add distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip to gradle-wrapper.properties


Bug - Alt-click asks what class to navigate to when it already knows.

Hello
Sometimes alt-clicking an identifier will ask you which one you want to open, even when the package actually already knows which one to select (i.e. which one is the correct one):
/**
 * @return Foo\BarInterface
 *         ________________
 */

Clicking on Foo\BarInterface will open a dialog asking me to select any of

Foo\BarInterface
Foo\BarTestInterface
Foo\BarSomeInterface

The only correct one here is, of course, Foo\BarInterface, i.e. the alt-click dialog should not pop up at all. Perhaps this has something to do with fuzzy matching going haywire (as the last two also include the text of the first)?
Thanks in advance

Hello,
Do you have an example please ?
I cannot reproduce the bug :(

I've posted a small example here [1]. The problem occurs in src/Foo.php.
[1] https://github.com/hotoiledgoblinsack/autocomplete-php-example


MUXControlsInnerLoop solution fails to build

Describe the bug
The MUXControls solution builds successfully, and the test app deploys and runs properly. However, the MUXControlsInnerLoop solution fails to build with the following errors:
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(424,1): error C2872: 'ElementFactoryGetArgs': ambiguous symbol
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(425,1): error C2872: 'ElementFactoryGetArgs': ambiguous symbol
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(432,1): error C2872: 'ElementFactoryGetArgs': ambiguous symbol
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(433,1): error C2872: 'ElementFactoryGetArgs': ambiguous symbol
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(461,1): error C2872: 'ElementFactoryRecycleArgs': ambiguous symbol
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(462,1): error C2872: 'ElementFactoryRecycleArgs': ambiguous symbol
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(469,1): error C2872: 'ElementFactoryRecycleArgs': ambiguous symbol
1>\microsoft-ui-xaml\BuildOutput\Debug\x64\Microsoft.UI.Xaml\XamlMetadataProviderGenerated.cpp(470,1): error C2872: 'ElementFactoryRecycleArgs': ambiguous symbol

Steps to reproduce the bug

Clone this repo (commit 865e4fcc00e8649baeaec1ba7daeca398671aa72)
Open the MUXControls solution and build it.
Deploy the MUXControlsTestApp project.
Open the MUXControlsInnerLoop solution and build it. Observe that it fails.

Expected behavior
MUXControlsInnerLoop should build successfully on a fresh clone if the MUXControls solution builds successfully.
Version Info
Commit 865e4fcc00e8649baeaec1ba7daeca398671aa72

Windows 10 version
Saw the problem?

Insider Build (xxxxx)

May 2020 Update (19041)
Yes

November 2019 Update (18363)

May 2019 Update (18362)

October 2018 Update (17763)

April 2018 Update (17134)

Fall Creators Update (16299)

Creators Update (15063)

Device form factor
Saw the problem?

Desktop
Yes

Xbox
N/A

Surface Hub
N/A

IoT
N/A

Additional context

Cleaning the solution and then building the inner loop works fine. I think the issue is that the generated file from the "normal" loop contains all types, however when the inner loop does not rebuild the "XamlMetadataProviderGenerated.cpp" file. The newly generated inner loop file does not contain those types anymore (unless one of the projects included is the ItemsRepeater).
What surprises me is that we are getting error C2872 here, I would have expected the error be along the lines of missing types.
The general issue here is that inner loop builds and complete builds don't work well simultaneously. When switching solutions, you need to clean everytime to make sure that you are not loading some build artifacts from the other build. Maybe this is something we can improve or should at least point out in the documentation. @ranjeshj @kmahone thoughts?

I cleaned the InnerLoop solution and now both solutions fail with the same errors

Cleaning the MUXControlsInnerLoop doesn't fix the issue. I also tried cleaning the MUXControls solution, and now that one fails with a similar issue.
Also, I made a VM and cloned the repo again, this time only building the MUXControlsInnerLoop solution, and it worked as expected.

Maybe the MSBUILD clean step doesn't work correctly in this configuration. Can you try deleting the "BuildOutput" folder? That definitely removes all previously built artifacts.

I agree that the documentation should be improved here. The MUXControlsInnerLoop.sln is a little bit of a hack. The issue is that it is identical to MUXControls.sln, just with various pieces optionally removed. So they share the same build output locations (including objs, temporary files, generated files, etc.). So before using MUXControlsInnerLoop.sln, it definitely makes sense to fully clean the repo (e.g. with 'git clean -dfx', or just by deleting the BuildOutput directory.

Deleting the BuildOutput folder fixes both solutions! It would be great if the docs included this, at least until both solutions play nicer together. I'll open a PR to add this to the developer guide.


Newest Testflight crashes on launch

@rnystrom?

ruh roh, let me see

Error:
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (Freetime.GithubUserSession) for key (NS.object.0); the class may be defined in source code or a library that is not linked'

This is from the module rename. Crap.

Since we're gonna probably nuke SFAuth the "Freetime" module name shouldn't really show up. I think.


Access individual frames without the DOM

Is using DOM the only option? It would be nice if you can use the library without the DOM. and do whatever you want with the frames.
AsciiMorph.render(bird, function(string) {
   // I can render this on canvas
   // the callback will be called on each frame
});
AsciiMorph.morph(mona);

or Maybe just return list of frames.
AsciiMorph.toFrames(bird, mona);

with this you can use Canvas to render the animation or use he terminal.

@jcubic - did you ever port this / make a fork? (I have been stupidly using observers to do things like this) but frames method is ideal (true CLI) which I should have been doing from the start .-.

No, I totally forgot about this project and I didn't even look at the code. Maybe I should revisit.

I created a copy of the repo (not a fork):
https://github.com/jcubic/ascii-morph
Will refactor the code and make it DOM independent, so you can use CLI or ReactJS.

@jcubic - wow hahaha! That was quick. I'll try throwing up that gist / code I have for you as a gift in return for doing this!

I love open source

@tholman - my exact thought.
That said - thank YOU for sharing this cool library. That said (maybe JCubic will make a nice PR - now we see you are active hahahahaa) cheers 🍻

@jcubic - just playing around here too with your changes. I think a frame approach would be ideal / step using a yield etc...
(as well if not - a mutation observer is needed) - currently no way to catch issues with this.

@jcubic @tholman - taking a gander / lucky guess and seeing if we can all possibility make a solution for this. Kind of asciimorph related (for a library / project) - I am trying to build. Can not seem to figure out how to properly keep text in tack.
Hoping to implement a effect like so - ie: moves from one scene to another in a circular motion, like the hands of a clock.

See CodePen here
Ideally would be nice to implement a design pattern like jcubic suggest earlier in this code - rather than his current fork. As it seems like a better usage for developers. (Hoping ideally to steal ASCII morph as import too - combing a library of cool transitions.) - Have a few others finished currently.


Add a target for net461

We need to update all the references to Identity package that supports 461 before merging this

I've pushed new aplha version to NuGet that targets net461


Support restful style queries in widgets

Suggested new feature or improvement
When filtering on github.com you can get URLs which are restful style:
https://github.com/microsoft/vscode/labels/authentication
As opposed to query style:
https://github.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+label%3Aauthentication+
The restful style does not presently work
Scenario
This would help with copying in filters from github.com
Additional details
No response

Fixing these for the well known links like labels makes sense. Should create a GitHubUri class that handles all validation and extraction of this sort of information and then we can map the Uri parts to a well known or equivalent query and then use that.
This is basically aliasing the clean links that GitHub puts up at places so it works as expected and is valid input to the widgets. These links do have a search equivalent, so the feature request here is to detect a query alias and map it to the associated query, and allow that link as input. Doing this would also shift us to using a more unified Uri validation within an object instead of as static methods.
I'll take this one on, though I have no ETA at this time.


Find next sometimes gets stuck and toggles the last cursor instead of selecting next occurance.

The problem seems to be partly due to the find method replacing the entire cursor list with a new one.
Getting the last cursor might also be broken.


Lazily initialize drivers

Signed-off-by: Chun Chen<EMAIL_ADDRESS>Fixes https://github.com/docker/libnetwork/issues/981
Override https://github.com/docker/libnetwork/pull/980

@chenchun It has been detected that this issue has not received any activity in over 6 months. Can you please let us know if it is still relevant:

For a bug: do you still experience the issue with the latest version?
For a feature request: was your request appropriately answered in a later version?

Thank you!
This issue will be automatically closed in 1 week unless it is commented on.
For more information please refer to https://github.com/docker/libnetwork/issues/1926


Move Alist.Alist 3.12.0 to AList.AList 3.12.0

Microsoft Reviewers: Open in CodeFlow

@wingetbot run


Not working with private repositories

Hi,
I'm trying to run shields.io in heroku to use with my organization private repositories.
I created a secret.json with gh_client_id and gh_client_secret, but when in try to get a badge it returns 'none' as value.
Have I missed something?

(Anyone monitoring this issue?)
It would be nice to have some explanation on using badges with private repositories in the README, on the GitHub page or on Shields.io.

Related issue: #593


PYIC-3257: Add new f2f error page

Proposed changes
What changed
Added new f2f technical error page
Currently has interim welsh translations
By having this page now it will allow us to wire everything up in the backend.
Why did it change
This is the new error page that will be used for f2f. It has specific actions compared to our generic technical error pages.
Issue tracking

PYIC-3257

Checklists
Environment variables or secrets

[x] No environment variables or secrets were added or changed

Coming here to post a comment to see if Slack is down for other people. Just saw @blakeyp 's comment and relieved it's not just me!

According to https://status.slack.com/ all is fine 🙃

I know, weird. Might just be the GDS workspace? GMail has chat, can use that in it's absence.


Use same local IP as tunnel binds to

This fixes issues with machines that can't resolve localhost to
<IP_ADDRESS>

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

Use same tunnel address as specified for SSH, fixes tunnels on hosts that can't resolve localhost

/lgtm


Use default lib, update CompilerHost

There are 3 commits in this PR.

The first commit removes the noLib option from the examples and self tests so that the standard lib for the current compiler will be used, and removes the repo's local copies of lib.d.ts and lib.core.d.ts. Some of typedoc's dependencies were using newer features (like the Partial type) that the included copies of the default lib lacked. This change seemed like a better way to go that maintaining multiple local copies of the default lib.
The second commit updates the copies of the generated test files in the repo. The default theme has been updated since they were last generated, so elements related to the default template are different (e.g., modernizr was removed). I'm assuming those are present for simple comparative purposes (e.g., run the tests and verify that the output hasn't changed).
The third commit adds an implementation of the optional directoryExists property to the CompilerHost class. This property must be present for TypeScript's automatic type discovery to work (like finding things in @types).

My initial goal was just to add the directoryExists property to CompilerHost. I added the other two commits after running into problems running the self tests. I'm not sure of the history behind the current way the repo is organized, so the first two commits may not be desirable changes, but they seemed reasonable to me.

Interesting. So, the selftests were frequently failing for me with errors like those in https://travis-ci.org/TypeStrong/typedoc/jobs/199618572, which are due to missing type definitions (those from the old version of the default lib were being used). The current failures appear to be due to timing issues (the VM took too long to run a test).
Closing and reopening to restart the tests...

Oh, yeah, the type errors in https://travis-ci.org/TypeStrong/typedoc/jobs/199618572 were happening because of the addition of directoryExists. With that method on the CompilerHost, TS started looking up types automatically, and some of the @types installed for typedoc rely on newer TS features, so things started breaking. Using the actual TS default lib in tests takes care of the issue.
The current failures are happening because removing the --noLib option from the tests causes rendering to take a bit longer, so some of the tests are timing out.

Missed a timeout. Restarting...

I believe this PR is ok, though given the large number of changes, can someone else review also?

I can split up the PR if that's helpful. I could also remove the commit that updates the test cases (probably the majority of changed files). I wasn't 100% sure why those were there since they're generated; I just updated them since they kept showing up as changed, and the changes appeared to be due to template updates.

It should be ok, I looked over it and it seemed good. I'm a little confused where the GitHub metric is coming up with 25000 deletions, I only see a single large ~4000 line file deleted. The rest appear to be relevant updates.

Mostly it was the other lib file (lib.d.ts), which was a bit over 17k lines.


Authenticating for a different domain using SAML_ALLOWED_HOSTS fails

We are trying to configure our SSO SP for subdomains other than the one that receives the AssertionConsumerService POST. For example:
SAML_ALLOWED_HOSTS = ['b.example.com']
SAML_CONFIG = { 'service': { 'sp': { 'endpoints': { 'assertion_consumer_service': [('https://a.example.com/saml2/acs/', saml2.BINDING_HTTP_POST)]}}}}

We start the login with:
https://a.example.com/saml2/login/?next=https://b.example.com/dashboard&idp=idp-id

This performs the SSO correctly and forwards the user to https://b.example.com/dashboard as expected. But the user is not logged in there. They are logged in at https://a.example.com/dashboard.
It appears that the cookies are always saved to a.example.com.
Any ideas how to fix this? Thanks!

wow, I never had an idea like this in my life!
You can do something like this using a modified (inherited) samesite middleware
as you can see, for security reason, the session cookie domain is fixed here
https://github.com/IdentityPython/djangosaml2/blob/master/djangosaml2/middleware.py#L73
i suggest you, if you want in this way, to filter over a list of allowed domains before settings the cookie with the request domain dynamically
No, I want implement this in the mainline but I appreciate the "original" ideas like this one :)

@peppelinux Here is the PR: https://github.com/IdentityPython/djangosaml2/pull/336

hi @shadowbrush, do you ahve any update on this issue?


Check for null on getEndpoint when not forcing create

Chad and I saw this throw an exception when endpoint is null, which in turn closed the web socket.

Thanks! Lgtm

LGTM!


Changes in OC WWCode Monterrey

Email from Brittani:

Please change Q1 Budget to MXN200
https://opencollective.com/wwcodemonterrey/transactions

the budget here is 200 MXN already.


resolves #11 export theme icons to PlantUML format

Point to tackle
As you can see below, images are not automatically scaled. The AWS theme provided by Structurizr is using relatively high resolution images: https://structurizr.com/help/theme?url=https://static.structurizr.com/themes/amazon-web-services-2020.04.30/theme.json
PlantUML supports a scale attribute, for instance:
<EMAIL_ADDRESS>
The main issue is that we don't know the size of images so we cannot blindly apply a scale. In other words, a 0.1 scale is fine if the image size is 200px x 200px but won't be so great when the image size is 20px x 20px.
Also, I noticed that not all images in the AWS theme have the same size:

Anyway, here's the result using AWS theme:
C4 PlantUML

I guess we could also configure border colors?
PlantUML

resolves #11

@simonbrowndotje Any thoughts on this?

Without a way to specify an icon size in PlantUML, I'm uncomfortable merging this I'm afraid, because I can foresee issues being continually raised to say that icon support doesn't work as expected ... and I don't really want to deal with that. It's certainly possible to modify the AWS/Azure/GCP/etc themes to use a specific icon size, but many users are using their own icons.

Without a way to specify an icon size in PlantUML

That's probably the best way to resolve this issue.

I'm uncomfortable merging this I'm afraid, because I can foresee issues being continually raised to say that icon support doesn't work as expected ... and I don't really want to deal with that. It's certainly possible to modify the AWS/Azure/GCP/etc themes to use a specific icon size, but many users are using their own icons.

One way, would be to automatically get image dimensions (for instance using https://stackoverflow.com/a/1560052) and apply the corresponding scale. What do you think?

I've added icon support to the StructurizrPlantUMLExporter and, as you suggested, the icons are loaded so that the appropriate scale can be determined. A diagram key/legend is now also created. This is available in v1.7.0 on Maven Central. Here's the AWS example.

That's awesome 😍

I guess we can close this pull request?


No space before ellipsis

This is a stylistic choice and style manuals vary. Our existing usage is about 75% no space so making that the standard and removing any spaces before ellipses.

6a0f666.


Add Integer DDL compiler

Athena uses different expressions for integer depending on the type of query.
int – In Data Definition Language (DDL) queries like CREATE TABLE, use the int data type.
integer – In DML queries like SELECT * FROM, use the integer data type.

Commit pushed on main branch.


calico custom-resources.yaml enable TYPHA_PROMETHEUSMETRICSENABLED=true

I use quickstart install the calico , But soon after I enable TYPHA_PROMETHEUSMETRICSENABLED=true in
calico-typha daemonset，the pod of calico-typha will rebuild and remove the TYPHA_PROMETHEUSMETRICSENABLED option
how can i enable the enable TYPHA_PROMETHEUSMETRICSENABLED=true in  custom-resources.yaml?
Your Environment

Calico version : 3.21.1
Orchestrator version (e.g. kubernetes, mesos, rkt): k8s 1.19.15
Operating System and version: centos7
Link to your project (optional):

In a system installed by tigera-operator, you should be configuring this sort of thing in the Installation resource.  https://docs.projectcalico.org/reference/installation/api
I think you need to set spec.typhaMetricsPort=9091 in the Installation.  That will cause operator to set  TYPHA_PROMETHEUSMETRICSENABLED=true in the calico-typha daemonset

https://docs.projectcalico.org/reference/installation/api

thank you


Make all root $ids absolute URIs

I noticed that there are a few root $ids in some tests that aren't absolute. These tests should work if the test harness assigns an arbitrary retrieval URI, but I don't think that should be expected.

Will have a closer look but at first scan looks right to me.

Works for me, but yeah mine converts to an absolute URI, so maybe not the best yardstick.

I do something similar. My test harness generates a retrieval URI for each test that resolves against the schema's $id (if any) so I always have a non-relative URI. However, I ran in to a problem when you added the tests for file: URIs. My implementation has a restriction that you can't go from http: to file:. Browsers have a similar rule for security purposes. So, my implementation (correctly) started throwing an error when it received a file: $id from an http: retrieval URI. But, that's not a problem with the test, it's a problem with the test harness.
So, I decided to change my test harness to use $id as the retrieval URI if it existed to avoid this problem. That's when I ran into this problem with relative $ids.


[11.x] Prefer new Fluent over fluent() helper

This PR updates the framework to prefer the use of new Fluent() the fluent() helper.
The changes maintain the same functionality while improving consistency and code clarity within the framework. Additional updates can be made if this approach is accepted.

love it


Could you add a license to this repo?

Hi, could you please assign a standardized license to this project? I was considering using it but there seems to be a lack of a license in the repo. If I missed it, could you please point it out to me?

Hi,
You're right, the project has no license as of today. I herewith allow you to use the library in any form you want, commercially or not. Just add a reference to me in your project reference somewhere, thank you.

Thanks.


KORC fails to build with latest master

I am no longer able to build KORC with gfortran-9 or gfortran-11 at commit 38ed2f3ce26d1d00d148d0927c13ed5164d80bbb (current master). The error message is below
/home/svh/Documents/KORC/src/korc_ppusher.f90:19:34:

   19 |   TYPE(KORC_2D_FIELDS_INTERPOLANT)      :: bfield_2d_local
      |                                  1
Error: Derived type ‘korc_2d_fields_interpolant’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:20:34:

   20 |   TYPE(KORC_2D_FIELDS_INTERPOLANT)      :: b1Refield_2d_local
      |                                  1
Error: Derived type ‘korc_2d_fields_interpolant’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:21:34:

   21 |   TYPE(KORC_2D_FIELDS_INTERPOLANT)      :: b1Imfield_2d_local
      |                                  1
Error: Derived type ‘korc_2d_fields_interpolant’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:22:31:

   22 |   TYPE(KORC_INTERPOLANT_DOMAIN)        :: fields_domain_local
      |                               1
Error: Derived type ‘korc_interpolant_domain’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:23:35:

   23 |   TYPE(KORC_2DX_FIELDS_INTERPOLANT)      :: b1Refield_2dx_local
      |                                   1
Error: Derived type ‘korc_2dx_fields_interpolant’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:24:35:

   24 |   TYPE(KORC_2DX_FIELDS_INTERPOLANT)      :: b1Imfield_2dx_local
      |                                   1
Error: Derived type ‘korc_2dx_fields_interpolant’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:25:35:

   25 |   TYPE(KORC_2DX_FIELDS_INTERPOLANT)      :: e1Refield_2dx_local
      |                                   1
Error: Derived type ‘korc_2dx_fields_interpolant’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:26:35:

   26 |   TYPE(KORC_2DX_FIELDS_INTERPOLANT)      :: e1Imfield_2dx_local
      |                                   1
Error: Derived type ‘korc_2dx_fields_interpolant’ at (1) is being used before it is defined
/home/svh/Documents/KORC/src/korc_ppusher.f90:935:93:

  935 |       call provide_ezspline_aorsa_ACC(bfield_2d_local,b1Refield_2dx_local,b1Imfield_2dx_local, &
      |                                                                                1
Error: Symbol ‘b1imfield_2dx_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:935:73:

  935 |       call provide_ezspline_aorsa_ACC(bfield_2d_local,b1Refield_2dx_local,b1Imfield_2dx_local, &
      |                                                                         1
Error: Symbol ‘b1refield_2dx_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:935:53:

  935 |       call provide_ezspline_aorsa_ACC(bfield_2d_local,b1Refield_2dx_local,b1Imfield_2dx_local, &
      |                                                     1
Error: Symbol ‘bfield_2d_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:936:47:

  936 |         e1Refield_2dx_local,e1Imfield_2dx_local,fields_domain_local)
      |                                               1
Error: Symbol ‘e1imfield_2dx_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:936:27:

  936 |         e1Refield_2dx_local,e1Imfield_2dx_local,fields_domain_local)
      |                           1
Error: Symbol ‘e1refield_2dx_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:936:67:

  936 |         e1Refield_2dx_local,e1Imfield_2dx_local,fields_domain_local)
      |                                                                   1
Error: Symbol ‘fields_domain_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:716:90:

  716 |       call provide_ezspline_mars_ACC(bfield_2d_local,b1Refield_2d_local,b1Imfield_2d_local, &
      |                                                                                1
Error: Symbol ‘b1imfield_2d_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:716:71:

  716 |       call provide_ezspline_mars_ACC(bfield_2d_local,b1Refield_2d_local,b1Imfield_2d_local, &
      |                                                                       1
Error: Symbol ‘b1refield_2d_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:716:52:

  716 |       call provide_ezspline_mars_ACC(bfield_2d_local,b1Refield_2d_local,b1Imfield_2d_local, &
      |                                                    1
Error: Symbol ‘bfield_2d_local’ at (1) has no IMPLICIT type
/home/svh/Documents/KORC/src/korc_ppusher.f90:717:27:

  717 |         fields_domain_local)
      |                           1
Error: Symbol ‘fields_domain_local’ at (1) has no IMPLICIT type
make[2]: *** [src/CMakeFiles/xkorc.dir/build.make:153: src/CMakeFiles/xkorc.dir/korc_ppusher.f90.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:98: src/CMakeFiles/xkorc.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
svh@LAP131024:~/Documents/KORC/build$

Going back before the ACC changes, commit fcc8de8c9c4466374e8c8e4ddbf9bbf8a7484d66 seems to build successfully with GFORTRAN.

Is the code being compiled with the "-DPSPLINE" option (setting "-DUSE_PSPLINE=ON" in the setup_cmake file)? If the precompiler option isn't set, the derived types being used in korc_ppusher.f90 are not defined in kore_interp.f90.
I have added a couple of lines in commit 39a2940 that include the precompiler options in korc_ppusher.f90 the same way they are in korc_interp.f90. Please see if this fixes the issue.

I missed a few #ifdef PSPLINE blocks in korc_ppusher.f90 that caused the build in the spackpack pull request to fail. This has been addressed there and should appear in the master branch when that is merged.


allow shulker block placing even when named block placing enabled

I have rewritten the "prevent renamed item using" feature as part of #33, so this won't work anymore. But you are welcome to just open a new pr into the "preventer-1.1.0" branch with the changes.


gps: Fix typo on README.md - init NmeaGpsModule

The constructor of NmeaGpsModule class doesn't receive a context param, it's the NmeaGpsDriver class that need this param.

I signed it!

Thanks for flagging and fixing this!


Error installing NPM requirements

It seems likely that one of the requirements via the identified command list from DEF_NODE_PACKAGES_REQUIRED is faulty. I got the following printout when trying to run npm directly from my chosen node modules directory.
(main) C:\dev\Django_Projects\RankedJobs\main\src\frontend>npm  install<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>npm WARN deprecated<EMAIL_ADDRESS>Use UnCSS through gulp-postcss instead.
npm WARN deprecated<EMAIL_ADDRESS>gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
npm WARN deprecated<EMAIL_ADDRESS>this package is now deprecated
npm WARN deprecated<EMAIL_ADDRESS>Use uuid module instead
npm WARN deprecated<EMAIL_ADDRESS>ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated<EMAIL_ADDRESS>This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated<EMAIL_ADDRESS>This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated<EMAIL_ADDRESS>This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated<EMAIL_ADDRESS>This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated<EMAIL_ADDRESS>This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).

><EMAIL_ADDRESS>install C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\phantomjs-prebuilt
> node install.js

PhantomJS not found on PATH
Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-windows.zip
Saving to D:\Users\mrbub\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.zip
Receiving...
  [===================================-----] 88%
Received 17767K total.
Extracting zip contents
Removing D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\phantomjs-prebuilt\lib\phantom
Copying extracted folder D:\Users\mrbub\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.zip-extract-1576262059004\phantomjs-2.1.1-windows -> D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\phantomjs-prebuilt\lib\phantom
Writing location.js file
Done. Phantomjs binary available at D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\phantomjs-prebuilt\lib\phantom\bin\phantomjs.exe

><EMAIL_ADDRESS>install C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\gulp-sass\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-72_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-72_binding.node":

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g.

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080

><EMAIL_ADDRESS>install C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-72_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-72_binding.node":

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g.

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080

><EMAIL_ADDRESS>postinstall C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\gifsicle
> node lib/install.js

  √ gifsicle pre-build test passed successfully

><EMAIL_ADDRESS>postinstall C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\jpegtran-bin
> node lib/install.js

  √ jpegtran pre-build test passed successfully

><EMAIL_ADDRESS>postinstall C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\optipng-bin
> node lib/install.js

  √ optipng pre-build test passed successfully

><EMAIL_ADDRESS>postinstall C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\gulp-sass\node_modules\node-sass
> node scripts/build.js

Building: C:\Languages\NodeJs\node.exe D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli   'C:\\Languages\\NodeJs\\node.exe',
gyp verb cli   'D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library='
gyp verb cli ]
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "D:\Users\mrbub\.windows-build-tools\python27\python.exe" in the PATH
gyp verb `which` failed Error: not found: D:\Users\mrbub\.windows-build-tools\python27\python.exe
gyp verb `which` failed     at getNotFoundError (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:13:12)
gyp verb `which` failed     at F (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:68:19)
gyp verb `which` failed     at E (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:80:29)
gyp verb `which` failed     at D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:89:16
gyp verb `which` failed     at D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\isexe\index.js:42:5
gyp verb `which` failed     at D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:169:21)
gyp verb `which` failed  D:\Users\mrbub\.windows-build-tools\python27\python.exe Error: not found: D:\Users\mrbub\.windows-build-tools\python27\python.exe
gyp verb `which` failed     at getNotFoundError (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:13:12)
gyp verb `which` failed     at F (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:68:19)
gyp verb `which` failed     at E (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:80:29)
gyp verb `which` failed     at D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\which\which.js:89:16
gyp verb `which` failed     at D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\isexe\index.js:42:5
gyp verb `which` failed     at D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:169:21) {
gyp verb `which` failed   stack: 'Error: not found: D:\\Users\\mrbub\\.windows-build-tools\\python27\\python.exe\n' +
gyp verb `which` failed     '    at getNotFoundError (D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\which\\which.js:13:12)\n' +
gyp verb `which` failed     '    at F (D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\which\\which.js:68:19)\n' +
gyp verb `which` failed     '    at E (D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\which\\which.js:80:29)\n' +
gyp verb `which` failed     '    at D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\which\\which.js:89:16\n' +
gyp verb `which` failed     '    at D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\isexe\\index.js:42:5\n' +
gyp verb `which` failed     '    at D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\isexe\\windows.js:36:5\n' +
gyp verb `which` failed     '    at FSReqCallback.oncomplete (fs.js:169:21)',
gyp verb `which` failed   code: 'ENOENT'
gyp verb `which` failed }
gyp verb could not find "D:\Users\mrbub\.windows-build-tools\python27\python.exe". checking python launcher
gyp verb could not find "D:\Users\mrbub\.windows-build-tools\python27\python.exe". guessing location
gyp verb ensuring that file exists: C:\Python27\python.exe
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "D:\Users\mrbub\.windows-build-tools\python27\python.exe", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\node-gyp\lib\configure.js:484:19)
gyp ERR! stack     at PythonFinder.<anonymous> (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\node-gyp\lib\configure.js:509:16)
gyp ERR! stack     at callback (D:\Users\mrbub\OneDrive\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\graceful-fs\polyfills.js:295:20)
gyp ERR! stack     at FSReqCallback.oncomplete (fs.js:169:21)
gyp ERR! System Windows_NT 10.0.19037
gyp ERR! command "C:\\Languages\\NodeJs\\node.exe" "D:\\Users\\mrbub\\OneDrive\\dev\\Django_Projects\\RankedJobs\\main\\src\\frontend\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\gulp-sass\node_modules\node-sass
gyp ERR! node -v v12.11.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
npm WARN rollback Rolling back<EMAIL_ADDRESS>failed (this is probably harmless): EPERM: operation not permitted, rmdir 'C:\dev\Django_Projects\RankedJobs\main\src\frontend\node_modules\fsevents'
npm WARN notsup Unsupported engine for<EMAIL_ADDRESS>wanted: {"node":">=0.10.0 <7"} (current: {"node":"12.11.1","npm":"6.12.0"})
npm WARN notsup Not compatible with your version of node/npm<EMAIL_ADDRESS>npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      D:\Users\mrbub\AppData\Roaming\npm-cache\_logs\2019-12-13T18_34_28_692Z-debug.log

As I'm digging through this more, it seems like there are two issues:

the subprocess run command needs the shell=True argument to run the list of line command components.

The NPM modules are out of date/non-existent

Foundation Email requires Node v10; newer versions (like 12) are not compatible with the CLI.

Is it possible to build nvm or anything into this module?

The workaround I have right now is to install and work with Foundation Email via the Sass and node.js method directly. I had to utilize npx to run Node as v10.  These were the commands that ultimately worked for me.
npm install -g foundation-cli
npx -p node@10 foundation new --framework emails
ren at the prompt, write in the name of the project. For this demo, I chose Emails
cd Emails
npx -p node@10 foundation watch

Trying to install foundation emails directly w/o Node v.10 causes issues with certain previously-native packages like primordial. This seems like the best workaround.


V1 0 69 to main

What this PR does:
Merges v1 into main to resolve bogus version differences in pom.xmls after release
Which issue(s) this PR fixes:
Checklist

[ ] Changes manually tested
[ ] Automated Tests added/updated
[ ] Documentation added/updated
[ ] CLA Signed: DataStax CLA

Just to confirm - the net change from these two commits appears to be the removal of a single line comment?

@jeffreyscarpenter Yes. Unfortunately merging "no changes" is not possible, which is unfortunate -- what happens here is that we have a merge conflict with every pom.xml (due to different versions, changes), which has to be "merged". But since main does not change, cannot do PR without at least one actual change.

Not needed since I have to release v2.0.3, closing.


Add fix for Unity 2021 and below

Add ifdef to switch Unity 2022's compact UnityWebRequest.Post(..., "application/json")
for Unity 2021's more verbose post.SetRequestHeader("Content-Type", "application/json");

Your workaround is correct, but this project is tutorial material for ChatGPT and web API programming. I prefer providing simpler/clearer code for it. So I intentionally used the latest API.

That's unfortunate...

There is no technical problem in your PR, and your workaround is correct for use in general. Thanks for the suggestion anyway!


Use dlopen to load NCCL.

This PR adds optional support for loading nccl with dlopen as an alternative of compile time linking. This is to address the size bloat issue with the PyPI binary release.

Add CMake option to load nccl at runtime.
Add an NCCL stub.

After this, nccl will be fetched from PyPI when using pip to install XGBoost, either by user or by pyproject.toml. Others who want to link the nccl at compile time can continue to do so without any action.

cc @rongou @hcho3 @RAMitchell @jakirkham This is ready for review now.

cc @WeichenXu123 .

I can work on https://github.com/conda-forge/xgboost-feedstock/issues/150#issuecomment-1820930122 after this PR.


Multi-tenancy default tenant - can no longer add hosts

Hi all, I […and several others judging by the Orchard mini-site blog posts] use the Default tenant with n# of comma delimited hosts to create simple mini-sites within orchard only requiring one admin due to having all the mini-sites content accessible via all. This has always worked fine with previous versions of Orchard, but recent code amendments - namely:
Orchard.Multitenancy\Controllers\AdmainController
public ActionResult EditPost(TenantEditViewModel viewModel) { …. if (tenant == null) return HttpNotFound(); else if (tenant.Name == _thisShellSettings.Name) return new HttpUnauthorizedResult();
...breaks this ability; as in, you can't save/add any hosts to the default tenant like you use to be able to.  Can this be investigated - and forgive my ignorance - for I don't really get why it was added. This is a fairly major issue for us as we have several sites relying on this ability, with another being constructed as we speak. Thanks in advance, Li

Updated issue Title to reflect that it exists in Dev and 1.10