[Awaiting Feedback] Roslyn-based Code Generation

What is this?
This PR adds several new projects to the core solution to support a Roslyn-based code generator:

BrightstarDB.CodeGeneration : this is the core code generation logic - the brains of the operation
BrightstarDB.CodeGeneration.Tests : contains tests for the core code generation logic
BrightstarDB.CodeGeneration.Console : a console-based code generator
BrightstarDB.CodeGeneration.T4 : a T4 template based code generator

What's cool about it?

it generates both C# and VB code
it allows you to use nameof in your attributes: [InverseProperty(nameof(IParentEntity.Children))]. No more magic strings!
it supports multiple tools for generating the code - console or T4 - which means it is usable outside of VS
on top of that, the T4 template is almost completely agnostic of VS. I will test this once I have NuGets, but it should be possible to use from Xamarin Studio with a couple of tweaks

Task List

[x] Create the requisite project structure in the core solution
[X] Write the core code generation logic
[X] Write tests for the code generation logic when generating C#
[x] Write tests for the code generation logic when generating VB
[X] Write a console-based code generator
[X] Test the console-based generator
[X] Write a T4-based code generator
[x] Test the T4-based code generator
[x] Create NuGet packages for both the console and T4 based generators
[x] Test the NuGets

How would I use it?
Console
You'd install the BrightstarDB.CodeGeneration.Console NuGet package. This is a solution-level package that will add a tool to your packages structure. It is invoked like this:
BrightstarDB.CodeGeneration.Console path/to/MySolution.sln My.Context.Namespace Output.cs

One can optionally specify the context name (defaults to "EntityContext") or force the language (defaults to whatever makes sense for the output file's extension).
T4
You'd install the BrightstarDB.CodeGeneration.T4 NuGet package. This adds a file called EntityContext.tt to your project. You can move this file around as you see fit and it affects the namespace of the context only (not the entities).
The execution of this template is actually resolving the code generation assembly in the tools folder of the package and forwarding the request on. All the T4 template really does is spit out the result of calling the core logic.
Questions for you

the existing template logic seems to support ISet<T> in one place, but then only ICollection<T> in another. My implementation therefore only supports ICollection<T>. Is this correct?
the existing template logic somehow strips certain attributes from propagating through to the generated properties, but I couldn't figure out exactly how/what it was stripping. My implementation strips any attribute in the BrightstarDB.EntityFramework namespace. All other attributes are propagated. Is this OK?

Not sure why all your commits got included in this PR. I may have done something wrong. Let me know if you need me to recreate the PR.

Hi Kent,
Not sure what happened to my last comment !
This all looks great - I have it compiling here with a couple of minor project file tweaks. The one thing I would like to do is to get the main EF tests running of the new T4 template rather than the old one, maybe using a "simulated" NuGet package that can be created by the project as a before build step. That way we can make use of all of the previously written tests (though for the most part they really test EF rather than the code generation, but its good to do from a regression point of view).
I think that would be easier to do with this PR merged into develop. So I'm going to do that now and we may need to collaborate a bit on getting all the bits in the right place.
This is great work! Thanks for sharing it.
Cheers
Kal

np Kal. Note that the codegen projects now produce NuGet packages (they're spat into the output directory under a NuGet subdirectory). The build script for producing them differs from what was there already because they're not simple project NuGets - they're tools/content NuGets instead.
Anyways, ping me if you need anything.

I'm getting an error trying to run the codegen from inside VS2013. It looks like it might be necessary to bundle a recompiled version of Roslyn that uses MSBuild 4.0 otherwise we end up with a hard dependency on VS2015

@kal It runs fine for me from within 2013. What error are you getting?

I'm getting a file not found exception from the assembly loader, looking
for Microsoft.Build <IP_ADDRESS>. This assembly is part of the VS2015 toolkit
and all the info I have found about this indicates that you need to have
CTP5 or later installed. I'm guessing that your machine probably already
has VS2015 installed and so the assembly is found.
I think this probably means that the way to go is to keep the old TT file
for now, and make it clear to folks that they can alternatively use the
codegen command line or the codegen-based TT file, but that it requires
VS2015 to be installed. In a few months, this won't be a big issue for
anyone and maybe once 2015 is out we can deprecate the old TT file and swap
things around so that codegen becomes the default for EF.
On Sun, Apr 19, 2015 at 12:12 AM, Kent Boogaart<EMAIL_ADDRESS>wrote:

@kal https://github.com/kal It runs fine for me from within 2013. What
error are you getting?
—
Reply to this email directly or view it on GitHub
https://github.com/BrightstarDB/BrightstarDB/pull/204#issuecomment-94211807
.

Ah, I see. Yes, I have 2015 and 2013 side by side. I do wonder whether this is a temporary pre-release issue only. That is, whether Roslyn will eventually depend on an appropriate NuGet package rather than what's available on the local machine.


⚠ Bofrost.lu has degraded performance

In 3667ac5, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1543 ms

Resolved: Bofrost.lu performance has improved in 6e6abf7 after 13 minutes.


Should preview show me the full layout or just the markdown?

I'm playing around with prose.
I have a Jekyll site, it allows me to edit the markdown files, and the preview shows me the generated html from the markdown.
However, is it supposed to also show me the rest of the page when I preview? Like the layout? CSS? etc?
My site uses Jekyll 3 and plugins, if it matters...

It just shows you your rendered markdown content, without the extra templates or styles in your Jekyll site.

From the Prose website (emphasis mine):

Prose has advanced support for Jekyll sites and markdown content. Prose detects markdown posts in Jekyll sites and provides syntax highlighting, a formatting toolbar, and draft previews in the site's full layout.

@nasht00
I have got this working by adding the following to _config.yml
siteurl: ...Turns on Jekyll live previews. The url is the homepage of the live site.
prose:
  siteurl: 'http://foo.example.com'
...
...

@nasht00 @aussielunix I don't have a repo I can test this with right now, but please mark this closed if it's resolved or send an update here.

@dereklieu confirming, this works with markdown files if you add the prose config object with a url.
It does not work with .html files but i think we should make a separate issue for that

@nasht00 more info can be found here https://github.com/prose/prose/wiki/Prose-Configuration#options

I don't seem to have luck with this on my blog I'm setting up:
https://github.com/joshcomley/Overengineer
I've just taken a template and I'm currently in the process of configuring it all.
I put the right entry in _config.yml but nevertheless, when I click on the preview button I just get the standard preview. Is there something I might be missing?
Here is my _config.yml:
https://github.com/joshcomley/Overengineer/blob/gh-pages/_config.yml

Note to self, here:
Prose.io uses the blog.html template in \_layouts, if you don't have this, then you'll just get a blank preview.
However, I still haven't solved why the previews weren't working. I have taken a copy of the Prose starter site, replaced my entire repository with it, then previews worked. Then I gradually put my old repo code back in bit by bit, testing at each increment, and now it's restored fully again but previews are working.

OK, further research yields this:
The _config.yml file needs to have this exact (as far as I can tell) setting in it:
prose:
	metadata:
	  _posts:
		- name: "layout"
		  field:
			element: "hidden"
			value: "blog"

I tried setting blog to default, where I do have a default.html in my _layouts folder that is identical to the blog.html, but it would disable the live preview.


Added an explanaion of how to append new data with an import

Closes #6704
Change Description
Added a better explanation of how to import additional data into an existing path in a repository.

@itaiad200 looks like it is parked on your side - anything is blocking or we should close this one?

The import page has been completely revised. In any case - hacks are something users should come up with themselves, they shouldn't be part of the docs.
If we want to support an appending import (personally, I don't think we should)- this can be discussed.


Fix running parallelized tests in STA thread

fix: https://github.com/microsoft/testfx/issues/3208

Merging as-is for now, we can refactor later if we want.


Determine Jedis Connection Pool Size

Once we have some load-tests in place, we need to determine how big to make the Jedis connection pool.
See more here, specifically this:
JedisPoolConfig poolConfig = new JedisPoolConfig();
// Default : 8, consider how many concurrent connections into Redis you will need under load
poolConfig.setMaxTotal(128);

This issue is superceded by https://github.com/sappenin/java-ilpv4-connector/issues/337


Exclude JDK11 failed openjdk tests temporarily in July release

Exclude test failures in jdk_nio, jdk_net, jdk_security1, jdk_security_infra, and jdk_rmi
Related Issue: Internal_Git infrastructure #5732

Signed-off-by: Longyu Zhang<EMAIL_ADDRESS>

Test links (Internal Grinder):
jdk11: xlinux: 17381    Aarch: 17382    aix: 17383    plinux: 17384    zlinux: 17385    win: 17386

@llxia @ShelleyLambert Could you review it? Thanks.


[BUG] failed to generate bindings for import

Steps to Reproduce

The code is here

Run npm install

Run npm run build-prod-force

I get this error:
error: failed to generate bindings for import `Closure(Closure { shim_idx: 20, dtor_idx: 21, function: Function { arguments: [Anyref], shim_idx: 20, ret: Unit }, mutable: true })`
    caused by: no function table found in module
Error: Running the wasm-bindgen CLI

This is using the latest wasm-bindgen (0.2.46) and latest wasm-pack (0.8.1)

Oh wow that's a chain of events I wouldn't have expected, should be fixed in https://github.com/rustwasm/wasm-bindgen/pull/1606!


part 15 missing

Given the fantastic work you've done so far, its a real shame to leave it hanging, the work with nested scopes is fantastic and brilliantly explained.
A great topic for the next instalment might be IF blocks with their own scopes
From there you only need some rudimentary input / output and you have a much more complete set of articles...

Hear, hear!
Hope the author would continue writing the tutorial at his convenience.

Will it continue? Waiting and waiting ...

Excellent work. I'm following the series. Hope you can come back to do more. I'm waiting :)

Excellent work sir! Please keep it coming. Cheers!

wating...hope continue...

Excellent work!  Waiting for part 20


Update AboutUs image from jpg to png

Slight formatting issue. File was previously .png.jpg. Changed to .png.
Fixes #42

Codecov Report

Merging #59 (1a31477) into master (f54313c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #59   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f54313c...1a31477. Read the comment docs.


fail-on-error does not work correctly when use-reviewdog is enabled

https://github.com/k1LoW/runn/blob/main/.github/workflows/ci.yml#L38
https://github.com/k1LoW/runn/actions/runs/6257717069/job/16990484178#step:7:102
Errors are present, but CI has not failed.

Hi @k2tzumi.
This is the intended behavior: fail-on-error works with the filter-mode of reviewdog if reviewdog is enabled.

Please see https://github.com/reviewdog/reviewdog#filter-mode

@k1LoW
The default filter mode of reviewdog is set to added.
Does this mean that if fail-on-error is true, the workflow will fail when set to nofilter?
https://github.com/reviewdog/reviewdog#nofilter

-fail-on-error also works with any filter-mode and can catch all results from any linters with nofilter mode.

Also, is there a possibility that the default filter mode of reviewdog will be reconsidered?

Does this mean that if fail-on-error is true, the workflow will fail when set to nofilter?

Yes.

Also, is there a possibility that the default filter mode of reviewdog will be reconsidered?

No. I would like to default to added as well as reviewdog.
Because we do not want to make contributors fix lint errors caused by gostyle updates to code that has nothing to do with the Pull Request.


Active filtering needs to be reviewed

Is your feature request related to a problem? Please describe.
We need to investigate the active filtering since there may not be reliable metadata that we can use it.
Describe the solution you'd like
We want to see all active ballots when the active filter is selected.
Describe alternatives you've considered
Filter the ballots by the end date being later than the current date.

Hi i have PR for this too )

@DevArtemNuss This task relates to the active filter specifically. I understand that your PR solves a possible issue where the active proposals don't seem to exist because they're not showing.
This task, however, is an investigation of how the current active filter is working vs how it should be working. We suspect we will need to rely on the end date to identify active proposals.

fixed by #96


App with 3rd party sign in services can't be uploaded(published) to the App Store

From iOS SDK 13 all apps contained 3rd party login services must include Sign In via Apple
Link to the news
Do you have any plans to implement this feature?
[UPD 13.08.2020]
Apple was rejected the app with sign in via Apple regarding to wrong Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
Full message from the Apple:

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requires users to register with personal information that is not directly relevant to your app's core functionality. Specifically, the following fields or actions are required but do not appear to be directly relevant to your app's core functionality:

Your app requires users to input their name and/or email address after using Sign in with Apple.
Next Steps
To resolve this issue, please either remove all required fields that are not relevant to the app or make those fields optional. Information requested during registration must be relevant to the features the app provides.
Additionally, make sure your app does not require two-factor authentication after users use Sign in with Apple. Sign in with Apple is a self-contained, all-in-one login system that should not require additional steps or information from the user.

#1400 closes this one


Bump compileSdkVersion to 34 in Gradle buildscripts

:scroll: Description
This PR only bumps compileSdkVersion from 33 to 34 (both of the Android plugin, and the Android example app).
:bulb: Motivation and Context
See https://github.com/flutter/flutter/issues/63533#issuecomment-2027851231 to learn more why this change is beneficial for downstream users.
:green_heart: How did you test it?
I run the example app locally – it works.
:pencil: Checklist

[x] I reviewed submitted code
[ ] I added tests to verify changes
[x] No new PII added or SDK only sends newly added PII if sendDefaultPii is enabled
[ ] I updated the docs if needed
[x] All tests passing
[x] No breaking changes

:crystal_ball: Next steps
Release this :)

