Citizenship status added to search user row

🗃 Github Issue Or Explanation for this PR. (What is it supposed to do and Why is needed)
#1370
✅ Checklist

[x] Github issue details are up to date for people to QA.
[x] I have tested all my changes.

🕵♂ Notes for Code Reviewer
The main modifications here were on the MemberModel and SearchResultRow.
🙈 Screenshots

Send
Delegate

👯♀ Paired with
"nobody"

The rest looks good

@RaulUrtecho  When you fix a bug, pls have the PR be to fix the bug and nothing else.
I know you mean to refactor the Blocs, but that must be done on a different PR.

Single responsibility PRs

I think the cache issue needs to be addressed - the read/write format for the cache is not backwards compatible so the easiest way to deal with this is when opening the cache file, use a different file name than before, so we ignore the previous file and start populating a whole new cache file.
Otherwise, it will lead to errors with existing users

I mean they could clean the cache but I agree that the best is avoid the issue from beginning.

@RaulUrtecho When you fix a bug or add a feature, pls have the PR be to fix the bug or add a feature and nothing else.
I know you mean to refactor the Blocs, but that must be done on a different PR.

I know that in previous PR, in addition to making the correction, the affected block also migrated.
But that's not the case here. To accomplish the issue task I had to change this Bloc state class and mappers nothing more, because that bloc state used unnecessarily 3 fields instead of one and now the MemerModel is a required. I didn't do any migration here.

Looks good


 Is there a particular reason why wak doesn't use bucket hashmaps (array of lists of elements with the same hash)? Or is it something else?

How did you find my implementation? I didn't think anyone would stumble across this.
Try replacing the program with e.g. '{1==1}' and show me those times. (My version of bwkawk gets a syntax error with just '{1}'.)
I think the slowness is mainly in the i/o. I'll try to make it faster, after I fix a lot of other stuff first.
BTW your gawk seems quite faster than mine.

Thanks for the reply.

How did you find my implementation?

Mine too.

I think the slowness is mainly in the i/o. I'll try to make it faster, after I fix a lot of other stuff first.

Dunno. I was trying wak with my solutions to this year's AoC puzzles, day 23 took too long and I thought the hashmap implementation was to blame. Both the script and input are here https://gist.github.com/oguz-ismail/e985900b4d8530f12e54c1349f5cd654 gawk, mawk, bwkawk and goawk finish under 2 minutes, wak and busybox awk take longer than 10 minutes.

BTW your gawk seems quite faster than mine.

It's gawk 5.3.0 on Ubuntu 22.04.

TL;DR: overhead in interpx(), no idea how to reduce.
OPERATION  TIME (s)  TIMES USED  AVERAGE TIME (µs)
tkassign   2.481174  2000000     1.24059
drop       3.600398  1000000     3.6004
tkeq       2.185214  1000000     2.18521

More complex explanation:
Out of interest, I strace-d the programs to see the read sizes
nawk and gawk read 4096 bytes at a time, mawk reads 262143 bytes at a time. While busybox awk only reads 462 bytes at a time. Strangely enough wak also reads 4096 bytes at a time. I doubt it's the hash table lookups since wak is slow by the same proportion when not doing them.
Testing on a debug build and dumping the bytecode shows:
14 zcode entries
zcode   0:   1 tkeof
zcode   1:   5 tknumber  1  1.000000
zcode   3:   5 tknumber  2  1.000000
zcode   5:  32 ==
zcode   6:  96 drop
zcode   7: 112 quit
zcode   8:  -1 NOTOKEN
zcode   9:   5 tknumber  3  123.000000
zcode  11:  60 tkexit
zcode  12: 112 quit
zcode  13: 112 quit

The "123" is the seed for the srandom() stuff, but debug-printf-ing through, we aren't seeding the random number generator every line.
The only operations that are running are "drop" "tkassign" and "tkeq". I timed these and averaged them with awk (Table at top, tested with a debug build made with "cc *.c -lm").

@oliverkwebb It's twice as faster with these changes
diff --git a/src/lib.c b/src/lib.c
index a116bb1..392cda2 100644
--- a/src/lib.c
+++ b/src/lib.c
@@ -95,7 +95,6 @@ EXTERN char *xstrdup(char *s)
 #endif  // FOR_TOYBOX
 EXTERN double str_to_num(char *s)
 {
-  setlocale(LC_NUMERIC, "");
   return atof(s);
 }

diff --git a/src/main.c b/src/main.c
index 4a2581d..2ace15f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -125,6 +125,7 @@ int main(int argc, char **argv)
     uselocale(h ? h : newlocale(LC_CTYPE_MASK, "en_US.UTF-8", 0));
   }
 #endif
+	setlocale(LC_NUMERIC, "");

   retval = awk(sepstring, progstring, prog_args, assign_args, optind,
        argc, argv, opt_run_prog);
