ClassCastException in incremental build, DescriptiveChange to InputFileDetails

In performing an incremental build in which no input files have changed, we are experiencing the following ClassCastException. This happens with Gradle 3.2, 3.2.1, and 3.3 (note that it did NOT happen with Gradle 2.14.1).
This is from a custom task class with a List instance variable is annotated with @InputFiles. The list then contains several elements including filetrees created from source directories, and filestrees created based upon the output directory of other custom tasks in the build.
Caused by: java.lang.ClassCastException: Cannot cast class org.gradle.api.internal.changedetection.rules.DescriptiveChange to interface org.gradle.api.tasks.incremental.InputFileDetails
        at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs.doOutOfDate(ChangesOnlyIncrementalTaskInputs.java:42)
        at org.gradle.api.internal.changedetection.changes.StatefulIncrementalTaskInputs.outOfDate(StatefulIncrementalTaskInputs.java:39)
        at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs.outOfDate(ChangesOnlyIncrementalTaskInputs.java:27)
        at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs_Decorated.outOfDate(Unknown Source)
        at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs_Decorated$outOfDate.call(Unknown Source)
        at com.successfactors.buildsystem.webmodule.js.DirectiveParserTask.processFiles(DirectiveParserTask.groovy:42)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:163)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76)
        ... 70 more

Can you provide the source for com.successfactors.buildsystem.webmodule.js.DirectiveParserTask? Or at least the method DirectiveParserTask.processFiles()?

@InputFilesList inputTrees = [] as List@TaskActionvoid processFiles(IncrementalTaskInputs inputs) {    final String outputPath = "$outputDir/WEB-INF/classes/rmgmt/deps"    final Set validatePath = inputTrees.collect { it.dir } + project.configurations.webappContent.files    final String[] validateFiles = validatePath*.absolutePath    final CommandDirectiveProcessorHelper helper = new CommandDirectiveProcessorHelper(sfext.versionMap as Properties, outputPath, '', validateFiles)    if (!inputs.incremental) {        project.delete outputDir.listFiles()    }    inputs.outOfDate { change ->        if (change.file.isFile()) {            project.logger.debug "DirectiveParser: ${change.file.absolutePath}"            helper.checkFile(getBaseDir(change.file), change.file)        }    }    inputs.removed { change ->        String inputPath = change.file.absolutePath - getBaseDir(change.file)        File outputFile = project.file(outputPath + inputPath + '.generated.xml')        outputFile.delete()    }}
-------- Original Message --------
Subject: Re: [gradle/gradle] ClassCastException in incremental build,
DescriptiveChange to InputFileDetails (#1224)
From: Sterling Greene<EMAIL_ADDRESS>Date: Fri, January 20, 2017 10:08 am
To: gradle/gradle<EMAIL_ADDRESS>Cc: mondrejko<EMAIL_ADDRESS> Author
<EMAIL_ADDRESS>Can you provide the source for com.successfactors.buildsystem.webmodule.js.DirectiveParserTask? Or at least the method DirectiveParserTask.processFiles()? —You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.

Hrm, I have some idea what could be happening, but I'm not sure how to reproduce it.
Could you send me the full task class and an example of how it's being used?  If you don't want to post it here, you can email me<EMAIL_ADDRESS>

I found that there were extraneous task input files that were causing this issue in my case. Once I cleaned up these inputs the issue was cleared.
The inputs causing the issue was set to someproject.jar.outputs (I know, not how it should be setup, but that is what the developer did… told you it was extraneous anyway).

On Jan 23, 2017, at 11:48 AM, Sterling Greene<EMAIL_ADDRESS>wrote:
Hrm, I have some idea what could be happening, but I'm not sure how to reproduce it.
Could you send me the full task class and an example of how it's being used? If you don't want to post it here, you can email me<EMAIL_ADDRESS><EMAIL_ADDRESS>—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/gradle/gradle/issues/1224#issuecomment-274543908, or mute the thread https://github.com/notifications/unsubscribe-auth/ACZ7gldpHzl1GsHkDBurUohtgOzGKLTxks5rVNnbgaJpZM4LphLQ.

Hi @big-guy, I sent you an email with what is hopefully enough to reproduce.

Hi @big-guy , I got same problem. when I add some input files to a task, then the error will occur when the task been executed next time.
Such as this:
packageTask.inputs.dir(fileProvider.getMiniChangedDexDir())

gralde 3.5
Caused by: java.lang.ClassCastException: org.gradle.api.internal.changedetection.rules.DescriptiveChange cannot be cast to org.gradle.api.tasks.incremental.InputFileDetails         at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs.doOutOfDate(ChangesOnlyIncrementalTaskInputs.java:42)         at org.gradle.api.internal.changedetection.changes.StatefulIncrementalTaskInputs.outOfDate(StatefulIncrementalTaskInputs.java:39)         at org.gradle.api.internal.changedetection.changes.ChangesOnlyIncrementalTaskInputs.outOfDate(ChangesOnlyIncrementalTaskInputs.java:27)         at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:93)         at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)         at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:163)         at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)         at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)         at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:115)         at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:109)         at org.gradle.internal.Transformers$4.transform(Transformers.java:169)         at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)         at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)         at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:109)         at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:90)         ... 70 more

Hi @big-guy, any update on this?