Thx for raising this issue, seems like a good change

CI is complaining, can you add a changelog entry?
## Unreleased

### Build

- Bump compileSdkVersion to 34 in Gradle buildscripts ([#1980](https://github.com/getsentry/sentry-dart/pull/1980))

Done, thanks!


add function to round float to dac resolution

@jenshnielsen @AdriaanRol

I don't have anyway to test this but it looks sensible to refactor this out into a function

@AdriaanRol any objections to merging this?

@jenshnielsen no objections


Sample test for DDD Layered Architecture

Enhancement description
It would be great to have a sample test to test standard architecture patterns. In this issue, the Layered Architecture
After testing with a canOnlyDependOn rule, we found out that vendor / libary classes obviously also get resolved. In other words, the rule (if I'm correct ? ) should be an exclusion rule using mustNotDependOn.

https://www.oreilly.com/library/view/domain-driven-design-in/9781787284944/00830b50-6403-4fba-8139-9ec64f18d756.xhtml
Suggested approach or solution
What about adding a folder with samples like the following:
<?php

use PhpAT\Rule\Rule;
use PhpAT\Selector\Selector;
use PhpAT\Test\ArchitectureTest;

final class LayeredArchitectureTest extends ArchitectureTest
{
    public function testUserInterface(): Rule
    {
        return $this->newRule
            ->classesThat(Selector::havePath('UserInterface/*'))
            ->mustNotDependOn()
            ->classesThat(Selector::havePath('Infra/*'))
            ->build();
    }

    public function testApplication(): Rule
    {
        return $this->newRule
            ->classesThat(Selector::havePath('Application/*'))
            ->mustNotDependOn()
            ->classesThat(Selector::havePath('UserInterface/*'))
            ->build();
    }

    public function testDomain(): Rule
    {
        return $this->newRule
            ->classesThat(Selector::havePath('Domain/*'))
            ->mustNotDependOn()
            ->classesThat(Selector::havePath('Application/*'))
            ->andClassesThat(Selector::havePath('UserInterface/*'))
            ->build();
    }

    public function testInfra()
    {
        return $this->newRule
            ->classesThat(Selector::havePath('Domain/*'))
            ->mustNotDependOn()
            ->classesThat(Selector::havePath('UserInterface/*'))
            ->build();
    }
}

Hey Richard, thank you for taking the time.
I have in mind to add such a section in the docs, but since I'm going to modify some parts of the class resolution, I'm holding this to the future.
Regarding this:

After testing with a canOnlyDependOn rule, we found out that vendor / libary classes obviously also get resolved. In other words, the rule (if I'm correct ? ) should be an exclusion rule using mustNotDependOn.

Short answer: Yes.
Long answer: Right now the selectors are applied over the AST build with using the src option, so if you want to add to canOnlyDependOn some classes from for instance, Doctrine, you are not able to do it. I'm going to work on a simplification of the haveClassName selector so it will allow the rule to assert over the specified class names even if they are not part of the AST. With this modification you will be able to allow only Domain and Doctrine instead of just forbidding Application and Infrastructure.
I will put the issue on hold but I will have in mind to add more use cases in the documentation.

There is a new doc section https://github.com/carlosas/phpat/blob/master/doc/WHAT_TO_TEST.md
Also now phpat support external dependency checks in different ways. Here some examples:

https://github.com/carlosas/phpat/blob/master/tests/architecture/ComposerTest.php
https://github.com/carlosas/phpat/blob/master/tests/architecture/RuleTest.php#L27
https://github.com/carlosas/phpat/blob/master/tests/architecture/Test.xml#L25

If you have any doubt or see something weird, don't hesitate to comment here or open a new issue :)


feat(jsx-email): allow preview server to serve files outside of workspace root

Since the preview app is tucked away in node_modules, it doesn't allow for files to be served from a consumer's actual project root. This would help by serving local files (ex static/cat.png) during development

Component / Package Name:
This PR contains:

[ ] bugfix
[x] feature
[ ] refactor
[x] documentation
[ ] other

Are tests included?

[ ] yes (bugfixes and features will not be merged without tests)
[x] no

Breaking Changes?

[ ] yes (breaking changes will not be merged unless absolutely necessary)
[x] no

If yes, please include "BREAKING CHANGES:" in the first commit message body, followed by a description of what is breaking.
List any relevant issue numbers:

Description

I'm really excited to use this repo! I made some contributions to the the OG react-email project, but it is time to update things, so I'm taking this out for a spin.
I really like the simplified dev env through vite, that seems much more intuitive to me as well. However, I'd like replicate some behavior that we built a bit of our CI tooling around: static asset handling.
react-email would do a very large and spooky copy/paste of assets in order to make them available during development. I'd like to keep the feature of using local assets in development.
Turning of vite's fs.strict field allows a dev to import (via import.meta.resolve) a local file that is outside of the vite preview project, which is nestled deep in node_modules.
Unless there is a more canonical why of doing this, check out my example I added to the docs for how it could work (and does with a monkey patch on my project).
(I'd like help with tests, I wasn't sure how to integrate using import.meta.resolve in the test file because the tsconfig module was not set to ESNext.
I tried with path and __dirname, but then also realized that it would resolve to the local machine, not the test env 😬 LMK!)

Thanks for the PR! We're working on getting automated testing setup for the preview app (there's an in progress open PR for that). Because we don't have testing setup just yet, would you be willing to add a template to apps/demo/emails with an example that pulls in those resources in the way you're describing? We're eventually going to have playwright setup for some automated tests, but we can use that to test manually in the meantime.

@shellscape Ok, I'd forgotten to push up a doc update last night! However, good idea for an email preview.
The demo app was giving me some type troubles... I don't like the tsconfig.json that I had to add, but it seems to make things happy again since vite isn't a direct dependency. 🤷
LMK if these updates are more in line with what you were thinking! Happy to contribute!

Thanks for your patience and working with us on this one. The holiday threw some delay in there. I'm getting ready to merge this today so please keep an eye out for an update.


Downloads freeze after I start training

This is not an initial installation issue. After everything had been installed, I set up all of my folders, uploaded the config file and pressed train. I watched the command prompt do its thing until it just stopped downing the files and wouldn’t start again even with a fresh install.
my second issue is that the program is trying to install around 12gbs of files all at once and my internet is as slow as a snail! Is there anyway you can make sure they download one at a time? It’s a real issue.
Also, I should mention I did not download your code directly, I downloaded the kohya ss gui, if that means anything.

I finally got it installed. The problem was that the program installs several very large packages and places them in "/cache/huggingface/" or something like that, around 16gbs all at once! It was hogging my entire broadband. Once it was installed the first time I didn't have a problem reinstalling it because the packages were already there.
I think you might want to look into throttling the download of those packages and force them to download one at a time instead of all at once. The installation process might take longer, however... it should at least be an option.


metadata doesn't propagate from LateralProfile to Curve

See this:
>>> from beprof import curve
>>> from beprof import profile
>>> p1 = profile.LateralProfile( [[0,0],[1,1]], generator="sin")
>>> print(p1)
shape: (2, 2)
X : [0.000,1.000]
Y : [0.000000,1.000000]
Metadata : {'generator': 'sin'}
 FWHM = nan None
Center = nan Penumbra = [0.800,nan]
>>> c1 = curve.Curve(p1)
>>> print(c1)
shape: (2, 2)
X : [0.000,1.000]
Y : [0.000000,1.000000]
Metadata : {}

@grzanka I think we removed LateralProfile class, so this issue is no longer valid.

try to reproduce it in another way - create own class which inherits from Curve and check if it behaves well

Still valid:
class TestCurve(Curve):
    pass

def main2():
    p1 = TestCurve([[0, 0], [1, 1]], generator="sin")
    print(p1)
    c1 = Curve(p1)
    print(c1)

Returns:
C:\Python\Python35-32\python.exe C:/Users/ant6/PycharmProjects/beprof/beprof/curve.py
shape: (2, 2)
X : [0.000,1.000]
Y : [0.000000,1.000000]
Metadata : {'generator': 'sin'}
shape: (2, 2)
X : [0.000,1.000]
Y : [0.000000,1.000000]
Metadata : {}

Can you fix it quickly ? If yes, do it, otherwise let's postpone it to next release.

I think this may require some additional code refactoring: https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses/
I'll move it to next milestone.

OK


Unhide/enable Service Designer and Administration

Service Designer and Administration would now be enabled by default.
The only check that could possibly block displaying these two features is the RBAC setting for the the logged-in user.
Before:

After:

PT: https://www.pivotaltracker.com/n/projects/1914499/stories/135955515

@AparnaKarve can you please update your card with this link to this PR and it's correct status?

@chriskacerguis Done.


Second Meeting (Wednesday Feb 15th, 6:30pm Belk 318)

I don't yet have a schedule for this meeting, but I'm working on it. Also, we have this room reserved every week indefinitely. Due to it having carpet floors, we'll still need to eat outside, but I think that's an acceptable price for dedicated space.

Workshop options:

Intro to shell programming: Basic syntax constructs in common shell languages and how to make executable scripts.
Portable configuration: Stephen discussed making portable configuration files at a previous meeting. Maybe he could teach us about how to set that up?
Getting around in the shell: How to navigate the file system quickly within the shell


Scene window closes abruptly on Win10 without error msg

I've managed to consistently reproduce an unexpected closing of the makie window on Windows 10 using this script: https://gist.github.com/jonalm/d88d7e65ea3945d9dcbaf206e546f69d. I've seen similar behavior with other makie plots using the same laptop, in particular long lived plots which uses widgets, but it is hard to  investigate the cause as the closing appears randomly, sometimes after extensive use of interaction in the plot, e.g. page scrolling (see script), and/or movement/resizing of the plot window.
Typing isopen(scene) gives true, after the window has closed, but no error messages are reported. When I inspect the task manager while triggering the closing, I see no anomalies in cpu/gpu/memory or disk usage.
I've also tried running
ENV["MODERNGL_DEBUGGING"] = true
] add ModernGL#master; build ModernGL
using ModernGL; @assert ModernGL.enable_opengl_debugging

before running the script, but still no error messages are reported.
I have not managed to reproduce the same behavior on my macbook pro.
Version details:
OS: Windows 10
Laptop: Thinkpad E15
GPU: intel UHD
Julia: 1.5.3
GLMakie: 0.1.20
AbstractPlotting: 0.14.2

Oooh, maybe this is related?
https://github.com/JuliaPlots/GLMakie.jl/pull/149

Oooh, maybe this is related?

As in "introduced by that PR"? I've been seeing this behavior for weeks or even months on my work laptop. It's also windows, also intel graphics I think. All kinds of GLMakie and AbstractPlotting versions

The other way around, I just merged this PR a second ago ;)

how can I checkout that verison of GLMakie to check if that fixes it?

I'll try to get a version out tonight... I merged a couple of things into master which I need to clean up make sure they don't introduce issues

Try this: https://github.com/JuliaRegistries/General/pull/26770

With GLMakie v0.1.22 I get this error when the display closes
julia> GLFWError (PLATFORM_ERROR): WGL: Failed to make context current: The requested transformation operation is not supported.
Stacktrace:
 [1] _ErrorCallbackWrapper(::Int32, ::Cstring) at C:\Users\Jon Alm Eriksen\.julia\packages\GLFW\CBo9c\src\callback.jl:43 [2] MakeContextCurrent at C:\Users\Jon Alm Eriksen\.julia\packages\GLFW\CBo9c\src\glfw3.jl:694 [inlined]
 [3] make_context_current at C:\Users\Jon Alm Eriksen\.julia\packages\GLMakie\1xFZI\src\drawing_primitives.jl:46 [inlined]
 [4] fps_renderloop(::GLMakie.Screen, ::Float64) at C:\Users\Jon Alm Eriksen\.julia\packages\GLMakie\1xFZI\src\rendering.jl:26
 [5] renderloop(::GLMakie.Screen; framerate::Float64) at C:\Users\Jon Alm Eriksen\.julia\packages\GLMakie\1xFZI\src\rendering.jl:48
 [6] renderloop(::GLMakie.Screen) at C:\Users\Jon Alm Eriksen\.julia\packages\GLMakie\1xFZI\src\rendering.jl:41
 [7] (::GLMakie.var"#44#46"{GLMakie.Screen})() at .\task.jl:356

Hm, maybe that's exactly the kind of error that got ignored previously and silently killed the renderloop... I have no idea what that means, but it indicates some driver not implementing something, which would explain why this only happens on some GPUs...Will try to google this ;)

Pfew, googling leads to lots of "i have the same issue, intel do something" and then no further comments or solutions, besides not using the intel GPU:
https://github.com/intel-isl/Open3D/issues/1598


Copying files between any two folders is invalid and nothing happens

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '....'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS Version: [e.g. Windows 10 20H2 19042.804]
App version: [e.g. v<IP_ADDRESS>]

Additional context
Add any other context about the problem here. Does this problem occur again after restarting the app?
Log file
Please upload the log file here so that we can understand your issue better. You can access it from Settings->About->Open log location. You can also find this file by going to %localappdata%\Packages\49306atecsolution.FilesUWP_et10x9a9vyk8t\LocalState, you should see a file in this directory called debug.txt or/and debug_fulltrust.txt.

Is this happening when doing ctrl+c / ctrl+v? Or also when using copy/paste from the context menu?
Could you post the app's log files?

debug.txt
debug_fulltrust.txt
Is this happening when doing ctrl+c / ctrl+v? Or also when using copy/paste from the context menu?——YES
Happy thing, when I just verified this problem, I found that it was all right.

Thanks for the info. Closing this for the moment. If it happens again, please let us know ;)