diff --git a/src/run.c b/src/run.c
index b8ddef8..0fb7412 100644
--- a/src/run.c
+++ b/src/run.c
@@ -16,7 +16,6 @@ static void check_numeric_string(struct zvalue *v)
     // Significant speed gain with this test:
     // num string must begin space, +, -, ., or digit.
     if (strchr("+-.1234567890 ", *s)) {
-      setlocale(LC_NUMERIC, "");
       double num = strtod(s, &end);
       if (s == end || end[strspn(end, " ")]) return;
       v->num = num;

wak wastes too much time compiling the same regex over and over as well. Perhaps it's wiser to compile FS only after it's changed.

@oliverkwebb, thanks for the timing info etc.
@oguz-ismail, Thanks. I have the setlocale() calls on my todo list, need to
be sure how to safely move them. They are where they are from long ago when
I first worked on conversions based on what the posix spec says.
I thought I was already cacheing the FS regex, I’ll look into that. I know
I’m not yet cacheing the RS regex, and the whole regex-as-RS thing needs
work, especially in that I still use getdelim() in the code that reads
“multiline records” (still not sure that’s correct, either). I think
there’s probably some way to roll up the data-reading code to be faster and
more compact.
Now that the code is “out there” I’m getting advice faster than I can keep
up, but I’ll try to stay on top of it. (I was going to give it all a break
for a while but stuff happened.) I was (am?) more interested in getting
actual bugs out before worrying much more about speed.
Still need to get my testing regime cleaned up and posted in a repo.
Ray Gardner
Centennial, CO
raygard.net
On Thu, Mar 28, 2024 at 1:43 AM oguz-ismail @.***>
wrote:

@oliverkwebb https://github.com/oliverkwebb It's twice as faster with
these changes
diff --git a/src/lib.c b/src/lib.c
index a116bb1..392cda2 100644--- a/src/lib.c+++ b/src/lib.c@@ -95,7 +95,6 @@ EXTERN char *xstrdup(char *s)
#endif  // FOR_TOYBOX
EXTERN double str_to_num(char *s)
{-  setlocale(LC_NUMERIC, "");
return atof(s);
}
diff --git a/src/main.c b/src/main.c
index 4a2581d..2ace15f 100644--- a/src/main.c+++ b/src/main.c@@ -125,6 +125,7 @@ int main(int argc, char **argv)
uselocale(h ? h : newlocale(LC_CTYPE_MASK, "en_US.UTF-8", 0));
}
#endif+	setlocale(LC_NUMERIC, "");
retval = awk(sepstring, progstring, prog_args, assign_args, optind,
argc, argv, opt_run_prog);diff --git a/src/run.c b/src/run.c
index b8ddef8..0fb7412 100644--- a/src/run.c+++ b/src/run.c@@ -16,7 +16,6 @@ static void check_numeric_string(struct zvalue *v)
// Significant speed gain with this test:
// num string must begin space, +, -, ., or digit.
if (strchr("+-.1234567890 ", *s)) {-      setlocale(LC_NUMERIC, "");
double num = strtod(s, &end);
if (s == end || end[strspn(end, " ")]) return;
v->num = num;
wak wastes too much time compiling the same regex over and over as well.
Perhaps it's wiser to compile FS only after it's changed.
—
Reply to this email directly, view it on GitHub
https://github.com/raygard/wak/issues/2#issuecomment-2024593838, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AF5CW6HL2CYAMAYAZ6OFQV3Y2PC35AVCNFSM6AAAAABFK2TGYWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRUGU4TGOBTHA
.
You are receiving this because you commented.Message ID:
@.***>

Thanks. I have the setlocale() calls on my todo list, need to be sure how to safely move them. They are where they are from long ago when I first worked on conversions based on what the posix spec says.

Would initializing them in main() be enough? I'm not too familiar with the locale subsystem but from a quick look at the man page, doing setlocale(LC_*, "") sets the local based on environment variables. These environment variables changing during the running of awk is possible, since we have the ENVIRON variable, but I don't see why it's a greater priority then being able to process lines quickly.
From what I know, LC_NUMERIC exists because of commas and decimal points in numbers, you can't put commas in numbers in awk code: "1.200" could be read different on a locale and be processed as 1200 (or maybe just 1 because strtowhatever() doesn't process separators that aren't the decimal seperator), but "1,200" gives a syntax error. Meaning you can't declare fractional numbers anymore on certain locales.
gawk doesn't seem to care, I can't find a way to configure my locale so it'll use something other than "." for a decimal separator, dunno what the solution to this is.

I have removed the two setlocale() calls from the conversion locations and put it into awk() so it gets called in both toybox and non-toy versions.

@oguz-ismail You were right, the problem was with the hash table being too slow. Try it now. I had wrongly assumed deletions would be rare but your code does a lot of them. When a table entry is deleted, I mark the slot deleted. Now, when I am inserting, I use the first slot I find that is empty or is marked deleted. I think this works correctly, and much faster for your case. There are still patterns of insert/delete that may slow down, but this should fix cases like yours.
You asked " Is there a particular reason why wak doesn't use bucket hashmaps (array of lists of elements with the same hash)? " I think open addressing is generally considered faster and I think is more space-efficient, and buckets with chaining have problems with deletions as well.

Thanks, with these changes wak is now as fast as bwkawk in all my tests except the ones that stress the regex engine. Other awks overcome the limitations of OS-provided regex functionality by rolling their own, but since this one aims compactness I doubt you plan that. Anyway, I'm glad this issue is resolved, thanks again and have a nice day.

@oguz-ismail (and @oliverkwebb ) this is closed but you may be interested to know: while chasing this problem, I took the 23x23 example maze in the AOC (https://adventofcode.com/2023/day/23) and ran it through the various awks. All printed 94/154 except busybox awk, which printed 154/154. So that awk is not only slow, it's defective. I have not tried to find where in 2323.awk it fails.
The hashing routines may need more work, but I also need to keep them short, too.

@raygard busybox awk has many defects, the one you spotted can be reproduced like so:
$ busybox awk 'BEGIN{a[5]; f(a)} function f(b){print length(b)}'
0


Applying theme font does not change

I have a fresh install of Obisdian and when I apply this theme (Obsidian nord) my writing font does not change to reflect what is in the theme (in edit mode) - which looks like Source Code Pro from the screenshot. When I try the Obisdian gruvbox theme all the fonts are changed and work.
Is there something missing that might be causing this?

I just ran into this too. I looked at the css in the gruvbox theme and found this snippet setting the CodeMirror font-family:
https://github.com/insanum/obsidian_gruvbox/blob/master/obsidian.css#L261-L267
I isolated it down to this:
.CodeMirror-code {
    font-family: var(--font-monospace);
}

@aluciani as a workaround to use the monospace font in the editor for your local theme, create a css file with that snippet under {vault}/.obsidian/snippets/.
I'd like to open a PR with the fix as well if I can get to it this week.

Thank you @shelbyspees for helping out, really appreciate it :)

Fixed.


hugofs: Fix glob case-sensitivity bug

On Linux, hugofs.Glob does not hit any directories which include uppercase letters. (This does not happen on macOS.)
Since resources.GetMatch/Match uses Glob,
{{ resources.GetMatch "FOO/bar.css" }}

this does not match assets/FOO/bar.css .
On the other hand, you can get it with
{{ resources.Get "FOO/bar.css" }}

OK, looks good now, but GitHub says I cannot merge due to conflicts (not sure what those are); can you rebase/squash this PR?

Merged.

Sorry for delayed response
Thanks for cleaning up the history


Unused  @ts-expect-error comment

Description
Given the following tsconfig.json configuration, typescript warns about an unused @ts-expect-error comment in core/request.ts at line 28 (i assume this file is input agnostic to that point but i'll share the contents.)
  "target": "ES2020",
  "useDefineForClassFields": true,
  "lib": ["ES2020", "DOM", "DOM.Iterable"],
  "module": "ESNext",
  "skipLibCheck": true,

  /* Bundler mode */
  "moduleResolution": "bundler",
  "allowImportingTsExtensions": true,
  "allowSyntheticDefaultImports": true,
  "exactOptionalPropertyTypes": true,
  "esModuleInterop": true,
  "resolveJsonModule": true,
  "isolatedModules": true,
  "noEmit": true,
  "jsx": "react-jsx",
  "jsxImportSource": "@emotion/react",

  /* Linting */
  "strict": true,

The contents of core/request.ts:
export const base64 = (str: string): string => {
  try {
    return btoa(str);
  } catch (err) {
    // @ts-expect-error
    return Buffer.from(str).toString('base64');
  }
};

OpenAPI specification (optional)
No response
Configuration
No response
System information (optional)
No response

@DonnyVerduijn does this prevent you from generating a client?

No. It's just a type error.

It does! Didn't know that.
src/__generated/api/core/request.ts:28:5 - error TS2578: Unused '@ts-expect-error' directive.

28     // @ts-expect-error
       ~~~~~~~~~~~~~~~~~~~

src/__generated/api/services.gen.ts:104:31 - error TS2379: Argument of type '{ method: "POST"; url: string; formData: { fileName?: Blob | File; } | undefined; mediaType: string; errors: { 500: string; }; }' is not assignable to parameter of type 'ApiRequestOptions' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.
  Types of property 'formData' are incompatible.
    Type '{ fileName?: Blob | File; } | undefined' is not assignable to type 'Record<string, unknown>'.
      Type 'undefined' is not assignable to type 'Record<string, unknown>'.

104     return __request(OpenAPI, {
                                  ~
105       method: 'POST',
    ~~~~~~~~~~~~~~~~~~~~~
...
111       },
    ~~~~~~~~
112     });
    ~~~~~

Found 2 errors in 2 files.

Errors  Files
     1  src/__generated/api/core/request.ts:28
     1  src/__generated/api/services.gen.ts:104

The problem with this, is that i'm generating the client postinstall (the client is not versioned), so during a CI run, tsc would break the pipeline.

Same question as the other issue, does using a standalone client solve this?

Same question as the other issue, does using a standalone client solve this?

Yes, although i prefer using the services. It has a lot of benefits in terms of intellisense, which is the primary reason to use this generator. What are you're thoughts on that, given the effort you're putting into this?

By the way, i just had to revert @hey-api/openapi-ts back to 0.45.1 after upgrading. It seems there is a regression in 0.46.1

The referenced services were missing. I cleaned the working directory to be sure and reverted all changes (even removing fetch-client from node_modules), but 0.46.1 was not able to generate the services.

What's the regression @DonnyVerduijn? And to be clear, you are more than welcome to continue using services. The client itself doesn't have a good type support anyway since I expect you to use services. Have a look at the demo https://heyapi.vercel.app/openapi-ts/clients.html#fetch-api

There might actually be a bit of a misunderstanding in terms of what we call services. In openapi-ts 0.45.1, we have a set of services where each service is a class, that exposes its methods to call certain api endpoints. When i said it makes more sense to take this approach in terms of a better DX through intellisense, what i mean't to say is that with large apis, it becomes very hard to get an intuition when there is no categorization.  So, when there is just one file that exposes the methods directly as exported functions (such as in the fetch-client example), it would really become a burden to use.

Did you follow the migration guide for 0.46.0? Sounds like you want to keep generating classes but I don't see that in your config

Did you follow the migration guide for 0.46.0? Sounds like you want to keep generating classes but I don't see that in your config

I see. I'll take a look at it tomorrow. You should really consider including that information in your releases and use semantic versioning/opt-in migration strategies.

Good shout. Do you know a good strategy for including migration notes in releases? I didn't look into configuring changesets further (there were no changelogs before btw).
The project follows semver too, see https://github.com/semver/semver/issues/333

Good shout. Do you know a good strategy for including migration notes in releases? I didn't look into configuring changesets further (there were no changelogs before btw).
The project follows semver too, see https://github.com/semver/semver/issues/333

I'm not very experienced with authoring libraries on github, but i assume it depends on how the releases are prepared. I would have to look into it to say something specific.
In terms of following semver, the point is to make it easy to track down breaking changes through the release notes and allow pinning major versions if necessary.
Most of the time, breaking changes/migrations can be delayed without hindering adoption of new features. By introducing compatibility layers that are scrapped in the next major bump, the migrations are provided OOTB during minor bumps.

This problem is resolved by using @hey-api/client-fetch. There are some other problems with @hey-api/client-fetch but closing this.


Add scope information to the audience in the /tokens endpoint

This issue is imported from pivotal - Originaly created at Aug 22, 2022 by Bart Geesink
The /tokens endpoint can be used to retrieve information about access tokens.
Currently is shows the "audiences" and "scopes" in two different fields. Hower, the scopes belong to a certain audience. In order to properly display the information in Profile (eg this access token is used to retrieve "the student grades" at the "university of maastricht server" we need to connect them.
We would like to implement the insight of access tokens in Profile. I've attached an image as how this is going to be presented.
When looking at the current information that the endpoint gives back now, I think it should be in the audience field as extra information, and fill it with:
name:en: "$THE_NAME_EN_FROM_MANAGE",
description:en: "$THE_DESCRIPTION_FROM_MANAGE",
OrganizationName:en: "$THE_ORGANIZATIONNAME_FROM_MANAGE"
name:nl: "$THE_NAME_EN_FROM_MANAGE",
description:nl: "$THE_DESCRIPTION_FROM_MANAGE",
OrganizationName:nl: "$THE_ORGANIZATIONNAME_FROM_MANAGE"
logo_url: https://thelogourlfrommanage
scope and descriptions for this resource server

(Bart Geesink - Oct 4, 2022)

https://github.com/OpenConext/OpenConext-oidcng/wiki/Token-API (Okke Harsta - Oct 5, 2022)


Support for non-standard directory structure

Is your feature request related to a problem? Please describe
Hey! I don't expect you to fix this, since it's very much an edge case, but figured I would open an issue in case there was a simple fix.
I'm spiking out a new component library, and I wanted a directory structure that had these two properties:

Every file for a component is in the same directory.
To call the component, you don't need to add an extra ::Component or repeat the component name. ie, Button.new instead of Button::Component.new or Button::Button.new.

To accomplish the above, I'm using Zeitwerk to collapse component directories, which so far is working really well. However, it's confusing Lookbook, specifically the sidebar nav and the URL:
# the badge directory is collapsed via Zeitwerk, component is used via `Badge.new`
/components/badge/badge.rb
/components/badge/badge.html.erb
/components/badge/badge_preview.rb

# Usage
Badge.new(text: "My Badge")

Describe the solution you'd like
I'm not sure, maybe Lookbook shouldn't create a folder nav item if it's identical to the preview name? ie [component]/[component]_preview. I'm not sure if that would be unexpected behavior for others though.
Describe alternatives you've considered
My monkey patch is pretty simple. It fixes the sidebar, but the URL still has duplicated component name.
module Lookbook
  class PreviewEntity
    def file_name_base
      @_file_name_slug ||= file_name(true).gsub(/[\w_]+?_preview$/, "")
    end

    def depth
      lookup_path.split("/").size - 1
    end
  end
end

Additional context
No hard feelings if this isn't something you want to support. I just wanted to put it on your radar in the off chance that there was a simple solution. Thanks for checking it out!

Hi @ksweetie and thanks for the feature request.
This is actually something I'd love to support (and to use myself) - and I suspect we are not alone amongst ViewComponent users in wanting to remove the Component suffix ;-)
The solution your propose might work in this specific case (component the same name as the directory) although I'll have to have more of a think about if it might cause any other issues down the line. However I would definitely prefer to have a more generic solution - one that maybe uses Zeitwerk itself to figure out what paths are collapsed and then uses those for the components. I've not delved deep into Zeitwerk before but I imagine it must be possible to figure out what would be needed.
You've definitely piqued my interest with this one so i'll have a tinker when I get a chance. If I find a way to implement it then it would be a post-2.0-launch addition however as I don't want to mess with things like class loading at this late stage.
In the meantime, if you wanted a more mundane fix you could always separate your previews from you components - I personally prefer something like the approach you outline above (i.e. preview within the component directory) but having the previews in their own previews directory can often mean more flexibility with how the component library is presented even if the components themselves are organised slightly differently.
So something like
path/to/previews/
├── button_preview.rb
└── badge_preview.rb

would give you the structure you are after, albeit at the expense of keeping everything nicely together. Just a thought anyway :-)
I'll let you know when I have had a chance to investigate this a bit more but hopefully it'll be possible to figure something out to get support for this into Lookbook. Thanks again for the suggestion!

If I find a way to implement it then it would be a post-2.0-launch addition however as I don't want to mess with things like class loading at this late stage.

@ksweetie Well... I did say the above but I really liked this idea and I couldn't resist having a tinker 😄 After I had a bit more of a think about it I realised that it was probably going to be simpler than I first thought, no need to try and lookup paths from the Zeitwerk instance or anything.
So... I've just had a go and I believe I've got it working, but it would be great if you were able to confirm with the setup you have been experimenting with.
To test you'll need to pull in Lookbook directly from the collapsed-preview-paths branch of this repo like this:
# Gemfile
gem "lookbook", git: "git://github.com/ViewComponent/lookbook.git", branch: "collapsed-preview-paths"

I've been using your badge example (badge component folder at the root of the app/components directory) and then collapsing down the path by adding the following in the application.rb:
Rails.autoloaders.main.collapse("app/components/*")

With the changes that all seems work nicely for me now. I've also experimented with nesting components deeper within the components directory and collapsing some interim hierarchy and that seems to work too.
If you get a chance to give it a try it that would be great, and let me know if you run into any issues at all. I'm pretty sure this change won't have any negative downstream consequences but I'll keep testing at my end too to make sure.
Once we are confident it's all working I'll merge it in and get it out in the next release. And then I'm going to feature-freeze until v2.0 is out properly (although I've lost track of how many times I've said that now... 🙄)

Wow, I wasn't expecting you to implement this, and so quickly! I just gave it a spin and it worked perfectly 🎉!  I love the solution, much cleaner than I was expecting.
One minor note: I have all of my components nested under a namespace, so they're all called via Foo::Badge.new. Since every component is nested inside this namespace, it's kind of unnecessary to show in the nav. To get rid of it, I set preview_paths to app/components/foo. However, it looks like that no longer has an effect on this branch:
# 2.0.0.beta.7
Badge
  Badge
    Example

# collapsed-preview-paths
Foo
  Badge
    Example

That's very minor though, and I do think it makes sense.
Thanks for working on this, I really appreciate it!

@ksweetie thats great! I'll get it out in the next release then, hopefully today or tomorrow.
That is interesting about the top level namespace issue though - I think that is because the preview path is now being assembled from the class name rather than using the relative path filesystem path. But it shouldn't walk back above the component directory root. I'll see if I can fix that quickly now.
I tried out your component organisation pattern out myself on a different project this morning - I really like it! I normally organise component files something like this:
app/
└── components/
    └── button/
        ├── component.rb
        ├── component.html.erb
        └── component.css

Which is similar to your approach.... but vastly inferior! All components have a nasty ::Component suffix on them and every file in my editor is just called 'component' which isn't great at all. I don't know why I never thought of leaning on Zeitwerk (I use it to handle all the autoloading in Lookbook) but I appreciate you sharing the suggestion here, I think this will be my new default going forwards 🙂

Haha, yeah I went down several rabbit holes trying to make it work exactly like I wanted. I was so excited when the Zeitwerk collapse spike did worked. I'm surprised I haven't seen anyone else mention doing it. Admittedly, it's arguably confusing to have files declare constants that don't exactly match their directory structure (in a Rails app anyway), but I feel like the nice component signature makes it worth it. I'm glad it was helpful for you as well!

Admittedly, it's arguably confusing to have files declare constants that don't exactly match their directory structure (in a Rails app anyway)

Pretty sure Rails sneaks a bit of that in anyway so I reckon it's acceptable ;-)
I've just come across a bit of an issue with the new preview path resolving code so I'm going to hold off shipping a new release until I'm confident that I've fixed it. Shouldn't be too long though.

@ksweetie I've just released version rc1 that includes this feature. I had to do a bit of last-minute wrangling to ensure backwards compatibility with all preview file setups - it should still work fine with the autoloader too but if you run into any problems just let me know.
I'll close this issue down now then - thanks again for the feature suggestion and good luck building out your component library 🙂

I tested rc1 and it looks good to me. Thanks for making this even better!

@ksweetie excellent, and my pleasure! :-)


