Governance Forum - Agenda

Lets plan out some agenda items for the governance conference

formalize "Declaration of Interdependence"

"the governance conference"? What does that refer to? Is it an idea from a teleconference or something? I'd appreciate a pointer.

The governance forum should decide how to govern the RChain platform. I believe it is instructive to have a  constituted authority to lead us through.

@dckc see the last hangout, and previous ones. It has been greg and vlads idea to hold a conference on blockchain governance and co-op governance for RChain Co-op.

OK... I hope it shows up in the debrief index soonish. "See the previous hangouts" would otherwise take several hours.
I'm not used to all this business done with only video records. I'm sure it's easier for the participants at the time, but it's a pain for folks who want to catch up later (which is a larger and growing audience, if things go well). I'm spoiled by the W3C culture of near-real-time text records, edited into a hypertext.

@dckc you asked for a pointer. The last hangout. Im the one having to manually do the summarys so feel free to pick back up or propose an automated soltuion. I know that @entropee was suppose to be working on one

It has been a valuable resource in my opinion, but yes aside from the initial work that you did, I have done every single one since.

@patrick727  Can there be a clear information on how many attendees for the conference.

@ResonanceXX for the governance conference?
We estimating 75-100, but that's a very rough number.

Hello everyone fill out this form for the location that we choose. Deadline will be 12/27/2017
https://goo.gl/forms/x4766jd6o66jSsUh2

Since the event is expected to last 2-3 days, am more inclined to vote for weekends where more persons would be free and able to attend.

As of the last Governance Committee meeting the plans for the Governance Forum are as follows:
Date: | February 15, 16, 17, and 18
Location: | Seattle
Venue: | TBD
Agenda: | Work in progress

Oh nice one. Seattle, the "Jet city."
Sent from Yahoo Mail on Android
On Sat, 23 Dec 2017 at 14:48, Kevin<EMAIL_ADDRESS>wrote:
As of the last Governance Committee meeting the plans for the Governance Forum are as follows:
Date: | February 15, 16, 17, and 18
Location: | Seattle
Venue: | TBD
Agenda: | Work in progress
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Apparently there is a new monopoly game published by that has no Banker and allows cheating -- seems like a crypto game.

@patrick727 I suggest this issue is overtaken by https://www.rchain.coop/events and a discussion document available in the #governance-forum channel. Please edit the description to say so and close this (or let me know it's OK for me to do so.)

I updated the issue description to say what actually got done here.


PHP version requirement was changed in a patch version (1.1.2)

Hi,
In version 1.1.1, PHP version requirement was the following:
"php": ">=7.2.0"

In version 1.1.2, it was changed to the following:
"php": ">=7.4.0"

What happens if there is a critical security issue that is fixed in a future release (e.g. 1.1.3)?
Projects based on PHP <=7.3 won't be able to upgrade.
If the reason is that PHP 7.3 will soon be EOL, debian buster uses it and is still maintained (EOL date 2022-08).
Thanks

The bump in the requirement was a bugfix in itself. We reintroduced extends \Throwable in the exception, which was problematic in PHP versions older than 7.4, see #31.
Normally your concern would be warranted, but I cannot imagine a situation where a further patch would be needed, since here we only have 3 interfaces and no working code.

Bad upgrade, regardless of the consequences, can only lock the version

Bad upgrade, regardless of the consequences, can only lock the version

What do you mean? Composer will prevent the installation of the patch if you don't have an unsupported PHP version.

Same here: this "broke" my Laravel v5.8.38 on composer update, as it requires (Laravel framework composer.json) "psr/container": "^1.0", and I'm running PHP 7.3. It updated the psr/container from 1.1.1 to 1.1.2. I'll try to update my PHP version.
As you can guess error is the following:
Problem 1 - psr/container is locked to version 1.1.2 and an update of this package was not requested. - psr/container 1.1.2 requires php >=7.4.0 -> your php version (7.3.23) does not satisfy that requirement.
Problem 2 - psr/container 1.1.2 requires php >=7.4.0 -> your php version (7.3.23) does not satisfy that requirement. - symfony/service-contracts v2.4.0 requires psr/container ^1.1 -> satisfiable by psr/container[1.1.2]. - symfony/service-contracts is locked to version v2.4.0 and an update of this package was not requested.

source

I can only guess that you run composer update using a PHP version >= PHP 7.4 and during composer install you used PHP 7.3. This would ensure the package version stays at 1.1.1 and will not be upgraded to 1.1.2.
As a good practice and to ensure you don't into this kind of problems, you should make sure when running composer update, during development time, you use the same PHP version as when you will do when you actually run the application, where you will also run composer install.
If this is not possible, for example because you run composer as a container and that uses the latest PHP version and just because you have locally a newer version that you use in other multiple projects, you can add to composer.json:
{
  "config": {
    "platform": {
      "php": "7.3"
    }
  }
}

Totally agree on @drealecs. You would've had the same issue even if I released this change as 1.2.0.

You are right, I indeed ran composer update on my local machine, with PHP 7.4. But my project composer.json contains "php": "^7.3.0", and I thought this was enough, as I never encountered this kind of issue.

had the same issue even if I released this change as 1.2.0

agreed as Laravel required ^1.0

Also "php": "^7.3.0" allows 7.4 (or it wouldn't work on your local machine with 7.4).

It violates the definition of version number and is not compatible with each other.

It violates the definition of version number and is not compatible with each other.

@skyselang can you explain you comment? It's not clear to me.

I can answer on behalf of @skyselang
No matter what you suggests, it is only "symptom treatment". You are not following the semantic versioning strategy supported by composer.
"Composer uses Semantic Versioning (aka SemVer) 2.0.0"
Source: https://getcomposer.org/doc/faqs/which-version-numbering-system-does-composer-itself-use.md#which-version-numbering-system-does-composer-itself-use-
Summary for Semantic Versioning 2.0.0 - Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards compatible manner, and
PATCH version when you make backwards compatible bug fixes.

This effectively means that you can not use i.e. "composer update symfony/console --with-dependencies" as this will force psr/container 1.1.2 will be added to the project.
We have multiple legacy sites, which I need to go through and make sure config.platform.php target is set. It takes time. Note the word "legacy".
I strongly recommend that you revert the PATCH and release a new version with old php version specified.
After that step, introduce the breaking change and make a MAJOR bump/release.

I'm sorry but I have to rely on Composer detecting the right PHP language version on your side. Bumping the required language version is not a requirement for a major bump, and this case is a perfect example, since the bumping was needed to fix a bug.
This argument has been hashed over and over, and I've explained my position at length in https://github.com/getsentry/sentry-laravel/issues/335#issuecomment-629132274 (where you'll find multiple links to multiple similar closed issues).
Yes, I could've release this as a minor, in case a patch for older PHP versions would be needed, but that's probably not going to happen here.
So, I'm closing this as wont-fix.

"Composer uses Semantic Versioning (aka SemVer) 2.0.0" Source: https://getcomposer.org/doc/faqs/which-version-numbering-system-does-composer-itself-use.md#which-version-numbering-system-does-composer-itself-use-

This only mentioned what versions are used by composer itself when released.
Literally the ones listed here https://github.com/composer/composer/releases .
There is no mention that all other projects that uses composer for distribution must use semantic versioning.
You can read here: https://getcomposer.org/doc/articles/versions.md: "it is mostly useful for projects respecting semantic versioning".

We have multiple legacy sites, which I need to go through and make sure config.platform.php target is set. It takes time. Note the word "legacy".

If your php version for running composer when doing composer update is not the php version from production, you should make sure at least config.platform.php is up to date with the production version.
Otherwise, you're going to hit other problems with other packages as well, not just this one. You just need to remember to do it once before running the next first composer update. I believe that might not be a big effort considering that you already touch/review the composer.json/composer.lock files.


Named element inside collection in Resources is null when there are other entries in the dictionary

Describe the bug
There is a bug in xaml runtime where named element isn't connected inside collection in resource dictionary.
Steps to reproduce the bug

Create a blank app in C#
Add the following to MainPage.xaml

<Page <!-- Omitted -->>
    <Page.Resources>
        <DependencyObjectCollection x:Key="collection">
            <TextBlock x:Name="textBlock2" Text="TextBlock2"/>
        </DependencyObjectCollection>
        <!-- Uncomment this line to trigger NRE crash -->
        <!--<TextBlock x:Name="textBlock3" Text="TextBlock3"/>-->
    </Page.Resources>
    <StackPanel>
        <Button Click="Button_Click" Content="Click"/>
        <TextBlock x:Name="textBlock1" Text="TextBlock1"/>
    </StackPanel>
</Page>

Add the following to MainPage.xaml.cs

private void Button_Click(object sender, RoutedEventArgs e)
{
    textBlock1.Text = textBlock2.Text;
}

Run and click the button. Observe the text changed to "TextBlock2"
Uncomment the line in xaml
Run and click the button, Observe NFE crash due to textBlock2 being null

Expected behavior
textBlock2 is not null.
Screenshots

NuGet package version
No response
Windows app type

[X] UWP
[ ] Win32

Device form factor
Desktop
Windows version
Windows Insider Build (22610.1)
Additional context

Also reproducible in C++ blank app.
Collection in the visual tree work. For example, <StackPanel><ListBox><TextBlock x:Name="textBlock2"/></ListBox></StackPanel> work.
SDK is 22000.
Minimal repro: https://github.com/roxk/DoInsideCollectionIgnoredBug

This is likely the same root cause as #5786.


[dif/otp_ctrl] Add sanity tests for otp_ctrl DIFs.

Currently blocked by #4074 (pretty cool that this revealed a HW bug, though).

Should now work on the "real" hardware! =)

Gah! I thought I fixed that. At least my test passed in CI.


Build broken

Description:
Fix the build break related to [1].
+ cd en/docs/assets/lib/insights
/tmp/jenkins4317586310927565507.sh: line 129: cd: en/docs/assets/lib/insights: No such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE

[1] https://wso2.org/jenkins/view/docs/job/docs/job/docs-apim/8093/console

On investigation I figured that the build break is applicable to 3.2.0 based on the PRs that have come in.
On further investigation, I figured that the root cause for this issue is because the build script was updated recently.
I sent an email to Lakidu in this regard as this needs to be fixed on the Jenkins server.

Action

I sent an email to Lakindu in this regard as this needs to be fixed on the Jenkins server. We are waiting for a response from him/his team.

Action

I had a discussion with Shan Anjana in this regard and requested him to come up with the fix as Lakindu wants the fix from an SME.

Had a discussion with Shan, reviewed and tested the tweak in the build script that he added via a call.

The build  break issue is fixed now.


geoJSON layer?