✨ Refactor literals for Enums

Hey ! great work ! amazing what are you accomplish 🥳. It would be nice if instead of using literals e.g: ScrollMode we changed for using Enums so in the documentation examples you can write something  like
page.scroll = ScrollMode.ALWAYS

and even better IDE will try to autocomplete and get a better development experience. what do you think ? Let me know if you are interesting and I'm willing to make the proper changes.

Great idea!
I'm thinking about backward compatibility and came up with this:
from enum import Enum

class Color(Enum):
    RED = "red"
    GREEN = "green"
    BLUE = "blue"

class TestControl:
    def __init__(self, color: Color) -> None:
        self.color = color.value if isinstance(color, Color) else color

t1 = TestControl(Color.BLUE)
print(t1.color)
t2 = TestControl("blue")
print(t2.color)

So, initially both strings (as of now) and enums can be supported though strings after Flet module update will be errored while type checking. But it's design-time only, right?

ha ! I've just see i could create a discussion, sorry I didn't use to much that github feature. well I think in you example we need to add
class TestControl:
    def __init__(self, color: Union[Color, str]) -> None:
        self.color = color.value if isinstance(color, Color) else color

just to be compliant with the type checking.
Also (another question) if i use page.controls.append(t) it isn't thread safe ? if I'm right I think is worth to mention in the documentation. and this pattern of accessing to controls and updating is all around the controls so we can think in a more general thread safe to add controls. (maybe inherit)

Ah, that's a nice catch. Yes, control tree is not thread-safe. I did some experimenting with thread-safe tree in the past but it drastically increase complexity. I'd suggest to have a global lock on the entire tree (page) if you require thread safety. If you could point me to a robust thread-safe tree implementation for Python that would be helpful.
So, are you still willing to help with enums?

I don't have any experience with that kind of implementation but i could research, and yes ! this evening I'll open a pr with the refactor ! I'll let you known as soon as is finished ! do you have any suggestion to start writing tests for the sdk ?

Tests is another question! :) I'm thinking about doind intergration tests mostly. I don't have experience with Flutter integration tests, but there are some examples: https://github.com/flet-dev/flet/issues/143

Issue Should be closed.


Update flyway-core to 8.5.6

Updates org.flywaydb:flyway-core from 7.15.0 to 8.5.6.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.flywaydb", artifactId = "flyway-core" } ]

labels: library-update, early-semver-major, semver-spec-major, commit-count:1

Superseded by #624.


Losing content of unsaved files in workspace

After upgrading to this Insider version a reopening my workspaces all the files which weren't saved yet are open as usual but the content in empty.

VS Code version:
Version: 1.42.0-insider (user setup)
Commit: 22a87bf3f259d3fcff66f636a9db611741c7e1c5
Date: 2019-12-17T05:41:30.616Z
Electron: 6.1.6
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Windows_NT x64 10.0.19037
Steps to Reproduce:

Have a previous Insiders version with "files.hotExit": "onExitAndWindowClose"
Open a workspace (in my case it was a WSL2 workspace)
Open a new file (Ctrl+N) and write something inside
Upgrade to new version
Reopen workspace

Expected results: File with content is there
Actual results: I see the the open tab (Untitled-1) but there is no content inside

Does this issue occur when all extensions are disabled?: Unfortunately no way to test