Add a tsconfig.json file at the root of the monorepo

There should be a tsconfig.json file using @workleap/typescript-config/monorepo-root.json configs at the root of the project.

What is the use case for this tsconfig? it's not in charge of linting anything?

Lint root files. What does @workleap/typescript-config/monorepo-root.json is intended to be used for otherwise?

Was accomplish 2 weeks ago in PR #20


will ip adapter trained based on sd 1.5  be able to work on sdxl?

X-Adapter currently does not work very well with ID-related plugins. We are still improving its performance. Please stay tuned.


Set config .ini location in start command

Can I set the location of ini-file in start-command?
Like:

build/env/bin/hue runserver <IP_ADDRESS>:443 --config=/tmp/hue.ini

I think the env variable DESKTOP_CONF_DIR should work


New keyboard cgame ABI

This updates the cgame ABI to use the new keyboard key representations.
See https://github.com/Unvanquished/Unvanquished/pull/1065 for the cgame side.

@Kangz does it look OK now?


Non Rail ruby application.

Hello
I want to use cover_me in my ruby application. I use Rspec and Cucumber. This is not a Rails application.
http://github.com/Nerian/DPovray
But when I do 'rspec spec' nothing happens besides test being run. No coverage report. There is a file named 'coverage.data', but no coverage html report.
I would appreciate any help.
Cover_me
cover_me (1.0.0.rc4)
Ruby
ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]
spec_helper.rb
require 'cover_me'
require 'worker_node'
ls DPovray
Gemfile       Gemfile.lock  Licence.rdoc  README.md     bin           coverage.data features      file          lib           povray.pov    spec

here's a much cleaner way to do it (without tapping into the cover_me):

register your own at_exit {CoverMe.complete!} before (!) you require 'cover_me'. This way their at_exit will tun first and will generate a .data file and then yours will run to build the HTML

if you have that "path with a space" issue then just redefine the :at_exit on the cover_me configuration. something like this worked for me: CoverMe.config.at_exit = Proc.new {start coverage/index.html}. Just tell it to go off the relative path.


Viro3dSceneNavigator move world with device

Hi,
When using the <ViroVRSceneNavigator /> the world moves around as the device moves. Is it possible to enable this behaviour when using a <Viro3DSceneNavigator /> without needing to listen to gyro events and rotate the scene manually?
It would be really helpful for displaying 360 panorama images without support for a headset and having support for things like onClick without needing to centre in the crosshairs.

Thanks @dam00n already given the vrModeEnabled a try - wasn't aware of the rectileVisibility prop though.
Is there any way to interact with objects in the ViroVRSceneNavigator scene on a touch basis? From what I can see, only onClick and onHover work when the crosshairs move over an object, but as for dragging objects or just tapping the scene without targetting the events don't seem to fire.

This issue might help -> https://github.com/viromedia/viro/issues/14


Sky: Make Wizards

Through the navigation bar, a user should be able to make a node representing any software they're aware of. With promiscuous software distribution, this is a wide selection.
There are a lot of affordances that can go into making software distributions a friendly user flow. Canonized desk names, default selections, and fuzzy find search to name a few. But we can start with something simple.
There should be a %wizard role that converts a $kook into a UI for making a shrub in a given environment. To prototype this, we can start with an imp/shrub-maker in /home that works similarly to the %files prototype we previously built. Rather than creating a default node of a given type, the shrub-maker should include a %y dependency on /cod/std/src/imp and allow a drop-down of any of the available implementations. The shrub-maker should then attempt to render a UI for the retrieved $kook with the %wizard role, providing a default maker view ala Tree in plain HTML if one does not exist.

I don't believe this is the correct solution. A conversion from %hoon to %wizard should succeed for all inputs, regardless of role. To implement wizards in the way you describe, conversions either need to fail if there's a mismatch between the input hoon and the role, or allow for any imp to convert to any wizard, in which case the input doesn't matter and it doesn't need to be a conversion.

The %wizard imp's generality means that it needs five things in the POST requests it receives:

name
stud of imp
stud (head of pail)
vase (tail of pail)
optional confs

But having to remember all of these and then manually encode them in a form sucks. The name should come from a standard UI element, %wizard should be able to derive the two studs from the URL context, and having to encode the complex data you're sending as a single string that then gets slopped as a vase is very unergonomic.
What a developer actually wants here is to encode their data in the request they're sending in the same way we do for things like node-task-diff. This actually is potentially an appropriate use of the conversion system! %wizard could call these con files in the same way hawk did. (Open question as to how exactly to handle confs here, though.)
This tempts us to think that the solution to the other bit of jank in %wizard—needing to poke a wizard manx into state from some imp—is also to use con files, as tiller suggests in his original idea here. This could be right, but I'd still argue that that's technically not a """conversion""". It's a hijacking of the conversion system to create a mapping from stud to static code at the time of software distribution. It turns out we want this type of mapping to happen in a few different places in our stack, which suggests that what we really need is a system that's specifically suited to that task.
Our rendering system currently creates this mapping via URL-style user input. If you want to view your shrub in a specific way, you type in the path to the code you want to view it with. This might seem like bad UX, but as @will-hanlen's Bookmarks feature reminds us, this is exactly what all of us do hundreds of times a day when we use our browser's URL bar too.
This implies that this viewmodel-switcher textbox should in fact be much more powerful, allowing the user to type in a pith to anywhere within the global namespace that contains rendering code, saving their favorites and defaults as they go. That, then, is also the solution to make wizard discovery: I can make anything in the world as long as I have the path to it, and the UI that's served to me is simply the one that lives at that path. And if this pattern is indeed useful for both viewmodels and wizards, where else is it useful, and what does its generalization look like?