We are hitting this with Gradle 4.1, as we have tasks that have dynamic inputs (transform tasks).
The issues seems to be that TaskUpToDateState.rebuildChanges does not account for InputFilesTaskStateChanges that might contain DescriptiveChange (https://github.com/gradle/gradle/blob/a191d29a511bcac0165a68afbe50c4a17ec35a56/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/AbstractNamedFileSnapshotTaskStateChanges.java#L72).
This means that file inputs might be added/removed, and this would still trigger an incremental build.

Here is the task from the comment above:
@InputFilesList<ConfigurableFileTree> inputTrees = [] as List
@TaskAction
void processFiles(IncrementalTaskInputs inputs) {
    final String outputPath = "$outputDir/WEB-INF/classes/rmgmt/deps"
    final Set<File> validatePath = inputTrees.collect { it.dir } + project.configurations.webappContent.files
    final String[] validateFiles = validatePath*.absolutePath
    final CommandDirectiveProcessorHelper helper = new CommandDirectiveProcessorHelper(sfext.versionMap as Properties, outputPath, '', validateFiles)
    if (!inputs.incremental) {
        project.delete outputDir.listFiles()
    }
    inputs.outOfDate { change ->
        if (change.file.isFile()) {
            project.logger.debug "DirectiveParser: ${change.file.absolutePath}"
            helper.checkFile(getBaseDir(change.file), change.file)
        }
    }
    inputs.removed { change ->
        String inputPath = change.file.absolutePath - getBaseDir(change.file)
        File outputFile = project.file(outputPath + inputPath + '.generated.xml')
        outputFile.delete()
    }
}

This issue can be reproduced as follows:
    @Issue('https://github.com/gradle/gradle/issues/1224')
    def 'can change input properties dynamically'(){
        given:
        buildFile<<'''
    class T extends DefaultTask{
        @TaskAction
        void processFiles(IncrementalTaskInputs inputs) {
            inputs.outOfDate {println it}
        }
    }

    task myTask (type: T){
        project.ext.inputDirs.split(',').each {inputs.dir(it)}
    }
'''

        when:
        args('-PinputDirs=a,b')

        then:
        succeeds('myTask')

        when:
        args('-PinputDirs=a')

        then:
        succeeds('myTask')
    }

The reason is InputFilesTaskStateChanges contains input file properties change, which isn't treated as "properties change" here:
https://github.com/gradle/gradle/blob/da1fa8d15a5762f3ea693562615686251c2bbbc8/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/TaskUpToDateState.java#L54
and
https://github.com/gradle/gradle/blob/da1fa8d15a5762f3ea693562615686251c2bbbc8/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/AbstractNamedFileSnapshotTaskStateChanges.java#L64
Therefore, in the tests above, when a file property is added into inputs dynamically, DescriptiveChanges are added into inputFileChanges, and rebuild aren't triggered.
I've submitted a fix, let's see if it can pass CI builds.


advanced values.yaml

Hi,
Is there an advanced "values.yaml" file somewhere, showing all advanced possibilities provided by "postgres.yaml" used + configured?
Eg. the provided "values.yaml" contains this "users" section:
...
users: {}
...
an advanced "values.yaml" file should already include that "users" section:
...
users:
- name: rhino
databases:
- zoo
options: "SUPERUSER"
...
Thanks, Markus

I've been gone through all CRDs by myself. :-/


lookAt rotates panorama to 180 degrees opposite clicked tag

I can add tags in the expected location, but when calling lookAt, the viewer rotates to the opposite side that the tag is on. I recently updated in order to fix the viewer rotating the wrong direction to lookAt tag as fixed in "Make sure yaw animation is in shortest direction". I was able to fix this new bug by removing the code that was added in "Make sure yaw animation is in shortest direction".

I assume by "tag" you mean "hot spot," as is used in the documentation.
Are you using the latest Git master? I just tested using lookAt to point in the direction of a few different hot spots, and it works fine.

hotspots, sorry.
yes its master. Its used in a webview as part of an ios app.

Can you put together a short example that shows this bug? As I said, I haven't been able to reproduce it.

I'm experiencing this on the latest version
e.g.
console.log("seeking "); console.log(t.target.getAttribute("data-pitch"),t.target.getAttribute("data-yaw"  )); Viewer.lookAt( t.target.getAttribute("data-pitch"),t.target.getAttribute("data-yaw"  ), undefined, true, function(){                         console.log("sought ");                         console.log(Viewer.getPitch(), Viewer.getYaw()); },{});
Results in
seeking  20.68352309466332 74.43418659026379 sought  20.68352309466332<PHONE_NUMBER>6170094

There seems to be a serious problem, as sending the same lookAt params twice, returns different "sought" Yaw positions, but the panorama viewer doesn't move.
seeking
20.68352309466332 74.43418659026379
sought
20.681291600080698<PHONE_NUMBER>9831274
seeking
20.68352309466332 74.43418659026379
sought
20.68352309466332 -105.56581340973621seeking
20.68352309466332 74.43418659026379
sought
20.681291600080698<PHONE_NUMBER>9831274
seeking
20.68352309466332 74.43418659026379
sought
20.68352309466332 -105.56581340973621

Also noted - autorotation switches direction after using lookAt.
Which may go some way to explaining why it "looksAt" the wrong direction.

Used Chrome debugger - this line changes the Yaw value in setYaw (line 2474)
yaw = ((yaw + 180) % 360) - 180 // Keep in bounds

74.4341 was passed in, the above line changes it to -105.56581
Running the line  ((74.43418659026379 + 180) % 360) - 180 // Keep in bounds
in the debugger when paused returns 74.43418659026379
I'm stumped

Ok, changing the source to
if (yaw<-180) yaw = parseFloat(yaw)+360;
if (yaw> 180) yaw = parseFloat(yaw)-360;
in place of
// yaw = ((yaw + 180) % 360) - 180 // Keep in bounds
makes pannellum lookAt the correct bit of the panorama, however, hotspots then appear in the wrong locations.

Fixed with the patch referenced in the thread.

@gazhay You're ignoring the function documentation and passing a string instead of number, which is user error, not a bug. If you try to add a number to a string, JavaScript's implicit type conversion will convert the number to a string and then concatenate the two strings, causing your issue. If you pass a number as the function documentation specifies, you won't have this issue. Also, please formulate your issue into something concise next time instead of posting a half dozen separate comments over the course of a few hours.

Javascript is dynamically typed though, I didn't see the explicit warning on the API docs that type coercion was required. It certainly wouldn't be standard on a JS library. I guess I'll have to add something like https://github.com/OmgImAlexis/upcast to the mix, just to be sure.
In terms of the multiple posting, it was an ongoing investigation and I kept getting interrupted, so the information was presented in the case I didn't get back to it, I should have edited the first post, so apologies.


Narrowing to never with in in non-union contexts with feature-tested properties

Bug Report

🔎 Search Terms
never in narrow

🕗 Version & Regression Information

This changed between versions 4.7 and 4.8

⏯ Playground Link

Playground link with relevant code
💻 Code

export function generateUID() {
    if ('randomUUID' in crypto) {
        return crypto.randomUUID();
    }

    // Error here, `crypto` is `never`
    return crypto.getRandomValues(new Uint8Array(16));
}

🙁 Actual behavior
Error at indicated line - crypto is of type never
🙂 Expected behavior
Shouldn't be an error?
Discussion
randomUUID is a method available in secure contexts only. In this sense it's "optional" in that it may or may not be present, but in another sense it's not optional because any piece of code might willingly take a hard dependency on only running in contexts where this is supported. For this code snippet, which polyfills its own behavior when randomUUID isn't present, the bottom codepath is definitely reachable.

It seems bad given that you can do a check for
if (crypto.randomUUID) {
}
else {
  // not never here, right?
}

without getting never in the else branch.
(playground link)

Somebody pick up that phone because I called it
https://github.com/microsoft/TypeScript/issues/50954#issuecomment-1258302386

On an unrelated note why does everything need a secure context now?  You can't even use ES modules without a secure context, which makes no sense.  It makes it a pain to test things locally.

This is working as intended.
First, narrowing was quite inconsistent in 4.8 and earlier:
function test1(crypto: Crypto) {
    if ('randomUUID' in crypto) {
        crypto;  // Crypto
    }
    else {
        crypto;  // Crypto
    }
}

function test2(crypto: Crypto | undefined) {
    if (!crypto) {
        return;
    }
    if ('randomUUID' in crypto) {
        crypto;  // Crypto
    }
    else {
        crypto;  // never
    }
}

The difference was based on whether the declared type is a singleton or a union, but that obviously leads to inconsistent and surprising behavior. It is simply not feasible to have narrowing behavior depend on singleton vs. union in this manner.
The issue really is that the declaration of Crypto is wrong:
/** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */
interface Crypto {
    /** Available only in secure contexts. */
    readonly subtle: SubtleCrypto;
    getRandomValues<T extends ArrayBufferView | null>(array: T): T;
    /** Available only in secure contexts. */
    randomUUID(): string;
}

If randomUUID is only present sometimes, then it should be declared as randomUUID?(): string;. That'll then require usage to be preceded by a non-null check, an in check, or to include a ! assertion.

If randomUUID is only present sometimes, then it should be declared as …

Fair, but suppose rather than “this only exists in secure contexts”, the reason you’re doing the check is instead “this only exists in newer browsers than the oldest one I support”.  You can’t just declare all the functions in the DOM as optional…

Right, but ultimately the checker has to trust the types, and it has to do so in a consistent and predictable manner. I think the 4.9 behavior is the best we can do given the current declaration Crypto type. Of course if you don't want any narrowing to take place you can cast the string literal to type string such that the checker doesn't "see" the effects:
if ('randomUUID' as string in crypto) {
    crypto.randonUUID();  // Ok
}
else {
    crypto.randomUUID();  // Ok
}


Implement of DOMParser

Closes #1341
References #1368

This is still a WIP. I thought I should push this up to make sure I'm going in the right direction and get some feedback. The implementation is copied from @lehni's comment. Looks like it's incomplete. Feedback is welcome! Forgive me of my ignorance if some of what I have in here is obviously wrong. This is not an API I'm familiar with.

Try to find web-platform-tests which test the API instead of writing your own. If there's something not tested there, add them to the to-upstream folder.

That's how we have it implemented as a work-around in paper.js currently: https://github.com/paperjs/paper.js/blob/develop/src/node/window.js#L58
It's definitely incomplete. I meant to work on this but have very little time to do so at the moment unfortunately.

I'm sorry everyone, I don't know if I'm going to get time to work on this again for a while. Someone else can feel free to pick up where I left off. :-/


Feature Request: Add in Static Getters for Compositions

Copied from a comment on another issue:
For reference, I've attached here two .generated.cs files from a v8 project which used OMB, which shows how the static "Getters" were generated.
 What was interesting here is the use of what Stephan called "Mixins" for the Compositions. Rather than just grabbing the property via alias directly, Compositions added an extra "layer" of static functions that get the data, and the property calls the function. What was really cool about this was that if you customized a Composition - specifically how a property value was obtained - that customization would apply to all Content Types which also used that Composition/Property.
MB_DEMO_TextPage.generated.cs.txt
MB_DEMO_CompHeroBanner.generated.cs.txt
For example, say you had a standard "CompPageSettings", with a string property of "MetaTitle", and if the property from the CMS data was blank, the Node Name was returned (so that property would always have a valid value). You would only have to make that update to the Composition code file, and all the Content Types, since they are calling that same static function, will automatically be getting the right data back.
Example:
 public partial class CompPageSettings
    {
        /// Static getter for Meta Title
        public static string GetMetaTitle(ICompPageSettings that)
        {
            var meta = that.GetPropertyValue("MetaTitle").ToString();
            return meta != "" ? meta : that.Name;
        }
    }

	/// Contact Us Page
	[PublishedContentModel("ContactUsPage")]
	public partial class ContactUsPage : PublishedContentModel, ICompPageSettings,
	{
		...
		public ContactUsPage(IPublishedContent content): base(content){ }
		...

		///
		/// Meta Title
		///
		[ImplementPropertyType("MetaTitle")]
		public string MetaTitle
		{
			get { return MySite.Models.CompPageSettings.GetMetaTitle(this); }
		}
		...
	}

Originally posted by @hfloyd in https://github.com/limbo-works/Limbo.Umbraco.ModelsBuilder/issues/1#issuecomment-1047212425

Ps. In the Original ModelsBuilder, enabling that was a configuration (see "Umbraco.ModelsBuilder.StaticMixinGetters" on https://github.com/modelsbuilder/ModelsBuilder.Original/wiki/Install-And-Configure)
Perhaps it makes sense for it to be configurable here as well?

Hi @hfloyd
If I had had five extra minutes at work today, I would have pushed as new beta. So I just did that when seeing this issue. Try giving v1.0.0-beta002 a go regarding the mixins, missing media compositions etc. 😉
I don't remember for sure, but I think EMB generated these mixins by default, so maybe it should also just be default for this package? That's at least how it's working now.

I don't remember for sure, but I think EMB generated these mixins by default, so maybe it should also just be default for this package? That's at least how it's working now.

Okay, if it the default behavior, that's fine with me. :-) I will give it a go and provide any feedback. Thanks!

Hi @abjerner I tested the new version today. I noticed the static functions are getting generated nicely, and if I had a property defined in a partial, it was NOT getting generated, so that's working great.
One thing I noticed was that the Compositions aren't getting Properties, though, just the static functions:

I was most used to having both on the Compositions.
example:

Was that an oversight, or by design?

@hfloyd it was probably just me not thinking through what I was actually doing 😆
Luckily it should be easy to remove my checks that are omitting the properties in beta002. I was about to work a bit on our packages anyways, so I'll have a look at this as well 😉

@hfloyd on second thought, isn't this because you have the property in your custom partial? I've tried setting up a similar composition, and the property generates fine in MediaCompLegacyData.generated.cs.

Well I only had it in the custom because it wasn't getting auto- generated. Generally if they could be auto-generated that would be great and then we wouldn't need so many customized partials

Hi @hfloyd
I made my reply before having another look at the code:

it was probably just me not thinking through what I was actually doing 😆

But with beta002, I get the following MediaCompLegacyData.generated.cs if I don't have the file in advance:
//------------------------------------------------------------------------------
// <auto-generated>
//
//    Limbo.Umbraco.ModelsBuilder v1.0.0-beta002
//
//   Changes to this file will be lost if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Infrastructure.ModelsBuilder;
using Umbraco.Extensions;

#pragma warning disable 0109
#pragma warning disable 1591

namespace UmbracoNineTests.Models.Umbraco.Media {

    public partial interface IMediaCompLegacyData : IPublishedContent {

        int PreviousNodeId { get; }

    }

    public partial class MediaCompLegacyData : PublishedContentModel, IMediaCompLegacyData {

        #region Constants

        public new const string ModelTypeAlias = "mediaCompLegacyData";

        #endregion

        #region Constructors

        public MediaCompLegacyData(IPublishedContent content, IPublishedValueFallback publishedValueFallback) : base(content, publishedValueFallback) { }

        #endregion

        #region Properties

        [ImplementPropertyType("previousNodeId")]
        public int PreviousNodeId => this.Value<int>("previousNodeId");

        #endregion

        #region Static methods

        public static int GetPreviousNodeId(IMediaCompLegacyData that) => that.Value<int>("previousNodeId");

        #endregion

    }

}

How does the complete file look at your end?

So, I had previous commented-out the custom partial code, so just to be sure, I deleted it ... So my custom looks like this:
    using Umbraco.Cms.Core.Models.PublishedContent;
    using Umbraco.Cms.Infrastructure.ModelsBuilder;
    using Umbraco.Extensions;

    public partial class MediaCompLegacyData
    {
      }

I re-built and re-ran "/umbraco/backoffice/Limbo/ModelsBuilder/GenerateModels". The resulting file contents are this:
  public partial interface IMediaCompLegacyData : IPublishedContent {

    }

    public partial class MediaCompLegacyData : PublishedContentModel, IMediaCompLegacyData {

        #region Constants

        public new const string ModelTypeAlias = "MediaCompLegacyData";

        #endregion

        #region Constructors

        public MediaCompLegacyData(IPublishedContent content, IPublishedValueFallback publishedValueFallback) : base(content, publishedValueFallback) { }

        #endregion

        #region Properties

        #endregion

        #region Static methods

        public static int GetPreviousNodeId(IMediaCompLegacyData that) => that.Value<int>("PreviousNodeId");

        #endregion

    }

So, for some reason, I'm not getting the Interface property either. Do I have to somehow "clear" out any records of the custom code - separate from the rebuilding?

Doh! 😣🤦♀
Because it was originally not working, I added this to the GetModelsNotificationHandler
                     if (property.Alias == "PreviousNodeId")
                    {
                        property.IsIgnored = true;
                    }

I removed that, and regenerated, and it now looks like the code you provided. Sorry for the false alarm there...
However, one thing...
this bit:
        #region Properties

        [ImplementPropertyType("PreviousNodeId")]
        public int PreviousNodeId => this.Value<int>("PreviousNodeId");

        #endregion

should really be like this (using the static function - so customizing that function will work everywhere):
        #region Properties

        [ImplementPropertyType("PreviousNodeId")]
        public int PreviousNodeId => GetPreviousNodeId(this);

        #endregion

Yes, not sure why I overlooked that 👍
It's fixed in<PHONE_NUMBER>aff5eb5a42939e2e9b7c6a60a01d8c and released in v1.0.0-beta004 😉

Brilliant! Working perfectly now. 👏🏻 Thanks for the fix. (I also noticed you are now retuning a bit more info on the success JSON - nice!

@hfloyd then wait till you see the dashboard 🎉
(that's why I added the extra information in the API output)

Anyways, I'm assuming the issue with the static getter methods now has been resolved, so I'm closing the issue. If I've still missed something, feel free to open the issue again 😉

Sexy! I figured you were planning to use that info.
Ooh... I see I've got that now! It was a secret bonus in the release! Thanks for the present 🎁


Move experimental flag to feature in zstd-rs build

Hello,
Currently, zstd-rs pulls in zstd-safe with the experimental feature included by default here.
I'd like to request to have this moved to a feature so it can be disabled when zstd-rs is pulled in as a dependency. I can provide a PR for this if needed.
Reasoning: one of the considerations around adding zstd-rs to Fuchsia is that it's undesirable to pull in another copy of zstd (as part of zstd-sys). This leads to a need to generate bindings against a different copy of zstd which may or may not match what zstd-safe is constructed to expect. There's a greater chance of a breaking mismatch occurring with experimental (unstable) APIs enabled.
The more general problem is support for the "bring your own zstd" use case, so other solutions targeting that could work for this as well. I'd imagine that'll be significantly more difficult to solve though.

Hi, and thanks for the report!
I should have added that in the latest commit. A few functions were moved behind this experimental flag (mostly toggling "magic bytes", and creating dictionaries by reference). Does this suit your needs?

Yep, looks good. Thank you!


binary large object support

Is your feature request related to a problem? Please describe.
This feature would allow a user to store data as a BLOB type, or possibly as a pointer to an S3 object store, for example.
Describe the solution you'd like
Example: need to store image and video files (easily 100KB+ to 1GB+ in size). Tigris and FDB are great to store metadata in (and often the metadata is just as important as anything) but it would be highly desirable to store blobs (in PostgreSQL bytea type, for example) as a binary large object. Alternative, it could interesting to integrate something with, for example, MinIO or S3 where Tigris has the metadata and index but the blobs are stored into an S3 location.
Describe alternatives you've considered
MinIO, large table support such as HBase/Accumulo or Apache Iceburg with HDFS or S3 for file storage
Additional context
n/s

This is something we have been thinking of adding. As you mention this is something that many folks would benefit from.


PlotSpectrum does not work for LAM

What happened?
PlotSpectrum callback fails when included in LAM experiments.
What are the steps to reproduce the bug?
Train a limited area model with plot: detailed so PlotSpectrum is used.
Version
develop
Platform (OS and architecture)
x86_64 GNU/Linux
Relevant log output
File ".../anemoi-training/src/anemoi/training/diagnostics/plots.py", line 255, in compute_spectra
    coeffs_field = SHExpandGLQ(field, w=zero_w[1], zero=zero_w[0])
  File ".../conda/envs/anemoi-dev/lib/python3.10/site-packages/pyshtools/backends/shtools.py", line 212, in wrapped_func
    raise SHToolsError(_shtools_status_message(returned_values[0]))
pyshtools.backends.shtools.SHToolsError: Improper dimensions of input array.

Organisation
ECMWF

Hello, I tried to fix the issue
This is what I did:
Modify the compute_spectra function to use numpy's FFT for LAM grids instead of spherical harmonics. This change allows the function to work with both global and limited area models.
I also created pull request: https://github.com/ecmwf/anemoi-training/pull/127

[!CAUTION]
Disclaimer: This fix was created by Latta AI and you should never merge before you check the correctness of generated code!
The fix provided by Latta AI might not be complete and it can serve as an inspiration.

This bug was fixed for free by Latta AI - https://latta.ai/ourmission
If you no longer want Latta AI to attempt fixing issues on your repository, you can block this account.


Upgrade from rc2 to rc3 error npm install

Ionic version:  (check one with "x")
[ ] 1.x
[X] 2.x
I'm submitting a ...  (check one with "x")
[X] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

I was trying to upgrade from rc2 to rc3 my app but when i do npm install shows this error:
Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture<EMAIL_ADDRESS>npm ERR! Linux 4.6.7-040607-generic
Expected behavior:

Install all dependencies without error.
Steps to reproduce:

Just update package.json, delete node_modules and run npm install
Related code:
My package.json
  "dependencies": {
    "@angular/common": "2.1.1",
    "@angular/compiler": "2.1.1",
    "@angular/compiler-cli": "2.1.1",
    "@angular/core": "2.1.1",
    "@angular/forms": "2.1.1",
    "@angular/http": "2.1.1",
    "@angular/platform-browser": "2.1.1",
    "@angular/platform-browser-dynamic": "2.1.1",
    "@angular/platform-server": "2.1.1",
    "@ionic/storage": "1.1.6",
    "ionic-angular": "2.0.0-rc.3",
    "firebase": "^3.5.1",
    "ionic-native": "2.2.3",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "0.0.43",
    "typescript": "^2.0.3"
  }

Other information:

Ionic info::
Your system information:

Cordova CLI: You have been opted out of telemetry. To change this, run: cordova telemetry on.
6.3.1

Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.1
Ionic App Lib Version: 2.1.1
OS: Distributor ID:	Ubuntu Description:	Ubuntu 16.04.1 LTS
Node Version: v5.11.0

Sorry for open this issue, i just rerun npm install and now i only get some warnings from fsevents but no errors. Now can use ionic serve.
Sorry for open this useless issue.


Find() ret Root field value Pointer maybe nil

rsp, err := soup.Get(pSp.pageQueue[pSp.pageIndex])
if err != nil { 			log.Printf("get page : %s, err : %s", pSp.pageQueue[pSp.pageIndex], err) 		}
doc := soup.HTMLParse(rsp)
pageExist := doc.Find("div", "class", "page")
just like this
type Root struct {
Pointer   *html.Node
NodeValue string
Error     error
}
pageExist type is Root
Pointer maybe nil,so not suggest using like this
doc.Find("div", "class", "tags").FindAll("span", "class", "tag-item")
sometimes may cause panic
better use like this:
 pageExist := doc.Find("div", "class", "page")
if pageExist.Pointer == nil { 	return//or do something else }
aLinks := pageExist.FindAll("a")

Hello, are you sure you've opened this issue in a correct repository?

Hello, are you sure you've opened this issue in a correct repository?

so sorry, I made a mistake

No worries at all :)


Long key strings being coerced to unsafe numbers

I'm returning an array of pathVals from a route. The pathVals contain refs which look like this:
{ $type: 'ref', value: ['assessments', '557430964571080686'] }

This in turn feeds back into a different route. That key is being coerced to a number by Falcor router somewhere in between, which is where the trouble starts:
'557430964571080686' =><PHONE_NUMBER>71080700

The munged key causes my route to fail. Presumably because the coercion exceeds Number.MAX_SAFE_INTEGER. Is there a reason it does the coercion in the first place, and/or a way make Falcor router not coerce strings to numbers?
Note: I verified that the route capturing these keys is using [{keys}], not [{integers}].

@greim this is captured in #68, and my gut tells me this is an artifact of attempting to collapse ranges when we collapse paths. See here, our isNumber function should probably be smarter (attempt to parse the number, compare length, and compare against Number.MAX_SAFE_INTEGER). Only downside is it'll slow down collapse, which is one of the most expensive things in falcor, but it's probably necessary.

This PR seems to fix the issue on my end. There are no unit tests that I could see, but it passed this ad-hoc test:
var assert = require('assert');
assert(!isNumber(null));
assert(!isNumber(true));
assert(!isNumber(false));
assert(!isNumber(""));
assert(!isNumber(Infinity));
assert(!isNumber(-Infinity));
assert(!isNumber('9007199254740992')); // previously, this one failed to pass
assert(!isNumber('-9007199254740992')); // previously, this one failed to pass
assert(!isNumber());
assert(isNumber('9007199254740991'));
assert(isNumber('-9007199254740991'));
assert(isNumber('0'));
assert(isNumber('0x12'));

@greim also important:
assert(isNumber('10'));
assert(!isNumber('01'));

Ha, I guess this is kind of a rabbit hole. I added that and threw some unit tests into the PR: https://github.com/Netflix/falcor-path-utils/pull/6/files#diff-eaf71ef7b0b8c9599a8edd0741d594acR155

This should be fixed with the falcor-path-utils 0.5.1 release. Be aware that path collapsing can happen on both client and server.


docs: run: update --no-exec description

Per https://github.com/iterative/dvc/pull/3729

You may disregard these recommendations if you used the Edit on GitHub button from dvc.org to improve a doc in place.

❗ Please read the guidelines in the Contributing to the Documentation list if you make any substantial changes to the documentation or JS engine.
🐛 Please make sure to mention Fix #issue (if applicable) in the description of the PR. This causes GitHub to close it automatically when the PR is merged.
Please chose to allow us to edit your branch when creating the PR.
Thank you for the contribution - we'll try to review it as soon as possible. 🙏

Updated the message.
It might be considered an implementation detail even, since it is the same thing that it would do without --no-exec. But still seems to be worth pointing out.

Thanks @efiop !


Hidden videos are showing in folders

They dont show up in the sidebar but seem to be showing up in the folder structure

will take care of that ..

they did show up in the sidebar  @hkirat

oh this might not be an issue then let me confirm if 10.1 isn't hidden from the backend

@hkirat
seems to be working fine

i 've one video hidden in db

Yeah my bad closing this issue


mbtiles converter dependency 'sqlite3' not available

When I yarn install the node modules for ./converter/mbtiles/ I get the following error:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using<EMAIL_ADDRESS>node-pre-gyp info using<EMAIL_ADDRESS>| darwin | x64
node-pre-gyp info check checked for "/Users/dujohnson/tmp/geopackage-js/converters/mbtiles/node_modules/sqlite3/lib/binding/node-v64-darwin-x64/node_sqlite3.node" (not found)
node-pre-gyp http GET https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.13/node-v64-darwin-x64.tar.gz
node-pre-gyp http 403 https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.13/node-v64-darwin-x64.tar.gz
node-pre-gyp ERR! Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.13/node-v64-darwin-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v64 ABI) (falling back to source compile with node-gyp)
node-pre-gyp http 403 status code downloading tarball https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.13/node-v64-darwin-x64.tar.gz
node-pre-gyp ERR! Tried to download(undefined): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.13/node-v64-darwin-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v64 ABI) (falling back to source compile with node-gyp)
node-pre-gyp http Connection closed while downloading tarball file

And indeed, when I visit https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.13/node-v64-darwin-x64.tar.gz I get the following error:
<Error>
  AccessDenied
  <Message>Access Denied</Message>
  <RequestId>F2735A74E4249542</RequestId>
  <HostId>nROeg5Ex5GGEQuNYvefpuGITA3fV4ambpNX8gSD0bBPj3ZY46kn+pUlf07lgdto8n2ky6M9hQcQ=</HostId>
</Error>

I am in the process of upgrading the converters to the new version of geopackage-js which removes the dependency on mapbox sqlite3.  I will update this ticket when the mbtiles converter is updated.

As a temporary workaround, I was able to yarn install with this in the ./converters/mbtiles/package.json:
  "resolutions": {
    "**/sqlite3": "^4.0.0"
  },

BTW we are in the midst of replacing an older mbtiles->geopackage converter with what will likely be your ngageoint/geopackage-js converter. What is the approximate timeline for the updated work you're doing on the mbtiles converter? i.e. weeks vs months?

I would say weeks.  It is not as straightforward as I would like because the original node-mbtiles was written with only node in mind and not the browser.  So I have to update my fork of that first and then I can update this project.

Thanks!
On Fri, Apr 17, 2020 at 1:37 PM Dan<EMAIL_ADDRESS>wrote:

I would say weeks. It is not as straightforward as I would like because
the original node-mbtiles was written with only node in mind and not the
browser. So I have to update my fork of that first and then I can update
this project.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ngageoint/geopackage-js/issues/147#issuecomment-615429114,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAABAKN3DZLWTZM7PFKU3DRNCVYVANCNFSM4MI6BGMA
.

Sorry this has taken so long, got pulled onto a different project.  I have a readonly version working so far which really just creates views from the existing MBTiles tables and adds the appropriate GeoPackage tables.

Great! Thank you.
On Tue, Jun 30, 2020 at 5:59 AM Dan<EMAIL_ADDRESS>wrote:

Sorry this has taken so long, got pulled onto a different project. I have
a readonly version working so far which really just creates views from the
existing MBTiles tables and adds the appropriate GeoPackage tables.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ngageoint/geopackage-js/issues/147#issuecomment-651746817,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAABAJKGOKMT6LEZLIUM43RZHHRFANCNFSM4MI6BGMA
.


{'Error: Invalid file format. Please try again.'} upload_attachment return False

All the other steps went well, but I found that the site or the function upload_attachment didn't seem to work.
If I post a pdf document, output {'Error: Invalid file format. Please try again.'}
I assume the source of the error is that upload_attachment returns False.
        response = req.post(url, headers=headers, proxies=self.proxies,files=files)
        if response.status_code == 200:
            return response.json()
        else:
            return False

Note: proxies have been set up by me in order to be able to access them successfully

All the other steps went well, but I found that the site or the function upload_attachment didn't seem to work. If I post a pdf document, output {'Error: Invalid file format. Please try again.'} I assume the source of the error is that upload_attachment returns False.
        response = req.post(url, headers=headers, proxies=self.proxies,files=files)
        if response.status_code == 200:
            return response.json()
        else:
            return False

Note: proxies have been set up by me in order to be able to access them successfully

Maybe it has no text to be extract

Randomboiii03

Thanks for comment. I tried several examples and  i am sure that there has text to be extracted. I'm still looking for a solution

So far, I've found that the problem comes from curl_cffi can't transfer files, so I have to use requests, but requests doesn't simulate browser access like curl_cffi does, so ServerError occurs. As a result, upload_attachment returns False. These are my guesses, feel free to share and discuss!

    def upload_attachment(self, file_path):
        # ......
        file_name = os.path.basename(file_path)
        content_type = self.get_content_type(file_path)
        files = {
            'file': (file_name, open(file_path, 'rb'), content_type),
            'orgUuid': (None, self.organization_id)
        }

        try:
            response = requests.post(url, headers=headers, proxies=self.proxies, files=files, impersonate="chrome110")
            response.raise_for_status()
        except Exception as e:
            # 处理其他未知错误
            return False, "Unknown Error"
        else:
            return response.json(), None

In order to avoid server errors, I modified the original code to use curl_cffi.requests to simulate a browser visit.
It always return "Unknown Error".
(Because I'm not very familiar with curl_cffi's error reporting mechanism, I'm dealing with errors rather roughly)

    def upload_attachment(self, file_path):
      # ....
      response = req.post(url, headers=headers, proxies=self.proxies, files=files)
        print(response.content)
        if response.status_code == 200:
            return response.json()
        else:
            return False

It seems that because 'curl_cffi' does not support uploading files, we have to use 'requests' to upload files. However, this seems to result in an error:
b'{"error": {"type": "permission_error", "message": "We are unable to serve your request"}}'
Chatbot: {'Error: Invalid file format. Please try again.'}


Can't distribute dateutils

Hi,
I'm using Spark for a university assignment, and my easiest choice was to set up the environment using https://hub.docker.com/r/jupyter/pyspark-notebook/. I need to parse a CSV file so I'm using this module, but I can't get dateutil to work. Import fails because it can't find it, even though I run !conda install python-dateutil first.
As a workaround, I removed the import from the file and hardcoded parseDate=False so I can still use this plugin. If we were able to avoid this dependency, it would be much easier to include this module.
Cheers!

+1, I have problems with dateutil.parser module too


Update Teams-add-in-for-Outlook.md

Issue #2096 - Removed the available features.

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

I've asked the Meetings PM group to review this PR. I suspect other aspects of the Other considerations section of this article may also be out-of-date.

Ping'd the PM again.

@sonu-arora - please review.


Use UIScreenEdgePanGestureRecognizer

I can't drag menu if the main ViewController is MKMapview ,please add feature of use UIScreenEdgePanGestureRecognizer for dragging and how i can solve this problem ?

There is a very simple solution.
Click me :)

Thanks I Make it

can i use AMSlideMenu in MapView without change library

what you mean?

i add map view as content View but the swipe in pan gesture in map not work?

Have you checked the solution that I already posted?

yes, i used UIScreenEdgePanGestureRecognizer but i can't close it by dragging.

Please, read this answer : http://stackoverflow.com/questions/24833467/use-uiscreenedgepangesturerecognizer-without-moving-mkmapview/24989917#24989917

when using UIScreenEdgePanGestureRecognizer
if i open the left menu i can't close it menu by dragging?


flutter devices/doctor report Android (and iOS) version

This updates the flutter devices and flutter doctor commands to include the Android and iOS version information.
Sample output:
$ flutter devices
3 connected devices:

Nexus 5X       • 00f4f73e1f8b3daa                         • android-arm • Android 7.0 (API 24)
New iPod touch • 82564b38861a9a5ac42de313e5a18f2e11d299f8 • ios         • iOS 10.0.2 (14A456)
iPhone SE      • 0B466210-6B90-4260-964A-F066B4294BF2     • ios         • iOS 10.0 (simulator)

Fixes https://github.com/flutter/flutter/issues/6369
@Hixie @devoncarew

lgtm


Update ASE-OpenMM tutorial notebooks

This PR renames the ASE notebook tutorials to better reflect the types of simulations that they demonstrate, and updates the graphene and nanotube notebooks to use the ASEOpenMMSimulation class and OmniRunner. The other notebooks have not been updated yet, but @Ragzouken has that under control.

There are some merge conflicts due to changes to the two notebooks in the interim: https://github.com/IRL2/nanover-protocol/commits/main/examples/ase - https://github.com/IRL2/nanover-protocol/commit/5cbe0320a9094072b083c84809316671797ae345 and https://github.com/IRL2/nanover-protocol/commit/8432bcb8191aa3b65af3f48a773eaf035016ab97
May be easiest if you just look at those commits and manually incorporate whatever's relevant into the notebooks as they are on this branch.

As @rhoslynroebuck is quite busy and @Ragzouken has a PR that requires this work to be merged first, I will not wait for her approval to merge, and if any more changes need to be made to these files then we can make them in a future PR.


Multiple collection joins result in duplicate results

When we have multiple collections joins in combination with restrictions (like an array access on a collection), hibernate generates left joins only. This causes duplicate entries in the result list. E.g.:
LEFT OUTER JOIN personlist personlist6_ ON documentfo0_.id=personlist6_.DocumentForCollections_id
LEFT OUTER JOIN PersonForCollections personforc7_ ON personlist6_.personList_id=personforc7_.id
AND (personlist6_.position=1)

It is not clear whether the alteration of the second join type to an inner joins is a general solution although it would fix this concrete case.
To reproduce, comment in the personList[1] mapping in com.blazebit.persistence.view.testsuite.collections.basic.model.BasicDocumentSetMapListView and run com.blazebit.persistence.view.testsuite.collections.basic.BasicCollectionsTest#testCollections.

Blocks #191

Also see: https://hibernate.atlassian.net/browse/HHH-9329
I think we should implement a workaround for this as described in my last comment since the hibernate team is probably not going to fix this before Hibernate 6 and for that we will still have to wait some time.


Lucia branch: After pw reset, redirect to /login is 404, it should be /sign-in

After the user clicks the pw reset button, there's this redirect:
https://github.com/timothymiller/t4-app/blob/325b5e58a39bf9cd4019db6273ad6ce62889cf2d/packages/app/features/password-reset/screen.tsx#L18
which results in 404.
The login screen is at /sign-in.

Fixed!


added config file to git issue template directory to disable blank is…

…creation
Issues Resolved
remove "blank issue" from options #2070
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hey @joshpalis this is great to see.  Have you validated on your fork that it works as expected?
Thanks!

Curious how you've tested this?

@CEHENKLE Yes, I have validated on my fork that it works correctly by enabling issues and confirming that the "Open a blank issue" link has been removed.

Thanks @joshpalis !

start gradle check


Adjust ProjectConfig to remove implicit assumption that discriminator == version

Currently there is no way to specify the discriminator for a crate itself, so we do a wild guess and assume that it is equal to version. I also removed the ProjectConfig.corelib field that seems obsolete: API user can pass this information via ProjectConfigContent.content_roots.

This change is

Closing in favour of PR stack starting with: #6511

Closing in favour of PR stack: #6511 #6512


added fpm to the kiss repos

Please fill out the template.
Read: https://k1ss.org/wiki/kiss/style-guide

Description of package
fpm is a very basic power management utility that's fast, reliable and very small (24 lines of code) https://github.com/FultonBrowne/fpm
Installed manifest of package
(kiss manifest <pkg>)
/var/db/kiss/installed/fpm/version
/var/db/kiss/installed/fpm/sources
/var/db/kiss/installed/fpm/manifest
/var/db/kiss/installed/fpm/checksums
/var/db/kiss/installed/fpm/checksum
/var/db/kiss/installed/fpm/build
/var/db/kiss/installed/fpm/
/var/db/kiss/installed/
/var/db/kiss/
/var/db/
/var/
/usr/bin/fpm
/usr/bin/
/usr/

New package

[x] Latest upstream version.
[x] I agree to maintain this package.
[x] I agree to notify @dylanaraps if I can no longer maintain this package.

Existing package

[ ] I am the maintainer of this package.

@dylanaraps I fixed the styling issues

I had a look at the source code and am a little conflicted. This is a tiny shell script, really tiny. I don't think this has any business being a package in Community. The script also uses #!/bin/sh as the shebang while being partially written in bash. I also recommend running shellcheck on the code as I can see a myriad of issues. :+1:


Cleanup & Refactor & Restyle

Couldn't get to all variable names or vulnerabilities, but did as much as I could
pls fix ur decompiled code man
NOT TESTED AT ALL

While yes thank you for your help, this code is not gonna be deployed. The reason why it is called Plugin-1 is that it was for an application. The decompiled code is because the laptop I was developing on was fried. I have recently nuked all the code and recreated it.


doc: update ESbuild default options

Hello, the esbuild default options in the doc weren't up to date!
Thank you for you great work! :)

thank you! 🙌


TTS Key

There should be a clear warning in the docs that it won't work without an api key.

Note added to README.


Exclude macOS containers from default find commands

Specifically, exclude any file with the com.apple.containermanager.uuid extended attribute from the default Ctrl-T and Alt-C commands.
See additional discussion at #2705

Closed in favor of #3649


Update hibernate-validator to 6.1.7.Final

Updates org.hibernate:hibernate-validator from 6.1.6.Final to 6.1.7.Final.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

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

labels: library-update

Codecov Report

Merging #892 (447926d) into master (4acc246) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #892   +/-   ##
=======================================
  Coverage   83.36%   83.36%
=======================================
  Files          73       73
  Lines        5460     5460
  Branches      162      162
=======================================
  Hits         4552     4552
  Misses        908      908

Continue to review full report at Codecov.

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


Only use setuptools.

Coverage remained the same at 99.325% when pulling 6096ecfcfe92ee22c4ef88c29f3c2cd1fb537fc5 on bjlittle:setuptools into 441b51efa00d10daaa4ff1436d475f5a2c97f335 on SciTools:master.


collapse identical adjacent commands?

with the fuzzy reordering in https://github.com/ellie/atuin/pull/179, it is quite common to end up with a pile of identical commands sorted together. might it make sense to collapse these and only keep the most recent?

Totally would, duplicate commands are pretty redundant and would only really frustrate the user. Collapsing makes sense!

blah. i'm sorry, i've just tested it now and this already works. not entirely sure why i thought it didn't.
While looking at it, though, I noticed the mechanism used to remove duplicates is quite slow, so I replaced it and benchmarked it - is significantly faster in my admittedly ad-hoc test, so i'll put in a PR.


Cannot make to rotate log file of fluentd application on windows

fluentd or td-agent version.
td-agent-3.4.1-0-x64
Environment information:
Operating system:
Microsoft Windows 10 Enterprise 1703
BuildNumber: 15063
Version: 10.0.15063
OSArchitecture: 64-bit
Kernel version:
Your configuration
C:\opt\td-agent\c
# listen http port
<source>
  @type http
  port 9880
  bind <IP_ADDRESS>
</source>

# send handled messages to elastic
<match **>
	@type copy
	<store>
		@type stdout
	</store>
	<store>
	@type elasticsearch_dynamic
	host my.remote.host
	port 9200
	logstash_prefix buffer_test
	logstash_format true
	type_name logevent
	<buffer>
		@type file
		path buffer/Handled
		total_limit_size 10MB
		overflow_action drop_oldest_chunk
		queued_chunks_limit_size 10
		flush_interval 4s
		retry_forever true
		flush_thread_count 2
	</buffer>
	</store>
</match>

Your problem explanation. If you have an error logs, write it together.
Hello! I cannot make to rotate logs file of fluentd application. I use the following command under administrator user to launch program:
fluentd -c c -o C:\opt\td-agent\log --log-rotate-age 3 --log-rotate-size 1000000

But when file C:\opt\td-agent\log reaches the limit of 1000000 bytes, I get messages:
log shifting failed.  Does windows have different permission for file creation and file rename?

rename requires delete permission. Could you check the permission?

Thank you for your response. I have checked file "C:\opt\td-agent\log" permissions and it has Full Control permissions including Delete permission.

I've try to get Full Control permissions for Everyone on C:\opt folder, and log rotation still does not work

I'm facing the same issue with Windows 7

@cosmo0920 If you have a time, could you check this? fluentd log depends on serverengine.

Yep, I'll check this.
I guess that Windows API complains that opened files cannot delete from other process or same process.
In Windows. emulating unlink behavior on Unix like OS is very hard.

I checked the serverengine and Ruby logger library code.
ServerEngine delegates logrotate feature to Ruby logger library.
I found that Ruby logger does not use File::SHARE_DELETE flag:

https://github.com/ruby/ruby/blob/master/lib/logger/log_device.rb#L101
https://github.com/ruby/ruby/blob/master/lib/logger/log_device.rb#L93

I guess that it's a bug for Ruby logger library.

On windows, logger should set SHARE_DELETE by default or use parameter at initialize from user code?

On windows, logger should set SHARE_DELETE by default or use parameter at initialize from user code?

Yes!

Unfourtantly, it isn't helping to add File::SHARE_DELETE in logger.rb

def open_logfile(filename)
begin
open(filename, (File::WRONLY | File::APPEND | File::SHARE_DELETE))
rescue Errno::ENOENT
create_logfile(filename)
end
end
def create_logfile(filename)
  begin
    logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL | File::SHARE_DELETE))`

`