Google Maps seems to support GeoJSON as a layer now as well. Are there any plans of supporting this as well?

Your issue has been fixes in #154 but will only be part of the 2.x version.


[Bug] Bone transfrom cause game crash

Used on the corgi model
https://github.com/indigames/ProsthetistMaster/

Fixed with build#110


[proto] Batch exposed in CollectionRetrievalResult

Our CollectionRetrievalResult nests transactions in what appears to be a single batch. This batch is ephemeral and reflects collecting the transactions at the primary, rather than our actual notion of batch. We should either remove this wrapper, or name it in a disambiguated way.
https://github.com/MystenLabs/narwhal/blob/c312103d46189052f5f6a12ca32c233759d7ea21/types/proto/narwhal.proto#L59-L64
/cc @piersy

@arun-koshy @huitseeker this is what I am proposing for the GetCollections endpoint. I also took into account the complexity that the current compiler is introducing on the clients when nesting Result is used and I believe we can probably make things a bit simpler by splitting into two parts:

the collections that have only the successfully retrieved collections
the errors field that contains the errors for the collections we didn't manage to retrieve

I've also removed entirely the concept of batches as for the 99% of the cases this won't be needed here. Even if we need that information (how transactions are grouped) this will be needed only for verification processes and we can always extend the Collection message with an extra field providing that info.
message GetCollectionsResponse {
    // List of successfully retrieved collections.
    repeated Collection collections = 1;

    // If failed to retrieve a collection then this will be added here
    repeated CollectionError errors = 2;
}

message Collection {
    // The collection's id
    CertificateDigest id = 1;

    // The transactions that are part of the collection
    repeated Transaction transactions = 2;
}

message Transaction {
    bytes transaction = 1;
}

message CollectionError {
    // The collection for which this error refers to
    CertificateDigest id = 1;

    enum CollectionErrorType {
        COLLECTION_NOT_FOUND = 0;
        COLLECTION_TIMEOUT = 1;
        COLLECTION_ERROR = 2;
    }
    CollectionErrorType type = 2;
}

Everything looks good to me the only thing I am curious about is your switch to separate fields instead of a nested repeated oneof

the complexity that the current compiler is introducing on the clients when nesting Result
Can you explain this further?

Everything looks good to me the only thing I am curious about is your switch to separate fields instead of a nested repeated oneof

the complexity that the current compiler is introducing on the clients when nesting Result

Can you explain this further?

Sure, I should have explained that better. I am coming mostly from the client perspective. For instance to access a collection's transactions we need to do something like:
        match collection_result.retrieval_result.unwrap() {
            RetrievalResult::Batch(message) => {
                for t in message.transactions.unwrap().transaction {
                        // Do something with transaction
                        t.transaction
                }
            }
            RetrievalResult::Error(_) => {}
        }

the above is an example took from https://github.com/MystenLabs/narwhal/blob/1a672b3e10ddc465a9e06f3eacdac05db77afc2c/examples/src/demo_client.rs#L366
It seems to me that we need to do lots of nesting access and unwrapping (ex get the retrieval_result then unwrap, match etc) to get the transactions. That being said, is not the end of the world and thought that it might be quite convenient to have a simpler structure there. Also someone by just looking on the errors field can quickly figure out which failed. Again, not a big issue here.

I don't mind changing it, but my argument to keep it would be because both fields in this case are mutually exclusive per collection_id. So it makes sense to use a oneof as only one can be set at a time. In terms of client access even if we remove the oneof and use two separate fields:

Still need to check for both the success field and the error field
The fields would require an unwrap because they would by default be optional in proto3

I also believe if we use a oneof the way the memory is allocated would be better because it only needs to allocate space for the largest of the specified fields as only one can be set at a time.
I updated PR#536 to reflect this, let me know what you think

@arun-koshy thanks for the response. No problem from my side, I am not against the oneof but I thought it might be a bit simpler when accessing the collection it self, but I equally see the benefits you list so let's go  by keeping the oneof 👍


Unresolved function name

Hi, I have some issues compiling a Skyrim script as it doesn't detect some function names. Here is an example to reproduce.
Thank you for this project. Looks very cool!
My script:
Scriptname Test extends Actor

Function Test()
	GetActorBase()
EndFunction