...checking (and stopped insiders from distributing)

Sorry for that, I pushed a fix and triggered new insider builds. Unfortunately there is currently no way to get this data back :-(. I will try to write a test for this case.
Broken with https://github.com/microsoft/vscode/commit/2b1bbfa63f2c5c65a074b5547ae92461082b9692 btw.

If I have some workspaces which I haven't opened yet, will the files still be gone (if I upgrade before opening it). Meaning was it bug in upgrade process or opening the workspace?

@puco that should be fine if you update VSCode before opening these workspaces. It is a bug that only occurs when you open that workspace with backups (which unfortunately is the default setting for most).

https://github.com/microsoft/vscode/commit/16125bcbe3ad883a7a3f0b3abbfae280e1018b54 adds a test for this.


Maybe move all Julia wrapper functions into a submodule

Maybe move all low-level Julia functions that calls C functions into a submodule, e.g. ThArrays.ThC, so that their methods can be distinguished from other Julia functions.
Besides, perhaps check into the repo the file generated by api_generator.jl, since it is helpful to look at the file to find certain functions.

Done.

Thanks, perhaps move all ThC files into a subfolder src/thc? Also, any reason for exporting all the ThC.* methods? We can probably access these methods using the prefix like ThC.sin everywhere.

Module ThC is only a single file, so I think it's OK to just simply leave it in the src folder.
I export the methods in ThC for convenience over explicitness, you are right, explicitness is more important. I will remove the exporting statement. But for your example, some functions have a homonymous method in the Base module, like, abs, sin, ..., for these functions, I extended their homonymous methods in the Base module, so we don't need the ThC qualifier when using them, is this OK in your opinion?

I extended their homonymous methods in the Base module, so we don't need the ThC qualifier when using them, is this OK in your opinion?

Sounds good!

And for other functions that have no homonymous method, should we delete the export statement for it?

Yes, let's delete them and introduce (high-level) Julia functions.

Module ThC is only a single file, so I think it's OK to just simply leave it in the src folder.

How about moving both thc.jl and thc-generator.jl into src/thc? This makes things more explicit thus a bit more readable I think.

All done.


Optionality of sRGB Images and Depth Images for 3.0 conformance

Verify that implementations not supporting either sRGB images or Depth Images (or both) can pass 3.0 conformance and that no additional checks are needed in the image related conformance tests.

I took a quick glance through the CTS source and I don't think anything needs to change for sRGB images or Depth images - these image formats are only required for OpenCL 2.x devices.
See:
https://github.com/KhronosGroup/OpenCL-CTS/blob/master/test_common/harness/imageHelpers.cpp#L3527
We can leave this issue open to confirm, but I believe no action will be required.

We are reviewing this and running tests to confirm that no changes are needed to CTS.

Ran following tests all of which test CL_DEPTH and CL_sRGBA formats and they all passed on a 3.0 implementation that doesn't support these:

cl_copy_images
cl_fill_images
cl_read_write_images
image_streams
kernel_image_methods
samplerless_reads
basic

From 15Sep20 call - check if consistency tests are needed for sRGB

We reviewed this and concluded that no consistency check is needed for the sRGB image format.
However, there is the 2.0 extension cl_khr_srgb_image_writes that adds support for writes to sRGB images so a consistency check can potentially be added to verify that a driver that reports the extension string also exports the corresponding formats.

However, there is the 2.0 extension cl_khr_srgb_image_writes that adds support for writes to sRGB images so a consistency check can potentially be added to verify that a driver that reports the extension string also exports the corresponding formats.

Good point - yes, I agree we could add a consistency check for sRGB image writes.  I don't think this is must-have for OpenCL 3.0, but it's probably not too hard to add, either.
A few questions, if we wanted to add a consistency check.  Some of these questions should debatably go to the spec repo vs. this CTS repo:

Do we want to mandate any specific sRGB image formats for implementations that support cl_khr_srgb_image_writes, or just that at least one write-able sRGB image format is supported?  The spec doesn't say anything about specific sRGB image formats being required.

If an implementation supports at least one write-able sRGB image format must it also advertise support for the cl_khr_srgb_image_writes extension?  Note that we do not currently mention the cl_khr_srgb_image_writes extension anywhere in the API spec other than to generally say that writing to sRGB images is optional.

Qualcomm can add the consistency checks for sRGB image writes. However, this should not be made blocking for 3.0.
Regarding the consistency check itself, I don't think the spec requires a minimum set of sRGB images that need to be supported for writes, Therefore we would look for at least 1 writeable sRGB format. We will double check this.

However, this should not be made blocking for 3.0.

I agree.  I'll remove the label and take this issue off of the board.  Thanks!


Error when combining options for data ls

Hi!
I'm encountering errors while attempting to combine both --tree and --size as arguments to data ls (error output below).
Having the combined information could be very useful (just as in shell command tree -sh).
If the combination of arguments are not intended, the code should probably want to catch and handle those user cases appropriately.
Thanks /Johan
Error output
$ dds_cli data ls --tree --size --project x
     ︵
 ︵ (  )   ︵
(  ) ) (  (  )   SciLifeLab Data Delivery System
 ︶  (  ) ) (    https://delivery.scilifelab.se/
      ︶ (  )    CLI Version 2.5.0
          ︶
Current user: x
Traceback (most recent call last):
  File "dds_cli/__init__.py", line 183, in <module>
  File "click/core.py", line 1130, in __call__
  File "rich_click/rich_group.py", line 21, in main
  File "click/core.py", line 1055, in main
  File "click/core.py", line 1657, in invoke
  File "click/core.py", line 1657, in invoke
  File "click/core.py", line 1404, in invoke
  File "click/core.py", line 760, in invoke
  File "click/decorators.py", line 26, in new_func
  File "dds_cli/__main__.py", line 1823, in list_data
  File "click/core.py", line 760, in invoke
  File "click/decorators.py", line 38, in new_func
  File "dds_cli/__main__.py", line 288, in list_projects_and_contents
  File "dds_cli/data_lister.py", line 371, in list_recursive
  File "dds_cli/data_lister.py", line 269, in __construct_file_tree
  File "dds_cli/data_lister.py", line 271, in <genexpr>
AttributeError: 'float' object has no attribute 'split'
[1482969] Failed to execute script '__init__' due to unhandled exception!

dds_cli and system info
$ dds --version
     ︵
 ︵ (  )   ︵
(  ) ) (  (  )   SciLifeLab Data Delivery System
 ︶  (  ) ) (    https://delivery.scilifelab.se/
      ︶ (  )    CLI Version 2.5.0

$ ldd $(which dds_cli)
        linux-vdso.so.1 (0x00007fffac908000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd4810c1000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd4810a5000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd481082000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd480e90000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd4810d1000)

$ python -V
Python 3.8.10

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

Hi! Thanks for this bug report. We'll look into this!


[FEATURE] Force 100% fan speed at high temperatures

It would be nice if there was a "maximum acceptable temperature", and if it ever detects that the temperature is past that, it forcefully sets the fans to 100% until it goes back down, independent of the moving average. This would allow for having a relatively wide interval without fear of severe overheating if the CPU starts getting too hot.
Would you like to be involved in the development?
Yes, though I'd need some pointers on how this should be configured (per-profile? global? naming?) if I'm going to be the one programming.

Here's a quick, untested implementation that uses a global maximum temperature.
diff --git a/fanctrl.py b/fanctrl.py
index 703e465..b7f8e0d 100644
--- a/fanctrl.py
+++ b/fanctrl.py
@@ -313,12 +313,15 @@ class Configuration:
     def getDefaultStrategy(self):
         return self.getStrategy("defaultStrategy")

     def getDischargingStrategy(self):
         return self.getStrategy("strategyOnDischarging")

+    def getMaxTemp(self):
+        return self.data["maxTemp"]
+

 class SocketController(ABC):
     @abstractmethod
     def startServerSocket(self, commandCallback=None):
         raise UnimplementedException()

@@ -613,13 +616,15 @@ class FanController:
     def run(self, debug=True):
         try:
             while True:
                 if self.active:
                     temp = self.getActualTemperature()
                     # update fan speed every "fanSpeedUpdateFrequency" seconds
-                    if self.timecount % self.getCurrentStrategy().fanSpeedUpdateFrequency == 0:
+                    if temp >= self.configuration.getMaxTemp():
+                        self.setSpeed(100)
+                    elif self.timecount % self.getCurrentStrategy().fanSpeedUpdateFrequency == 0:
                         self.adaptSpeed(temp)
                         self.timecount = 0

                     self.tempHistory.append(temp)

                     if debug:

Hello,
Thanks for your feedback!
I believe that the feature you are asking for can be achieved with temperature curve configuration (e.g. temp >= 90, fans = 100).
If the temperature ever goes above 90, the fans will be set to max after a maximum of [fanSpeedUpdateFrequency] seconds before going to 100%, and wait for the temperature to go below 90 before slowing down.
If this is not the case, could you give more explanation and use case examples?

If the temperature ever goes above 90, the fans will be set to max after a maximum of [fanSpeedUpdateFrequency] seconds before going to 100%, and wait for the temperature to go below 90 before slowing down.

From my experience, that doesn't seem to be the case. Even if the temperature goes higher than the maximum temperature, I can still hear the fan ramping up every couple seconds (fanSpeedUpdateFrequency) until it gets to the 100%. I believe this is because it doesn't just consider the current temperature, but rather the average of the temperature over the last several seconds  (movingAverageInterval).
I have taken a closer look at the code, and there are a couple lines of code that are relevant that stand out to me. Here, it's taking the min of the current temperature and the average temperature, which means that it's slow on the rising edge and fast on the falling edge. However, the behavior I want is sort of the opposite—if it gets hotter than a certain point, it should ignore the average temperature and just go straight to 100% fans. The comment also does not seem to be accurately describing the behavior of the function.
https://github.com/TamtamHero/fw-fanctrl/blob/2a9828f91620c0e8746ecb6875887b34da7888e3/fanctrl.py#L580-L582

You mean that you can set a "critical temperature" so that if one number is above this the average is ignored?

You mean that you want to be able to set a "critical temperature" so that if one number is above this, the average is ignored?

Yeah, exactly! "Critical temperature" is a much better description, thanks.

Hi, thanks for the clarification.
I am against having a global "critical temperature threshold", as this would apply to all strategies and could lead to unexpected behaviour when switching them (e.g. a critical temp of 50 for high performance strategy would remain when switching to a quieter one).
Also, the reactivity you want will come with the fans jumping from their planned speed to the max assigned speed, which can be surprising at times.
Having said that, I can suggest a "per strategy" implementation as follows:
In the speedCurve of a strategy, we could add an optional "critical" or "absolute" (name to be defined) field that does this for a specific temperature step and higher ones.
{
    ...
    "strategies": {
        "xxx": {
            "fanSpeedUpdateFrequency": 5,
            "movingAverageInterval": 40,
            "speedCurve": [
                { "temp": 0, "speed": 0 },
                ...
                { "temp": 85, "speed": 100, "critical": true }
            ]
        },
    ...
}

We could also consider modularity and make fanSpeedUpdateFrequecy/movingAverageInterval variable depending on the temperature steps.
{
    ...
    "strategies": {
        "xxx": {
            "speedCurve": [
                { "temp": 0, "speed": 0, "fanSpeedUpdateFrequency": 5, "movingAverageInterval": 40 },
                { "temp": 45, "speed": 0 },
                { "temp": 65, "speed": 25 },
                { "temp": 70, "speed": 35 },
                { "temp": 75, "speed": 80, "fanSpeedUpdateFrequency": 1, "movingAverageInterval": 1 },
                { "temp": 85, "speed": 100 }
            ]
        },
    ...
}

Would this meet your needs?

These could work, but they are a lot more complicated and especially the last one is not backwards compatible. I could try to work on them, but I'm not sure if there's demand for stuff like this. I do agree that it's probably better to not have it be global.
Maybe a cleaner solution that I believe is equivalent to the first one would be to have a (per-profile) option for an criticalTemp, after which it is effectively treated as though the movingAverageInterval is 1 (and maybe the fanSpeedUpdateFrequency as well?). This would effectively be the same as the first example, with a "critical": true for that particular temperature (which would also affect all higher temperatures).

To do this we would need a 'critical' and a 'criticalTemp' field.
I think it would make more sense to have them in the existing curve, as in solution 1, to keep the temperature curve configuration consistent.

To do this we would need a 'critical' and a 'criticalTemp' field.

Why would we need two additional fields? I think just the critical temperature suffices, and the appropriate fan speed can be obtained from the speed curve as normal (though ignoring the moving average).

I think it would make more sense to have them in the existing curve, as in solution 1, to keep the temperature curve configuration consistent and centralized, as well as having a single additional field.

My issue with solution 1 is that it doesn't feel as intuitive. In particular, the behavior of setting "critical": true for multiple different points feels like it should do something (not sure what), even though, from your explanation, only the one with the lowest temperature matters.
Also, I think it makes more sense for the critical temperature to be stored together with the moving average interval rather than in the curve, as it affects the former rather than the latter.

Yes, what you say makes sense.
The refacto and integration of these in the speed curve should be a separate topic indeed.
I'm still not quite convinced on the fact that it should be a separate feature, or that this is the way to do it, but go for it now and if we find a better way in the future, we might refactor it.

Here's another quick and dirty implementation. I'll try to do some testing and write docs over the next couple of days, but it might have to wait until the weekend.
diff --git a/fanctrl.py b/fanctrl.py
index 703e465..8c2798e 100644
--- a/fanctrl.py
+++ b/fanctrl.py
@@ -264,22 +264,24 @@ class SocketAlreadyRunningException(Exception):

 class Strategy:
     name = None
     fanSpeedUpdateFrequency = None
     movingAverageInterval = None
+    criticalTemp = None
     speedCurve = None

     def __init__(self, name, parameters):
         self.name = name
         self.fanSpeedUpdateFrequency = parameters["fanSpeedUpdateFrequency"]
         if self.fanSpeedUpdateFrequency is None or self.fanSpeedUpdateFrequency == "":
             self.fanSpeedUpdateFrequency = 5
         self.movingAverageInterval = parameters["movingAverageInterval"]
         if self.movingAverageInterval is None or self.movingAverageInterval == "":
             self.movingAverageInterval = 20
+        self.criticalTemp = parameters.get("criticalTemp")
         self.speedCurve = parameters["speedCurve"]

 class Configuration:
     path = None
     data = None
@@ -580,13 +582,15 @@ class FanController:
     def getEffectiveTemperature(self, currentTemp, timeInterval):
         # the moving average temperature count for 2/3 of the effective temperature
         return round(min(self.getMovingAverageTemperature(timeInterval), currentTemp), 1)

     def adaptSpeed(self, currentTemp):
         currentStrategy = self.getCurrentStrategy()
-        currentTemp = self.getEffectiveTemperature(currentTemp, currentStrategy.movingAverageInterval)
+        criticalTemp = currentStrategy.criticalTemp
+        if criticalTemp is not None and currentTemp < criticalTemp:
+            currentTemp = self.getEffectiveTemperature(currentTemp, currentStrategy.movingAverageInterval)
         minPoint = currentStrategy.speedCurve[0]
         maxPoint = currentStrategy.speedCurve[-1]
         for e in currentStrategy.speedCurve:
             if currentTemp > e["temp"]:
                 minPoint = e
             else:

This would allow for having a relatively wide interval without fear of severe overheating if the CPU starts getting too hot.

I think this initial assumption is wrong. There is no "severe overheating" possible with modern CPUs, they simply shutdown before they are in danger. For Intel CPUs, the automatic cutoff is usually around 100-110C°.
So unles I'm missing something, there's no reason to worry, and no reason to add this feature.

I think this initial assumption is wrong. There is no "severe overheating" possible with modern CPUs, they simply shutdown before they are in danger.
Hard shutdowns aren't really acceptable behavior for me. Obviously better than damaged hardware, but I'd really prefer it if my fans just kicked in instead.

Ok, but my other point was that with an aggressive strategy using the current system, you will never reach such temperatures. I fail to see a scenario where your CPU could reach 100-110°C with fw-fanctrl running any decent strategy in the background, even the lazyest strategy.
Before kicking in the preventive shutdown, your kernel will also severely underclock the CPU, and there's no way it will reach such temperatures running at, let's say, 400mHz.
You can do the test yourself: disable fans by switching to the sleep strategy: fw-fanctrl sleep,  then run stress-ng --cpu YOUR_NUMBER_OF_CPU_CORE --cpu-method matrixprod and see what happens.
I just did that, and the CPU quickly got to 95°C then got underclocked to 2.2GHz which instantly cooled it to 75°C where it hoovered for minutes until I stopped the stressing tool.
I hope I convinced you.
Otherwise, let me know a scenario where I could fry my CPU (with the lazyest strategy running in the background, this time )

I'd also prefer the fans kicked in rather than thermal throttling that much, but feel free to close this issue and #83 if you're not interested. I've already patched this in locally.


Code highlighting missing and/or F# and VB.NET example missing

There is no code highlighting on lines 758-761 (as can be seen by clicking on this link.
I believe the code listed in that block is C# specific. So it is desirable to have the same styling as the example below.

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

ID: 8243b953-5de7-3123-0737-9be4ca3c08fd
Version Independent ID: 1d1c0196-70ac-a45e-d1b7-48c55963f612
Content: RelationalDatabaseFacadeExtensions.ExecuteSqlInterpolatedAsync Method (Microsoft.EntityFrameworkCore)
Content Source: dotnet/xml/Microsoft.EntityFrameworkCore/RelationalDatabaseFacadeExtensions.xml
Product: ef-core-api
GitHub Login: @dotnet-bot
Microsoft Alias: avickers

As far as we are aware, syntax highlighting is not supported for code in the API docs.


Support for bitstream filtering

Hello,
1st of all the project is a great step forward from the outdated goav bindings, really clean and easy to use.
I couldn't find any way to use bitstream filtering (for example hevc_mp4toannexb).
Am I missing something or it's not implemented yet?
Thanks,
Mihail

Thanks a lot for the kind words ❤
Bitstream filtering is not implemented yet. That would mean adding some of those functions(doc is out of date, but that's to give an idea).

FYI bitstream filtering support has now been added with https://github.com/asticode/go-astiav/commit/d8844951c9786ed203c545581dacb5e9a8c448d6 in master 👍


Link map for Successor and Predecessor

How can we specify link for below link types:
JIRA - 'has to be done after'
AND
DevOps - 'Successor'
JIRA - 'has to be done before'
AND
DevOps - 'Predecessor'

You can map it using Link type Microsoft.VSTS.Common.Affects-Reverse

Hi Deepak,
Please share the exact mapping with source and target both.

In my case it was named as 'Blocks" in JIRA. Here is the mapping
{         "source": "Blocks",         "target": "Microsoft.VSTS.Common.Affects-Reverse"       },

@rsikr indeed @deeepakmhaskar  comment is valid, good yo hear you were able to solve this :)
I will close this issue at this moment. Feel free to contact us if you further problems.


suddenly READ_PHONE_STATE is added to my application

Hi, I recompiled my application with a newer flutter version. I might have added another flutter module to my app in-between but I can't tell anymore for sure. My problem is that all of the sudden READ_PHONE_STATE got added to the required permissions although I don't need them. I can't find this flag in any module, only in the build output. Does anyone know where this could come from?
Edit: What is merged_manifests? Why does this request READ_PHONE_STATE?
./android/.idea/workspace.xml:      <find>READ_PHONE_STATE</find>
./build/app/intermediates/bundle_manifest/release/processReleaseManifest/bundle-manifest/universal/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/bundle_manifest/release/processReleaseManifest/bundle-manifest/armeabi-v7a/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/bundle_manifest/release/processReleaseManifest/bundle-manifest/x86/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/bundle_manifest/release/processReleaseManifest/bundle-manifest/arm64-v8a/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/bundle_manifest/release/processReleaseManifest/bundle-manifest/x86_64/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/merged_manifests/release/universal/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/merged_manifests/release/armeabi-v7a/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/merged_manifests/release/x86/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/merged_manifests/release/arm64-v8a/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/merged_manifests/release/x86_64/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/instant_app_manifest/release/processReleaseManifest/instant-app-manifest/universal/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/instant_app_manifest/release/processReleaseManifest/instant-app-manifest/armeabi-v7a/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/instant_app_manifest/release/processReleaseManifest/instant-app-manifest/x86/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/instant_app_manifest/release/processReleaseManifest/instant-app-manifest/arm64-v8a/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/intermediates/instant_app_manifest/release/processReleaseManifest/instant-app-manifest/x86_64/AndroidManifest.xml:    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
./build/app/outputs/logs/manifest-merger-release-report.txt:uses-permission#android.permission.READ_PHONE_STATE

hello @avbk ... I had the same problem.
And I found out why this permission was added.
In my case, WebView was a problem.
This is "flutter_webview_plugin"!
So I changed it to the official WebView widget packages.
https://pub.dartlang.org/packages/webview_flutter

Dears i'm face this case also when i upload my app in google play


fix daemon invocation in the freebsd rc file

When using daemon's supervision mode, we need to log the parent's pid so that the supervisor gets killed. If we log the child's pid, it will just get restarted by the supervisor. This way the supervisor will receive the term signal and relay it to eventline, but for this to work we also need to rename the procname to match what the pid points to.
Tested on FreeBSD 13.1-RELEASE-p1 GENERIC amd64.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks !


Fix response format for RDS Data API in raw query db.execute() case

We've also seen a discrepancy between using the PG node-postgres and the RDS aws-data-api client. Is that something being looked into, as it has been a huge issue for us.

Closed with #1071


SSH connection

Hi, it's possible to run NNI on remote instead of launch It on the login node?

Hi! Thank you for your question. I'm a little bit confused: what do you mean by 'run on remote'?
If you mean to launch an NNI service on the compute node, you may acquire resources through salloc, and then launch NNI using remote mode. There is no need to use this patch.
If you mean to launch an NNI service on your own machine and connect to the login node through ssh, sorry, I did not implement this functionality...


Number of word files

Populate number_of_word_files from the content_store api response at the same stage
at which we populate the raw json field for dimensions_items.
Very similar to this PR: https://github.com/alphagov/content-performance-manager/pull/503

 (2) Store the Number of Word Documents into the data warehouse


can you provide the hyperparameters for reproduce your results of resMLP?

Hi, can you provide the hyperparameters for reproduce your results of resMLP? is the final results for resMLP-12 is 76.6 without distilled?

Hi @Dongshengjiang ,
Yes, the hparams are similar to the default setting used in DeiT. We only adapt stochastic depth as a function of depth as in CaiT, we use Lamb optimizer with lr= 5e-3, Weight Decay =0.2 and we don't use FP16 training.
To summarize we use:

Batch size: 2048
lr: 5e-3
epochs: 400
weight-decay: 0.2
sched: cosine
input size: 224
smoothing: 0.1
Repeated augmentation: True
Warmup epochs: 5
Rand Augment: rand-m9-mstd0.5-inc1
Erasing: 0.25
Optimizer: lamb
Mixup .8
Cutmix 1.0
Stochastic Depth: 0.05
FP16: False

Yes the final results for resMLP-S12 without distillation is 76.6%
Best,
Hugo

Hugo,
Thanks for repid reply. I will try to reproduce your results according to the hparams. By the way, another question is you said as above "adapt stochastic depth as a function of depth as in CaiT", but in Cait and resMLP code "dpr = [drop_path_rate for i in range(depth)] " and in deit code "dpr = [x.item() for x in torch.linspace(0, drop_path_rate, depth)]". It means the drop path rate is fixed with depth in Cait and resMLP and increased with depth in Deit?

Yes exactly. But when I said "adapt stochastic depth as a function of depth as in CaiT", I was referring to figure 3 of the Cait paper.
Best,
Hugo

Hi @TouvronHugo,
Thanks for your work and for providing details.
It's common to skip weight decay for norm and bias (at least timm library sets it as default). We found this really matters when reproducing DeiT. Did you apply weight decay to Affine Layers and LayerScale parameters in ResMLP?

Hi @Aguin ,
Thanks for your question.
Yes, we skip weight decay for Affine and LayerScale parameters.
Best,
Hugo

@TouvronHugo ,
Thanks for your reply.
I'm unfamiliar with LAMB and have some problems reproducing ResMLP. I'm wondering if you apply lr scaling for ResMLP as implemented in the DeiT training script.
https://github.com/facebookresearch/deit/blob/e6b10b554d17c25c083eda5d5d7505608c6981f8/main.py#L304
I'm not sure lr: 5e-3 refers to args.lr or linear_scaled_lr. In our practice, setting args.lr to 5e-3 with bs=64*8=512 did not produce good results.
Besides, I used the LAMB implemented in the latest timm and noticed that LAMB has some parameters, such as grad_averaging (whether apply 1-beta when calculating running averages) and use_nvlamb (whether apply adaptive learning rate to 0.0 weight decay parameters). Could you please also share the settings for LAMB?
https://github.com/rwightman/pytorch-image-models/blob/3cdaf5ed56b508ac11102af36820eea79a6795f0/timm/optim/lamb.py#L55-L83

Hi @TouvronHugo ,
When I choose Adamw as the optimizer, it's easy to train ResMLP-12 (AMP O1 mixed precision), however, I always got NAN (e.g. at 4 epochs, 22 epochs) when train ResMLP-24/36, no matter the hyper-parameters (e.g. AMPO0 batch 2048 lr5e-3 got NAN, AMPO0 batch 2048 lr2e-3 (same as deit) got NAN). Is this situation normal? Or this happens because I choose the Adamw, maybe Lamb is the crucial component?

Hi @ggjy ,
I think the learning rate 2e-3 and 5e-3 are not suitable for this architecture with AdamW and batch size of 2048.
It is better to use LAMB with the hparams given above.
Best,
Hugo

Hi Huge @TouvronHugo ,
Sorry to bother you again. I try the LAMB, however, I still got NAN loss, is there something special I have missed?
I trained the resmlp_24 on 8 V100 (256 batch per card) and set the args.lr = 1.25e-3 according to
linear_scaled_lr = args.lr * args.batch_size * utils.get_world_size() / 512.0

And the hparams are as follows
Namespace(aa='rand-m9-mstd0.5-inc1', amp_opt_level='O0', apex_amp=True, batch_size=256, clip_grad=None, color_jitter=0.4,
cooldown_epochs=10, cutmix=1.0, cutmix_minmax=None, data_path='/cache/data/imagenet/', data_set='IMNET', debug=False,
decay_epochs=30, decay_rate=0.1, decouple_decay=0.05, device='cuda', dist_backend='nccl', dist_url='env://', distributed=True,
drop=0.0, drop_block=None, drop_path=0.1, epochs=300, eval=False, gpu=0, inat_category='name', init_method=None,
input_size=224, local_rank=0, lr=0.00125, lr_noise=None, lr_noise_pct=0.67, lr_noise_std=1.0, min_lr=1e-05, mixup=0.8,
mixup_mode='batch', mixup_prob=1.0, mixup_switch_prob=0.5, model='resmlp_24',momentum=0.9, num_workers=4,
opt='lamb', opt_betas=None, opt_eps=1e-08, recount=1, remode='pixel', repeated_aug=True, reprob=0.25, resplit=False,
resume='', sched='cosine', seed=0, smoothing=0.1, start_epoch=0, warmup_epochs=5, warmup_lr=1e-06, weight_decay=0.2, world_size=8)
Creating model: resmlp_24

But it is still NAN during early epochs:
Epoch: [2]  [  0/625]  eta: 0:49:13  lr: 0.001001  loss: 6.9097 (6.9097)  time: 4.7257  data: 3.3613  max mem: 18965
Epoch: [2]  [200/625]  eta: 0:05:28  lr: 0.001001  loss: 6.8753 (6.8938)  time: 0.7524  data: 0.0005  max mem: 18965
Epoch: [2]  [400/625]  eta: 0:02:50  lr: 0.001001  loss: 6.8523 (6.8810)  time: 0.7367  data: 0.0004  max mem: 18965
Epoch: [2]  [600/625]  eta: 0:00:18  lr: 0.001001  loss: 6.8468 (6.8725)  time: 0.7457  data: 0.0004  max mem: 18965
Epoch: [2]  [624/625]  eta: 0:00:00  lr: 0.001001  loss: 6.8566 (6.8717)  time: 0.7299  data: 0.0008  max mem: 18965
Epoch: [2] Total time: 0:07:50 (0.7532 s / it)
Averaged stats: lr: 0.001001  loss: 6.8566 (6.8710)
Epoch: [3]  [  0/625]  eta: 0:48:29  lr: 0.002001  loss: 6.8584 (6.8584)  time: 4.6553  data: 3.8440  max mem: 18965
Epoch: [3]  [200/625]  eta: 0:05:23  lr: 0.002001  loss: 6.8790 (6.8592)  time: 0.7401  data: 0.0004  max mem: 18965
Epoch: [3]  [400/625]  eta: 0:02:49  lr: 0.002001  loss: 6.8791 (6.8868)  time: 0.7442  data: 0.0004  max mem: 18965
Epoch: [3]  [600/625]  eta: 0:00:18  lr: 0.002001  loss: 6.8770 (6.8833)  time: 0.7380  data: 0.0003  max mem: 18965
Epoch: [3]  [624/625]  eta: 0:00:00  lr: 0.002001  loss: 6.8799 (6.8831)  time: 0.7252  data: 0.0007  max mem: 18965
Epoch: [3] Total time: 0:07:47 (0.7478 s / it)
Averaged stats: lr: 0.002001  loss: 6.8799 (6.8842)
Epoch: [4]  [  0/625]  eta: 0:47:28  lr: 0.003000  loss: 6.8747 (6.8747)  time: 4.5572  data: 3.3035  max mem: 18965
ERROR:root:Loss is nan, stopping training

Hi Hugo,
Thanks for your reply. I use the apex_amp to train the Deit like this:
if args.apex_amp:
   model = ApexDDP(model, delay_allreduce=True)
   model, optimizer = amp.initialize(model, optimizer, opt_level=args.amp_opt_level)
   loss_scaler = ApexScaler()
else:
   model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu])
   loss_scaler = NativeScaler()

And I don't make any other changes in the code. I will try to use the NativeScale() and torch.nn.parallel.DistributedDataParallel() to initilize the model, maybe the APEX can cause the above NAN problem.

Using torch.nn.parallel.DistributedDataParallel() can train the resmlp normally, thanks.


Added support for floating point write

ISSUE #10

I will go through and make all of these changes either tonight or tomorrow afternoon.

Ok, I went through and fixed up the items we discussed.

Thanks a lot for doing this!
I cherry-picked the last commit as d20bfdd.


Fix conan shared builds and conan CI

It turns out shared library builds have been broken all along with conan and I did not realize because the test_package was not meaningfully testing the library, but then I further did not realize because the cron + new commits dispatch for the conan job was broken. This PR

fixes shared builds
changes the CI trigger for the conan job

@jckras

* How are shared libraries being used in cpp-sdk? does the shared-ness refer to whether libraries are being compiled as shared or static?

Exactly!

* what do you mean by the "shared-ness of grpc and protobuf needs to match our shared-ness"... the way we compile gRPC and protobuf libraries must be the same as the way we compile our project?

That part is a bit vague and Drew suggested elaborating on it as well but yes, we need a shared grpc/proto for a shared SDK build and vice versa, going to update that comment and also elaborate on it

Just sharing this for reference/discussion:
https://github.com/conan-io/conan-center-index/issues/23421


LoadJsonContent should produce a compile-time constant value

Background:
    > I believe this is a similar problem and wanted to see if there is a resolution yet. I'm working on generalizing deployment of VMs with BICEP templating. One of the things I want to do is manage which machine sizes the deployment has access to, but also control for different deployment configuration for GPU machines vs CPU machines. Thus, I'd like to do:

var allowed_cpu = array([
  'standard_b1ms'
])
var allowed_gpu = array([
  'Standard_NC6s_v3'
  'Standard_NC12s_v3'
  'Standard_NC4as_T4_v3'
])
var allowed_vms = concat(allowed_cpu, allowed_gpu)
@allowed(allowed_vms)
param vm_type string = 'standard_b1ms'

However, doing so marks the @allowed attempt as "must be a compile time constant". Is it still impossible to uses var as part of @allowed?

var yes, but not concat - as this is a runtime function.
However you should be able to use loadJsonContent inside @allowed and keep VM list in separate json and use query parameter to get what you need - but I see it does not work :/ I'll put an issue and try to fix it.
Originally posted by @miqm in https://github.com/Azure/bicep/issues/3816#issuecomment-1266983682

With new type system and ability to export/import types, I don't think this feature is still valid. I'd close it. Any objections?


String changes

Looks good :).  Can we add a link to github in case someone wants to dig into what they're doing?


docs(guide): convert /tutorials/text-search to rst

Fixes NODE-2210
Description
What changed?
Are there any files to ignore?

This might be beyond the scope of the initial migration/conversion to rst, but this doc (and some of the others) assume the reader has data in their local mongodb database (and without a transparent explanation on how to import it or where to get the data). This might confuse readers. Perhaps we can solve this issue by:

Uploading the dataset(s) to s3 (or github or some other resource to serve static files) and then give instructions on how to import it locally
or
Upload the dataset(s) to an atlas cluster and give read access to the cluster, then use the remote URL for these docs.

Solution 2 is probably the most simple for readers in my opinion. This isn't required for LGTM for this specific ticket, it's just some thoughts on the subject.

@mongomoe yeah, the original version of the guide included a dataset, but that link appears to be lost. You can see the that here:

A sample dataset is available for download.

That link just reroutes to the quickstart page.
I'm fine with whatever solution you want. Do you want to do that now, or should we make a ticket for doing that?

@mongomoe I've addressed all the feedback points outside of the point of providing a dataset.


Support for applications built using CUDA sdk

Hello
Any chance that this wonderful package will support applications built using cuda sdk? For example if we want to test this https://github.com/Celebrandil/CudaSift on opencl using cuda on cl?
Would it be possible?

There is a branch sdk-example-build where I started looking at this for one example, I think for shfl_scan.cu. It will need some work though... on the whole, I'm trying to focus on research recently, and setting engineering to one side, but since I got accepted for a technical presentation on CUDA-on-CL recently, that's quite motivational to continue. I think on the whole, in my head, my current plan is to do research till ~September ish, then look around for an interesting device-agnostic GPU project for a couple of months, to try to get another technical presentation :-P  Which might mean implementing the SDK, and doing some performance tests. Or it might mean upgrading CUDA-on-CL to SPIR-V. Or it might mean using CUDA-on-CL to port pytorch. I'm not really sure yet :-)  In the meantime, if you can get CUDA-on-CL working on the SDK examples, that would be super awesome cool :-)

(by the way, I am open to ideas for what-i-will-work-on-in-september-ish , so feel free to add them to this thread, or anyone else for that matter. I've mentally added 'porting CudaSift to opencl, using cuda-on-cl/cuda-on-spirv/something-else' to the list.)


[Cache/Support] Move Wildcard matching to Page Rules section

The document talks exclusively about Page Rules behaviour, but does not mention it's doing so. The same explainers don't apply to Cache Rules and it doesn't cover just cache, so It doesn't belong under cache section.
https://developers.cloudflare.com/cache/reference/wildcard-matching/
Please check the redirect before merging

The redirect works, hurray

Added the / on the end of the redirect to better align with the other redirects, it still works


fix(choicefield): setting disabled dynamically

The disabled attribute was only evaluated at link-time. This should be
watch, to allow the use of ng-disabled.
Updated test scripts and demo as well.
Fixes https://github.com/ngOfficeUIFabric/ng-officeuifabric/issues/257

Coverage increased (+0.04%) to 98.413% when pulling 2e53f51b7f299bb78d96abd019be198dc6a21e38 on rolandoldengarm:issue257 into 09b89bccb6fafe51b8f65a3258783b22e6d062e1 on ngOfficeUIFabric:dev.


dev: Clean-up development setup

Main points are as per below:

Remove cfssl and cfssljson as these tools are used for provisioning Vagrant dev cluster,  which is un-maintained now.
Update versions in dev-tool for helm, kubectl, clang and gingko

/test


Action attempts to push to wrong branch

Describe the bug
A clear and concise description of what the bug is.
The action appears to be attempting to commit changes to ${{ github.ref_name }} instead of the specified localization_branch_name.
To Reproduce
Steps to reproduce the behavior:

Set up workflow, with actions/checkout@v4 and the ref checked out being "main". The crowdin action also requires a value set for localization_branch_name.
Create a new branch
It fails because of pathspec ${{ github.ref_name }} didn't match any files known to git

crowdin<EMAIL_ADDRESS>No-crowdin.yml setup.
Expected behavior
A clear and concise description of what you expected to happen.
It force-pushes downloaded localizations to the branch specified in localization_branch_name
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
The cron schedule method still works as expected.

Hi @KTrain5169, I assume you are looking for the skip_ref_checkout option (Checking out multiple branches in a single workflow)

That could work, though I don't know why it only broke today

Can I also ask how the action checks for environmental variables? I have another workflow elsewhere which has the following setup:
- name: Grab strings from Crowdin
        uses<EMAIL_ADDRESS>        with:
          upload_sources: true
          download_translations: true
          localization_branch_name: auto-i18n-branch
          create_pull_request: true
          pull_request_title: (Crowdin Action) New translation strings
          pull_request_body: New translated strings are now available!
          pull_request_base_branch_name: "main"
          github_user_name: Crowdin Bot (Actions)
          github_user_email<EMAIL_ADDRESS>        env:
          CROWDIN_PROJECT_ID: ${{ secrets.CROWIN_PROJECT_ID }}
          CROWDIN_API_TOKEN: ${{ secrets.CROWDIN_TOKEN_THING }}

(the misspelling in the first secret name is intentional)
And the following crowdin.yml:
"project_id_env": "CROWDIN_PROJECT_ID"
"api_token_env": "CROWDIN_API_TOKEN"
"base_path": "."
"base_url": "https://api.crowdin.com"

"preserve_hierarchy": true

files:
  - source: /assets/minecraft/lang/en_us.json
    translation: /assets/minecraft/lang-crowdin/%locale_with_underscore%.json
    language_mapping:
      locale_with_underscore: # ABSOLULTELY DO NOT CHANGE THIS
        de: de_de
        en-UD: en_ud
        es-ES: es_es
        fr: fr_fr
        lol-US: lol_us
        pt-BR: pt_br
        ru: ru_ru
    upload_language: en
    skip_untranslated_strings: false
    export_only_approved: false

No matter how I do it, the action always detects the Project ID, even if the field is removed in the crowdin.yml.
However, api_token always comes up as missing, and I don't know why. I've tried basically every way I can think of to fix it and it still complains that api_token is missing.

@KTrain5169 Thank you for the details! I'm still not sure I fully understand the issue. Could you please provide a full GitHub workflow and the error logs from the failed action logs?

https://github.com/Pridecraft-Studios/pridepack/actions/workflows/auto-i18n.yml
This is the run history for the workflow that we use. Pretty much all of the latest logs always say that API_TOKEN was missing, even though it was entered corretly. I tried multiple different ways to get it but it ended up not working still. Getting rid of the Project ID field in the crowdin.yml still says that only the api_token was missing despite the project ID field clearly gone

@KTrain5169 the issue is in the name of the token env variable.

the action always detects the Project ID, even if the field is removed in the crowdin.yml

It's because of the automatic env variables detection.
Please use either the CROWDIN_PERSONAL_TOKEN name for the token secret or pass the Action env variables as shown in the example.

I think I tried that before but I will try that again.
I assume it is safe to remove both fields from the crowdin.yml?

I assume it is safe to remove both fields from the crowdin.yml?

Yes, should be safe.

Thanks! Sorry if I'm being annoying, but there's one more issue.
The bot now puts all the project stuff into the wrong folder and I changed it back to /lang/ however the bot doesn't change it back. Do I have to close the PR and rerun the Action to get it to place the files in the right directory?
Also, it's not respecting my language mappings, even though I have clearly defined them in the crowdin.yml

Yes, try to close the PR and delete the localization branch.

Ah, I figured the problem: I was checking out the "main" branch which had an outdated crowdin.yml file.
The language mappings are still not being respected however. Am I doing something wrong with the language mappings? I've ensured it sticks to the Crowdin language code: Code we use format but it doesn't respect it.

Based on the latest workflow run from your repo:
⚠  Downloaded translations don't match the current project configuration. The translations for the following sources will be omitted (use --verbose to get the list of the omitted translations):
	- lol_us.json (9)
	- en_us.json (9)
	- pt_br.json (9)
	- es_es.json (9)
	- de_de.json (9)
	- ru_ru.json (9)
	- en_ud.json (9)
	- fr_fr.json (9)
Visit the https://crowdin.github.io/crowdin-cli/faq for more details

It's probably some misconfiguration. Please read the first section of the FAQ.

Ah, that's interesting. I suppose I could try changing with CLI, but I already ran sources upload through the action (at least I assume that does the same thing as the CLI), so I'll wait until our Crowdin manager is available and tell him to change it. Thanks :)
Just so I am 100% sure on what to change it to, does the %locale_with_underscore% have an equivalent option but for lowercasing the locale? This is a hard requirements because of the project we are doing.

Language mapping is designed to address these issues.

I see. So if I change the language_mapping option to change it from, say, es_ES to es_es, would that require mapping es or es_ES?

Please refer to the docs - https://crowdin.github.io/crowdin-cli/advanced#languages-mapping-configuration

The docs are a bit unclear for me. It does tell me to use the language codes found at https://support.crowdin.com/developer/language-codes/ with the format es-ES: es_es already, but it doesn't seem to work. It also doesn't provide an example with zh_CN but I assume that the point is to make the mapping like Crowdin lang name from the list: our lang name, which doesn't appear to work as stated before.

@KTrain5169 you are using language_mapping in your crowdin.yml configuration file. But, according to the docs, it should be languages_mapping (with s).
The es-ES: es_es mapping is correct.

Oh I see. Perhaps some new glasses is in order. Thanks for figuring that out and sorry for being a pain in general 😅

I came across the main problem, and the recommendation here helped me. I think this should be better documented in the example


bugfix - SmartForm cannot update nested input fields

Reverse commit 594bf423bc86aa83061b53866f6fcefa6415be03
SmartForm changes from a week ago cause an error — cannot create or update nested inputs, like those in the Addresses subschema of VulcanStarter example-forms.
Commit 594bf423bc86aa83061b53866f6fcefa6415be03 introduced the error. When I reverse just this one commit, I am once again able to update nested fields.

Thanks!


Allow disabled updateStyle when setting renderer

Is your feature request related to a problem?
https://github.com/pmndrs/postprocessing/blob/main/src/core/EffectComposer.js#L231
I'm experimenting with OffScreenCanvas and it seems as though setting the style attribute is forbidden. Presently this is unavoidable due to the fact that setRenderer() calls renderer.setSize() with the third parameter undefined which will be interpreted as update style in the three renderer.
Describe the solution you'd like
Simply add an option that is passed through.

Thanks for the report!
I think the call to renderer.setSize(width, height, updateStyle); in setSize can be avoided with a bit of refactoring.

Fixed in<EMAIL_ADDRESS>


Performance degrades with concurrent reads

Performance degrades for all concurrent reads to the same repository.
As an example, concurrent actions that read all the statements of a repository take:
actions / time per action

1 / 2.4s
4 / 4.9s
16 / 21.9s
64 / 87.6s

Code used to get these results can be cloned from here: https://github.com/MiguelAraCo/rdf4j-concurrency
Are these results normal? Is there a way to improve them? My last resort would be to implement an in memory cache system but I want to know what you guys think first.
Thanks :)