Add Dependent-Type-Like Functions [Experiment]

Initial experiments for implementing dependent-type-like functions, #33014 .

[x] Step 1: check performance impact for binding return statements.

@typescript-bot perf test this

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: rubenpieters sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

I have pushed an initial implementation of this feature based on input from @jack-williams .
Roughly it works as follows: A getTypeMapper function is passed around in the typechecker functions, to activate the feature the createConstructTypeMapper function is passed (currently only in checkReturnStatement). This function returns a cached version of the type mapper, or creates it if it doesn't exist.
This type mapper creates an instantiation for type variables based on traversing the control flow graph. The conditions for activating in this traversal are currently: on a binary equality expression when one of the sides is a literal and the other side is an identifier annotated with a type parameter defined in the function, which is bounded by a union of singleton types. Currently this is an optional parameter and I have passed it around to make the use cases in the test cases (tets/cases/compiler/depTypeLikeFun.ts). Likely the type parameter needs to be passed around in more situations to make other complex scenarios work.
This type mapper is then used inside the getSimplifiedIndexedAccessType, under the following conditions: object type is concrete and index type is a type parameter able to index the object.
Some next steps regarding this implementation:

[] I have noticed that enabling the binding of return statements had some impact on two tests related to unreachable code: codeFixUnreachable and unreachableJavascriptChecked. This should probably investigated to make sure those tests pass again.
[] Check performance impact of this implementation to see whether we need to tinker a bit more on it (for example adding some form of chaching when traversing the control flow graph).
[] Make sure the additional tests cover all positive/negative cases we want it to cover.
[] If we want to extend the feature and pass the getTypeMapper around in more situations, I think we need to make sure that type parameters in negative positions are not substituted by the type mapper.

@jack-williams @RyanCavanaugh @DanielRosenwasser Feedback / Comments are welcome.

This experiment is pretty old, so I'm going to close it to reduce the number of open PRs.


nucleoATAC applied to MNase

Dear Alicia,
I would like to use nucleoATAC for MNase-seq data as shown in your publication. Since this is not the standard way, what should be considered and which options have to be changed?

How can I turn off the sequence bias model  (as mentioned in your publication)? I created a pwm file with weight 1 on each position. Is that ok?

I tried to run the nucleoATAC script on MNase-seq data around CTCF sites (+/- 2500 bp flanking sites), where I observe nicely positioned nucleosomes. However, the nucleoatac nuc script always generates the same error:

Command run:  /home/newadmin/nucleoATAC/bin/nucleoatac nuc --bed data/chr5.dupl.ctcf.mapp.20kb.merge.bed --vmat ctcf_dupl_ext/vprocess.VMat --bam data/high_r1_chr5.bam --out ctcf_dupl_ext/nuc/high --fasta data/chr5.fa --sizes ctcf_dupl_ext/high.fragmentsizes.txt --occ_track ctcf_dupl_ext/high.occ.bedgraph.gz --cores 12 --not_atac --pwm ../pwm.PWM_std.txt
nucleoatac version 0.3.2
start run at: 2016-07-26 11:52
---------Obtaining nucleosome signal and calling positions----------------------
/home/newadmin/nucleoATAC/local/lib/python2.7/site-packages/nucleoatac/NucleosomeCalling.py:120: RuntimeWarning: divide by zero encountered in log
nuc_lik = np.sum(np.log(nuc_model) * mat)
/home/newadmin/nucleoATAC/local/lib/python2.7/site-packages/nucleoatac/NucleosomeCalling.py:120: RuntimeWarning: invalid value encountered in multiply
nuc_lik = np.sum(np.log(nuc_model) * mat)
/home/newadmin/nucleoATAC/local/lib/python2.7/site-packages/nucleoatac/NucleosomeCalling.py:121: RuntimeWarning: divide by zero encountered in log
null_lik = np.sum(np.log(null_model) * mat)
/home/newadmin/nucleoATAC/local/lib/python2.7/site-packages/nucleoatac/NucleosomeCalling.py:121: RuntimeWarning: invalid value encountered in multiply
null_lik = np.sum(np.log(null_model) * mat)
/home/newadmin/nucleoATAC/local/lib/python2.7/site-packages/nucleoatac/NucleosomeCalling.py:120: RuntimeWarning: divide by zero encountered in log
nuc_lik = np.sum(np.log(nuc_model) * mat)
/home/newadmin/nucleoATAC/local/lib/python2.7/site-packages/nucleoatac/NucleosomeCalling.py:120: RuntimeWarning: invalid value encountered in multiply
...
therefore the output file ...nucpos.bed is always empty.
I already checked that I obtain reads in MNase-seq experiments at the sites I looked for. Do you have an idea how I can solve this issue?
thanks in advance
Uwe

A couple of comments:

What is the vplot you are using?  The vmat argument ?  The default V-plot that is included in the package is based on ATAC-seq data-- a very different pattern would be expected for MNase data, and the normalization for fragment size differences between samples that is done in vprocess would not be able to take into account differences between ATAC and MNase

Please see Supplementary Figure 11 in the paper.  Looking at different MNase data sets, I observed that the V-plot pattern observed at nucleosome differed greatly between data sets, likely due to differences in digestion (MNase is a processive enzyme, unlike Tn5, so the pattern will be sensitive to the digestion time & concentration).  In contrast, with ATAC-seq I looked at samples prepped with different protocols and different numbers of cells and saw very little difference in the pattern observed (again consistent with Tn5 not being processive).  I could share with you the V-plot used for the MNase analysis paper if you want, but it might not be appropriate for your sample.  For this reason, I generally wouldn't recommend NucleoATAC for use with MNase data.

The data must be paired end for any of the nucleoatac or pyatac functions to work.  I don't think it actually checks for that though, so it could just run and fail quietly or a mystery error.

What is the occ track input?  Was that computed using the nucleoatac occ function?  Because that probably won't work well for MNase data, especially if it is size selected.

Not giving a fasta file as input will turn the bias model off

Thanks for the quick reply!
I want to compare two MNase conditions (high and low concentrations) similar to the publication of Henikoff et al, 2011. In the low MNase condition I observe a similar profile at DNase HS sites as seen in ATAC-seq. Therefore, I would like to use nucleoATAC to distinguish between bound tf and nucleosomes. For example directly at CTCF sites shorter fragments accumulate, which are flanked by a population of nucleosomal sized fragments.
to 1) / 2) I calculated the vplot directly from my MNase data with the nucleoatac vprocess function based on the fragment sizes obtained by nucleoatac occ function. the files are attached
high_MNase.VMat.pdf
low_MNase.VMat.pdf
they look quite similar to the v-plots shown in Supplementary figure 11. Are the VMats generated from nucleoATAC vprocess function normalized to the default ATAC-seq V-plot???
to 3) my data is paired-end
to 4) I applied the nucleoATAC occ function to my MNase data and used that for the nuc function as input. The occ script seemed to work fine and I got reasonable output here. The size range for my data is from 50bp-250bp and I did not do a size selection for nucleoATAC.
The only thing that did not work are the nucleosome dyad calls and the file .nucpos.bed.gz is empty.

I guess somewhere the "null_model" varible gets zero and this makes problems as it is in the log function, which is reported by the run error:

RuntimeWarning: divide by zero encountered in log
null_lik = np.sum(np.log(null_model) * mat)

Would it help to increase the step size in nucleoatac occ function to get rid of this problem?

The nucleoatac vprocess function will use the default ATAC-seq vplot and then adjust based on the fragment sizes -- the pattern there shouldn't work very well for MNase data. The runtime warning should just be a warning and not cause an error.  I suspect that there are no nucleosome calls simply because the v-plot being used doesn't match the data all that well.   I've attached the vplot from the MNase yeast data set used in the paper-- that can be inputted as --vmat to nucleoatac vprocess.
Widom.HighRatio.mappable.high_occ.Cole.normdup.VMat.txt  (You might have to change the file ending from .txt to .VMat, I had to add the .txt so that github would accept it).  Perhaps you can try with that and see results?

thanks for providing the the MNase yeast data set. Unfortunately with this normalisation I wont get nucleosome calls as well. As you already mentioned, I guess it is a problem with the MNase, that the v-plots differ quite a lot in various data sets and it has to be adjusted for each MNase digestion.
Finally I used well positioned nucleosomes around ctcf sites to infer the V-plot pattern for the MNase digestions. Now I get nucleosome calls, but it seems the resolution is not that good. I try to come along with this.
thanks for your help


Understanding PHP exception handling

Understanding PHP exception handling
Introduction paragraph (2-3 paragraphs):
Exception handling is an important concept in PHP programming. It comes in handy when handling run-time errors which are also called exception errors. The main purpose of exception handling is to ensure maintenance of the normal application execution.
In this article we’ll be discussing at length What exceptions are, Why the need for execution handling and the different types of exception. We will also be discussing the events that occur when exception is triggered and finally the benefits of using execution handling as opposed to everyday error handling techniques.
Key takeaways:

The reader will be able to understand what exceptions are and the eventually understand exception handling.
The reader will be  well acquainted with various forms of exception handling and their applications.
The reader will be able to understand  The events associated with exception handling a the benefits associated with it as opposed to error handling.

References:
Please list links to any published content/research that you intend to use to support/guide this article.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

@awinomackrine
Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