Oops. Windows also complains lack of Permission in MoveFileEx (inside File.rename):
https://github.com/ruby/ruby/blob/e4be2fda3dbbfdb1f2ace697c96cf6bdd7dfef21/win32/win32.c#L5368

Simple script does not complains permission denied....
require "logger"

logger = Logger.new('test.log', 5, 30*1024)

loop do
  logger.error "lost connection"
  logger.debug "got new connection"
end

It seems that the above script is working as expected.

Simple script does not complains permission denied....
require "logger"

logger = Logger.new('test.log', 5, 30*1024)

loop do
  logger.error "lost connection"
  logger.debug "got new connection"
end

It seems that the above script is working as expected.
It's curious....

Try this one instead
require "logger"

logger = Logger.new('test.log', 5, 30*1024)
myOtherLogger = Logger.new('test.log', 5, 30*1024)

loop do
  logger.error "lost connection"
  logger.debug "got new connection"
end

A logger is created 3 times with same file name in the supervisor module

Unfourtantly, it isn't helping to add File::SHARE_DELETE in logger.rb

Quoting from the Release notes
new mode flag File::SHARE_DELETE is available. this flag means to permit deleting opened file on Windows, but currently this affect only files opened as binary. [Feature #11218]

@Ntzafrir and I managed to isolate the problem, the problem is actually in fluentd code.
According to what we were able to understand is that the same log file (td-agent.log) is opened 3 times while the log shifting part closes only one of them before trying to rotate the log. When working with linux it doesn't affect the rotation as Linux OS doesn't hold the files in order to write to it, while Windows does.
In the code there are 3 places where the same log is being initialized:

2 times in the fluentd.rb - one for the supervisor and one for the worker (while creating a new supervisor object) - lines 309-319
1 time in the supervisor.rb - lines 279-283

As a workaround in our production system, we separated the logs to 3 different files via the following method:
in supervisor.rb:
      logger_initializer = Supervisor::LoggerInitializer.new(
        'c:\opt\td-agent\General.log', log_level, chuser, chgroup, log_opts,
        log_rotate_age: log_rotate_age,
        log_rotate_size: log_rotate_size
      )

in fluentd.rb:
if opts[:supervise]
  opts[:log_path] = 'c:\opt\td-agent\Supervisor.log'
  Fluent::Supervisor.new(opts).run_supervisor
else
  if opts[:standalone_worker] && opts[:workers] && opts[:workers] > 1
    puts "Error: multi workers is not supported with --no-supervisor"
    exit 2
  end
  opts[:log_path] = 'c:\opt\td-agent\td-agent.log'
  Fluent::Supervisor.new(opts).run_worker
end

I've reported this in Ruby language bug tracker.

Log rotation relies on renaming the current log file (app.log -> app.log.0) and the reopening the log file (app.log). This does not work on Windows in a multi-process environment because you cannot rename a file open by another process on Windows. I think it should work in a multi-thread single-process environment on Windows.

I don't think this problem is fixable in logger. You should probably use an alternative logger implementation, maybe one that logs to another single process that can handle log rotation. Alternatively, you can have each worker process use its own log file, and then combine the log files later.

From the ticket, this issue seems to be Fluentd (or ServerEngine) logging strategy issue.
In Windows multi-process environment, we cannot rename a file which is opened by another process. This should be Windows system limitation.
Then, we should do to the following:

Separate log file for each process on Windows
Create log process and aggregate log for other processes and other processes don't write log on Windows

Which is the better solution for this?

I see... former seems to easy to implement because we can use SERVERENGINE_WORKER_ID to seperate log files.

How about this patch?
In my Windows 10 pro environment, logrotation works fine.
diff --git a/lib/fluent/command/fluentd.rb b/lib/fluent/command/fluentd.rb
index 93e2c35c..53883946 100644
--- a/lib/fluent/command/fluentd.rb
+++ b/lib/fluent/command/fluentd.rb
@@ -311,6 +311,12 @@ exit 0 if early_exit

 require 'fluent/supervisor'
 if opts[:supervise]
+  if Fluent.windows?
+    require 'pathname'
+
+    log_path = Pathname(opts[:log_path]).sub_ext("-supervisor#{Pathname(opts[:log_path]).extname}").to_s
+    opts[:log_path] = log_path
+  end
   Fluent::Supervisor.new(opts).run_supervisor
 else
   if opts[:standalone_worker] && opts[:workers] && opts[:workers] > 1
diff --git a/lib/fluent/supervisor.rb b/lib/fluent/supervisor.rb
index 44715b55..35f443f0 100644
--- a/lib/fluent/supervisor.rb
+++ b/lib/fluent/supervisor.rb
@@ -354,13 +354,21 @@ module Fluent
         @log_rotate_size = log_rotate_size
       end

+      def worker_id_suffixed_path(worker_id, path)
+        require 'pathname'
+
+        Pathname(path).sub_ext("-#{worker_id}#{Pathname(path).extname}").to_s
+      end
+
       def init(process_type, worker_id)
         @opts[:process_type] = process_type
         @opts[:worker_id] = worker_id

         if @path && @path != "-"
           @logdev = if @log_rotate_age || @log_rotate_size
-                     Fluent::LogDeviceIO.new(@path, shift_age: @log_rotate_age, shift_size: @log_rotate_size)
+                     Fluent::LogDeviceIO.new(Fluent.windows? ?
+                                               worker_id_suffixed_path(worker_id, @path) : @path,
+                                             shift_age: @log_rotate_age, shift_size: @log_rotate_size)
                    else
                      File.open(@path, "a")
                    end


Perf of Map.from

Map.from is ~0.6x as performant as a manually written for loop within withMutations, it should have less overhead.

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

Closing this since we've removed Map.from and the Map factory is a for loop within a withMutations call.


Unable to reproduce the results of semantic segmentation on S3DIS

Hi,
we are having some problems reproducing the results of semantic segmentation on S3DIS from the article.
For the repsurf model (all hyperparameters set as instructed in article), we got mIoU of 70% while your article reports mIoU of 74%. We would like to inspect the training logs so could you possibly provide training logs of repsurf for 6-fold validation?
Another problem is related to the PointNet++ model. You reported mIoU of 58% in your paper. Did you measure it with the PointNet++ implementation from this repo or some other implementation? We ran the 6-fold validation of the PointNet++ implementation from this repo and got mIoU of 69%. Do you know what can be the possible cause of this?

I obtained similar results as @jelenab98, @hancyran could you please publish 6-fold validation results for RepSurf and PointNet++?

嗨，我们在文章中重现 S3DIS 上的语义分割结果时遇到了一些问题。
对于 repsurf 模型（按照文章中的说明设置所有超参数），我们得到的 mIoU 为 70%，而您的文章报告的 mIoU 为 74%。我们想检查训练日志，所以你能提供 repsurf 的训练日志进行 6 倍验证吗？
另一个问题与 PointNet++ 模型有关。您在论文中报告了 58% 的 mIoU。您是否使用此存储库或其他实现中的 PointNet++ 实现来衡量它？我们从这个存储库中对 PointNet++ 实现进行了 6 倍验证，得到了 69% 的 mIoU。你知道造成这种情况的可能原因是什么吗？

Hi, we are having some problems reproducing the results of semantic segmentation on S3DIS from the article.
For the repsurf model (all hyperparameters set as instructed in article), we got mIoU of 70% while your article reports mIoU of 74%. We would like to inspect the training logs so could you possibly provide training logs of repsurf for 6-fold validation?
Another problem is related to the PointNet++ model. You reported mIoU of 58% in your paper. Did you measure it with the PointNet++ implementation from this repo or some other implementation? We ran the 6-fold validation of the PointNet++ implementation from this repo and got mIoU of 69%. Do you know what can be the possible cause of this?

Hello, do you have the code for performing 6-fold validation on the S3DIS dataset？If possible, can you send it to me for learning?


Allow using named Aws profiles for the agents

The script assumes you have one set of credentials setup.
When you have multiple accounts you use named profile to run all aws commands aws s3 ls --profile xxxxx.
Add the option to allow using profiles in the scripts

Hey @mobious999 which script are you referring to, there are a number in these repo.
Also one thing you could try is passing through profile to the script as follows
env AWS_PROFILE=<profilename> ./script.sh
Alternatively export it as the active profile as so:
export AWS_PROFILE=<profilename>

I was just following along with the repo directions.
I wanted to try the default w/o any customization.
The two statements assume that I'm deploying from mac or linux (I'm on windows).