Calling Caprica
.\Caprica.exe Test.psc -g skyrim -i "D:\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source" -f "D:\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\TESV_Papyrus_Flags.flg"
Adding current working directory to import list: D:\Steam\steamapps\common\Skyrim Special Edition\Papyrus Compiler\Input
Adding import directory: D:\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source
Importing files...
Imported 13938 files.
Adding file 'Test.psc' to namespace ''.
Compiling Test.psc
Test.psc (4, 2:14): Fatal Error: Unresolved function name 'GetActorBase'!```

Huh, using your script code didn't work either, failing with the very same error.
.\Caprica.exe Test.psc -g skyrim -i "D:\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source" -f "D:\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\TESV_Papyrus_Flags.flg"
Adding current working directory to import list: D:\Steam\steamapps\common\Skyrim Special Edition\Papyrus Compiler\InputAdding import directory: D:\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source
Importing files...
Imported 13938 files.
Adding file 'Test.psc' to namespace ''.
Compiling Test.psc
Test.psc (4, 27:39): Fatal Error: Unresolved function name 'GetActorBase'!

Also, I'm not quite sure why this script wouldn't work? The Skyrim compiler compiles this just fine. Calling on self or parent is not required, nor is saving the result of a function call to a variable.

Ahh, looking at the Actor.psc I see there is no GetActorBase() function for Starfield - I assumed you knew what function you wanted, it actually exists and, you were simply having a syntax issue.
Be sure to decompile the games scripts and reference those directly (those which are "Native") ie, ScriptName Actor Extends ObjectReference Native hidden
Also be sure to use your editors "search across files" function eg, search for 'ActorBase' to find all it's uses; specifically native functions that return one.
The function you'll be looking for is GetLeveledActorBase() in Actor.psc
The alternate method is actorRef.GetBaseObject() as ActorBase
Always be sure to sanity check your inputs and outputs - never trust anything or anyone - especially yourself and your own code

I'm not actually looking to compile for Starfield, just for Skyrim. GetActorBase() does exist for Skyrim and the script header for Skyrim is the following:
Scriptname Actor extends ObjectReference Hidden

All Skyrim scripts have official source files packed with the CK. And GetActorBase() definitely exists. Like I said, the Skyrim compiler provided by Bethesda can compile this without any problems.

The alternate method is actorRef.GetBaseObject() as ActorBase
I mean yeah, calling GetBaseObject() (a function on ObjectReference) works because apparently mostly function names from scripts that extend another script aren't recognized. Because of that, trying a function like EvaluatePackage() also doesn't compile when used.

True, self is implied (the compiler sticks it in behind your back). And the compiler should autogenerate a hidden variable to store the result. But it's bad practice to do both of those things as it leads to code smell. Just because your car lets you drive into a brick wall doesn't mean you should do it. ;)
Sure, I agree. I wouldn't use this code for anything I would actually do with payprus. I just wanted to provide a minimal example of my error so I just everything else.

Sorry to muddy the issue, I've been fighting with Caprica for Starfield and my brain automatically read "Starfield" when on closer inspection you are, indeed, talking about "Skyrim Special Edition".
I've found the VM sometimes generates errors if you don't give it an explicit variable to return a result to when compiling with Caprica in some circumstances.  eg, 'actiRef.Activate( npcRef )vsbool b = actiRef.Activate( npcRef )`  This has cause me to be a bit wordier than strictly necessary using Caprica for some code segments but doesn't seem to be your issue.
As far as class inheritance goes, I haven't found that to be an issue myself.  But I am not using Caprica for an older title - tbh, not sure why you are when there is the "proper" compiler available but that isn't really relevant here.
I do question your paths, the typical (default Bethesda) setup is to have the vanilla script sources in \Data\Scripts\Source\Base\ and the user script sources in \Data\Scripts\Source\User\.  You are pointing the import path to \Data\Scripts\Source.
fwiw, I compiled targeting FO4 and SF (I don't even have any version of SK installed) and these are the results I got from the following script example:
Scriptname Test extends Actor

Function Test()
	GetLeveledActorBase()
EndFunction

Native FO4 Compiler (though the CK): No errors, file compiled
Caprica v0.3.0 (FO4, command line): No errors, file compiled
caprica.exe -g "fallout4" -f "F:\Fallout 4\Data\Scripts\Source\Base\Institute_Papyrus_Flags.flg" -i "F:\Fallout 4\Data\Scripts\Base" -o "F:\Fallout 4\Data\Scripts" "F:\Fallout 4\Data\Scripts\Source\User\Test.psc"
Adding current working directory to import list: F:\Fallout 4\Data\Scripts\Source\User
Adding import directory: F:\Fallout 4\Data\Scripts\Base
Importing files...
Imported 12541 files.
Adding file 'Test.psc' to namespace ''.
Compiling Test.psc`

Caprica v0.3.0 (SF, command line): No errors, file compiled
caprica.exe -g "starfield" -i "F:\Starfield\Data\Scripts" -o "F:\Starfield\Data\Scripts" "F:\Starfield\Data\Scripts\Source\User\Test.psc"
Adding current working directory to import list: F:\Starfield\Data\Scripts\Source\User
Adding import directory: F:\Starfield\Data\Scripts\Base
No flags specified, Using default Starfield flags file.
Importing files...
Imported 4594 files.
Adding file 'Test.psc' to namespace ''.
Compiling Test.psc

Even if I bungle the import path to Data\Scripts\Source then it still compiles correctly for me (targeting either FO4 or SF).
This issue must be exclusive to targeting Skyrim [Special Edition] or your command line or your game setup.

Yes, all my actual mods script sources are on a completely different drive and the compilers are happy with that as long as you point to them correctly.
Your inheritance issue is an odd one though - did something overwrite the Actor.psc by chance and
remove the function definition?  Just grasping at straws but you never know?

No, I made sure that Actor.psc is exactly the version that is delivered with the CK, and was also able to replicate a similar issue when calling other scripts in the past. At this point, I think the issue is either me using Caprica incorrectly (using the command from my initial post) or some issue with Caprica itself as the compiler by Bethesda which I am trying to replace (with a faster and open-source alternative) has exactly the same inputs as Caprica does.

fwiw, I wouldn't use "an open source alternative" simply because it's open source.  I choose my tools based on correctness of output.  I was always suspicious of Caprica's output and with my problems with SF scripting I am even more so suspicious of it.
In my case it's a script constant which I update with every version:
Int iCurrentVersion = 7 Const
When updated to:
Int iCurrentVersion = 8 Const
It always returns 0, if I set it to 6 it works fine.  All of the following changes returns 0 too:
Int Property iCurrentVersion = 8 AutoReadOnly Hidden
Int Property iCurrentVersion Hidden
    Int Function Get()
        Return 8
    EndFunction
EndProperty

However, this works:
Int Property iCurrentVersion Hidden
    Int Function Get()
        Return ( 12 / 3 ) * 2
    EndFunction
EndProperty

Again, completely unrelated to your issue other than I don't trust Caprica as of late.

That's a good point and very weird behavior! Maybe make a separate issue for your findings :)
I value it being open-source here because I was noticing some edge case troubles with the Bethesda compiler. Otherwise, I wouldn't have searched for an alternative either. Being faster would also a be nice side bonus.

I value it being open-source here because I was noticing some edge case troubles with the Bethesda compiler.

That's a fair response.

Being faster would also a be nice side bonus.

The compiler can take a week for all I care - what is important is the speed of the code it's producing.  ;)


(tests) #16 Adds tests for the BinaryFunction class

Specifically the searchQuad, read3Bytes, and startsWith functions. Closes #16.

Can't review the code since the open clover goal refuses to work for me.


Animated.WithAnimatedValue strips type information

Description
I'm starting to use the Animated library for React Native, and I already noticed that the compiler is not warning me of the wrong usage. Usually, style properties would alert me if I give it the incorrect value, but when I use Animated.WithAnimatedValue for components like Animated.Text, I noticed this doesn't happen anymore. For example, I see that when I use Animated.WithAnimatedValue, it turns any type T that is not a record or an array into T | Value | AnimatedInterpolation. When I use the style property color that has type string | undefined, I would expect that the new type would be string | undefined | Value | AnimatedInterpolation, instead it is any. Any suggestions?
React Native version:
System:
OS: macOS Mojave 10.14.6
CPU: (8) x64 Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Memory: 126.48 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.12.0 - ~/.nvm/versions/node/v11.12.0/bin/node
Yarn: 1.17.3 - ~/.yarn/bin/yarn
npm: 6.14.4 - ~/.nvm/versions/node/v11.12.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.8.4 - /Users/User/.rvm/rubies/ruby-2.6.5/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK:
API Levels: 28, 29
Build Tools: 28.0.3, 29.0.2
System Images: android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom
Android NDK: Not Found
IDEs:
Android Studio: 3.5 AI-191.8<IP_ADDRESS>10548
Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_222 - /usr/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: ^16.11.0 => 16.11.0
react-native: ^0.62.2 => 0.62.2
npmGlobalPackages:
react-native: Not Found
Expected Results
TypeScript should warn the user when they give a style property the wrong type.
Snack, code example, screenshot, or link to a repository:
Example without WithAnimatedValue

Example with WithAnimatedValue

@cruzach I'm not sure of what does the Issue: Author Provided Repro stands for. Should I provide any other information? The bot recently labeled this ticket as stale. Does that mean that this issue will not be resolved or that there's no interest in resolving the issue?

It still needs community attention.

It still needs community attention.


Global variable leak in router.js:135

<EMAIL_ADDRESS>which comes with<EMAIL_ADDRESS>using npm is leaking a variable (i) in router.js:135..
1.x on GitHub (which sould also be 1.7.3 right now) is not..

After reinstalling express and connect via npm i can't see any leaks anymore. Closing.


[Bug] This plugin is running without enabling it

Summary
Hello,
I have many many sites in Netlify and yesterday, they started failing to build on:
Plugin "@netlify/plugin-gatsby" failed

Error: Could not load gatsby-config.js
Cannot find module './site_config.json'
Require stack:

/opt/build/repo/gatsby-config.js
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>In "onPreBuild" event in "@netlify/plugin-gatsby" from undefined

I never enabled this plugin and I don't want this plugin to run. Even if I create ./site_config.json with {}, it keep failing on more and more errors. How do I disable this?
Steps to reproduce
I have a site on Netlify and this plugin is just running for no apparent reason for the last 24 hours.
A link to a reproduction repository
No response
Plugin version
I don't have this plugin, I don't want this plugin
More information about your build

[ ] I am building using the CLI
[ ] I am building using file-based configuration (netlify.toml)

What OS are you using?
None
Your netlify.toml file
No response
Configuration
No response
Environment
No response
Gatsby info
zsh: command not found: gatsby

Your _redirects file
No response
Builds logs (or link to your logs)
10:20:42 PM:   Netlify Build
10:20:42 PM: ────────────────────────────────────────────────────────────────
10:20:42 PM:
10:20:42 PM: ❯ Version
10:20:42 PM:   @netlify/build 29.5.4
10:20:42 PM:
10:20:42 PM: ❯ Flags
10:20:42 PM:   baseRelDir: true
10:20:42 PM:   buildId: 63e2c08ccd7ae80097b8f789
10:20:42 PM:   deployId: 63e2c08c1f9c6e0008cc0f5a
10:20:42 PM:
10:20:42 PM: ❯ Current directory
10:20:42 PM:   /opt/build/repo
10:20:42 PM:
10:20:42 PM: ❯ Config file
10:20:42 PM:   No config file was defined: using default values.
10:20:42 PM:
10:20:42 PM: ❯ Context
10:20:42 PM:   production
10:20:42 PM:
10:20:42 PM: ❯ Installing plugins
10:20:42 PM:    -<EMAIL_ADDRESS>10:20:51 PM:
10:20:51 PM: ❯ Loading plugins
10:20:51 PM:    -<EMAIL_ADDRESS>from undefined
10:20:53 PM:
10:20:53 PM:   1. @netlify/plugin-gatsby (onPreBuild event)
10:20:53 PM: ────────────────────────────────────────────────────────────────
10:20:53 PM:
10:20:53 PM: No Gatsby cache found. Building fresh.
10:20:53 PM:
10:20:53 PM:   Plugin "@netlify/plugin-gatsby" failed
10:20:53 PM: ────────────────────────────────────────────────────────────────
10:20:53 PM:
10:20:53 PM:   Error message
10:20:53 PM:   Error: Could not load gatsby-config.js
10:20:53 PM:   Cannot find module './site_config.json'
10:20:53 PM:   Require stack:
10:20:53 PM:   - /opt/build/repo/gatsby-config.js
10:20:53 PM:   -<EMAIL_ADDRESS>10:20:53 PM:   -<EMAIL_ADDRESS>10:20:53 PM:   -<EMAIL_ADDRESS>
Function logs
No response

Hi. site_config.json isn't something that this plugin is trying to load. Can you check if your gatsby-config.js is trying to load it?

The file is generated inside npm run build but this plugin runs before the pipeline even gets to run this command. So this plugin fails. I understand Netlify has bought Gatsby so it's trying to do something about the integration, but automatically enabling a plugin for all sites without knowing the sites feels wrong. I can't build any site because this plugin is running before npm run build and the files don't exist yet. Please, how do I disable it?

This has been fixed in the Netlify UI - You can navigate to Build Settings, and click the "Remove" button next to the Runtime section.


Add option to install android build template for export

This PR adds a new "--export-android-build-template" command-line option which causes the android build template to be installed before exporting the project.

That's pretty cool, definitely helps when people download projects or templates that require this to be installed.

The feature sounds good. I'm not fully sold on the name, as it starts with --export but it actually performs a setup/install. Maybe --setup-android-build-template would be better? The description of the option should also clarify that it has to be used together with one of the actual --export-* options, otherwise it's a no-op from what I can tell (didn't test, but from reading the code).
Architecturally though, I'm not fully satisfied with the implementation, as it breaks platform encapsulation, adding Android specific code in main.cpp and editor_node.cpp, notably in the generic EditorNode::export_preset. Other platforms in the future may also need pre-export steps to be performed and it would be better to have a system for this so that any export preset can specify what steps should be ensured before an export, either automatically or optionally with a command line argument.
That being said, the issue pre-exists this PR, since install_android_template() is a method of the generic ExportTemplateManager, and we expose a dedicated option in the editor to install the Android template. So that's not something that needs to be fixed in this PR, but I do think we need to rethink this stuff in the future.


question about aligning during inference

From the following code:
https://github.com/JosephKJ/ELI/blob/main/detection/detectron2/modeling/roi_heads/roi_heads.py#L558
It seems that at the inference time, we need to know the gt class of objects in the image.
Please correct me if I am wrong.

I think the author assume we know a binary label about whether the input belongs to current or previous tasks so the aligner is able to work. This is stated in section 3.2.2 of the paper.
Since the bias in incremental learning is mainly towards current task, using an aligner to split features of current task and previous tasks should be helpful.
However, with such a binary label, this is not a strict class incremental learning setting and the comparison to other CIL methods is unfair anyway.

@BinahHu Yes, I agree with you. Actually for the practical application, we do not know whether the testing image belongs to current or previous tasks.

We can learn a simple binary classifier to automate this decision making.


Improving typed arrays compatibility support

... attempt to address #1005

@pdfjsbot test
Crashed mobile safari a few times trying to test(not related to this), but +1 good to merge after test passes.

@pdfjsbot lint

Sorry I inadvertently canceled this. Let's try our new "lint" bot feature:
@pdfjsbot lint


Ignoring fields doesn't seem to work.

I have created this test script, the output shows that the content column gets created even if i define gorm:"-":
package main

import (
	"fmt"

	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/sqlite"
)

type Foo struct {
	gorm.Model
	Content string `json:"content" gorm:"-"`
}

func main() {
	db, err := gorm.Open("sqlite3", "database.sqlite3")

	if err != nil {
		panic(err)
	}

	db.LogMode(true)
	db.AutoMigrate(&Foo{})

	foo1 := &Foo{Content: ""}
	db.Create(foo1)

	check := &Foo{}
	db.Last(check)

	fmt.Println(check.Content)
}

The output:
# go run main.go

(/home/tboerger/Projects/golang/src/github.com/foo/foo/main.go:23)
[2016-03-16 16:09:33]  [2.82ms]  CREATE TABLE "foos" ("id" integer primary key autoincrement,"created_at" datetime,"updated_at" datetime,"deleted_at" datetime,"content" varchar(255) )

(/home/tboerger/Projects/golang/src/github.com/foo/foo/main.go:23)
[2016-03-16 16:09:33]  [5.44ms]  CREATE INDEX idx_foos_deleted_at ON "foos"("deleted_at")

(/home/tboerger/Projects/golang/src/github.com/foo/foo/main.go:26)
[2016-03-16 16:09:33]  [0.31ms]  INSERT INTO "foos" ("created_at","updated_at","deleted_at","content") VALUES ('2016-03-16T16:09:33+01:00','2016-03-16T16:09:33+01:00','<nil>','')

(/home/tboerger/Projects/golang/src/github.com/foo/foo/main.go:29)
[2016-03-16 16:09:33]  [0.30ms]  SELECT * FROM "foos"  WHERE "foos".deleted_at IS NULL ORDER BY "foos"."id" DESC LIMIT 1

Hi,
FYI, my current workaround is to replace gorm:"-" by sql:"-".

FYI, my current workaround is to replace gorm:"-" by sql:"-".

Thanks for the hint, but to avoid confusion this bug should be fixed or the docs should be updated.

I suppose you are using an old GORM.

Hi, i have the same issue, but sql:"-" (instead of gorm:"-") doesn't work for me. I am using latest version of gorm.

This should been fixed, sorry for this.


Remove query_auth from the specification per MSC2451.

This is per MSC #2451 (rendered version).
Synapse v1.12.0 removed this endpoint in matrix-org/synapse#7026.

Oops! Added!

so we don't have removal as a changelog type, but this sort of change applies to no other changelog type. I'll merge this and get a removal type added.

Thanks, was just going off of what Synapse has.


Websocket: Error dialing, bad handshake

Do you want to request a feature or report a bug?
bug, possibly related to #2078, some discussion already went there
What did you do?
Upgraded Traefik from ~1.2 to latest. Then found that 1.3.3 was last working version.

What did you expect to see?
Working wss:// endpoint with ws:// backend. With passing HTTP Basic credentials.
What did you see instead?
Traefik:
[traefik-1]2017-09-26T15:03:55.254374139Z time="2017-09-26T15:03:55Z" level=warning msg="Error dialing `streaming.example.com`: websocket: bad handshake"

Backend service:
2017-09-27 21:37:26,597 c.p.s.SocketServer$: Unauthorized user

Output of traefik version: (What version of Traefik are you using?)
1.3.4 - 1.3.8, 1.4.0-rc3

What is your environment & configuration (arguments, toml, provider, platform, ...)?
Docker Cloud with overlay network
# unrelated entries removed
logLevel = "DEBUG"
defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]

[backends]
  [backends.streaming-api-backend-dev]
    [backends.streaming-api-backend-dev.servers.server1]
    url = "ws://streaming-api.backend-dev:7788"

[frontends]
  [frontends.streaming-api-dev]
  backend = "streaming-api-backend-dev"
    [frontends.streaming-api-dev.routes.test_1]
    rule = "Host:streaming.example.com"

If applicable, please paste the log output in debug mode (--debug switch)
Special debug version from @Juliens:
[traefik-1]2017-09-27T21:37:26.468005624Z time="2017-09-27T21:37:26Z" level=debug msg="Look for provided certificate to validate [streaming.example.com]..."
[traefik-1]2017-09-27T21:37:26.468190338Z time="2017-09-27T21:37:26Z" level=debug msg="No provided certificate found for domains [streaming.example.com], get ACME certificate."
[traefik-1]2017-09-27T21:37:26.468236280Z time="2017-09-27T21:37:26Z" level=debug msg="Challenge GetCertificate streaming.example.com"
[traefik-1]2017-09-27T21:37:26.468302456Z time="2017-09-27T21:37:26Z" level=debug msg="ACME got domain cert streaming.example.com"
[traefik-1]2017-09-27T21:37:26.915226282Z time="2017-09-27T21:37:26Z" level=debug msg="Try dialing `streaming-api.backend-dev:7788`"
[traefik-1]2017-09-27T21:37:26.915263389Z time="2017-09-27T21:37:26Z" level=warning msg="Error dialing `streaming-api.backend-dev:7788`: websocket: bad handshake with resp: &{401 Unauthorized 401 HTTP/1.1 1 1 map[Www-Authenticate:[Basic realm=""] Server:[akka-http/2.3.16] Date:[Wed, 27 Sep 2017 21:37:26 GMT] Content-Type:[text/plain; charset=UTF-8] Content-Length:[77]] {0xc420542450} 77 [] false false map[] 0xc420806200 <nil>}"
[traefik-1]2017-09-27T21:37:32.116914266Z time="2017-09-27T21:37:32Z" level=debug msg="Look for provided certificate to validate [streaming.example.com]..."
[traefik-1]2017-09-27T21:37:32.116944842Z time="2017-09-27T21:37:32Z" level=debug msg="No provided certificate found for domains [streaming.example.com], get ACME certificate."
[traefik-1]2017-09-27T21:37:32.116974729Z time="2017-09-27T21:37:32Z" level=debug msg="Challenge GetCertificate streaming.example.com"
[traefik-1]2017-09-27T21:37:32.117612246Z time="2017-09-27T21:37:32Z" level=debug msg="ACME got domain cert streaming.example.com"
[traefik-1]2017-09-27T21:37:32.261379578Z time="2017-09-27T21:37:32Z" level=debug msg="Try dialing `streaming-api.backend-dev:7788`"
[traefik-1]2017-09-27T21:37:32.261446671Z time="2017-09-27T21:37:32Z" level=warning msg="Error dialing `streaming-api.backend-dev:7788`: websocket: bad handshake with resp: &{401 Unauthorized 401 HTTP/1.1 1 1 map[Content-Type:[text/plain; charset=UTF-8] Content-Length:[77] Www-Authenticate:[Basic realm=""] Server:[akka-http/2.3.16] Date:[Wed, 27 Sep 2017 21:37:31 GMT]] {0xc4205a3fb0} 77 [] false false map[] 0xc4204f1700 <nil>}"

I'm not sure the problem is really that we don't forward HTTP BASIC authentication credentials.
But I found that traefik did not answer with 401 (like the backend) to the client but with 500.
I have fixed this, can  you try with this new version ?
docker pull juliens/traefik:websocket

Thx

Looks like the websocket stream is working again :)

Closed by #2187


Docs: "Upgrade support" is confusing and doesn't mention a feature gate

I think Upgrade support doc requires some rewriting because:

It doesn't mention that the semver upgrades require the ForceSemverUpgradeConstraints feature gate which gives a false impression it is a feature which is enabled by default.
The flow of the document needs improving: going through the doc it is not clear whether SelfCertified and CatalogProvided upgrade constraint policies work with both legacy upgrade edges and server upgrade edges or not.

/assign


Removed API key from weather and replaced with config

Hi, I really like your UI for this weather app! nice work!
However I noticed you had your API key coded into the URL in the weather.js. I updated the file to look at config.js where you would store your key (but make sure not to push in back onto Github 😄 ).
It would be a good idea to revoke your current key to prevent others from using it and generate a new one which you can keep off this repo.
Hope that helps!

Also did the same for the other two keys and again would recommend regenerating those too.

Thanks for comments and updates @Crammers
I will review and merge this soon :)


The automated release is failing 🚨

:rotating_light: The automated release from the master branch failed. :rotating_light:
I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this 💪.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
 You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here is some links that can help you:

Usage documentation
Frequently Asked Questions
Support channels

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.

Only absolute URLs are supported
Unfortunately this error doesn't have any additional information. Feel free to kindly ask the author of the semantic-release-slack-bot plugin to add more helpful information.

Good luck with your project ✨
Your semantic-release bot :package::rocket:

:rotating_light: The automated release from the master branch failed. :rotating_light:
I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this 💪.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
 You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here is some links that can help you:

Usage documentation
Frequently Asked Questions
Support channels

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.

No Slack web-hook defined.
A Slack Webhook must be created and set in the SLACK_WEBHOOK_URL environment variable on your CI environment.
Please make sure to create a Slack Webhook and to set it in the SLACK_WEBHOOK_URL environment variable on your CI environment. Alternatively, provide slackWebhook as a configuration option.

Good luck with your project ✨
Your semantic-release bot :package::rocket:


be more sane in ChipmunkDemoPrintString

PrintStringCursor is initialized on Tick() which is never called in -trial mode thus calling ChipmunkDemoPrintString would cause a segfault.
Also changed vsprintf to vsnprintf with propper return value handling.

Yeah... I remember when I wrote that I sort of just didn't care. Since it doesn't load anything off the internet, it didn't really matter. Also, the "*nprintf" function weren't available in Visual Studio a few years back. If people are still using ancient versions of Visual Studio, that's their problem. :p


API reference for plugin development

I am looking to play around at implementing an asset attachment feature to objects. When trying to figure out exactly how to approach this I was unable to find an API listing or anything that describes how to interface with the drawn objects.
Is this created already, or where do I go to find exported functions?

Yes actually I have a similiar requirement for the product I am working on, I have asked a question in stackoverflow as well https://stackoverflow.com/questions/67184047/does-draw-io-expose-any-js-api-for-manipulating-its-drawing-elements-programatic
Maybe we can collaborate also if required.

Hi @iceblu3710 , did you end up finding any solution to this ?

Hi @davidjgraph , just wondering, could you add your inputs to this if possible ? I would be really grateful to you 🙂
If you prefer to add on stackoverflow instead, here is the question I have asked there:  https://stackoverflow.com/questions/67184047/does-draw-io-expose-any-js-api-for-manipulating-its-drawing-elements-programatic

Currently, the API for the archived core library is still public at http://jgraph.github.io/mxgraph/docs/js-api/files/index-txt.html

@alderg this is so amazing , Thanks a lot 🙂.

archived core library

By this I guess you mean that it doesn't accept any PRs for improvements as you have mentioned on the readme also. Which is fine.


Add support and documentation for Azure DevOps CICD

Hi,
we also use Azure DevOps for some Projects. Can you add an Azure DevOps extension to the marktplace (https://marketplace.visualstudio.com/) or document how to integrate it?
Thanks in advance
André

Hey @anmoel - thanks for creating this issue, it's something we should support.
I've not used Azure DevOps before and happy to learn. Do you know if it's possible to run docker tasks in Azure pipelines? That's how most of the current CI/CD integrations work, e.g. see the GitLab one. If so, then it should be fairly simple to get this working.

@anmoel we shipped initial support for Azure DevOps Pipelines, can you possibly review https://github.com/infracost/infracost-azure-devops/ and let me know if it works ok for you?


Usage Instruction

How is this done "Clipboard Manager must be registered to receive the copy and cut commands, so be sure to assign clipboard_manager_copy to ctrl/super+c and clipboard_manager_cup to ctrl/super+x"

I'm away from my computer, but check "Example.sublime-keymap", and put that in your user keymap.

On Jul 4, 2016, at 3:59 PM, Dominic Monyoncho<EMAIL_ADDRESS>wrote:
How is this done "Clipboard Manager must be registered to receive the copy and cut commands, so be sure to assign clipboard_manager_copy to ctrl/super+c and clipboard_manager_cup to ctrl/super+x"
―
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I just double checked, and these instructions are right - open Preferences > Key Bindings and copy the key bindings you want to use.  At a minimum you should copy:
    { "keys": ["super+x"], "command": "clipboard_manager_cut" },
    { "keys": ["super+c"], "command": "clipboard_manager_copy" },
    { "keys": ["super+v"], "command": "clipboard_manager_paste", "args": { "indent": true } },

But to get to benefits of forward/backward, you'll want to bind next_and_paste and previous_and_paste
    { "keys": ["super+alt+v"], "command": "clipboard_manager_next_and_paste" },
    { "keys": ["super+shift+v"], "command": "clipboard_manager_previous_and_paste" },

The "show history" is super useful, and it uses the fuzzy finder so you can search your history:
    { "keys": ["super+alt+ctrl+v"], "command": "clipboard_manager_choose_and_paste" },

The keys are all up to you, these are just my settings.  I hope this helps!  If you have more questions, please ask.

@colinta Is not clear in the README that these bindings need to be manually added. For users unfamiliar with the key bindings feature this might be not so intuitive. Maybe write a small note mentioning that? Your last comment in this issue does exactly that.

@alexfradiani Good idea, I added more information to the README.  Helpful?


InfluxDB running out of memory

Environment:

8 x CPU cores
16GB of memory
InfluxDB database size: 10G
Version: 1.2.2
OS: CentOS 7.2 x86_64
Docker: 1.12.1

When starting up Influx, the process memory consumption rapidly increases to almost 70% of the total memory.
15042 root      20   0 17.860g 0.010t 3.289g S   0.0 68.0   5:11.48 influxd

I've also attached the log file which shows the the initial start up.
Could anyone shed some light into why this might be happening?
block.txt
diagnostics.txt
goroutine.txt
heap.txt
influxdb_conf.txt
influxdb_log.txt
iostat.txt
shards.txt
stats.txt
vars.txt

We need more information in order to diagnose what is going on.  Can you update the issue description with the instructions listed in our issue template?

Hi @jwilder,
sorry, my bad, should've seen that earlier. I've attached all the necessary log files and updated the system information.

@m4ce Your systems DB has around 3.2M series and heap is about 7.5GB in those profiles.  A lot of the heap in use is for the in-memory index related to the number of series you have.  I'm not sure what stat you are looking at for "process memory", but the DB uses memory mapped files which can show as a lot of virtual memory in use.
The docs have some hardware sizing guidelines which gives some general recommendations bases on series cardinality.

@jwilder, thanks for the feedback. I will look into more then.

@jwilder - I actually found out what's going on. We are running telegraf in our cluster to collect system metrics. However, the docker input plugin is enabled. As we happen to spawn thousand of jobs on our grid, all the metrics for these containers get sent to Influx. The bad news is that Telegraf keeps sending metrics for containers that are in a exit state too :/ I will have to temporarily disable the plugin as Telegraf doesn't seem to support any option to disable monitoring non-running containers.

@m4ce Ah.  That would definitely contribute to higher cardinality.  Looks like you logged an issue in telegraf repo: https://github.com/influxdata/telegraf/issues/2737 so I'm going to close this.


Pritunl: No matches for kind "Deployment" in version "extensions/v1beta1"

Pritunl use obsolete api version for kubernetes v1.18.6.
Comparing release=pritunl, chart=articulate/pritunl
in helmfile.d/helmfile.yaml: helm exited with status 1:
  Error: Failed to render chart: exit status 1: Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"

This has been fixed in the latest push on the PR I've opened to modernize this chart a bit. Thanks for the tip!

@hetii I've pushed a fixed version of this chart to this repository: https://github.com/shipwreckdev/charts/tree/master/stable/pritunl


Basic structure is ready.

Nice work! I think we should work a bit more on this pull request and add some tests to verify these features in the future. Then we should be good to merge. I'll write up the tests, although we do need to host this bot somewhere before we can test this. Heroku maybe?

Heroku will be good. JODC has a heroku account.

Cool, let's do that! 👍🏻

Maybe we can get more people involved here from the community and divide some of these peripheral tasks among them?

Made some changes to the PR, so you don't have to write onSomeCommand(bot) for every command you make. I'm using 'fs' module, which will automatically import all the files present in 'command' directory. Also you have to make some changes to 'commands.js' files also. In order to make this work. My only concern is that, if it will work on heroku or not.

It should. I assume you are importing a json for this? Also, can you push that on your fork so we can check it out?

https://github.com/aayushmau5/bot
Here's the fork. Let me see your suggestion also.Thanks.

LGTM. Can you deploy your fork on your local and check whether it's working as intended?

Yup. It is working on my local machine. Should i deploy it using heroku and check ?

We do have to deploy this to heroku anyway, for every time a PR comes through (we'll write a workflow for that soon) we'll have to mock calls for testing if everything is working fine, so go ahead! 👍🏻


Somewhat more generic emacs packages' builder and a bunch of new emacs packages and metas

https://github.com/NixOS/nixpkgs/pull/6250 by @gridaphobe introduced awesome package-build.el-based builder for Emacs packages which simplifies building complicated stuff like wanderlust a whole lot. But, regretfully, it is a bit too restrictive and, IMHO, somewhat ugly. Merge with an old builder of mine (generic and simple, but lacking in power) transformed it into the true way to build Emacs packages.
And so I rehashed all Emacs-related stuff to account for this new prowess.
Todo:

Rewrite most of the old emacsPackages using this, will simplify a lot of builders to a point of triviality.

To consider:

Adding default module to emacs package (or wrapper package like emacsWithPackages) so that all this init.el setup would be done automatically.

Ooh I forgot that nix supported as-patterns, :+1:. I also like the sound of emacsWithPackages, that would indeed make the setup easier!
I'd eventually like to generate emacs-packages.nix from melpa's list of recipes, but haven't had a chance to look into it yet.

@gridaphobe Yep, that would be nice.
Note for merger/reviewer: note that github view sorts commits with the same commiter date in a strange way (most notably, "reorganize" and "refactor" commits must be swapped for this changeset to make sense), yet "Files changes" are correct. I hope that merging with "merge" button does exactly git-merge.

Much better now.

:beers:
Looks good. Going to review asap.

Seems to be ok.
Please tell me, what's the best way to use emacs with packages now?

Looks great to me, thanks @oxij!
@jagajaga I use a buildEnv to bundle emacs with all of the packages I use (https://github.com/gridaphobe/dotfiles/blob/master/nixpkgs/config.nix#L254-L296).

@gridaphobe thank you.


[Select] Fix description, value is not required

[x] I have followed (at least) the PR section of the contributing guide.

closes #23558

@natac13 Thanks

Glad to be of some help


API to take Screenshot

Describe the solution you'd like
A new API endpoint to receive a page screenshot image for a given chat number

Yes That will be much help full as other api also have this like open-wa but not for a specific contact for whole whatsapp

It would be great to have this option in the API

In implementing by https://github.com/wppconnect-team/wppconnect-server/commit/1cab9aa2049ecc0decd6f95b766c75ea7acf25a8


Disable all :hover states on mobile

When tapping on an element with a hover state on mobile it retains the :active/:focus state even after the page has loaded which looks weird.
There is no benefit of having a :hover state on touch-based interfaces so it's easier to remove them.

Done https://github.com/fmaclen/promptspree/pull/87


Toit.Jaguar version 1.0.3

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

This is a follow-up PR to #45622.
Hopefully all concerns are addressed.
The wingetcreate tool wasn't able to extract the version number, but when installing, the title now shows the version number.
Also, after a local install, the package was installed as "Jaguar 1.0.3" and I had to use winget uninstall "Jaguar 1.0.3". I hope this is the expected behavior for locally installed manifests.


Release gives errors about crowdin dependencies

Problem
I tried to clear out some files tonight, but the release failed with two errors when trying to install crowdin dependencies.
Error 1
Line 26

After a lengthy exchange with Crowdin Chat support we finally found out that there was a problem with the package.json.
"crowdin": "crowdin", should be "@crowdin/cli": "3.13.0",
Then I got the next error.
Error 2
Line 27
error Package "//pretranslate" refers to a non-existing file '"//pretranslate@  used to re-apply translations when files are renamed or reorganized"'.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Error: Process completed with exit code 1.

Crowdin support confirms that it refers to a non-existing file. But not one of theirs. They recommended I check with you.
I notice the next two lines 28-29 look more like the commands on the page they sent me to. But they are commands not dependencies.
https://crowdin.github.io/crowdin-cli/commands/crowdin-pre-translate/
    "//pretranslate": "  used to re-apply translations when files are renamed or reorganized",
    "crowdin:pretranslate": "crowdin pre-translate --method tm --translate-untranslated-only --translate-with-perfect-match-only --verbose",
    "crowdin:sync": "docusaurus write-translations && crowdin upload sources --delete-obsolete && crowdin download"

Line 27 look more like a comment to me, so I tried deleting it. However, it resulted in the following error.
error An unexpected error occurred: "https://registry.yarnpkg.com/crowdin:pretranslate: Not found".
info If you think this is a bug, please open a bug report with the information provided in "/home/runner/work/paratext-manual/paratext-manual/yarn-error.log".

Sorry, no sign on the yarn-error.log on GitHub.
I tried but that's as far as I can go. I hope it makes sense to you.

Hi, @JenniBeadle.
As we discussed, this is not a docu-notion issue.
You and I are working through this via other channels.


recommended method of use in crontabs?

This may just be a documentation issue, but what's the recommended way of using console scripts provided by a package that has been installed into virtualenv managed by pipenv in a crontab?
With traditional virtualenvs, you'd just use the absolute path to bin/{whatever}, but with opaque virtualenvs I'm guessing there is or should be a different way.

@nateprewitt - you only ever work on one project per user account? Really? You have a different user for every library you work on?

@cjw296, there's no need to be combative. I think we've strayed pretty far from the original issue here.
I have PIPENV_VENV_BY_DEFAULT set on my system and that's what I use for development. I've been a vocal supporter of having this be the default, and for project level parameterization, but that's been passed on by the project for the time being.
I don't think I've ever needed to cron parts of my development workflow for a non-application/service piece of software. I typically only cron for productionized systems or for automating things locally. In the first instance, yes, I would isolate different applications to different users. In the second, I wouldn't have an issue with an extra 4 characters in a command I likely won't look at again for a while. As I've said above, this is the current state of things. We're happy to review suggestions on changes and work towards a better solution given current constraints.

It's interesting that you view my comments as combative, the responses of this project's maintainers feel the same way on a number of issues. "We're happy to review suggestions on changes", I'm afraid, doesn't appear to be born out in a number of cases, including this one.
When I say that, I'm not referring to your specific comments above, but to the overall intransigence shown towards use cases people are asking for. I'll leave this open in case others have a similar desire, but I'll pass on Pipenv for now and go find something more supportive of my use cases.

@cjw296 I am just not seeing how anything Nate said means he only works on one project per user. What’s more confusing to me is the use case where you are developing on projects where you are not able to decide where your own virtualenvs are stored. That isn’t a workflow I’m familiar with.
One option you have is to create your own virtual environments if you aren’t able to work with pipenvs creation options. Then you can install pipenv in the virtualenv to do day to day management, but you can call scripts in the virtualenv directly from cron. Currently I call scripts directly from cron because pipenv is a cli application to manage an environment, I don’t see the value add for cron most of the time. That’s what I did when I was using pip + virtualenvs. What am I missing?
We ARE happy to entertain solutions beyond what has been suggested, but have clarified which things have already been considered. I haven’t seen any alternatives, but I do want to clarify that pipenv isn’t meant to set restrictions on distributed project teams. The ‘binary choice’ comment applies to a developer system, I don’t see how it would force everyone to follow suit?

cd some/project/dir && pipenv run script should be sufficient.

That's a little optimistic I think.
That gets fairly hairy given a combination of cron's typically sparse idea of a path and the way someone might have installed pipenv (e.g. in /usr/local, which you'd get in Debian when issuing a sudo pip install pipenv). I agree with @cjw296 I'd have hoped pipenv had a better answer here.

@JosefAssad what do you mean by cron's sparse idea of a path? If your working directory is the directory of the project, pipenv will find the relevant virtualenv

and the way someone might have installed pipenv (e.g. in /usr/local, which you'd get in Debian when issuing a sudo pip install pipenv).

Obviously if pipenv is not on the path that is available to cron, you should call it by its full path.

what do you mean by cron's sparse idea of a path

On Debian, the cron path is /usr/bin:/bin.

Obviously if pipenv is not on the path that is available to cron, you should call it by its full path.

Yes, obviously. Then it complains that pew can't be found, which sudo pip install pipenv dropped in /usr/local also, at which point one has to adapt the PYTHONPATH also in the cron command (I am assuming, I got tired of experimenting at this stage). This is why I described the solution as hairy.
For reference, the way I do this in cron with bog standard virtualenv is to not so simple either, I source the virtualenv's activate script and run the command by full path after that. So it's not like that's pretty either, but as I said, I was hoping pipenv had a nicer solution here.

@JosefAssad why are you installing from pip with sudo? You're giving root permissions to arbitrary code from the internet. If a package is compromised, you've just run whatever code they decided to put in setup.py. The official python documentation is very clear not to do this because it causes your exact path issues.
There are many issues on StackOverflow detailing proper installation of just about every flavor of *nix.
As I said above, the suggested approach will work but isn't ideal. We haven't really focused on improving the user experience around cronjobs. We're happy to review suggestions on how to make this better, but "me too" posts don't really progress the conversation.

@nateprewitt I appreciate the reminder about safe Linux'ing. The reason I am installing pipenv like that is, the pipenv documentation suggests using the following:
pip install pipenv

That command fails on Debian (and most reasonable Linuxes, I would guess). Since I need it available to all users, I am using sudo so it gets installed systemwide (as opposed to pip install -U pipenv). Fortunately, Debian is fairly sane about this and uses /usr/local.
I'll make sure to check stackoverflow for tips on installing *nix, I'm sure I haven't learned everything there is to know in my 18 years of using Linux.
At any rate, even if I decide to pip install -U pipenv to appease the id == 0 gods, it's still a python path which "fresh off the boat" cron is going to need spelled out (not just for pipenv but also for the python libraries it depends on) and no less complex than if I had installed pipenv in /usr/local.

@JosefAssad I'm still not totally convinced about invoking pipenv via cron honestly, as is probably clear we haven't considered that usage much because you can invoke the relevant python executable directly instead (which is what I do in cases like this) -- this kind of gets around all of the other questions of setting PYTHONPATH and worrying about whether pew is also available etc.

I source the virtualenv's activate script

Out of curiosity, are you sourcing it out of habit or is this actually necessary for your use case? Does just calling the python executable in the virtualenv bin and passing the relevant script as an argument accomplish the same goal?
As yet another alternative approach you could write an invocation script along these lines:
#!/bin/sh
VENV_PYTHON="/path/to/project-hAsHpTH/bin/python"
PROJECT="/path/to/some/project"
SCRIPT="script.py"
cd "${PROJECT}" && "${VENV_PYTHON}" "${SCRIPT}"

or even the alternative case of just using the virtualenv interpreter in your shebang, or something.

I'm still not totally convinced about invoking pipenv via cron

Yeah I'm just happy we're kicking ideas around. I'm not married to pipenv having to handle this either, I'm just looking for a clean approach. I do appreciate and respect the imperative to control the scope of pipenv.
For the sake of thinking it through thoroughly, The cron use case might be a good example of what people might end up expecting from non-interactive use of pipenv. Dockerfiles might be another area where non-interactive use of pipenv might crop up.

Out of curiosity, are you sourcing it out of habit or is this actually necessary for your use case

Well, there might be a better way of doing it, but when I run virtualenv-based python projects out of a crontab, I'm sourcing the project's bin/activate since that doesn't just give me the right interpreter, it gives me the right path to that virtualenv's package library without having to muck about with python paths. That's necessary if I don't want to install all packages from my virtualenvs in my system library.

Does just calling the python executable in the virtualenv bin and passing the relevant script as an argument accomplish the same goal?

No unfortunately that doesn't work, and I think for the same reason as the (otherwise really clean) wrapper you suggested won't work either (I just tested to be triple and quadruple sure): because it only specifies interpreter, not the venv's package lib.

even the alternative case of just using the virtualenv interpreter in your shebang, or something

You already know this so forgive me but I'm just spelling it out in case others read this thread: that just picks the right interpreter again, leaving us again with the problem of pointing it at an alternate location (the venv's location) for packages.
More generally, I'm a little hesitant to hardcode interpreter location in my source code. It's really clean for the shebang to say (as I usually write) #!/usr/bin/env python and then to let virtualenv/pipenv handle setting the env right, than to write #!/path/to/project-hAsHpTH/bin/python. The project-hAsHpTH/bin/python part won't change but the /path/to/ might very well.
I know it's all a little abstract; if it's easier that I produce a minimal example just say so.

Apologies for the non-sequitur, but I am reminded of what I think is a comparable solution in git. Probably as a nod to non-interactive use of git, it has a command line switch -C which (copying from the [man page]https://www.kernel.org/pub/software/scm/git/docs/) here):
Run as if git was started in <path> instead of the current working directory.

The git executable depends on being able to find the .git directory inside the repository; perhaps this is a a little analogous to pipenv needing to be able to identify which venv is associated with a given python project.

Whether that works for pipenv, that you know better than me. :)

@JosefAssad thanks for the clear response -- the docker use case is a bit different I think, just because docker containers are usually atomic and many users are installing with --system inside a container. The use case of pew invocation is an interesting point I've been thinking about since you mentioned it -- we currently have some logic to find executables, but I don't believe we are applying this to our calls to pew presently, which is one of the reasons it won't work just by changing to the project directory.
For context, pipenv run currently works with the following code:
def inline_activate_virtualenv():
    try:
        activate_this = which('activate_this.py')
        with open(activate_this) as f:
            code = compile(f.read(), activate_this, 'exec')
            exec(code, dict(__file__=activate_this))
    # Catch all errors, just in case.
    except Exception:
        click.echo(
            u'{0}: There was an unexpected error while activating your virtualenv. Continuing anyway…'
            ''.format(crayons.red('Warning', bold=True)),
            err=True
        )

Note that which() uses project.virtualenv_location which is the same as pipenv --venv which is also dependent on a call to pew.

the docker use case is a bit different I think,  many users are installing with --system inside a container

Yeah I think you're right about that, that's also what I see most people do in Dockerfiles, for better or worse.
I've banged a bit on cron and pipenv. Here's what works for me:
PATH=/usr/bin:/bin:/usr/local/bin
*/1 *  *   *   *     cd /path/to/project/ && pipenv run python stuff.py

I did have an issue with pipenv getting confused as to the location of the virtualenv which I fixed by unsetting a couple of envvars which I think virtualenv or virtualenvwrapper were using.
I think you're absolutely right, improving the discoverability of pew should allow me to omit the explicit path specification in the example above; well spotted. And then the cron invocation can indeed be reduced to more or less exactly your original proposition of:

cd /some/project/dir && pipenv run script should be sufficient

@JosefAssad - I have to admit, even on debian, I've never had problems from just using the absolute path to an entrypoint script in the bin directory of a virtualenv.
That's all I think I need from pipenv, I don't have any desire to run pipenv from a crontab; that was a suggestion from @richardcooper and @nateprewitt .

we also have the PIPENV_PIPFILE environment variable, which can be set.

@kennethreitz - can you give an example of how that would be used in a crontab?

It's pretty easy to figure out :)

That's all I think I need from pipenv, I don't have any desire to run pipenv from a crontab; that was a suggestion from @richardcooper and @nateprewitt .

Sorry, perhaps I'm misreading this, but what was the original issue if not running pipenv from a crontab?

@kennethreitz - for you maybe. For me, evidently not, given that I'm here asking the question.
@nateprewitt - please see https://github.com/pypa/pipenv/issues/1369#issue-292190514.

@cjw296 sorry, that's still not clear. You don't want a programatic or command based way to get the absolute path of the virtualenv, and you don't want to use pipenv? How were you intending to use this in the crontab?

Ok, since the dialogue has kind of halted here to just emoji responses, I'm going to close this.
To summarize this thread for any future readers, we currently only have two methods of running scripts.
Path to Virtualenv
The first is to use the virtualenv path to execute installed scripts, as you would with a traditional virtualenv. This value is retrievable from the pipenv --venv command which will produce the absolute path of the virtualenv regardless of environment variables.
e.g.
/path/of/.venv/bin/python yourscript.py
/path/of/.venv/bin/installed_executable_script.py
Pipenv run
If you want to use pipenv to run the job directly, you'll need to make sure pipenv is on the PATH of the cron user, navigate to the project directory, and use pipenv run. While this isn't an ideal interface, it's what we currently have as an option from cron'd tasks.
e.g.
cd /path/to/project && pipenv run python yourscript.py
If you have suggestions on how you'd like to see them improved, please feel free to create a new issue detailing how you'd envision it working. Thanks!

@cjw296 if you have further clarifications on how you'd expect this functionality to work, I'm happy to continue talking through this. We just need to have clearer bounds because the requirements are still pretty fuzzy.

We also have PIPENV_PIPFILE=/path/to/Pipfile pipenv run.

Thanks @kennethreitz that works quite well. Didn't find it in the docs so here's a PR.

I'm also struggling with the issue.
I have to run the following command from cron.
pipenv run python manage.py <my_command>

to run from cron, I'm setting following commadn from cPanel
cd /path_to _my_project/ && pipenv run python manage.py

But, this doesn't work. So I tried to add python path like
cd /path_to_my_project/ && pipenv run /usr/local/bin/python3.5 manage.py <my_command>

But it says,
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

From this issue, it seems I need to provide path to vertualenv path created by pipenv which is
/home/user/.local/share/virtualenvs/myapp.com-IuTkL8w_

But not sure how to use it in the cron command.

cd /path_to_my_project/ && pipenv run/home/user/.local/share/virtualenvs/myapp.com-IuTkL8w_/bin/python3.5 manage.py <my_command>

Also I would encourage people to not treat the issue tracker as a help forum because it is not.

With venv-in-project, I could just put /abs/path/to/project/.venv/bin/{whatever} in a crontab

just chiming in here to correct an often repeated misunderstanding. virtualenv changes some things when "activate" is launched which do not happen when its python interpreter is started directly.

@JosefAssad I'm still not totally convinced about invoking pipenv via cron honestly, as is probably clear we haven't considered that usage much because you can invoke the relevant python executable directly instead (which is what I do in cases like this) -- this kind of gets around all of the other questions of setting PYTHONPATH and worrying about whether pew is also available etc.

I source the virtualenv's activate script

Out of curiosity, are you sourcing it out of habit or is this actually necessary for your use case? Does just calling the python executable in the virtualenv bin and passing the relevant script as an argument accomplish the same goal?
As yet another alternative approach you could write an invocation script along these lines:
#!/bin/sh
VENV_PYTHON="/path/to/project-hAsHpTH/bin/python"
PROJECT="/path/to/some/project"
SCRIPT="script.py"
cd "${PROJECT}" && "${VENV_PYTHON}" "${SCRIPT}"

or even the alternative case of just using the virtualenv interpreter in your shebang, or something.

I followed @techalchemy's procedure. However, instead of virtualenv I used pipenv. And I also used the absolute path for pipenv. Without the absolute path it didn't work. Here goes my bash script:
#!/bin/sh
VENV_PYTHON="/path/to/pipenv/created/virtualenv/python"
PROJECT="/path/to/project/"
PIPENV="/path/to/pipenv"
SCRIPT="script.py"

cd "${PROJECT}" && "${PIPENV}" run "${VENV_PYTHON}" "${SCRIPT}"

Leaving this here because I struggled with debugging my pipenv cronjob. Cronjobs output to /var/mail/{username} on macos.


Model Load Error

Hi I suggest to change test.py line 37 to self.model.load_state_dict(checkpoint) otherwise it will be an error while loading the final_model.pth .
Traceback (most recent call last):
  File "demo.py", line 100, in <module>
    main(args)
  File "demo.py", line 70, in main
    device)
  File "/home/mspl/pygoturn/src/test.py", line 39, in __init__
    self.model.load_state_dict(checkpoint['state_dict'])

Hi, it looks like you are using the latest code with the old version of checkpoint. I changed the format of checkpoint in my recent commits. Please redownload the pre-trained model, it should work as expected.


Enter highscore name in a floating window

This pull request addresses Issue #21 and introduces a floating window for entering highscore name. It also displays the point difference when there is a previous highscore.
Changes Made

Added a new window for entering highscore name
Implemented the display of the point difference for previous highscores (if available)
Updated Game.cpp to save previous record and username
Updated the screenshot

Please review and let me know if any changes are needed.

@humdingerb - I've removed stray white spaces. The input is now focused when the window opens, and won't lose focus if the 25-character limit is reached. Thanks for the advice 👍

Very good! When @korli gives his thumbs up, we merge.

Looks good enough for me!


Remove exports limitation from Module Path Detection

Removes the main weakness of #718 by reading the provides directives of all external modules.

ok in this situation we need to export the org.example.external.aspect.sub package because some classes are used in the tests. If you look at a failure log of a previous run, you will see that it compiled successfully and failed only on test compilation


[Bug]: Defining an integer variable with minimum allowed int value gives compilation error in master

Description
Value out of range error for -9223372036854775808. It's observed in master.
Steps to Reproduce
public function main() {
    int i = -9223372036854775808;
}

64 bits two's complement representation of integer values should include -9223372036854775808
Affected Version(s)
No response
OS, DB, other environment details and versions
No response
Related area
-> Compilation
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

This is not a bug.
-9223372036854775808 is a unary expression (-L), and L here is out of range for int.
You can use int:MIN_VALUE or -9223372036854775807 - 1 instead.
This was incorrectly allowed previously (https://github.com/ballerina-platform/ballerina-lang/issues/32577).


I want the Subcomponent Type validator overhauled to use keyword arguments for type and field

As an AaC user, I want the Subcomponent Type validator overhauled to use keyword arguments for type and field, so that I can specify type constraints for individual fields.
References:
Subcomponent Validator
Current validator:
https://github.com/jondavid-black/AaC/blob/3dfc11baf0ec8d7250608bd16caebdae837fc8af/python/src/aac/spec/spec.yaml#L393-L394
Expected validator:
  validation:
    - name: Field is type
      kw_args:
        - name: components
          type: model

Interface to update for KW arguments.
https://github.com/jondavid-black/AaC/blob/3dfc11baf0ec8d7250608bd16caebdae837fc8af/python/src/aac/validate/_validate.py#L150
Example plugin validator signature to update: https://github.com/jondavid-black/AaC/blob/3dfc11baf0ec8d7250608bd16caebdae837fc8af/python/src/aac/plugins/validators/root_keys/_validate_root_keys.py#L12-L17
AC:

[ ] Definition validations are updated to provide support for keyword arguments

[ ] Users can use list arguments or KW arguments

[ ] The validator documentation is updated to include using keyword arguments
[ ] The Subcomponent Type validator is updated to use keyword arguments

[ ] The key is the field to validate
[ ] The value defines what the type must be

[ ] The Subcomponent Type validator is renamed to "Field Type"
[ ] All first-party definition validator validation function signatures are updated with the keyword args.

I've given this some thought, and any sort of validation of the arguments, or allowing users to use arrays and dicts within the arguments field -- all of which requires additional functionality. Going to move this out until the dependent functionality can be identified.

This is now stale and has been reworked within the new 0.4.0 baseline, closing it out.


Azure Image Builder extension request - API 2022-07-01

Related command
Triggers (4 new commands, new sub group "trigger", similar to customizer, identity, validator, etc)
*this is under a feature flag

Az image builder trigger create  --trigger-name --resource-group --type (options: source) --image template creates a new trigger to image template
Az image builder trigger delete --trigger-name --resource-group --image template  deletes specified trigger from template
Az image builder trigger show --trigger-name --resource-group  shows triggers available
Az image builder trigger list --trigger-name --resource-group --image template lists triggers in the template

Prefetch (3 new commands, also a new "optimize" sub category similar to customizer functionality)

az image builder optimizer add --optimizer-name --type {vmBoot} --state {enabled:disabled} add optimizer to an image template
az image builder optimizer clear removes all optimizers
az image builder optimizer remove --optimizer-name removes an optimizer

az image builder output add --versioning (latest,source) --name add versioning to specified output name with default latest or source options

az image builder output versioning set --scheme (latest,source) --major {int} --name (output-name)  add/change versioning options on output

3.az image builder output versioning show -name (output-name) show versioning options on output

az image builder output versioning remove --name (output-name) delete all versioning options on specified outputs

2 new Parameters:

az image builder create --validator <file types>

az image builder output add --is-vhd --vhd-uri <string>
*--vhd-uri is optional and requires --is-vhd to be used

Resource Provider
Microsoft.VirtualMachineImages (Azure VM Image Builder)
Description of Feature or Work Requested
We will now support:

Triggers - allows users to setup automation for image builds
New Validation Type "File" - allows files to be used for image validation
Prefetch/Optimizer - gives users the option to increase vm boot time by opting into this feature
Output versioning - allow customers to specify versioning scheme and associated options for their az image builder outputs

Minimum API Version Required
2022-07-01
Swagger PR link / SDK link
https://github.com/Azure/azure-rest-api-specs/pull/22901
Request Example
Prefetch example:
https://msazure.visualstudio.com/One/_git/Compute-AzLinux-ImageBuilderRp?path=/swagger/api/2022-07-01/imagebuilder.server.json&version=GBdevelop&line=1503&lineEnd=1503&lineStartColumn=10&lineEndColumn=18&lineStyle=plain&_a=contents
Target Date
ASAP as this is a few months behind
Additional context
I (zdelacerda) will be oof 3/18-3/25. Please contact<EMAIL_ADDRESS>or<EMAIL_ADDRESS>if there are any follow up questions before my return. Thanks

compute feature

Hi AZ CLI reviewers, I will be oof 3/17-3/25. Please contact @feiyushi, @sumit-kalra or<EMAIL_ADDRESS>for questions. Thank you

Due to the big amount of content included in this feature request and our work at this sprint was already fully scheduled, we plan to release this feature in the next sprint (on 04-25). May I ask do you think this release time is acceptable?

@zhoxing-ms 4/25 is fine. thanks.

Triggers commands group is in preview (behind AFEC "Microsoft.VirtualMachineImages/Triggers" please reach out to us in email for feature registration).

Triggers commands group is in preview (behind AFEC "Microsoft.VirtualMachineImages/Triggers" please reach out to us in email for feature registration).

May I ask is the status of this feature still private preview? Actually, we usually only build private package through edge build for private preview, and only release GA and public preview features in the official CLI version

@zdelacerda-microsoft @feiyushi In addition, since the previous az image builder related command group were released in core CLI, do you want these command groups to also be released in core CLI or do you want us to create a new extension to release them?

@zhoxing-ms please exclude trigger command group from this release. We'll include it in the next one when we are in public preview/GA. Thanks!
@zdelacerda-microsoft

@feiyushi OK, thanks for your clarification. Could you please add a new feature request for trigger command group to help us plan and follow up on it?

@zhoxing-ms please exclude trigger command group from this release. We'll include it in the next one when we are in public preview/GA. Thanks! @zdelacerda-microsoft

Hi @feiyushi
Please let me check if the following triiger group could be ignored in this feature request?

Triggers (4 new commands, new sub group "trigger", similar to customizer, identity, validator, etc)
*this is under a feature flag
Az image builder trigger create  --trigger-name --resource-group --type (options: source) --image template creates a new trigger to image template
Az image builder trigger delete --trigger-name --resource-group --image template  deletes specified trigger from template
Az image builder trigger show --trigger-name --resource-group  shows triggers available
Az image builder trigger list --trigger-name --resource-group --image template lists triggers in the template

@yanzhudd please exclude trigger cmd group from this release. thanks.

@feiyushi Could you please remove the trigger cmd group part from the current issue and add them to a separate new issue? This is convenient for us to follow up and plan them according to their different release times

Prefetch (3 new commands, also a new "optimize" sub category similar to customizer functionality)
az image builder optimizer add --optimizer-name --type {vmBoot} --state {enabled:disabled} add optimizer to an image template
az image builder optimizer clear removes all optimizers
az image builder optimizer remove --optimizer-name removes an optimizer

Hi @feiyushi @zdelacerda-microsoft
since this prefetch feature is realized by updating a parameter ImageTemplateProperties.optimize of an image template, does the format of these new commands need to be changed to:
az image builder optimizer add --image-template-name --type {vmBoot} --state {enabled:disabled}: add optimizer to an image template
az image builder optimizer remove --image-template-name: removes an optimizer
The clear command here is removed as the ImageTemplateProperties.optimize parameter is not a list and remove command seems to be sufficient.
Could you please help to confirm this?

Hi @feiyushi @zdelacerda-microsoft
When we develop the feature of az image builder optimizer group, an error is reported. Could you please help to check the reason?

Hi @zdelacerda-microsoft
could you please provide more details of this feature, for example the backend parameters of the new commands and new arguments?

@yanzhudd yes i can. specifically which commands are you asking about?

@yanzhudd yes i can. specifically which commands are you asking about?

for example, the details including:

az image builder output add --versioning (latest,source) --name add versioning to specified output name with default latest or source options

what is backend parameter of --versioning (latest,source) in this command?

what is the request path and parameters like --scheme (latest,source) --major {int} for az image builder output versioning command?

what is the backend parameter for the new added parameter --validator <file types> in az image builder create command?

what is the backend parameters for the new added parameters --is-vhd --vhd-uri <string> in az image builder output add command?

thanks for clarification.

@yanzhudd
Regarding versioning, the JSON representation of the builder output for the REST API is like this:
      {
        "type": "SharedImage",
        "galleryImageId": "/subscriptions/SUBSCRIPTION/resourceGroups/TEST_RG/providers/Microsoft.Compute/galleries/tes\
t_image_gallery/images/ubuntu",
        "runOutputName": "sig-ubuntu-1604",
        "replicationRegions": [
          "westus2"
        ],
        "versioning": {
          "scheme": "Latest"
        }
      },

scheme is treated as an enum. Current valid values are "Latest" or "Source".
Currently the only other possible property in versioning is major which is only valid for Latest and is an integer.

Does this answer your question @yanzhudd. Are we unblocked?

Hi @zdelacerda-microsoft
it seems that the SDK is not ready for this feature since the parameters optimize, versioning and uri of ImageTemplateVhdDistributor do not exist.
Please refer to the SDK release doc to release a new version of SDK firstly, so that we CLI could develop this feature.
Mentioned in the SDK release doc:

In short, if you make release issue before 10th every month, it will be released before 24th; if later than 10th, the release will be delayed to next month.

Our CLI is developed depending on SDK. The earliest time of SDK release is next month, so this feature has to be postponed to next sprint (05-23). If anything urgent, we could provide private package by edge build before our official release.

az image builder create --validator

In addition, may I ask what is the backend property of --validator?

@yanzhudd which SDK are you using? all of our SDKs (go, java, js, and python) are completed and are being tested right now.

This is the backend for --validator
ImageTemplateInVMValidator": {
"type": "object",
"description": "Describes a unit of in-VM validation of image",
"discriminator": "type",
"properties": {
"type": {
"type": "string",
"description": "The type of validation you want to use on the Image. For example, "Shell" can be shell validation"
},
"name": {
"type": "string",
"description": "Friendly Name to provide context on what this validation step does"
}
},
"required": [
"type"

@yanzhudd which SDK are you using? all of our SDKs (go, java, js, and python) are completed and are being tested right now.

we are using python SDK. It seems the new added parameters do not exist in the main branch (https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/compute/azure-mgmt-imagebuilder/azure/mgmt/imagebuilder/models/_models_py3.py)

it seems that the SDK is not ready for this feature since the parameters optimize, versioning and uri of ImageTemplateVhdDistributor do not exist.

@yanzhudd our python SDK has now been updated. https://pypi.org/project/azure-mgmt-imagebuilder/1.2.0/
when can we expect our az cli to be updated?

@zdelacerda-microsoft if the process and test go well, this feature will be updated in the next release of CLI (5/23).

Prefetch (3 new commands, also a new "optimize" sub category similar to customizer functionality)
az image builder optimizer add --optimizer-name --type {vmBoot} --state {enabled:disabled} add optimizer to an image template
az image builder optimizer clear removes all optimizers
az image builder optimizer remove --optimizer-name removes an optimizer

Hi @zdelacerda-microsoft
In az image builder optimizer group, --optimizer-name seems to have a same meaning as --type (we dont know if we understand it correctly, if not, please let us know). May I ask whether it is possible to remove the --optimizer-name parameter?
And to keep consistent with add command, we thought it is better to add --type {vmBoot} parameter to remove command to specify which type of optimizer would be removed. Could you please help to confirm if the commands of az image builder optimizer group listed here meet your expectation?
az image builder optimizer add --resource-group --image-template-name --type {vmBoot} --state {enabled:disabled} adds optimizer to an image template
az image builder optimizer clear --resource-group --image-template-name removes all optimizers
az image builder optimizer remove --resource-group --image-template-name --type {vmBoot} removes optimizer from an image template

@yanzhudd please exclude trigger cmd group from this release. thanks.

Hi @feiyushi may I ask whether it is ready to release trigger group in this sprint (5/23)?

This is the backend for --validator
ImageTemplateInVMValidator": { "type": "object", "description": "Describes a unit of in-VM validation of image", "discriminator": "type", "properties": { "type": { "type": "string", "description": "The type of validation you want to use on the Image. For example, "Shell" can be shell validation" }, "name": { "type": "string", "description": "Friendly Name to provide context on what this validation step does" } }, "required": [ "type"

@zdelacerda-microsoft does --validator parameter correspond to type with string type of ImageTemplateInVMValidator class?

@yanzhudd we plan to release a public preview for the trigger feature so can you complete the trigger group in this release 5/23?
we can open up the registration for the feature "Microsoft.VirtualMachineImages/Triggers" soon if you need it for development.

@yanzhudd we plan to release a public preview for the trigger feature so can you complete the trigger group in this release 5/23? we can open up the registration for the feature "Microsoft.VirtualMachineImages/Triggers" soon if you need it for development.

@feiyushi okay, I will complete the triiger group in this sprint if test works well.
Do you need our subId for registration?

@sumit-kalra can help answer any questions about validator

Since we will have a code freeze next Friday (5-19) for the public release. Please let us know the info of --validator parameter in az image builder create command before 5-15, so that we could have time to develop and test. Otherwise, it has to be postponed to next sprint (7-4).

@zdelacerda-microsoft Please pay attention to this comment https://github.com/Azure/azure-cli/pull/26261#discussion_r1196256914

@yanzhudd does next spring (7-4) mean eta is now July 4th?

@yanzhudd does next spring (7-4) mean eta is now July 4th?

yes. We will release the part of code in 7-4.

Since we will have a code freeze next Friday (5-19) for the public release. Please let us know the info of --validator parameter in az image builder create command before 5-15, so that we could have time to develop and test. Otherwise, the change of this command has to be postponed to next sprint (7-4).

@sumit-kalra please reply to this message

Yes, a single instance of validator corresponds to ImageTemplateInVMValidator.
However, ImageTemplateInVMValidator itself is embedded in validate - which has couple other properties:

continueDistributeOnFailure
sourceValidationOnly
Are these two properties handled elsewhere?

yes, ImageTemplatePropertiesValidate and ImageTemplatePropertiesValidate are handled in az image builder validator add command.

Since we will have a code freeze next Friday (5-19) for the public release. Please let us know the info of --validator parameter in az image builder create command before 5-15, so that we could have time to develop and test. Otherwise, the change of this command has to be postponed to next sprint (7-4).

@sumit-kalra please reply to this message

Yes, a single instance of validator corresponds to ImageTemplateInVMValidator.
However, ImageTemplateInVMValidator itself is embedded in validate - which has couple other properties:

continueDistributeOnFailure
sourceValidationOnly
Are these two properties handled elsewhere?

Hi @sumit-kalra,
since there is a command group az image builder validator to manage image builder template validate, it is suggested to add the parameter --type to the az image builder validator add command intead of adding --validator to az image builder create command, i.e.,
az image builder validator add -n myTemplate -g myGroup --continue-distribute-on-failure true --source-validation-only true --type shell --defer
Could you please help to confirm if it meets your expectation?

@yanzhudd @zhoxing-ms - it looks like our prefetch commands are missing from the az cli docs. were these commands implemented?
Prefetch (3 new commands, also a new "optimize" sub category similar to customizer functionality)
az image builder optimizer add --optimizer-name --type {vmBoot} --state {enabled:disabled} add optimizer to an image template az image builder optimizer clear removes all optimizers az image builder optimizer remove --optimizer-name removes an optimizer
https://learn.microsoft.com/en-us/cli/azure/image/builder?view=azure-cli-latest

@zdelacerda-microsoft
this group of command needed to be confirmed the format last sprint (https://github.com/Azure/azure-cli/issues/25853#issuecomment-1551136199 https://github.com/Azure/azure-cli/pull/26261#discussion_r1196256914) and will be released in this sprint (7-4).

hi @yanzhudd @zhoxing-ms are we still on track for 7/4 release for the rest of our commands?

Hi @zdelacerda-microsoft
yes, the rest of the commands will be released in 7-4 with a new version of CLI.


HTML Rendering Issue on Extension Page After Navigation

Describe the bug
When visiting an Extension page, if someone clicks on Q&A and then returns to Overview, the top few lines of HTML display at the top of the page. We haven’t had this issue in the past, and it is something we recently encountered after updating a few pages.
Screenshot for reference

We are tracking here (Closing duplicates):
https://github.com/microsoft/vsmarketplace/issues/281


lam bai tap ve nha bai 15

Hi,
Your homework 15 has been reviewed, thank you for your effort.
Great! Keep up the good work!
Best wishes from Automation Test Pro,
Khanh