Although some degradation is to be expected, this looks excessive.
I haven't ran any tests yet but I think the problem may be caused by the store being over-enthusiastic in branching/forking its source data when starting a new transaction.
A possible workaround (or at least an experiment) is this: start an explicit new transaction for every query, but make sure you use IsolationLevel.NONE. See if that influences the performance figures significantly.

I'm getting the same results when doing it with an IsolationLevels.None. I also tried doing the reads without creating a transaction and the results are pretty much the same

I can reproduce the results. But I have been having a bit more of a think about the test and what it shows, and I think it is actually more or less normal (or at least not excessive), after all.
What we're seeing is that concurrent reads make each individual read action slow down, but the compound result is still less than if you had executed the reads sequentially. For example, using your results, sequentially executing 64 queries would have been 64 * 2.4 = 153.6 seconds, whereas the concurrent approach did it in a little over half that time.
The amount of degradation as number of concurrent threads goes up is highly influenced by the nature of the query that you're doing. Your benchmark is on the extreme end of the spectrum because you are retrieving all statements in the store. The store does have some caching capabilities built in, but because your query effectively scans the entire database, those caches may not be helping much: cache entries are dropped again before a second thread has a chance to make use of them.
The degradation goes down as your query is more focused and retrieves a smaller subset of data. As an extreme example of this, if you modify your read test to only retrieve statements about a single subject (in your dataset, the result is only a single triple), like so:
			BenchmarkTuple<Integer> benchmark = App.benchmark(() -> App.executeInTransaction(connection -> {

				IRI subject = connection.getValueFactory().createIRI("http://dbpedia.org/resource/Normandy");
				RepositoryResult<Statement> result = connection.getStatements(subject, null, null);

The results I get back when running this are much better (if more fluctuating, but that may because I'm just running this on my laptop which has a gazillion other things going on). Single thread performance is at ~1,000,000, 4 threads mean is at the same, 64 thread mean is at ~2,000,000 (I'm assuming these are nanoseconds btw?)
All in all I'd say that what you're measuring is worst-case performance, and practical concurrent access will behave much better, because not every concurrent read will be a sequential scan of the database (unless you have a very strange use case :))

Thanks for taking the time to reproduce the results :). You are right, my test is basically the worst case scenario (although maybe the worst case would be reads in the middle of write access?).
I'll keep doing some tests, but at the end if this performance is to be expected I may end up implementing some sort of in memory cache system. Maybe use the MemoryStore as a cache for heavily accessed triples? Any thoughts?
Again, thank you for your support.

It's possible, though getting the details of this might be trickier than you anticipate - and given that the native store already does quite a bit of low-level caching itself, it may not be obvious to improve it.
But if you're confident you want to build it, consider contributing your effort back to the project - that way we can review your work and give you feedback, and of course it might be useful for others too!

Closing this issue as I think we established the cause and it's not something we can easily do anything about. Any suggested improvement should probably be logged as a new issue.


zipl: fix the scanned tokens array size calculation

The zipl config file (zipl.conf) and the BootLoaderSpec (BLS) fragments
in /boot/loader/entries define a set of tokens that are parsed by zipl.
These are stored in an array of tokens whose size is calculated to make
sure that there is enough memory allocated for all the scanned tokens.
But the size calculation logic was wrong, since it was checking if the
current size was enough to store a single token per BLS fragment, while
up to 4 tokens can be defined in a BLS file: a section heading and the
image, ramdisk and parameter keywords.
This led to zipl being killed by a SIGABRT signal when trying to parse
more tokens than the ones that could fit in the scanned tokens array:
Using config file '/etc/zipl.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-9.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-8.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-7.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-6.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-5.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-4.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-3.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-2.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-1.conf'
Using BLS config file '/boot/loader/entries/vmlinuz-0.conf'
double free or corruption (out)
Aborted (core dumped)
Fixes: https://github.com/ibm-s390-tools/s390-tools/issues/68
Signed-off-by: Javier Martinez Canillas<EMAIL_ADDRESS>

Hi,
thanks a lot for the contribution. From reading the Code it looks good to me. I will give it a test together with Tuans patches and include it if there is no additional finding.
Regards,
Stefan


Discussion: Improve dev efficiency by removing slack channels

When first came here to help, I was suggested to join the slack channel(s). I've since abandoned the slack channels, since they are essentially useless from a development standpoint. There is almost no talking at all about development on the dev channel. So what s up with that?
Second, all channels are being spammed with completely irrelevant chatter and repeated spam posts and nobody is moderating or banning the repeat offenders.
3rd. Anything interesting at all gets lost in the dev\null of the slack history. Never to be found again.
I therefore suggest we stop using slack and start posting dev relevant discussions right here. Easy to be found, easy to maintain, easy to tag, easy to lock, easy to take action on.

Much productive non-developer work is happening on Slack which can not also be moved to GitHub. Having developers on Slack allows communication with other roles in the project. (which is much larger than just the codebase).


Add code to create AI-generated labels for the arena-55k dataset and fill missing code to train a reward model based on these labels.

Sorry, this was an accidental pull request. Please ignore and feel free to delete it.


Minro refactoring for consistancy sake

".

The description should provide more details about the changes made in the pull request. It should also be concise and start with "

" and end with "

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Merging to avoid the need to update the branch again! 😅

I see one of the commits is not signed so you won't be able to merge the PR as is. To fix this, you can run the following command to sign all the commit history:
exec git commit --amend --no-edit -S

Good morning,I have signed my commit. Please let me know if there is anything else I need to do.BTW, I enjoyed browsing the toolkit source code and learned a lot from it.Have a wonderful day,Payman Sent from my iPhoneOn May 8, 2024, at 5:18 AM, Luísa Moura @.***> wrote:
I see one of the commits is not signed so you won't be able to merge the PR as is. To fix this, you can run the following command to sign all the commit history:
exec git commit --amend --no-edit -S
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Hey @Phodaie! Thanks for checking out and contributing to Toolkit! Seems like your commits are still unverified. Check out https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits for more info about signing commits!

@Phodaie looks good now. merging this in! thanks for your contribution :)


TypeError:'float!object cannot be interpreted as an integer

If you meet the problem: TypeError:'float!object cannot be interpreted as an integer, you could try to change "0.0" to "0" in DyGFormer.py (Line 372 and 378)

Hi,
This issue may be caused by the version of PyTorch you use. I use PyTorch 1.8.1 and it works fine for DyGFormer.