@awinomackrine
Sounds like a helpful topic - lets please be sure it add value beyond what is in the official docs and what is covered in other blog sites.
Please be sure to double check that it does not overlap with any existing EngEd articles or incoming topic suggestions (if you haven't already) to avoid any potential article closure, please reference any relevant EngEd articles in yours. - Approved


api: titles can be in ticks, not just a Duration

I preferred the approach with DurationOrTicks, for a couple of reasons.

Int can be of any unit, seconds, hours, ticks, millis? Using OfTicks makes that clear that you want to use ticks, OfDuration makes it clear that you want clock based duration.
Implementations that don't use "ticks" have greater control. If you provide a clock based duration, then it would take the actual time, and not an estimation by converting ticks to time.
As an example in sponge, if you would create a scheduled task with a delay of "10 ticks", it would be 10 minecraft ticks. If you provided a Duration, it will use the system nano time. OfTicks != OfDuration
Why do you want to specify time with ticks, if you can use seconds/minutes anyway? I know this is library is minecraft related, but I would prefer to say "show the title for 1 second" over "show the title for 20 ticks".
Related to https://github.com/SpongePowered/SpongeAPI/pull/2107, using Int goes against the goal I am trying to achieve in sponge

Maybe it would be better to rename DurationOrTicks to TimeOrTicks though (or something else), since OfTicks and OfDuration are both "durations".

Int can be of any unit, seconds, hours, ticks, millis? Using OfTicks makes that clear that you want to use ticks, OfDuration makes it clear that you want clock based duration.

Agreed - the constructor can always be changed to clarify that.

Implementations that don't use "ticks" have greater control. If you provide a clock based duration, then it would take the actual time, and not an estimation by converting ticks to time.
As an example in sponge, if you would create a scheduled task with a delay of "10 ticks", it would be 10 minecraft ticks. If you provided a Duration, it will use the system nano time. OfTicks != OfDuration

Indeed, but this is not a scheduling library. We're talking about titles, which when rendered by a Minecraft client are timed using ticks, and ticks only.

Why do you want to specify time with ticks, if you can use seconds/minutes anyway? I know this is library is minecraft related, but I would prefer to say "show the title for 1 second" over "show the title for 20 ticks".

What's the harm in supporting both?!

Another thing to consider is, right now the only time-related thing we have is titles, but that might change in the future. Being consistent is key, and is why I went with just Duration originally.

After discussing more with @Cybermaxke and others, I am going to close this pull request and we will stick with Duration.


Removes h from import when used with react/stencil or projects using JSX/TSX

for e.g. tsx has

import { FunctionalComponent, h } from '@stencil/core';

interface HelloProps {
  name: string;
  borderRadius: string;
}

export const Hello: FunctionalComponent<HelloProps> = ({
  name,
  borderRadius,
}) => (
  <h1
    class="template-one template"
    style={{ borderRadius: `${borderRadius}px` }}
  >
    Template 1 says {name}

);

Note h inside import is implicitly used by JSX, can't remove this import but this extension removes it since it doesn't find h anywhere used :(

@pranav-js
Have you tried this extension instead who supports h and more features?

Forked this project and added such an option https://github.com/twiddli/import-sorter


Learn how to deploy Loki with MCB

MCB (ask team-honeybadger)

What we did:

Create a MCB branch for you WIP
Create a GMC branch, with changes in a test install:

kustomization file (management-clusters/gauss/kustomization.yaml) pointing to your MCB branch
A patch file with these contents:

apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
  name: management-clusters-fleet
  namespace: flux-giantswarm
spec:
  ref:
	branch: lokigauss
  secretRef:
	name: giantswarm-clusters-ssh-credentials
  url: ssh://[git@ssh.github.com](mailto:git@ssh.github.com):443/giantswarm/giantswarm-management-clusters.git

 * A link to this patch file in the kustomization file

Do your changes in MCB
Switch to the GMC branch: k edit gitrepo -n flux-giantswarm management-clusters-fleet and change .spec.ref.branch
OR flux0.41.2 create source git -n=flux-giantswarm management-clusters-fleet --branch lokigauss

Blocked:
Stopped because we need some templating, like to have dynamic ingress name with install name, aws region… ?

Abandoned this as we cannot proceed with MCB, as we lack installation information. We are going with traditional deployment via collection and config repo.


Create a PyPI package

What is the idea?
We need to package this theme and upload it to PyPI.
Why is this needed?
No response
What should happen?
No response
Additional Context
No response

So PyPI supports trusted publishers since recently, and I think we should make use of it. Here are the docs how to make use of them.
We have a conda organization on PyPI, once the project is created, we can add it to the organization.

@jezdez,
We have a PyPI package and a GitHub action that will automatically update it after we create a release here:

https://pypi.org/project/conda-sphinx-theme/
https://github.com/conda-incubator/conda-sphinx-theme/blob/main/.github/workflows/release.yml


ORM minor enhancements and bugfixes

WIP

[x] #1826
[x] #3326
[x] #3094
[x] #3171
[ ] #3551
[ ] #3576
[ ] #3608
[ ] #3620
[ ] #1034
[ ] #1064
[ ] #1028
[ ] #1174

https://github.com/drizzle-team/drizzle-orm/issues/3175 will be done in a separate PR, the changes required are larger than expected.


Downloading pop up doesn't fit theme

When songs are downloading, text appears in the bottom right corner that doesn't seem to match the rest of the theme. While I'm not familiar with the development process for Spicetify, this could potentially be displayed as a downloading icon or progress wheel below the list of playlists.
OS: Ubuntu 18.04
Spotify: Flatpak
Theme: Dribbblish, dark
With Downloading text:

Without:

@khanhas any idea how to bring this on top? Or maybe moving it to notification-bubble-container?

I was able to get this, I'm going to push it


Repo sync for protected CLA branch

The pull request is created from master637566105365374553 to master to fix git push error for protected CLA branch

@opbld16 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


issue 542

Problem still exists in latest version: https://github.com/EmpireProject/Empire/issues/542

I've reopened that issue, please put any detail you can there.


Add note about MapControllers in ASP.NET Core

MapControllers is not called by default when starting with a new ASP.NET Core Web App that uses Razor Pages. However, since the Microsoft Identity UI uses it, forgetting to add it will cause sign-in and sign-out links to stay blank and manually navigating to /MicrosoftIdentity/Account/SignOut to result in a 404.
Considering the documentation already mentions UseAuthentication and AddRazorPages in the samples, I feel like MapControllers should be added as well.

@Vivelin : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@jmprieur
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Fix ansible role kubeone_config to work under python2

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
None
Special notes for your reviewer:
Nope
Does this PR introduce a user-facing change?:

NONE

/retest


fintune my_own 10fps dataset question.

my_own dataset fps is 10, can I get better results if I fine-tune？ thk to suggest.

@baowenbo

@leemengxing  My friend, I have the same question. Do you have any answer now? Thank you


servicesSecondaryRangeName and clusterSecondaryRangeName fields values are set during GKE v2 cluster creation

What kind of request is this (question/bug/enhancement/feature request): bug
Steps to reproduce (least amount of steps as possible):
Issue

ipAllocationPolicy.clusterSecondaryRangeName and ipAllocation.servicesSecondaryRangeName default value should be  "" unset as per https://github.com/rancher/rancher/issues/31221#issuecomment-813611455.
When a user deploys a GKE hosted cluster, with default values set, clusterSecondaryRangeName and servicesSecondaryRangeName have the same value for one of the regions, and when the cluster is deployed, error seen - Googleapi: Error 400: Pod secondary range name (gke-c-fdfjq-services-144d65c0) should not be the same as service secondary range name., badRequest

Expected Result:
ipAllocationPolicy.clusterSecondaryRangeName and ipAllocation.servicesSecondaryRangeName default value should be  "" unset as per https://github.com/rancher/rancher/issues/31221#issuecomment-813611455.
Other details that may be helpful:

User is not able to change this value on an Edit of the cluster. Only option is to delete and recreate the cluster.
Also these fields' values cannot be changed to "" in the dropdown.

Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.5-head commit id: d1083bc
Installation option (single install/HA): Single

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): GKE v2 hosted

Seen fixed on 2.5-head commit id: b75af2a31 and master-head commit id: 6012944

API Request sent contains:
clusterIpv4CidrBlock: null
clusterSecondaryRangeName: null
createSubnetwork: false
nodeIpv4CidrBlock: null
servicesIpv4CidrBlock: null
servicesSecondaryRangeName: null
subnetworkName: null
useIpAliases: true


Path is wrong

The best way to tell if you are in hardware DRM or software DRM is to look at C:\Users<username>\AppData\Local\Packages<application name>*LocalState*\PlayReady*
It should be LocalCache instead of LocalState

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

ID: 1e5c691d-5b32-8d9e-a797-470ce52d73a5
Version Independent ID: f84af6ac-8ca3-dd80-4dba-546140a33c73
Content: Hardware DRM - UWP app developer
Content Source: windows-apps-src/audio-video-camera/hardware-drm.md
Product: windows
GitHub Login: @drewbatgit
Microsoft Alias: drewbat

Thanks,
it is updated now
The best way to tell if you are in hardware DRM or software DRM is to look at C:\Users<username>\AppData\Local\Packages<application name>\LocalCache\PlayReady*


Put assets in /static/ directory inside the zipkin-ui jar

This makes it easier to use from Spring boot.
Somebody else needs to take it from here; I can't figure out how to make zipkin-web work with the new directory layout...
Fixes #1031.

Whoot!


Script to create formatted author list; reorder creators.json

Ordering following authorship policy

Contributor Checklist:

[x] I have added myself to the creators.json file

From offline discussion, as a reminder: should be possible to generate and display HTML instead of single superscript ASCII chars, which would prevent inconsistent displaying / font rendering issues when copying to other programs.


live <= master

Docs Build status updates of commit 9f04340:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

advocates/chloe-condon.yml
:white_check_mark:Succeeded

advocates/index.html.yml
:white_check_mark:Succeeded
View

advocates/media/profiles/chloe-condon.png
:white_check_mark:Succeeded

advocates/toc.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Table does not filter out data according to period filter

Turns out the issue was introduced by a breaking change in fava in commit https://github.com/beancount/fava/commit/6f4bcd5db8603a8baa4cdd190f22d62b0520db46. The change means that Extensions now need to use g.filtered instead of the instance in FavaLedger.


gptSessionBenchmark Failed Because of Assertion Error for tritonserver:23.11-trtllm-python-py3 Image

With 23.11 version of triton server image, the benchmark is not working.
Command:
./cpp/build/benchmarks/gptSessionBenchmark --model llama --engine_dir ./examples/llama/out/7b/fp16_1gpu --batch_size "1" --input_output_len "512, 200"
Error:
[TensorRT-LLM][ERROR] tensorrt_llm::common::TllmException: [TensorRT-LLM][ERROR] Assertion failed: d == a + length (/app/tensorrt_llm/cpp/tensorrt_llm/plugins/gptAttentionCommon/gptAttentionCommon.cpp:326)
1       0x7fff9696cfbf /opt/tritonserver/backends/tensorrtllm/libnvinfer_plugin_tensorrt_llm.so.9(+0x37fbf) [0x7fff9696cfbf]
2       0x7fff969ccc8a tensorrt_llm::plugins::GPTAttentionPluginCommon::GPTAttentionPluginCommon(void const*, unsigned long) + 762
3       0x7fff969e008d tensorrt_llm::plugins::GPTAttentionPlugin::GPTAttentionPlugin(void const*, unsigned long) + 13
4       0x7fff969e00d2 tensorrt_llm::plugins::GPTAttentionPluginCreator::deserializePlugin(char const*, void const*, unsigned long) + 50
5       0x7fff519ef8a6 /usr/local/tensorrt/lib/libnvinfer.so.9(+0x10d68a6) [0x7fff519ef8a6]
6       0x7fff519e766e /usr/local/tensorrt/lib/libnvinfer.so.9(+0x10ce66e) [0x7fff519e766e]
7       0x7fff51982217 /usr/local/tensorrt/lib/libnvinfer.so.9(+0x1069217) [0x7fff51982217]
8       0x7fff5198019e /usr/local/tensorrt/lib/libnvinfer.so.9(+0x106719e) [0x7fff5198019e]
9       0x7fff51997c2b /usr/local/tensorrt/lib/libnvinfer.so.9(+0x107ec2b) [0x7fff51997c2b]
10      0x7fff5199ae32 /usr/local/tensorrt/lib/libnvinfer.so.9(+0x1081e32) [0x7fff5199ae32]
11      0x7fff5199b20c /usr/local/tensorrt/lib/libnvinfer.so.9(+0x108220c) [0x7fff5199b20c]
12      0x7fff519ce9b1 /usr/local/tensorrt/lib/libnvinfer.so.9(+0x10b59b1) [0x7fff519ce9b1]
13      0x7fff519cf777 /usr/local/tensorrt/lib/libnvinfer.so.9(+0x10b6777) [0x7fff519cf777]
14      0x7fffd2bb4e02 tensorrt_llm::runtime::TllmRuntime::TllmRuntime(void const*, unsigned long, nvinfer1::ILogger&) + 482
15      0x7fffd2b743ab tensorrt_llm::runtime::GptSession::GptSession(tensorrt_llm::runtime::GptSession::Config const&, tensorrt_llm::runtime::GptModelConfig const&, tensorrt_llm::runtime::WorldConfig const&, void const*, unsigned long, s
td::shared_ptr<nvinfer1::ILogger>) + 651
16      0x55555556befd ./cpp/build/benchmarks/gptSessionBenchmark(+0x17efd) [0x55555556befd]
17      0x7fff964dfd90 /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7fff964dfd90]
18      0x7fff964dfe40 __libc_start_main + 128
....