We can look at adding some notes around profile usage, in terms of windows lots of the customers we work with typically have access to a *nix shell of some sorts (WSL2, CloudShell etc). In terms of direct Windows usage, would you be expecting Powershell based scripts?

Thanks for opening this issue. We now recommend the use of AWS SSM Distributor to handle automatically installing the agents in AWS cloud accounts.


Vector 65

add Tracing.traceSinglePartitions to avoid cluttering range and index queries with noise
update QueryViewBuilder to include a count of sstables per index accessed

merged, thanks!


radio code

 RHGenericDriver.cpp:(.text._ZN15RHGenericDriver7waitCADEv+0x0): multiple definition of `RHGenericDriver::waitCAD()' .pio/build/teensy41/lib948/libRadioHead.a(RHGenericDriver.cpp.o):RHGenericDriver.cpp:(.text._ZN15RHGenericDriver7waitCADEv+0x0): first defined here .pio/build/teensy41/lib61b/libRadioHead.a(RHGenericDriver.cpp.o): In function `RHGenericDriver::RHGenericDriver()': RHGenericDriver.cpp:(.text._ZN15RHGenericDriverC2Ev+0x0): multiple definition of `RHGenericDriver::RHGenericDriver()' .pio/build/teensy41/lib948/libRadioHead.a(RHGenericDriver.cpp.o):RHGenericDriver.cpp:(.text._ZN15RHGenericDriverC2Ev+0x0): first defined here .pio/build/teensy41/lib61b/libRadioHead.a(RHGenericDriver.cpp.o): In function `RHGenericDriver::RHGenericDriver()': RHGenericDriver.cpp:(.text._ZN15RHGenericDriverC2Ev+0x0): multiple definition of `RHGenericDriver::RHGenericDriver()' .pio/build/teensy41/lib948/libRadioHead.a(RHGenericDriver.cpp.o):RHGenericDriver.cpp:(.text._ZN15RHGenericDriverC2Ev+0x0): first defined here .pio/build/teensy41/lib61b/libRadioHead.a(RHGenericDriver.cpp.o): In function `RHGenericDriver::printBuffer(char const*, unsigned char const*, unsigned char)': RHGenericDriver.cpp:(.text._ZN15RHGenericDriver11printBufferEPKcPKhh+0x0): multiple definition of `RHGenericDriver::printBuffer(char const*, unsigned char const*, unsigned char)' .pio/build/teensy41/lib948/libRadioHead.a(RHGenericDriver.cpp.o):RHGenericDriver.cpp:(.text._ZN15RHGenericDriver11printBufferEPKcPKhh+0x0): first defined here .pio/build/teensy41/lib61b/libRadioHead.a(RHGenericDriver.cpp.o): In function `RHGenericDriver::setCADTimeout(unsigned long)': RHGenericDriver.cpp:(.text._ZN15RHGenericDriver13setCADTimeoutEm+0x0): multiple definition of `RHGenericDriver::setCADTimeout(unsigned long)' .pio/build/teensy41/lib948/libRadioHead.a(RHGenericDriver.cpp.o):RHGenericDriver.cpp:(.text._ZN15RHGenericDriver13setCADTimeoutEm+0x0): first defined here .pio/build/teensy41/lib61b/libRadioHead.a(RHGenericDriver.cpp.o):(.rodata._ZTV15RHGenericDriver+0x0): multiple definition of `vtable for RHGenericDriver' .pio/build/teensy41/lib948/libRadioHead.a(RHGenericDriver.cpp.o):(.rodata._ZTV15RHGenericDriver+0x0): first defined here collect2: error: ld returned 1 exit status *** [.pio/build/teensy41/firmware.elf] Error 1 ========================= [FAILED] Took 40.55 seconds ========================= Error: Process completed with exit code 1.
compiling the library code failed... Shouldn't be an issue for us

did you turn on Werror for the git action?

Yes, but warnings don't result in an error, you seem to have a linker error, does it build on local?

Definitely looks like a code error because disabling all compiler optimisations still throws the linker error

I couldn't build the CPP_FLIGHT code on my end for some reason, so I just copied over the code from RX and assumed it works

the radiohead/src/ folder breaks the code, removing that folder and just having the lib files in radiohead/ fixes the compilation error

also it would be nice if you could ignore all the lib files
https://stackoverflow.com/questions/6321839/how-to-disable-warnings-for-particular-include-files

Oh yeah, anything in lib has loads of #pragma directives to suppress warnings, in the future we should "fix" the warnings and open up a PR on the actual library's source code so that they're fixed for everyone, but for one we just suppress them. This compiles so I'm gonna merge this in now, we'll do more testing on Saturday.
Also, thank you for working on the radio code.


turso db inspect should show more than just space

Follow up from #275, users will want to know more than their storage used.
We need to show:

bandwidth used (per day, per month, total)
rows read (per day, per month, total)

This info should also be split on a per-location basis, so users can know which of their locations are seeing more activity than the rest

@glommer I would like to work on this. Can you assign this to me?


Short solution needed: "HTTP clients and servers in Rust" (rust)

Please help us write most modern and shortest code solution for this issue:
HTTP clients and servers in Rust (technology: rust)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments explain solution.
Link to this issue in comments of pull request.

HTTP client example in Rust

Rust HTTML JSON client example


Does this need to be added to INSTALLED_APPS?

The install section doesn't seem to cover this, so my guess is no, but uncertain.

After testing it seems that it does, so this step should be mentioned in the docs.


Making it a lib and supporting rendering to HTML

In the Readme it says:

The primary goal of see (smd before v0.4.0) was to create a unified tool for viewing both CLI documentation in Markdown and code files, renderable in both the terminal and web browse

It would indeed be nice to be able to call this crate as a library from a Rust host to be able to render any files in HTML with syntax highlighting etc.
Is it possible that you could factor out the common parts into a lib crate, so that it can be used by a Rust host for rendering to HTML? 😊
I'm asking because I have a use case where I want to do this, and it seems this crate is the closest approximation to do this, but it doesn't support rendering to HTML yet, even though the underlying inkjet crate does.

Making it a lib alone would be useful to me, thus providing an alternative to https://github.com/Canop/termimad


Extend the default base webpack configuration with support for .css-files

I'm looking to extend the default webpack.config.js with a loader for .css files, but struggling to find how to do this. Currently loading the default webpack like so:
const config = require('dolittle.javascript.build.aurelia/webpack.config.js');

// Fails
// config.module.rules.concat([
//   {
//     test: /\.css$/,
//     use: ['style-loader', 'css-loader', 'sass-loader'],
//     issuer: /\.[tj]s$/i
//   },
//   {
//     test: /\.css$/,
//     use: ['css-loader', 'sass-loader'],
//     issuer: /\.html?$/i
//   }
// ]);

module.exports = config;

An alternative would be to test for css in the default webpack.config like so:
...
 module: {
        rules: [
            {
                test: /\.s?css$/, //this is currently /\.scss$/
                use: ['style-loader', 'css-loader', 'sass-loader'],
                issuer: /\.[tj]s$/i
            },
            {
                test: /\.s?css$/, //this is currently /\.scss$/
                use: ['css-loader', 'sass-loader'],
                issuer: /\.html?$/i
            },
...

Using this as a workaround right now:
const config = require('dolittle.javascript.build.aurelia/webpack.config.js');

module.exports = ({ production, server, extractCss, coverage, analyze } = {}) => {
  let original_config = config({ production, server, extractCss, coverage, analyze });
  original_config.module.rules.unshift(
    ...[
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader', 'sass-loader'],
        issuer: /\.[tj]s$/i
      },
      {
        test: /\.css$/,
        use: ['css-loader', 'sass-loader'],
        issuer: /\.html?$/i
      }
    ]
  );
  return original_config;
};

Sure. PRs are welcome 👍

You can also import a css file into a current scss file and not change webpack config. Look at map.scss in commodity planner
Mvh Vidar

From: Pavneet Singh Saund<EMAIL_ADDRESS>Sent: Monday, August 13, 2018 3:39:06 PM
To: dolittle-interaction/JavaScript.Build.Aurelia
Cc: Subscribed
Subject: Re: [dolittle-interaction/JavaScript.Build.Aurelia] Extending the default base webpack configuration with support for .css-files? (#5)
Using this as a workaround right now:
const config = require('dolittle.javascript.build.aurelia/webpack.config.js');
module.exports = ({ production, server, extractCss, coverage, analyze } = {}) => {
let original_config = config({ production, server, extractCss, coverage, analyze });
original_config.module.rules.unshift(
...[
{
test: /.css$/,
use: ['style-loader', 'css-loader', 'sass-loader'],
issuer: /.[tj]s$/i
},
{
test: /.css$/,
use: ['css-loader', 'sass-loader'],
issuer: /.html?$/i
}
]
);
return original_config;
};
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/dolittle-interaction/JavaScript.Build.Aurelia/issues/5#issuecomment-412521139, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AE7RnTceBmKKVv0Q0pEEhpxNG1lbk_Ziks5uQYF6gaJpZM4V6Zy-.

It's possible to import .css files to existing (or new) scss files, and then you don't need to change anything

Thanks @Virrum -  I encountered this while attempting to load a dependency that had .css files. I'll dig a little more to see if there's anything I can do to include them all from within one of my scss files.


Add GitHub actions support

Adding full GA support, with uploading of artifacts for dev/beta releases.

Cheers Myles 👍


Screenshots for F-Droid

You can add Screenshots for F-Droid, too, if you want.
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/
https://gitlab.com/snippets/1895688
That was simply information about what is still possible. You would then only have to enter the screenshots in fastlane.

@mondlicht-und-sterne Closing this issue as it is a duplicate of https://github.com/commons-app/apps-android-commons/issues/4150
Feel free to discuss it on https://github.com/commons-app/apps-android-commons/issues/4150

@mondlicht-und-sterne Closing this issue as it is a duplicate of https://github.com/commons-app/apps-android-commons/issues/4150
Feel free to discuss it on https://github.com/commons-app/apps-android-commons/issues/4150


Value-mappings possible?

In my case, I have a voltage range, which I would like to map/convert to %.
As I cannot use multiplier in this case, because e.g. 2.1 is 0% and as I want to set it only in 25% steps, this is not working.
Convert is not helpful here as well, if I have e.g. numeric values with two digit decimals and e.g. a range between 2.00 and 3.00. This way I would have to define 100 convert mappings.
Is there a way to define mappings like the  color_thresholds but not for color and for a value mapping, like
below/equal to 5 = 100%
below/equal to 2.90 = 75%
below/equal to 2.40 = 50%
below/equal to 2.10 = 0%
I wonder if I have only not seen the documentation or examples, so help if very appreciated.

Sorry, it's not possible.

What a pity. Not yet or not at all, so no possible to have this in a new feature in the mid or far future?

Depends on the interest. I think this is not so common scenario

Would love it, as I have a lot of such devices, which are reporting voltage and not battery percentage. And yes, I could define template entities for this, but as these are very lot of devices, I would like to have it only in this great card, where it is the only place, where I would need and use them.
Of course, most probably not a common scenario, but one can use it for the multiplier-scenario for more specific definitions as well. to set 0, 100 and other cases.

In my case, I have a voltage range, which I would like to map/convert to %.
As I cannot use multiplier in this case, because e.g. 2.1 is 0% and as I want to set it only in 25% steps, this is not working.
Convert is not helpful here as well, if I have e.g. numeric values with two digit decimals and e.g. a range between 2.00 and 3.00. This way I would have to define 100 convert mappings.
Is there a way to define mappings like the color_thresholds but not for color and for a value mapping, like
below/equal to 5 = 100% below/equal to 2.90 = 75% below/equal to 2.40 = 50% below/equal to 2.10 = 0%
I wonder if I have only not seen the documentation or examples, so help if very appreciated.

I am very interested in this features. Alternatively, the "multiplier" tag could be expanded with more complex functions (templates)

Seems a dupe of #490 - could be closed to focus comments and development there.

True. Closing.
Thanks


test(client): add http link tests

Improve HttpLink test coverage

:tada: This PR is included in version 2.1.1-beta.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.0.0-beta.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


External URI issue

This build not able to play song from https://raw.githubusercontent.com/MakeMeCool/fm/master/player.json
every time I try to play song it buffer for 5-6 seconds, then it stopped loading.
with your provided uri it's working fine but not working with my uri.
any solution, how to fix?

Now I changed my JSON file's "source" to a SSL (https) song url it works but not working with non-ssl sources.
Please guide me to fix that.

Hi. Sorry, but the issues here are intended for problems or feature requests for the Android Universal Music Player, not for general support issues. I'd recommend checking out Stack Overflow and asking your question there.


(BKR-562) removed leftover spec lines

Refer to this link for build results (access rights to CI server needed):
http://jenkins-qe.delivery.puppetlabs.net/job/qe_beaker-hiera_btc-intn/3/
Test PASSed.

:+1:

:+1:


Remove deprecated Windows 2016 Docker image (O/S no longer in support)

Checklist

[ ] commit message has one of the standard prefixes
[ ] faq.md updated if appropriate
[ ] other documentation is changed or added (if applicable)
[ ] playbook changes run through VPC or QPC (if you have access)
[ ] for inventory.yml changes, bastillion/nagios/jenkins updated accordingly

We may as well remove the Win2016 Vagrantfile entirely - It's not part of VPC, and I assume there's no scope to add it to VPC, if it's out of support :-)

Shall I remove the 2012 as well in that case?

We use 2012 for VPC :)

We use 2012 for VPC :)

Updated, I think I caught all of the references

It does beg the question of whether we should add 2019/2022 instead.

I certainly wouldn't be opposed to adding a newer one, however we'd still be blocked by #2178 . Maybe worth opening an issue as a future enhancement, after we've resolved that

@karianna Would be good to have 2019 since you have requested to use that for JDK19 #2490
I've resolved the merge conflicts in this so I'm going to merge it once the checks pass since it's been sitting for a while :-)


Google Sheet Error no such table: https://docs.google.com/spreadsheet/....

My Google Sheet is already set as anyone with the link can view it. I can query and display results from the google sheet URL in Superset's SQL Editor, but once I clicked "explore" and it opens up a new tab for creating a chart, I have this error of no such table, and I can't create any chart. I've also tried to link the Google Sheet URL by creating a new dataset (physical) and it's still the same, can't create a chart. Anyone knows what I need to do? Btw, I followed the steps from here as well https://preset.io/blog/2020-06-01-connect-superset-google-sheets/

@betodealmeida are these instructions still relevant in the Google Sheets blog post? Should we instead point people to your new library (shillelagh) and update the post?

Hey @srinify @betodealmeida @junlincc , any updates on this?

facing the same exact problem. I downloaded superset localy using docker and followed the same blog post.

Facing same issue

I'm facing the same issue although i still can query data from Gsheet. Is this normal?

@NgxHaiiDanx can you create a ticket at https://github.com/betodealmeida/shillelagh/issues and share the spreadsheet URL so I can take a look?

Most likely you installed shillelagh incorrectly. You need to point the variant of shillelagh package .
That is, in docker mode, you should add this line to the file docker/requirements-local.txt :
shillelagh[gsheetsapi]

Is anyone on this thread still facing this issue, or is it OK if we close this one due to inactivity?

This is probably caused by an interpretation loss created by this tutorial, this issue is caused when you only install gsheetsdb
You need to install.
pip install 'shillelagh[gsheetsapi]'
See this doc

Indeed that tutorial works (I just tried it the other day!), so I'll close this issue as solved or stale, since both seem to be the case :) If people are still encountering this in current versions (currently 3.x) please re-open this issue, open a new Issue with updated context, or raise a PR to address the problem. Thanks!


ffi module cleanup: context.h to frameobject.h

Partial fix for #1289. This set seems relatively more straightforward, but touches a lot of files.

I think the right solution for PyDictObject and PyFloatObject is to use opaque_struct! with the limited API for now. You could also mark these with TODO to remove the opaque_struct! implementations later; we have to revisit this in the future anyway to enable subclassing builtin types with the abi3 feature:
https://github.com/PyO3/pyo3/blob/3f093d9e59df0140f6c3a0abbb6acaa439687b7f/src/pyclass.rs#L44

Sorry about the mess. I've eyeballed the PR diff this time and think it's ready for review, if tests pass.


Scrolling is not smooth with large group & childs

Scrolling is smooth when  small number of groups & childs are present, but when Groups are large with large number of childs then the scrolling is not smooth...
Please reply..

I experienced pretty bad performance with multiple views types in a large collection. When I started recycling the views, I noticed the view types that were passed as ConvertView were not the correct types. The problem @vivekwarde may have been experiencing was probably a lack of view recycling. With this change the library should support it correctly.


[Bug]  MMKV not working in React Native 0.64.2

Describe the bug
I updated the react version to 0.64.2 but when I try to get value using for example MMKV.getBoolAsync("myBooleanValue"); I don't receive the data and my app obtain a blank screen because my variable doesn't exist/
Screenshots

Platform Information:
"react": "17.0.1",
"react-native": "0.64.2",
"react-native-mmkv-storage": "^0.6.0"

I think something big inside MMKV broke because NOTHING regarding the API functions works for me now. I can initialize the store with the Loader but nothing else seems to work, except the hooks.

API {
  "accessibleMode": "AccessibleWhenUnlocked",
  "alias": null,
  "aliasPrefix": "com.MMKV.",
  "encryption": encryption {
    "accessibleMode": "AccessibleWhenUnlocked",
    "alias": null,
    "aliasPrefix": "com.MMKV.",
    "initialized": false,
    "instanceID": "default",
    "key": null,
    "options": Object {
      "accessibleMode": "AccessibleWhenUnlocked",
      "alias": null,
      "aliasPrefix": "com.MMKV.",
      "initWithEncryption": false,
      "initialized": false,
      "instanceID": "default",
      "key": null,
      "processingMode": 1,
      "secureKeyStorage": false,
    },
  },
  "ev": EventManager {
    "_registry": Object {},
  },
  "getArray": [Function anonymous],
  "getBool": [Function anonymous],
  "getInt": [Function anonymous],
  "getMap": [Function anonymous],
  "getMultipleItems": [Function anonymous],
  "getString": [Function anonymous],
  "indexer": indexer {
    "MMKV": undefined,
    "arrays": arrayIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "booleans": boolIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "instanceID": "default",
    "maps": mapsIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "numbers": numbersIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "options": Object {
      "accessibleMode": "AccessibleWhenUnlocked",
      "alias": null,
      "aliasPrefix": "com.MMKV.",
      "initWithEncryption": false,
      "initialized": false,
      "instanceID": "default",
      "key": null,
      "processingMode": 1,
      "secureKeyStorage": false,
    },
    "strings": stringsIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
  },
  "initWithEncryption": false,
  "initialized": false,
  "instanceID": "default",
  "key": null,
  "options": Object {
    "accessibleMode": "AccessibleWhenUnlocked",
    "alias": null,
    "aliasPrefix": "com.MMKV.",
    "initWithEncryption": false,
    "initialized": false,
    "instanceID": "default",
    "key": null,
    "processingMode": 1,
    "secureKeyStorage": false,
  },
  "processingMode": 1,
  "secureKeyStorage": false,
  "setArray": [Function anonymous],
  "setBool": [Function anonymous],
  "setInt": [Function anonymous],
  "setMap": [Function anonymous],
  "setString": [Function anonymous],
}
SET RESULT -- undefined
KEY VALUE -- undefined

Platform Information:
"react": "16.13.1",
"react-native": "0.63.4"
"react-native-mmkv-storage": "^0.6.0"

Describe the bug
I updated the react version to 0.64.2 but when I try to get value using for example MMKV.getBoolAsync("myBooleanValue"); I don't receive the data and my app obtain a blank screen because my variable doesn't exist/
Screenshots

Platform Information:
"react": "17.0.1",
"react-native": "0.64.2",
"react-native-mmkv-storage": "^0.6.0"

The example app in the library is on RN 0.64 and it works normally. 0.64.2 is a minor release so it should work the same. Check your configuration. Disable chrome debugging.

I think something big inside MMKV broke because NOTHING regarding the API functions works for me now. I can initialize the store with the Loader but nothing else seems to work, except the hooks. I even tired running 1 previous version of the mmkv package to see if it worked.

Console Output
API {
  "accessibleMode": "AccessibleWhenUnlocked",
  "alias": null,
  "aliasPrefix": "com.MMKV.",
  "encryption": encryption {
    "accessibleMode": "AccessibleWhenUnlocked",
    "alias": null,
    "aliasPrefix": "com.MMKV.",
    "initialized": false,
    "instanceID": "default",
    "key": null,
    "options": Object {
      "accessibleMode": "AccessibleWhenUnlocked",
      "alias": null,
      "aliasPrefix": "com.MMKV.",
      "initWithEncryption": false,
      "initialized": false,
      "instanceID": "default",
      "key": null,
      "processingMode": 1,
      "secureKeyStorage": false,
    },
  },
  "ev": EventManager {
    "_registry": Object {},
  },
  "getArray": [Function anonymous],
  "getBool": [Function anonymous],
  "getInt": [Function anonymous],
  "getMap": [Function anonymous],
  "getMultipleItems": [Function anonymous],
  "getString": [Function anonymous],
  "indexer": indexer {
    "MMKV": undefined,
    "arrays": arrayIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "booleans": boolIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "instanceID": "default",
    "maps": mapsIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "numbers": numbersIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
    "options": Object {
      "accessibleMode": "AccessibleWhenUnlocked",
      "alias": null,
      "aliasPrefix": "com.MMKV.",
      "initWithEncryption": false,
      "initialized": false,
      "instanceID": "default",
      "key": null,
      "processingMode": 1,
      "secureKeyStorage": false,
    },
    "strings": stringsIndex {
      "MMKV": undefined,
      "instanceID": "default",
      "options": Object {
        "accessibleMode": "AccessibleWhenUnlocked",
        "alias": null,
        "aliasPrefix": "com.MMKV.",
        "initWithEncryption": false,
        "initialized": false,
        "instanceID": "default",
        "key": null,
        "processingMode": 1,
        "secureKeyStorage": false,
      },
    },
  },
  "initWithEncryption": false,
  "initialized": false,
  "instanceID": "default",
  "key": null,
  "options": Object {
    "accessibleMode": "AccessibleWhenUnlocked",
    "alias": null,
    "aliasPrefix": "com.MMKV.",
    "initWithEncryption": false,
    "initialized": false,
    "instanceID": "default",
    "key": null,
    "processingMode": 1,
    "secureKeyStorage": false,
  },
  "processingMode": 1,
  "secureKeyStorage": false,
  "setArray": [Function anonymous],
  "setBool": [Function anonymous],
  "setInt": [Function anonymous],
  "setMap": [Function anonymous],
  "setString": [Function anonymous],
}
SET RESULT -- undefined
KEY VALUE -- undefined

Platform Information:
"react": "16.13.1",
"react-native": "0.63.4"
"react-native-mmkv-storage": "^0.6.0"

What do you mean by "now". Was it working before? What did you change? Is chrome debugger on or off?

I was working but for some reason, I can't get anything related to setting, fetching, and indexer calls to work. How do I check the chrome debugger?

It does seem to work with the hooks though, that is what is so strange. Using MMKV yields nothing though. not even errors, it simply returns undefined. I tried to get into the cpp code with the global functions implemented in JSI but I'm not familiar with how those work.

I tried the example and it doesnt seem to store and ferch the data once the application resets.
https://user-images.githubusercontent.com/44002321/125648949-b1019b18-e95f-49a9-b2f6-289aa930a6c4.mp4

@ammarahm-ed Thanks I continue to present problems but I think that the problem is my config after the update.
This is my Podfile
`require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '11.0'
target 'ns_app' do
config = use_native_modules!
permissions_path = '../node_modules/react-native-permissions/ios'
use_react_native!(
:path => config[:reactNativePath],
# to enable hermes on iOS, change false to true and then install pods
:hermes_enabled => false
)
pod 'Permission-Camera', :path => "#{permissions_path}/Camera"
pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications"
pod 'Permission-LocationAccuracy', :path => "#{permissions_path}/LocationAccuracy"
pod 'Permission-LocationAlways', :path => "#{permissions_path}/LocationAlways"
pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse"
target 'ns_appTests' do
inherit! :complete
# Pods for testing
end
Enables Flipper.

Note that if you have use_frameworks! enabled, Flipper will not work and
you should disable these next few lines.
use_flipper!()
post_install do |installer|
react_native_post_install(installer)
end
end`

@jgalianoz Do you have the same problem on android? or is it happening only on iOS?
The pod file looks okay though. There is nothing strange happening. Maybe try commenting out use_flipper() and see if that helps?

@ammarahm-ed Yes, yesterday I test in Android and I had the same problem. Before updated all worked perfectly. I will try commenting use_flipper().
I had the 0.63.4 version and all worked without any problem.

@jgalianoz Maybe there are some old cached files that are causing the problem.

Delete ios/Pods
Delete node_modules
Run npm install/yarn
Run cd android && ./gradlew clean for android
Run pod install
Run the app

@ammarahm-ed Do you use Xcode 12.5 ?

I also have 0.64.2, works perfectly fine on Android, haven't tested on iOS yet

@Kiura Do you use async or sycn methods?

@jgalianoz I use async methods within async function:
async getString(key: string): Promise<string> {
  const data = await this.MMKV.getStringAsync(key);
  ...
  return data;
}

@ammarahm-ed Yesterday finally I could run my app and MMKV worked perfectly, my problem was my metro configuration. Thanks for the help. 🧡


Update 02-text.md

Fix docs

Description

Visual changes

Functional changes

[ ] Code style has been fixed by running the composer cs command.
[ ] Changes have been tested to not break existing functionality.
[ ] Documentation is up-to-date.

Thanks