Similar issue to https://github.com/NVIDIA/TensorRT-LLM/issues/583. Please rebuild the trt llm and engine.

I did rebuild the engine. The error comes with newly built engine.

Also hitting the issue right now. I set up a completely new environment with the latest commit and only built the engine once.

The assertion fail gives message
Assertion failed: d == a + length (/app/tensorrt_llm/cpp/tensorrt_llm/plugins/gptAttentionCommon/gptAttentionCommon.cpp:326)

This path /app/tensorrt_llm does not exist in my triton server container, and I cannot find a gptAttentionCommon.cpp file whose line 326 is this assertion. I indeed built the TRT-LLM wheel by following the instructions here https://github.com/triton-inference-server/tensorrtllm_backend#prepare-tensorrt-llm-engines, and the wheel build shows Successfully built tensorrt_llm-0.6.1-py3-none-any.whl.
I'm wondering which TensorRT-LLM I am effectively using when running into the assertion failure. I suspect it is not the TRT-LLM I built running.

I have figured it out: the prebuilt library in the triton server container (under ls /opt/tritonserver/backends/tensorrtllm) is not built from the latest TRT-LLM.
To resolve it, copy the libraries we manually built to that directory:
cp tensorrt_llm/build/lib/tensorrt_llm/libs/* /opt/tritonserver/backends/tensorrtllm/

After the copy I can run things well.

@MasterJH5574
Nice finding! Yes, it works after updating the libraries.

Thank you for the update. Close this bug because the issue is fixed. Feel free to ask here if you still have question/issue. We will reopen this issue.

I have figured it out: the prebuilt library in the triton server container (under ls /opt/tritonserver/backends/tensorrtllm) is not built from the latest TRT-LLM.
To resolve it, copy the libraries we manually built to that directory:
cp tensorrt_llm/build/lib/tensorrt_llm/libs/* /opt/tritonserver/backends/tensorrtllm/

After the copy I can run things well.

can't find this path 'tensorrt_llm/build/lib/tensorrt_llm/libs' , you mean '/usr/local/lib/python3.10/dist-packages/tensorrt_llm/libs'?

@MasterJH5574 Nice finding! Yes, it works after updating the libraries.

where I can find this path 'tensorrt_llm/build/lib/tensorrt_llm/libs/'?

I believe the path 'tensorrt_llm/build/lib/tensorrt_llm/libs/' is generated when you build the docker by yourself. You can follow the instruction from the blog. Yes, it is pretty confusing. It should be fixed.

I used this image nvcr.io/nvidia/tritonserver:23.11-trtllm-python-py3 to build my docker and encountered same error Assertion failed: d == a + length (/app/tensorrt_llm/cpp/tensorrt_llm/plugins/gptAttentionCommon/gptAttentionCommon.cpp:326). I could not find this path in my docker. I think the main question is the file version in /opt/tritonserver/backends/tensorrtllm/ is not compatible with TensorRT-LLM main branch or v0.6.1 release. (by the way with image 23.10 and 0.5.0 trt-llm-triton-backend release, everything is ok)

I used this image nvcr.io/nvidia/tritonserver:23.11-trtllm-python-py3 to build my docker and encountered same error Assertion failed: d == a + length (/app/tensorrt_llm/cpp/tensorrt_llm/plugins/gptAttentionCommon/gptAttentionCommon.cpp:326). I could not find this path in my docker. I think the main question is the file version in /opt/tritonserver/backends/tensorrtllm/ is not compatible with TensorRT-LLM main branch or v0.6.1 release. (by the way with image 23.10 and 0.5.0 trt-llm-triton-backend release, everything is ok)

@THU-mjx You can cd into TensorRT-LLM folder then run find . | grep libnvinfer_plugin_tensorrt_llm to find the libraries. In v0.7.0 the path is ./cpp/build/tensorrt_llm/plugins, then copy the libraries to /opt/tritonserver/backends/tensorrtllm, replace the old ones. It works then.

@caseylai Did you test tensorrtllm_backend? I copied the libraries to /opt/tritonserver/backends/tensorrtllm, successfully built engine and launched server. But failed to use it.

Both TensorRT-LLM and tensorrtllm_backend are 0.6.0 (main) releases,  image nvcr.io/nvidia/tritonserver:23.11-trtllm-python-py

@caseylai Did you test tensorrtllm_backend? I copied the libraries to /opt/tritonserver/backends/tensorrtllm, successfully built engine and launched server. But failed to use it.  Both TensorRT-LLM and tensorrtllm_backend are 0.6.0 (main) releases, image nvcr.io/nvidia/tritonserver:23.11-trtllm-python-py

@THU-mjx No, I met same error like you, issue: https://github.com/triton-inference-server/tensorrtllm_backend/issues/186#issuecomment-1870804870


[GHA workflow] create latest release only when running a main branch …

…workflow

@compnerd updated


Revisit what should listed when running 'make help'

Currently it's focused on just the top level helper commands

@tomdee  is this still relevant? If not could you close?


Fix margins on about and filling empty links, ref #215

Returning proper spacing to the about page sections. I noticed all the links in @DBNess's bio were empty so I filled them...assuming her name links to her personal site, right?

@DBNess just let us know if you want your name in the description to link to your personal site or elsewhere ... or even if you want a different landing page for the other links...then we'll merge :)

Assigning this to @DBNess to review before merge city!

:+1: merge away & if I need to update later I will make me submit a Pull
Request :) thank you @kstack7 & @juliaelman!
On Feb 13, 2015 9:03 AM, "Julia Elman"<EMAIL_ADDRESS>wrote:

Assigning this to @DBNess https://github.com/DBNess to review before
merge city!
—
Reply to this email directly or view it on GitHub
https://github.com/girldevelopit/gdi-new-site/pull/216#issuecomment-74257492
.


Trying to get this to work within a Docker container.

I've been trying to get this to run within a Docker container and I've been getting some weird issues...
I tried Googling and seeing what pops up, but to no avail.
Any ideas?
 Exit termui and clean terminal...
Print stack trace:

1: running [Created by termui.Init @ render.go:63]
    debug      stack.go:24     Stack(0x8dff40, 0xc4200a0010, 0x8a7697)
    termui     render.go:107   render.func1()
               panic.go:505    panic(0x805ae0, 0x8decd0)
    termui     helper.go:198   DTrimTxCls(#2, 0x8, 0x8, 0xfffffffffffffffe, #2, 0x8, 0x8)
    termui     block.go:88     Block.drawBorderLabel(0, 0, 0, 0x42, 0x1, 0x1, 0xffffffffffffffff, 0x41, 0, 0, ...)
    termui     block.go:202    (*Block).Buffer(#1, 0, 0, 0, 0, 0)
    termui     list.go:51      (*List).Buffer(#1, 0, 0, 0, 0, 0)
    components channels.go:123 (*Channels).Buffer(0xc420192540, 0, 0, 0, 0, 0)
    termui     grid.go:167     (*Row).Buffer(0xc4200704e0, 0, 0, 0, 0, 0)
    termui     grid.go:178     (*Row).Buffer(0xc4200705a0, 0, 0, 0, 0, 0)
    termui     grid.go:274     Grid.Buffer(0xc4202dc9b0, 0x2, 0x2, 0, 0, 0, 0, 0, 0, 0, ...)
    termui     render.go:124   render(0xc4202dc9c0, 0x1, 0x1)
    termui     render.go:65    Init.func2()

for grins I tried passing privileged mode and a copy of my environment, but yeah same results... honestly I'd be more suspect of the termui library than slack-term itself being the culprit

works fine if you use ubuntu instead of debian:stretch
termui is the cause, it fails to resolve terminal width

@frodeaa @lanefu I tried going through some issues of termui / searching but found nothing :-1:

one reliable way to avoid the panic is to use stty to set columns before starting slack-term.
stty cols 24 && slack-term

but slack-term will panic if the window height/width reaches zero (gizak/termui#116)

running stty in the docker shows that the current settings has rows/columns set to 0, that will cause termui to panic
docker run -it -e TERM=$TERM slack-term stty -a
speed 38400 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke -flusho -extproc```

There has been a longstanding issue on the moby/docker project around the size of the terminal fluctuating when run with -t or -it and I'm not sure if they've gotten it properly nailed down yet. What does docker --version show?

With the latest version you should be able to run slack-term from docker:
docker run -it -v [config-file]:/config erroneousboat/slack-term


flutter plugin support unit test?  now platform channel throw exception

My plugin use MethodChannel to platform-specify code, when I use unit test it is throw exception:
MissingPluginException(No implementation found for method flutter_bmfsearch/poiSearch/poiSearchInCity on channel flutter_bmfsearch/poiSearch)
please help, thank you!

hI @chiyw
It seems you are asking for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


FIX Use cachable call to get page version from draft stage

Profiling suggests that 50% of the request calls are spent getting the owner page. This change allows Versioned to cache those calls, reducing the CMS page edit form load time by ~50%
This also removes around ~300ms with 100 blocks by internally caching some of the most used ORM calls.
Issue: #368

@unclecheese 300ms on 100 blocks doesn't sound like it's delivering the kind of improvements that large users are after. How does this relate to the 12-18s which the original ticket reported?

There were two fixes here - one was to use a cacheable call to get the DataObject which shaved off ~50% load time. The second was internal instance caching (~300ms reduction) to reduce load in repeated calls to getSomething(), we implemented both then reverted the first one because it wasn't fluent compliant, but it should still be covered by the second one.


WordPress Career Portal Plugin Filter Options

I have the WordPress plugin installed on a website and in the backend settings there are the following two fields -

Additional Field to Filter Job List (optional)
Values to Filter for on the job list (comma separated)

What options can I put into these fields and what exactly does each option do?
I have tried inputting some filters but nothing seems to change on the portals front end.
Thanks in advance,
Josh

Could you look at the Values and ID in field mapping in Bullhorn for values?
FYI: You might want to look at this doc to see if the OSCP is the right product for you
https://matadorjobs.com/why-replace-oscp-with-matador-jobs/


timestamp() and timestamps() column do not accept Date by default

export class test extends BaseTable {
  columns = this.setColumns((t) => ({
    id: t.cuid(),
    time: t.timestamp(),
    ...t.timestamps(),
  }));
}

db.test.find('xxx').update({
  updatedAt: new Date(),  // type error
  test: new Date(),  // type error
});

Unless I set the column asDate() explicitly, then I can update it with Date object, I don't know if it's a bug or design choice.
I think it maybe a bug because I see the same type error in a test file:
https://github.com/romeerez/orchid-orm/blob/80d3318cef7b5905b8a50292fd8cc90545a295a7/packages/core/src/columns/timestamps.test.ts#L26

Seems to be a bug, thanks for pointing!

It was a bug in the update type, fixed and published pqb and related packages.


Sdk 2235 share v 2 retrieve receipt

Some minor mistakes in error messages that would be nice to clean up before merging, but all looks good now 👍


Setup pm2 for the MJCodeGenAPI sub-process and test

Per #126

Actually this commit is what is most interesting within that PR @cadam11
https://github.com/MemberJunction/MJ/pull/126/commits/b4b9d1351cda0d6750df9d14c1270689bd276f3d

@AN-BC This is deployed and running in the CDP stage environment

@cadam11 should this be closed?


for loop with large range problem

*** Test Cases ***
00 Test
: FOR    ${counter}    IN RANGE<PHONE_NUMBER>
\    Log To Console    counter = ${counter}
\    Exit For Loop If    '${counter}' == '10'
Log To Console    done
This keeps running until it runs out of memory. It works fine for smaller range and exits on 10th iteration.

I'm not surprised that your example running billions of keywords runs out of memory. Notice that even if it would run successfully, you probably wouldn't be able to open the resulting log file. You can try getting more memory, but in general you should move logic needing to operate with such huge data sets into a library.


⚠ Turnos 24x7 has degraded performance

In 27f6142, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 4089 ms

Resolved: Turnos 24x7 performance has improved in 608af3f.


Remove the "post:" from the phase names

Overview
Remove the prefix "Post:" from the phase names
Change the Referral/Decision to EA Certificate Decision

Resource Forecast in 2023-10-19 still shows Referral/Decision


Tracyboehrer/get value parity

#minor
Parity with DotNet

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.4%) to 84.124%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
20333

Relevant Lines:
22881

💛  - Coveralls


How do I use my own lib instead of system libs

Hi,
I'd like to use my own built libs instead of the system's one by default.
I saw in scripts/buildsystems/vcpkg.cmake(L221) this:
...
if(CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$" OR NOT DEFINED CMAKE_BUILD_TYPE) #Debug build: Put Debug paths before Release paths.
    list(APPEND CMAKE_PREFIX_PATH
        ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}
    )
    list(APPEND CMAKE_LIBRARY_PATH
        ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/manual-link ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link
    )
    list(APPEND CMAKE_FIND_ROOT_PATH
        ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}
    )
...

The append directive bothers me because the system lib is found before my own on MacOS. (ZLib)
(System lib): /usr/lib/libz.tbd
(My lib): /tmp/test/vcpkg/x86-darwin-release/lib/libz.a
Is there any way to change this behavior ?
For now, my workaround is to change vcpkg's APPEND to PREPEND.

Any new about this ? For now, changing APPEND to PREPEND fix pretty much the issues I had, making CMake use the vcpkg libraries before tryiing systems one.

@Nemirtingas There are two scenarios here:

If you use the port that depends on zlib in vcpkg, you must use zlib in vcpkg because of its dependency.
If not, you can remove zlib in vcpkg by command ./vcpkg remove zlib, then use find_package to find zlib on your own machine.

The thing is that my project looks for zlib, I build zlib with vcpkg (because curl needs it), but when building curl, it gets the system's zlib, not theo ne built by vcpkg

So you should execute the following steps:

Completely remove zlib using command ./vcpkg remove zlib
Remove folder VCPKG_ROOT/buildtrees/curl/src
Use ./vcpkg install curl --editable and terminate the build process
Remove the dependency of zlib in VCPKG_ROOT/ports/curl/CONTROL
Specify the location of find zlib in the curl source VCPKG_ROOT/buildtrees/curl/src/767f0f2a9e-91d24adee1/CMakeLists.txt line 632:
find_package(ZLIB QUIET)
Reinstall curl using command ./vcpkg install curl --editable

Doing so, I must again set a special case in my own project that also use zlib, and protobuf that has a feature to use zlib. In fact doing so I must modify every port that uses zlib to find the vcpkg one ?

@Nemirtingas I believe that because you modified the code of zlib, so you must use zlib on your machine.
In fact, you can apply the modification to the zlib of vcpkg to solve this problem once and for all without needing to modify curl.

I did not modify zlib.
I just used vcpkg install curl protobuf[zlib]
Doing so, zlib is build and installed by vcpkg, but all ports that use it show the line:
Found ZLIB: /usr/lib/libz.tbd (found version "1.2.11")
When changing the APPEND to PREDEND in vcpkg, I got
/vcpkg/x86-darwin-release/lib/libz.a

Oh, I know what you mean.
Yes, I think you are right, I will discuss with my colleagues.

Oh, I know what you mean.
Yes, I think you are right, I will discuss with my colleagues.

Ok thanks. I use my fork for now, so it doesn't really impact my builds. Thankfully vcpkg is editable ;)

oh, this definitely seems like an issue. @JackBoosY could you open a PR to fix this?

According to #14552, I think I need to put the prepend in the triplet instead of the vcpkg source code. I don't know right now how to do it.

I didn't notice until now but #17336 actually fixes this issue, thanks a lot, now I don't have to patch everytime there's an update.


How we can expose server methods to main UI

I am trying to use coincident but I am not able to expose server methods to main UI. Here is my code in Imba lang
# Server code
import index from './index.html'
import {createServer} from 'http'
import {WebSocketServer} from 'ws'
import coincident from 'coincident/server'

const port = process.env.PORT or 3000
const headers =
	"Content-Type": "text/html"

const server = createServer do(req, res)
	if req.url == '/'
		res.writeHead 200, headers
		res.write index.body
		res.end!

const methods =
	require: require
	import: do(name) import(name)

const websocket = new WebSocketServer {server}
websocket.on 'connection', do(ws) ws.send("Hello World")
coincident websocket, methods

imba.serve server.listen(port)

Client code
import coincident from 'coincident/server'

const w = new Worker('./worker.js', {type: 'module'})
const ws = new WebSocket('ws://localhost:3000/ws')
const {proxy} = coincident(w, ws)
const os = await proxy.import('os')
console.log(os.platform())

Worker code
import coincident from 'coincident/server'

let {proxy, server} = coincident(self)

proxy.import = server.import

Here is the error message

you need to enable sharedarraybuffer and all details are iin the README: https://github.com/WebReflection/coincident#coincidentserver
you can't have coincident without SharedArrayBuffer so workers are mandatory. Set the right headers and call it a day?


Trophies in one row , center Trophies and snake img

added parameters in Trophy url,
center snake img,
fixed wrong code ,

Thank you for your contribution, @pushpak-256


automatic planner and customized planning

Hello,
Is there any detailed document discussing the automatic parallelism planning? I want to know details on how the user inputs are included in the planning process and how torchrec make decisions. Moreover, I see some other documents mentioning about sorting the embedding tables for table wise parallelism to balance the load across accelerators, which suggests the customization of parallelism planning, I didn't see the interfaces from torchrec for this, how to realize it?

Hey @xiexbing, check out
https://github.com/pytorch/torchrec/blob/main/torchrec/distributed/planner/Planner_Introduction.ipynb
and the related folders.
Planner allows your to customize your enumerator (sharding strategies per table), cost estimators, partitioner, and allocator.

I want to know details on how the user inputs are included in the planning process and how torchrec make decisions

The main thing planner uses is the pooling factor (embedding lookup takes more time w/ larger pooling factor, so in order to balance embedding lookups, this needs to be taken into account).


Put emphasis

Please put emphasis on "does not"
This feature provides zonal volume placement, with latency within the zonal latency envelopes. It does not provide proximity placement towards compute. As such, it does not provide lowest latency guarantee.
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: c21b2533-c5fe-6b35-019f-d9f8f92cf614
Version Independent ID: da8dc1b5-d9b7-2a66-2830-15e966080e80
Content: Manage availability zone volume placement for Azure NetApp Files
Content Source: articles/azure-netapp-files/manage-availability-zone-volume-placement.md
Service: azure-netapp-files
GitHub Login: @b-ahibbard
Microsoft Alias: anfdocs

@gvanteylingen - This change has been applied to the Manage availability zone volume placement for Azure NetApp Files
#please-close


HOSTEDCP-1020: Add Create Cluster for KubeVirt for HCP CLI

What this PR does / why we need it:
Add the create cluster command for the KubeVirt platform for the HCP CLI.
Which issue(s) this PR fixes:
Fixes HOSTEDCP-1020.
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[ ] This change includes unit tests.

/area cli

@davidvossel, @nirarg - are there any flags you would want removed for the productized HyperShift CLI (hcp create cluster kubevirt)?
Also, do you want any changes to applyPlatformSpecificsValues? If not, I can export the original function and just reference it in the productized CLI.

@davidvossel, @nirarg - are there any flags you would want removed for the productized HyperShift CLI (hcp create cluster kubevirt)?

yes, I left a few comments there about cli args that can be removed.

Also, do you want any changes to applyPlatformSpecificsValues? If not, I can export the original function and just reference it in the productized CLI.

We're good with the exact same defaults. thanks!

/test ?

/test e2e-aws

/test e2e-kubevirt-aws-ovn

/retest

TestUpgradeControlPlane/EnsureNoCrashingPods flake.
/retest-required


crash: fix --limit deployments (containers)

ceph-crash deployments is broken when ceph-ansible playbook is called
with --limit in containerized contexts since we don't set
container_exec_cmd on the first monitor.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1964835
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

jenkins test centos-container-all_in_one

jenkins test centos-container-all_in_one

jenkins test centos-container-all_daemons

jenkins test centos-container-all_daemons

jenkins test centos-container-all_daemons

jenkins test centos-container-all_daemons


fixes alignment on opaque types as discueed with @tidwall

Please do not open a pull request without first filing an issue and/or discussing the feature directly with me.
Please ensure you adhere to every item in this list

[x] This PR was pre-approved by the project maintainer
[x] I have self-reviewed the code
[x] I have added all necessary tests

Describe your changes
Please provide detailed description of the changes.
When using this library from Zig, the Zig compiler caught some undefined behavior with respect to the opaque types. The fix as discussed with @tidwall was to override the default alignment on the exported opaque types and added the necessary static_assert checks to the internal types such that they match.
https://github.com/tidwall/neco/issues/11

Thanks!


Expanded ML config

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Any change needs to be discussed before proceeding. Failure to do so may result in the rejection of the pull request.
Please provide enough information so that others can review your pull request:

Expanded config, it can store more than one ML algorithms parameters;
Fixed train methods signatures in models;
Added parameters for all existed ML models (LinearRegression, kNearestNeighborsRegressor, CatBoostRegressor).

Explain the details for making this change. What existing problem does the pull request solve?
Now we can store multiple ML parameters without copy-paste from temporary files with parameters. Also added common pattern to work with new NL algorithms, parsers and metrics.
Closing issues
Resolved #15

This pull request is now managed with CodeReviewHub. Refresh.

:shipit:


Rule idea: ask to use DerivingStrategies

if

a module have both DeriveAnyClass and GeneralizedNewtypeDeriving enabled
and have a newtype with non-specific deriving clause

then

request to enable DerivingStrategies if not already enabled
and use specific deriving newtype or anyclass

an example (in this case, probably irrelevant, in general: not so much).
{-# LANGUAGE DeriveAnyClass, GeneralizedNewtypeDeriving #-}

import Data.Hashable

newtype Foo = Foo Int
  deriving (Hashable)

Oh, I noticed #683
I think that with
a module have both DeriveAnyClass and GeneralizedNewtypeDeriving enabled
precondition that hint can be enabled by default.
ping @divarvel

Note that the new rule suggests deriving newtype however very often (usually?) that suggestion is wrong. For (Show, Read) this modifies the behaviour (introduces bugs). Perhaps there should be a specific list of classes for which it always suggests deriving stock?

I made the choice to suggest newtype because it's always possible. When it comes to introducing bugs or not, it depends on the intent of the programmer (which sadly hlint can't guess).
Having a list of stock-derivable instances could be a solution indeed. or maybe is there a way to have multiple suggestions?
Regarding DeriveAnyClass / GND, that'd be a good idea, but I don't know if I have access to this information in the hint code. If that's the case, I can emit a warning, else keep the ignore. wdyt?

I made the choice to suggest newtype because it's always possible. When it comes to introducing bugs or not, it depends on the intent of the programmer (which sadly hlint can't guess).

I don't think it's always possible. Take this example:
data Foo = Foo Int Int
newtype Bar a = Bar Foo deriving stock Functor

This works with deriving stock but not with deriving newtype.

Having a list of stock-derivable instances could be a solution indeed. or maybe is there a way to have multiple suggestions? In any case, I didn't want to try and recompute the actual behaviour.

It's best to suggest the suggestion which doesn't modify the behaviour of the code!

Personally, I want to be warned all the time, because I want to know what's happening just by looking at the definition, regardless of which extensions are enabled.

Iiuc, currently the warning requires the user to manually enable it in their .yaml configuration, and what @phadej is suggesting is that in addition it will be enabled more often, also where these extensions are active and the rule isn't explicitly enabled in the configuration.

It's best to suggest the suggestion which doesn't modify the behaviour of the code!

Indeed, that's a point I've mentioned in the original PR. I don't know if it's feasible to accurately know the current behaviour, though (if it is, it'd be indeed better to suggest something that preserves semantics).
I like @phadej's idea of enabling it by default based on enabled extensions. I'm not sure how to do it, sadly.

Where available, deriving stock and deriving anyclass produce well behaved instances, whereas deriving newtype is the bug-prone option (Show instances no longer match code etc)
Other than a list of stock derivable classes, we can't know which classes can be derived via either anyclass or newtype

So is it possible to warn without suggesting (often wrong) code changes? @ndmitchell

The problem with DerivingStrategies is it's only available in a later version of GHC relative to the other extensions. As such, recommending it is probably not a good idea.
It would be great if the suggested hints were semantics preserving. If they can't be preserving you could omit the suggested output - better nothing than the wrong thing. Remember the stock derivable classes change with extensions like DeriveFunctor, and you can't tell what is in the users .cabal file, so it might just be impossible to do correctly.

I think the best solution would be to not suggest anything indeed. I was not aware of that possiblity (I thought it was only "put this instead" or "remove this"). Do you have an example of such a hint? I'll submit another patch to remove the controversial newtype suggestion.

You can write:
newTypeDerivingStrategiesHintDecl x = [rawIdeaN Ignore "Use DerivingStrategies" (srcInfoSpan $ ann x) (prettyPrint x) Nothing [] | Just new <- [newtypeDecl x]]

Of course, once you've done that, you probably want to turn newtypeDecl into a Bool rather than returning a Just that you don't use the contents of.

I'll do that. Since it's disabled by default, we can expect users who see
it to know what deriving strategies are and how they can use it.
Thanks!
Le lun. 1 juil. 2019 à 18:03, Neil Mitchell<EMAIL_ADDRESS>a
écrit :

You can write:
newTypeDerivingStrategiesHintDecl x = [rawIdeaN Ignore "Use DerivingStrategies" (srcInfoSpan $ ann x) (prettyPrint x) Nothing [] | Just new <- [newtypeDecl x]]
Of course, once you've done that, you probably want to turn newtypeDecl
into a Bool rather than returning a Just that you don't use the contents
of.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ndmitchell/hlint/issues/690?email_source=notifications&email_token=AABKJ47FCS2X3HHLDU2OEY3P5ITFZA5CNFSM4H3UBRR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY6TE7I#issuecomment-507327101,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABKJ43YNWITFSDA2Q2G6PTP5ITFZANCNFSM4H3UBRRQ
.


content/en/docs/getting-started/examples: Qualify promotion advice

There's no need to promote images that have no known consumer; it just clutters up the target namespace.
And if folks accidentally promote images that ask to be included in OpenShift releases, it can lead to redundant manifests and impact OKD releases, openshift/release#23351.

/lgtm cancel
The links test failure looks real and related to this PR

Oops.  CI:
  *  linking to internal hash #product-builds-and-becoming-part-of-an-openshift-release-image that does not exist (line 51)
     the  label

I've pushed 6086962 -> 6cf5269 to move from a GitHub-repo-browser ref to a built-CI-docs-site ref.  Hopefully that works...

Success: