ES6 class support

This PR introduces support for ES6 classes - https://github.com/bluetech/ng-annotate-patched/issues/4
I've used the following test script, that includes some common scenarios:
function FnTest1 ($log) {}
/** @ngInject */
function FnTest1_annotated ($log) {}
function FnTest1_prologue_directive ($log) {
    "ngInject";
}

var FnTest2 = function($log) {}
/** @ngInject */
var FnTest2_annotated = function($log) {}
var FnTest2_annotated_expression = /** @ngInject */ function($log) {}
var FnTest2_prologue_directive = function($log) {
    "ngInject";
}

FnTest3 = function($log) {}
/** @ngInject */
FnTest3_annotated = function($log) {}
FnTest3_annotated_expression = /** @ngInject */ function($log) {}
FnTest3_prologue_directive = function($log) {
    "ngInject";
}

// ========================================

class ClassTest1 {
    constructor($log) {}
}
/** @ngInject */
class ClassTest1_annotated {
    constructor($log) {}
}
class ClassTest1_annotated_constructor {
    /** @ngInject */
    constructor($log) {}
}
class ClassTest1_prologue_directive {
    constructor($log) {
        "ngInject";
    }
}

var ClassTest2 = class {
    constructor($log) {}
};
/** @ngInject */
var ClassTest2_annotated = class {
    constructor($log) {}
};
var ClassTest2_annotated_expression = /** @ngInject */ class {
    constructor($log) {}
};
var ClassTest2_annotated_constructor = class {
    /** @ngInject */
    constructor($log) {}
};
var ClassTest2_prologue_directive = class {
    constructor($log) {
        "ngInject";
    }
};

ClassTest3 = class {
    constructor($log) {}
};
/** @ngInject */
ClassTest3_annotated = class {
  constructor($log) {}
};
ClassTest3_annotated_expression = /** @ngInject */ class {
  constructor($log) {}
};
ClassTest3_annotated_constructor = class {
  /** @ngInject */
  constructor($log) {}
};
ClassTest3_prologue_directive = class {
  constructor($log) {
    "ngInject";
  }
};

And this is the produced output:
FnTest1_annotated.$inject = ["$log"];
FnTest1_prologue_directive.$inject = ["$log"];
function FnTest1 ($log) {}
/** @ngInject */
function FnTest1_annotated ($log) {}
function FnTest1_prologue_directive ($log) {
    "ngInject";
}

var FnTest2 = function($log) {}
/** @ngInject */
var FnTest2_annotated = function($log) {}
FnTest2_annotated.$inject = ["$log"];
var FnTest2_annotated_expression = /** @ngInject */ ["$log", function($log) {}]
var FnTest2_prologue_directive = function($log) {
    "ngInject";
}
FnTest2_prologue_directive.$inject = ["$log"];

FnTest3 = function($log) {}
/** @ngInject */
FnTest3_annotated = function($log) {}
FnTest3_annotated.$inject = ["$log"];
FnTest3_annotated_expression = /** @ngInject */ ["$log", function($log) {}]
FnTest3_prologue_directive = ["$log", function($log) {
    "ngInject";
}]

// ========================================

class ClassTest1 {
    constructor($log) {}
}
/** @ngInject */
class ClassTest1_annotated {
    constructor($log) {}
}
ClassTest1_annotated.$inject = ["$log"];
class ClassTest1_annotated_constructor {
    /** @ngInject */
    constructor($log) {}
}
ClassTest1_annotated_constructor.$inject = ["$log"];
class ClassTest1_prologue_directive {
    constructor($log) {
        "ngInject";
    }
}
ClassTest1_prologue_directive.$inject = ["$log"];

var ClassTest2 = class {
    constructor($log) {}
};
/** @ngInject */
var ClassTest2_annotated = class {
    constructor($log) {}
};
ClassTest2_annotated.$inject = ["$log"];
var ClassTest2_annotated_expression = /** @ngInject */ ["$log", class {
    constructor($log) {}
}];
var ClassTest2_annotated_constructor = ["$log", class {
    /** @ngInject */
    constructor($log) {}
}];
var ClassTest2_prologue_directive = ["$log", class {
    constructor($log) {
        "ngInject";
    }
}];

ClassTest3 = class {
    constructor($log) {}
};
/** @ngInject */
ClassTest3_annotated = class {
  constructor($log) {}
};
ClassTest3_annotated.$inject = ["$log"];
ClassTest3_annotated_expression = /** @ngInject */ ["$log", class {
  constructor($log) {}
}];
ClassTest3_annotated_constructor = class {
  /** @ngInject */
  constructor($log) {}
};
ClassTest3_annotated_constructor.$inject = ["$log"];
ClassTest3_prologue_directive = class {
  constructor($log) {
    "ngInject";
  }
};
ClassTest3_prologue_directive.$inject = ["$log"];

Thanks @nevcos! I will look at the details soon.
I see this is based on the previous PR, so let's merge that one first (it has a small comment in case you missed it).
Also, since you already did the nice work of constructing a test case for this feature, let's add it to the test suite! It seems you just need to drop the before code in tests/es6-classes.js and the after output in tests/es6-classes.annotated.js, edit tests/run-tests.js, and run npm test to see that it passes.

@bluetech Great test suite, that's super usefull 👍!
I've added the test files and it looks everything is passing unless one error that was already showing on fork branch (the same as it's showing on the other PR):
testing adding annotations
Index: with_annotations.js
===================================================================
--- with_annotations.js
+++ with_annotations.js
@@ -1078,12 +1078,11 @@
 /* @ngInject */
 export var exportVariableFunctionVar2 = function($scope) {}
 exportVariableFunctionVar2.$inject = ["$scope"];

-export var exportVariableFunctionVar3 = function($scope) {
+export var exportVariableFunctionVar3 = ["$scope", function($scope) {
     "ngInject";
-}
-exportVariableFunctionVar3.$inject = ["$scope"];
+}]

 // issue #2 (ng-annotate-patched) - Error using ES6 destructuring

 (function(){

Thanks

Oh I just commented on the test failure in the other PR (for me it doesn't happen in the fork branch).

I rebased this branch & squashed the commits. However, the tests are failing, it seems some of the cases are not being annotated. Will be happy to merge once the tests pass!

@bluetech Will try to check it out during this week.

Are you guys still working on this or is there another way you know about to get class constructors annotated?

@bluetech I'm sorry, I didn't have enough time to fix the issues yet.
@freezy The nevcos/ng-annotate-patched branch is working fine for our project. If you really need class support you can use it while it's not merged to bluetech/ng-annotate-patched.

@nevcos any chance you published your fork with class support to npm ?

@swar30 Sorry, no longer actively working on this so I had no time to finish it.
You can consider using nevcos/ng-annotate-patched directly (just be aware that I'm not giving support to it) or try forking my branch + create another PR here.
Thanks

@bluetech will it be relevant for me to create new fork and new pull request for this issue ?

It seems like the current status is

Will be happy to merge once the tests pass!

So, if you're up to fixing the tests, I'll gladly merge this.

@bluetech I have noticed that testing sourcemaps test fails on bluetech/ng-annotate-patched#fork branch, before this change is applied.
Is that the case for you as well, or may be it's just on my env because I'm on windows or some thing similar ?

The tests are passing for me locally (on the fork branch), but it seems like they fail both for you and for nevcos. I should really set up travis here I guess! In the meantime, can you paste the failure, if it has any indication?

"C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" C:\git\ng-annotate-patched\tests\run-tests.js
testing adding annotations
testing adding annotations with dynamicImport enabled
testing adding annotations and renaming
testing removing annotations
testing adding annotations twice
testing rebuilding annotations
testing adding existing $inject annotations (no change)
testing removing existing $inject annotations
testing sourcemaps
Index: sourcemaps.annotated.js
===================================================================
--- sourcemaps.annotated.js
+++ sourcemaps.annotated.js
@@ -1,30 +1,30 @@
-(function() {
-  var ctrl4, x;
-
-  x = "before";
-
-  myMod.controller("ctrl1", ["ctrl1_param1", "ctrl1_param2", function(ctrl1_param1, ctrl1_param2) {
-    return x = "ctrl1 body";
-  }]);
-
-  myMod.controller("ctrl2", ["ctrl2_param1", "ctrl2_param2", function(ctrl2_param1, ctrl2_param2) {
-      return x = "ctrl2 body";
-    }
-  ]);
-
-  myMod.controller("ctrl3", ["ctrl3_param1", "ctrl3_param2", function(ctrl3_param1, ctrl3_param2) {
-      return x = "ctrl3 body";
-    }
-  ]);
-
-
-  /* @ngInject */
-
-  ctrl4 = function(ctrl4_param1, ctrl4_param2) {
-    return x = "ctrl4 body";
-  };
-  ctrl4.$inject = ["ctrl4_param1", "ctrl4_param2"];
-
-  x = "after";
-
-}).call(this);
+(function() {
+  var ctrl4, x;
+
+  x = "before";
+
+  myMod.controller("ctrl1", ["ctrl1_param1", "ctrl1_param2", function(ctrl1_param1, ctrl1_param2) {
+    return x = "ctrl1 body";
+  }]);
+
+  myMod.controller("ctrl2", ["ctrl2_param1", "ctrl2_param2", function(ctrl2_param1, ctrl2_param2) {
+      return x = "ctrl2 body";
+    }
+  ]);
+
+  myMod.controller("ctrl3", ["ctrl3_param1", "ctrl3_param2", function(ctrl3_param1, ctrl3_param2) {
+      return x = "ctrl3 body";
+    }
+  ]);
+
+
+  /* @ngInject */
+
+  ctrl4 = function(ctrl4_param1, ctrl4_param2) {
+    return x = "ctrl4 body";
+  };
+  ctrl4.$inject = ["ctrl4_param1", "ctrl4_param2"];
+
+  x = "after";
+
+}).call(this);

Process finished with exit code -1

i think it does have some thing to do with windows / linux, when I debug the failure it fails because in correct line ending is \r\n but in got it's \n

I have fix for the test issue on main branch, should I open issue + pull request ?
or do you want the patch to fix it ?

A PR would be great, thanks. You don't need to open an issue.


Profile page is missing UI/any navigation to exit

Current profile page shown below. Cannot return back to main page and does not have same elements.

I put header on profile page


Allow temporary redirects and restrict permanent redirects

When you set up a redirect, a 301 permanent redirect is generated. It should be possible to set up a 302 temporary redirect.
Since permanent redirects are very permanent, we would like to be able to restrict creating permanent redirects to specific users.
There is a delete button next to each redirect. This button should be removed next to permanent redirects, since they won't be deleted from user's caches, so deleting them from the UI will just make it confusing to find out what redirects we actually have. There should be a deactivate button instead.

+1 for being able to select from either 301 or 302.

Has this been further discussed? +1 if not still available.

+1, we have a use case where all pages of an alternate language responding with a 404 should redirect to the front page of that language.
page.com/no/ -> page.com/no/ [Wildcard checked]
As the editors translate pages, the pages should become available, but since 301s are cached, they will always redirect to the front page of that language. If we could mark this rule as having 302 behaviour, the issue would be solved.

I would be very interested in an option for 302 redirects as well!

I would be very interested in a 302 redirect option as well!

Implemented, so closing.


Differentiate Internal/External Require Calls for Common JS Modules

I want to compile this very simple piece of code:
// test.js
var crypto = require("crypto");
console.log(crypto.createHash("md5").update("foo").digest("hex"));

I know the compiler needs to know where the crypto library is, so I'm passing it in via --externs (I do not want it to be compiled along with my code, I just want it bluntly passed through).
However, I cannot get this to compile at all. I'm compiling it with:
$ java -jar compiler.jar --js="test.js" --process_common_js_modules --common_js_entry_module "test.js" --externs closure-compiler/contrib/nodejs/crypto.js

ERROR - required entry point "module$crypto" never provided

1 error(s), 0 warning(s)

where closure-compiler/contrib/nodejs/crypto.js is the file in this git repo. I've also tried using globals.js to no avail. What am I doing wrong? Looking at the source, it's producing this error because module$crypto is not contained in modulesByProvide in src/com/google/javascript/jscomp/Compiler.java:1534, which seems to just be looping over the files I give it in --js and not the externs files.
Version:
Closure Compiler (http://github.com/google/closure-compiler)
Version: v20150505
Built on: 2015/05/06 13:09

Try omitting this line:
var crypto = require("crypto");

The externs should be available to all modules without explicitly requiring them. You will have to use the full name of the module instead of just crypto. If you want to use a short name, use goog.scope in test.js.

So you're telling me there is no way to get closure compiler to do this without altering my code to make it closure-specific?

Right. closure-compiler will not work with native node modules.

The problem is the require statement gets expanded by the compiler and there is no way to denote that certain require statements are external.
What happens if you alias require?
var externalRequire = require;
/** @suppress {duplicate} */
var crypto = require('crypto')

Aliasing require does indeed work, which is a great start: thank you!
So overall, there isn't any way to specify where closure-compiler should look to resolve references like this? E.g. A compiler option to say "If you see a require call, look in some/dir/here"? Clearly the require call is already doing something like this since it can resolve paths correctly. It seems surprising that closure-compiler has this half-support for require calls (in that it resolves files/paths correctly, just not anything native like crypto or anything in node_modules).
The benefit to doing this would be that it would allow type checking on Node.js projects without any code alteration. If you're open to the idea of supplying a compiler option, I would be interested in making a PR for this.

We're open to improvements like this, but it may be trickier than you think.
During a very early pass in the compiler, require statements are expanded like a macro to simply be goog.require('module$crypto'). The common js and AMD exports are also expanded to be goog.provide('module$crypto'). The compiler currently has no way to recognize at this point that there is a require statement without a corresponding provide.
The difficult part would be when should a require without a provide be considered an external call and when should it be considered an error?

Am I right in suggesting that the macro-like expansion of require statements was done under the assumption that you would be requireing your own source code which you wanted to compile? That seems to be how the compiler is treating them currently. Given that aliasing require works exactly as I'd expect without any surprising behaviour, I think it would make sense to simply not expand require statements when the location is unknown (e.g. because it is native / in node_modules / just not supplied to the compiler to compile).
Yes, I agree that it is difficult to know if it supposed to be an external call or if it is just a typo and should be considered an error. The compiler does not have enough information to make a call on that. Would it be possible to add an annotation to explicitly declare the require as an external call?
This would mean that the proposed additional functionality would be to not expand out require statements if and only if there is a new JSDoc-style annotation (e.g. @externalRequire) marked on the require statement. This would make this change low-risk given it would only take effect when the new annotation was applied.

In general, we don't like to add annotations. Also, how is adding an annotation any different than aliasing the require statement? Both require modifications to code.
Also, there are cases where a node_modules required library should be included as source. Namely any npm installed library that is compatible with Closure-compiler could fall into this category. This can include libraries from private registries.

Aliasing the require statement is more intrusive than comments as it makes the code more obfuscated (people naturally see require("whatever") and immediately get it if they're a Node dev, but it throws you off if you see externalRequire("whatever") even if it is aliased a few lines up. Comments remove this obfuscation and makes the intent clearer that it's just a flag for some other tool:
/** @externalRequire */
var crypto = require("crypto");

For cases where a node_modules library should be included as source, I don't believe the compiler has any way of managing that currently without referencing the node_modules folder and including the relevant module with --js, so my suggestion wouldn't change that in any way (and is also why I quite like mentioning the keyword external in the annotation name given there is --externs which functions in a very similar way).
Is there any particular reason for disliking new annotations? On the contrary, annotations are the only way anything non-closure specific can interact sensibly with the compiler. I can understand that they should be used carefully where the compiler doesn't have enough information to make a decision, but I feel that they can be extremely valuable for cases such as this.
I can always write a script to alias all of the require statements I wish to exclude, but I was hoping that it would be a generic enough problem to want to solve in the compiler itself, given Node.js projects are just so close to being able to play nicely with the compiler.

How is this case handled by the Require JS optimizer? It seems like the compiler should aim for parity with already understood methodologies.
Also, I would suggest writing up a design document and posting for comments in the Closure-Compiler-Discuss group. Most of the compiler maintainers do not use common js modules, so you'll get more feedback there. Here's an example design document: https://gist.github.com/ChadKillingsworth/b86a4cffaa71571b5d01

Node.js preferentially loads up core modules, then knows where to look based on the first few characters of the provided string (lack of ./ or / indicates it's a module and should look in node_modules). The documentation is actually really helpful for outlining the algorithm used here: https://nodejs.org/api/modules.html#modules_core_modules
As a result, it can tell the difference between native libs like crypto, npm packages like q and random source files like ../data/something.js. If you wanted to get closure compiler working with some npm packages (for example q), then you'd drop the annotation on the require statement but would then run into problems knowing where to look (the compiler would have to implement the lookup algorithm for node_modules at https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders )
I'll write up a design document this weekend.

Posted to https://groups.google.com/forum/#!forum/closure-compiler-discuss
Design doc draft for reference:
https://gist.github.com/Kegsay/2cb999a78dbd2b8bda95

I'm still keen to get this feature implemented.
I originally fixed my problem by using Flowtype instead for type checking (which does resolve require() calls correctly), but the kicker is that in order to add type annotations you need to transpile since the annotations are not valid Javascript. It does support an ugly commented form, but what I really want is for it to use JSDoc so I can use 1 true type annotation for both type checking and documentation. Closure compiler does this really well. I ended up writing a small tool to allow me to write JSDoc for type annotations in Flowtype and that works reasonably well, but has fundamental limitations to how aggressively I can annotate.
It looks like @ChadKillingsworth has been the most enthusiastic one to also get this implemented, and may have started working on this already? Assuming this is the case, is there anything I can do to push the process along?

@ChadKillingsworth what if the compiler kept a hard-coded list of node libraries, and left the calls to require alone when --module_resolution NODE is set? Or I suppose it could automatically alias the require calls.

Oh, excuse me, I only just found this issue: https://github.com/google/closure-compiler/issues/1382
And I agree that having a flag is a better system 👍
Mainly because it makes it easier to use popular npm modules that use core libraries like http without having to modify them (to alias require).


Stuck at logging on screen.

I stuck at this screen forever.
growtopia v3.84 (windows)
growrust (ubuntu 18.04)

Update onsupermain packet and items.dat.

which ip address did you use to connect?

it could be because of this line here


vttest: 20200610 -> 20210210

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/vttest/versions.
meta.description for vttest is: "Tests the compatibility so-called 'VT100-compatible' terminals"
meta.homepage for vttest is: "https://invisible-island.net/vttest/"
meta.changelog for vttest is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

directory tree listing: https://gist.github.com/a06c82cf309b319e81b57b4896369385

du listing: https://gist.github.com/433671d71b856aa0b0f7b92c1efb785a

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
vttest

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/np324yq2k162iajipny9zxkg35h2fn93-vttest-20210210 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A vttest https://github.com/r-ryantm/nixpkgs/archive/f710188dde9621a60b7fc49efc935fdd13196239.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/np324yq2k162iajipny9zxkg35h2fn93-vttest-20210210
ls -la /nix/store/np324yq2k162iajipny9zxkg35h2fn93-vttest-20210210/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

vttest

Maintainer pings

Result of nixpkgs-review pr 115719 run on x86_64-linux 1

1 package built:

vttest


VS 2015 RC missing --no-sources option for VS publish (dnu publish)

The --no-sources publish option is (apparently) missing from VS 2015 RC.
btw- I posted this at UserVoice, but I wonder if you want these VS issues posted here to speed things up a bit. I'm worried that anything put over on UserVoice with 3 votes is not going to see the light of day with the right people there for quite a while.

Solved by the Precompile during publishing setting when publishing to the file system. See http://docs.asp.net/en/latest/publishing/iis.html#publish-from-visual-studio Bullet 6:

If you select Precompile during publishing, the Publish\approot\src directory and source files will not be created. If you don’t check Precompile during publishing, your source files will be found in the Publish\approot\src directory.


Add support for Pandoc underline

Hi @Benature,
Thanks for the great plugin!
I'm doing a lot of writing in Markdown and then converting to different formats (mostly PDF or .docx) with pandoc to share with others. Pandoc uses a different notation for underlines, like this:
[text to underline].{underline}.
Would it be possible to add support for this, with possibly a toggle in the plugin settings to chose the underline style?
Cheers!

Hi, I would suggest you to install my another plugin "Text Format", which allows to custom to add your prefix and suffix.
In your case, the prefix may be [ and suffix may be ].{underline} if I understand correctly.
related issues:

https://github.com/Benature/obsidian-underline/issues/8
https://github.com/Benature/obsidian-text-format/issues/30#issuecomment-1229835540


No resize handle for "Model ID" column in plans table

Checked for duplicates
Yes - I've already checked
Is this a regression?
No - This is a new bug
Version
2.2.0
Describe the bug
I can't resize the "Model ID" column of the Plans table because there is no handle to grab onto like for the other columns:

Reordering columns by by dragging it around doesn't seem to change anything; the missing handle stays with it.
Reproduction

Open Plans
Try to resize the Model ID column

Logs
No response
System Info
Chrome Version 120.0.6099.199 (Official Build) (x86_64)

Severity
Minor

Thanks @bradNASA! That was actually by design since we didn't feel the model ID could grow longer than the space allocated and any smaller would cause the header to be truncated. Is there a specific reason why you're trying to resize that column?

Thanks @bradNASA! That was actually by design since we didn't feel the model ID could grow longer than the space allocated and any smaller would cause the header to be truncated. Is there a specific reason why you're trying to resize that column?

@bradNASA circling back to my previous comment to get your take on whether or not what currently exists is sufficient.

@duranb apologies for not responding.  I don't see these emails--maybe I should try to.  Chet came by, and I showed him why it was problematic for me, so I expect the feedback made its way to you, and I saw that the handle was put in for 2.6.0.  Thank you!  I also learned to hold down a key (cmd?) while resizing to get the behavior I really wanted.

@bradNASA No worries! I'm glad you're happy with those changes. Thank you!


Investigate what to do for jib:dockerBuild and jib:buildTar for multi-platform image building

The Docker daemon probably won't accept a manifest list (or may require a different archive format).

this looks closely related to issue #2751

Thanks for the info in #2751. That's great!
Just for more clarification:
These two are related, but also largely orthogonal. This issue is about what how to push multi-arch images to a local Docker daemon or create a tar in which format. It's only relevant with the jib:dockerBuild and jib:buildTar the goals, where multi-arch image building is simply not possible.
#2751 is only about how to better record all the information about the built images in multi-arch image building. (Currently, Jib is recording only the information about the manifest list push result). #2751 is independent of which target storage to use (whether a remote registry, local Docker daemon, or tar on a filesystem).

I've just come across this issue. We're looking to add arm64 images to our builds, but doing so breaks local development processes that use jib:dockerBuild.
From our perspective we'd like this to continue working, and since docker doesn't support storing multiple architectures for an image (from what I can see), and images in the local docker instance are almost always there to be run, it would make sense for jib:dockerBuild to pick the native platform of the docker instance. This should probably be accompanied by a warning saying it's only building for a single platform.
At least this way, dockerBuild is still somewhat useful, unlike at the moment where adding platforms renders it useless.

That's a good idea. For now, please use the workaround of having two profiles, e.g., a default prod profile that defines multiple platforms  and dev or local that defines only the platform that matches your local environment.

Regarding building a tar there should also be an option to build an OCI tar which can store multi-arch images (https://github.com/opencontainers/image-spec/blob/main/image-layout.md).

This might be a better solution for some than requiring defining a command line property (which I always forget 😏).
jib {
  to {
    image = "..."
    auth {...}
  }
  from {
    image = "openjdk:17-jdk"
  }
}

gradle.taskGraph.addTaskExecutionGraphListener {
  if (!it.hasTask(":jibDockerBuild")) {
    logger.info("JIB: Enabling Multi-Platform Images")
    jib.from.platforms {
      platform {
        os = "linux"
        architecture = "arm64"
      }
      platform {
        os = "linux"
        architecture = "amd64"
      }
    }
  }
}

The only sticking point is that the param to hasTask (:jibDockerBuild in the above) needs to be the complete path to your jibDockerBuild task. For example, if your task is in a subproject named cli, you'd need :cli:jibDockerBuild, for single module projects :jibDockerBuild works.

This issue is closed but I think it's not resolved (just ran into the issue/error that multi-platform is not supported). I think that @elFarto suggestion:

From our perspective we'd like this to continue working, and since docker doesn't support storing multiple architectures for an image (from what I can see), and images in the local docker instance are almost always there to be run, it would make sense for jib:dockerBuild to pick the native platform of the docker instance.

seems very reasonable.

jib-maven-plugin:3.4.3, jib-gradle-plugin:3.4.3 and jib-core:0.27.1 have been released with a fix for this! When building to the local docker daemon, Jib now selects the image with os and architecture matching the local docker environment.


[7.x] Conditionally returning appended attributes in API resources

I recently needed to return an attribute in an API Resource only when it had been explicitly appended to the model.
I couldn't find a nice public method to determine whether something had been appended to a model, so this PR adds a very simple public hasAppended() method to the HasAttributes trait so it can be easily checked on any model instance.
Then to improve the ergonomics inside the API Resource, I added a whenAppended() method to the ConditionallyLoadsAttributes trait that I think has nice symmetry with the other conditional "when" methods like when() and whenLoaded().
The usage is then something like this:
public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'email' => $this->email,
        'is_subscribed' => $this->whenAppended('is_subscribed'),
        'created_at' => $this->created_at,
        'updated_at' => $this->updated_at,
    ];
}

return new UserResource($user->append('is_subscribed'));

This is particularly useful when an accessor contains information that should only sometimes be returned, or where an accessor might make additional database requests that you only want to occur deliberately.
Similar to the whenLoaded() method, you can optionally include the value to return if different than the accessor, as well as a default value.
If this is a welcome addition, please let me know and I will add tests. I can also PR the "Conditional Attributes" section of the API Resources docs if warranted.

Seems simple enough. 👍

Feel free to continue with anything else you wanted to add here.

Thanks @taylorotwell. I've added a few tests so I think it's good to go :)

Thanks! I can finally remove my trait. :)


fixed autism

Looks great man, hope this is approved! 👍🏿

Am I missing something here? Wtf is this


translateLanguage directive is not working together with asynchronous language loading by static files loader when translation files are big enough

Subject of the issue
translateLanguage directive is not working, when used together with asynchronous language loading by static files loader, in the case when translation files are big enough
Your environment

version of angular-translate: 2.15.2
version of angular: 1.5.11
which browser and its version: Chrome 60.0.3112.90

Steps to reproduce
See the plunker
App is set to load languages from the static files with the default language en.
To the body added an element needing a translation in another language, under the element with translate-language="de" attribute.
When language files are taking longer to load (there is a race condition), the text under translate-language="de" is not translated – the translation key is shown instead.
Expected behaviour
After the translation file was loaded, the actual translations are displayed.
Actual behaviour
Elements under translate-language="de" are not translated into any language
Note

There is a race condition, rarely you can see plunker working as expected, restart it then to start over.
When I tried to create a simpler plunker with the tiny translation files, all was working as expected.

Sorry for the delay. Overseen this here.
As everything is event based here, we should see this issue also when using a custom loader with a explicit deferred load (setTimeout). Can you provide a demo with this?
In the tests we are using such custom loader with different timings as well: https://github.com/angular-translate/angular-translate/blob/c7e743bb54b18f404e7ab5b91b88f842f144bbae/test/unit/service/translate.spec.js#L648-L696
Basics: The promise resolve will be deferred with a specific amount of time.

Fix in canary.


[Polymer] Vulcanize polymer src html when building sample app

BUG=XWALK-6868

@halton @jondong @DonnaWuDongxia PTAL, Thanks~
Verified OK locally.

lgtm, merging


Fix issue "wrong API resource path" #1880

Fix issue "wrong API resource path" #1880

How about adding a test for this change

sorry for this dirty PR, i just can't get all tests properly running even without my modifications

@mathieuales thanks again for your contribution 🙇


Google Camera Breaks

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Which gcam are you using and on what ROM ?
Did you install Google camera app from playstore ? If so please read below:
The module spoof device to be pixel4XL and let's one downloads apps for it via playstore which includes google camera app but the app itself is coded for hardware of google pixel series and not your device so it simply won't work unless you use some mod or port of it.
That being said in order to use features offered by google camera you need to install it's port that goes by gcam.It can be downloaded from the below link (requires cam2api being enabled) :
https://www.celsoazevedo.com/files/android/google-camera/
For more details on how to enable cam2api  or what gcam works best for your device refer the xda forum or telegram group for your particular device.
If your issue is caused by this module's  installation in some way quote a reply if not so close the issue.

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Can you also tell me your device name and custom rom that you are using and Can you take logs of the scenario ?

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Please flash v7.1 from release and check if that fixes your issue (July Patch).
If on older security patch and module version following ways may be opted to enable camera HAL3:

Install Termux from PlayStore (https://play.google.com/store/apps/details?id=com.termux&hl=en_IN)
Type - su
Type - setprop persist.vendor.camera.HAL3.enabled 1
Reboot

or
using some root explorer go to /data/adb/modules/P4XLProps open system.prop file in a note editor and save this line at the end of the file - persist.vendor.camera.HAL3.enabled= 1 then reboot.

Can you also tell me your device name and custom rom that you are using and Can you take logs of the scenario ?

Moto G5 Plus, PE+
July security patch is up for my phone,
I'll update tomorrow, as well as install the 7.1 pixel prop module
But I think camera HAL 3 was already enabled...🤔
Then too I'll check tomorrow.

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Please flash v7.1 from release and check if that fixes your issue (July Patch).
If on older security patch and module version following ways may be opted to enable camera HAL3:

Install Termux from PlayStore (https://play.google.com/store/apps/details?id=com.termux&hl=en_IN)
Type - su
Type - setprop persist.vendor.camera.HAL3.enabled 1
Reboot

or
using some root explorer go to /data/adb/modules/P4XLProps open system.prop file in a note editor and save this line at the end of the file - persist.vendor.camera.HAL3.enabled= 1 then reboot.

Just installed Pixel props 7.1.
The issue still persists...

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Please flash v7.1 from release and check if that fixes your issue (July Patch).
If on older security patch and module version following ways may be opted to enable camera HAL3:

Install Termux from PlayStore (https://play.google.com/store/apps/details?id=com.termux&hl=en_IN)
Type - su
Type - setprop persist.vendor.camera.HAL3.enabled 1
Reboot

or
using some root explorer go to /data/adb/modules/P4XLProps open system.prop file in a note editor and save this line at the end of the file - persist.vendor.camera.HAL3.enabled= 1 then reboot.

Just installed Pixel props 7.1.
The issue still persists...
People are reporting camera issue in potter PE since june 21 build.Check this:
https://forum.xda-developers.com/g5-plus/development/rom-pixel-experience-t3995717/page100
It seems most likely to be an issue with the build
Since when are you using the module with potter PE?Was this issue there with builds before 21st june?

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Please flash v7.1 from release and check if that fixes your issue (July Patch).
If on older security patch and module version following ways may be opted to enable camera HAL3:

Install Termux from PlayStore (https://play.google.com/store/apps/details?id=com.termux&hl=en_IN)
Type - su
Type - setprop persist.vendor.camera.HAL3.enabled 1
Reboot

or
using some root explorer go to /data/adb/modules/P4XLProps open system.prop file in a note editor and save this line at the end of the file - persist.vendor.camera.HAL3.enabled= 1 then reboot.

Just installed Pixel props 7.1.
The issue still persists...

People are reporting camera issue in potter PE since june 21 build.Check this:
https://forum.xda-developers.com/g5-plus/development/rom-pixel-experience-t3995717/page100
It seems most likely to be an issue with the build
Since when are you using the module with potter PE?Was this issue there with builds before 21st june?

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Please flash v7.1 from release and check if that fixes your issue (July Patch).
If on older security patch and module version following ways may be opted to enable camera HAL3:

Install Termux from PlayStore (https://play.google.com/store/apps/details?id=com.termux&hl=en_IN)
Type - su
Type - setprop persist.vendor.camera.HAL3.enabled 1
Reboot

or
using some root explorer go to /data/adb/modules/P4XLProps open system.prop file in a note editor and save this line at the end of the file - persist.vendor.camera.HAL3.enabled= 1 then reboot.

Just installed Pixel props 7.1.
The issue still persists...

People are reporting camera issue in potter PE since june 21 build.Check this:
https://forum.xda-developers.com/g5-plus/development/rom-pixel-experience-t3995717/page100
It seems most likely to be an issue with the build
Since when are you using the module with potter PE?Was this issue there with builds before 21st june?

I was using it since April build... This issue was still there....

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Please flash v7.1 from release and check if that fixes your issue (July Patch).
If on older security patch and module version following ways may be opted to enable camera HAL3:

Install Termux from PlayStore (https://play.google.com/store/apps/details?id=com.termux&hl=en_IN)
Type - su
Type - setprop persist.vendor.camera.HAL3.enabled 1
Reboot

or
using some root explorer go to /data/adb/modules/P4XLProps open system.prop file in a note editor and save this line at the end of the file - persist.vendor.camera.HAL3.enabled= 1 then reboot.

Just installed Pixel props 7.1.
The issue still persists...

People are reporting camera issue in potter PE since june 21 build.Check this:
https://forum.xda-developers.com/g5-plus/development/rom-pixel-experience-t3995717/page100
It seems most likely to be an issue with the build
Since when are you using the module with potter PE?Was this issue there with builds before 21st june?

I was using it since April build... This issue was still there....

We are using mods only... For me it's camera PX 4.3...
And the fact is every app crashes which is trying to open camera... Instagram, WhatsApp,etc... Until we disable the module from magisks...

Cannot open Google camera.
As soon as it finishes loading it crashes with "Camera keeps stopping."

Please flash v7.1 from release and check if that fixes your issue (July Patch).
If on older security patch and module version following ways may be opted to enable camera HAL3:

Install Termux from PlayStore (https://play.google.com/store/apps/details?id=com.termux&hl=en_IN)
Type - su
Type - setprop persist.vendor.camera.HAL3.enabled 1
Reboot

or
using some root explorer go to /data/adb/modules/P4XLProps open system.prop file in a note editor and save this line at the end of the file - persist.vendor.camera.HAL3.enabled= 1 then reboot.

Just installed Pixel props 7.1.
The issue still persists...

People are reporting camera issue in potter PE since june 21 build.Check this:
https://forum.xda-developers.com/g5-plus/development/rom-pixel-experience-t3995717/page100
It seems most likely to be an issue with the build
Since when are you using the module with potter PE?Was this issue there with builds before 21st june?

I was using it since April build... This issue was still there....

Camera works with module disabled right?
Can you send logs using matlog app of camera activity with module enabled and without it.

logcat_08-06-2020_15-00-07.txt
This is with Pixel props enabled. @ayush5harma


feat: add contrib folder

Thoughts on location, or on whether this is a good idea at all?

Is this for scripts using public APIs (i.e. GraphQL) only, or do you expect that some scripts are going to query the Postgres database or internal APIs, like stuff from src/backend/utils/misc/ does?
In the latter case I'd prefer for it to be located inside src/ and be written with TypeScript (even if with lots of any if authors are not experienced), for easier refactoring when internal APIs change.
In the former case, I don't care :)
Naming depends on what you have in mind here, do you assume that people (even if just you) will use this as a main way to store their code, or is this more like an example? I'd expect most people who are not you will want to store their code in their own repos.
PS: For providing examples there's a common practice to have an examples folder, e.g. https://github.com/vercel/next.js/tree/canary/examples.

Is this for scripts using public APIs (i.e. GraphQL) only, or do you expect that some scripts are going to query the Postgres database or internal APIs, like stuff from src/backend/utils/misc/ does?

This would be for scripts using our public APIs.

Naming depends on what you have in mind here, do you assume that people (even if just you) will use this as a main way to store their code, or is this more like an example? I'd expect most people who are not you will want to store their code in their own repos.

I'm assuming that people might want to do neat things with the Metaforecast api, and might want to share them back with other people, as in here.


New feature: TypeScript Svelte Apollo

There is currently no support for Svelte, I propose a plugin to create a Svelte context to handle the ApolloClient that supports TypeScript. There is nothing complicated at this point, with only two possible parameters:

loadGetClientFrom takes getClient from the file pointed to for use with the ApolloClient
exportOnlyFunctions remove exports for graphql documents, data types, input & output formats ; the generated file exports getClient, setClient, query, mutation & subscription functions.

I propose a PR in 3 commits:

Adding the plugin
Add the plugin to the global configuration
Add the plugin in the website

Edit: just pushed a complement for documentations. Hope you enjoy it !

The ticruz38 plugin doesn't meet Svelte's needs and his code is terrible, neither are the forks. They are all starting to get old, but the Svelte community is excited to use TypeScript and GraphQL more. All that's left is to convince you!

The plugin is dead simple, it basically wraps the query with the types needed. Apollo's watchqueries and Svelte then play together like a charm.
Have you tried it? What would you have done differently?

By reading the pull request, everything is pretty much the same, except you're not using watchQueries (they work really well with svelte reactivity).
You are using svelte context to bring the Apollo client, I'm not sure if this is really needed, you will run into problems when using this plugin with sapper/svelte-kit with SSR activated. It's also why you need svelte as a dependency to your plugin.

@karkael64 closing for now as we haven't heard back from you after @ticruz38 recent comment.
If this still doesn't solve your problem please feel free to comment here and reopen the issue and PR.
Also, regarding that, I wonder what Svelte developers think about the new near-operation-file-preset introduced in Codegen V2?
Would be great to hear your feedback about that.
Thanks!


Bluefin is susceptible to #24189

Due to the implementation of GHC's exception mechanism, catching under unsafePerformIO has a bad interaction with async exceptions. The issue and some workarounds are detailed in #24189.
A port of lexi-lambda's reproducer to bluefin:
{-# OPTIONS_GHC -fno-omit-yields #-}
{-# LANGUAGE BlockArguments #-}

-- base
import Data.Functor (void)
import Control.Concurrent (forkIO, killThread)
import Control.Exception (evaluate)

-- bluefin
import Bluefin.Eff (runPureEff)
import Bluefin.Exception (handle)

main :: IO ()
main = do
  let
    n = 200_000_000
    eff_thunk = runPureEff do
      handle (\() -> pure False) \_ -> do
        delay n do
          pure True
  eval_thread <- forkIO do
    void (evaluate eff_thunk)
  delay (n `div` 2) do
    killThread eval_thread
  print eff_thunk
 where
  delay :: Int -> a -> a
  delay n x = sum [1..n] `seq` x

This program terminates with an exception, but will conclude successfully if you comment out the redundant handle.

Thanks for reporting this intriguing issue. Below is the version of your script that I could make run.
To check my understanding, is the problem that the async exception thrown to eval_thread (by killThread) should eventually be raised to the body of the forkIO, and thus swallowed, but instead the exception somehow propagates to the main thread?

#!/usr/bin/env cabal
{- cabal:
build-depends: base, bluefin
-}

{-# OPTIONS_GHC -fno-omit-yields #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE GHC2021 #-}

-- base
import Data.Functor (void)
import Control.Concurrent (forkIO, killThread)
import Control.Exception (evaluate)

-- bluefin
import Bluefin.Eff (runPureEff)
import Bluefin.Exception (handle)

main :: IO ()
main = do
  let
    n = 200_000_000
    eff_thunk = runPureEff do
      handle (\() -> pure False) \_ -> do
        delay n do
          pure True
  eval_thread <- forkIO do
    void (evaluate eff_thunk)
  delay (n `div` 2) do
    killThread eval_thread
  print eff_thunk
 where
  delay :: Int -> a -> a
  delay n x = sum [1..n] `seq` x

% cabal run test28.hs
cabal-script-test28.hs: thread killed

effectful does not seem to suffer from this issue, though I haven't worked out why:
#!/usr/bin/env cabal
{- cabal:
build-depends: base, effectful-core
-}

{-# OPTIONS_GHC -fno-omit-yields #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE GHC2021 #-}

-- base
import Data.Functor (void)
import Control.Concurrent (forkIO, killThread)
import Control.Exception (evaluate)

-- bluefin
import Effectful (runPureEff)
import Effectful.Error.Static (runError)

main :: IO ()
main = do
  let
    n = 200_000_000
    eff_thunk = runPureEff do
      r <- runError do
        delay n do
          pure True

      pure $ case r of
        Left (_, l) -> l
        Right r -> r

  eval_thread <- forkIO do
    void (evaluate eff_thunk)
  delay (n `div` 2) do
    killThread eval_thread
  print eff_thunk
 where
  delay :: Int -> a -> a
  delay n x = sum [1..n] `seq` x

% cabal run test28.hs
True

Oh no, a subtle change shows that effectful does suffer from the issue, but I don't understand why that change makes a difference!
#!/usr/bin/env cabal
{- cabal:
build-depends: base, effectful-core
-}

{-# OPTIONS_GHC -fno-omit-yields #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE GHC2021 #-}

-- base
import Data.Functor (void)
import Control.Concurrent (forkIO, killThread)
import Control.Exception (evaluate)

-- bluefin
import Effectful (runPureEff)
import Effectful.Error.Static (runError)

main :: IO ()
main = do
  let
    n = 200_000_000
    eff_thunk = runPureEff do
      r <- runError do
        delay n do
          pure True

      pure $ case r of
        -- Difference here: we catch `()` and return `False`
        Left (_, ()) -> False
        Right r -> r

  eval_thread <- forkIO do
    void (evaluate eff_thunk)
  delay (n `div` 2) do
    killThread eval_thread
  print eff_thunk
 where
  delay :: Int -> a -> a
  delay n x = sum [1..n] `seq` x
``

% cabal run test28.hs
cabal-script-test28.hs: thread killed

Actually, the situation is weirder with effectful, because printing something before print eff_thunk makes it terminate correctly
#!/usr/bin/env cabal
{- cabal:
build-depends: base, effectful-core
-}

{-# OPTIONS_GHC -fno-omit-yields #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE GHC2021 #-}

-- base
import Data.Functor (void)
import Control.Concurrent (forkIO, killThread)
import Control.Exception (evaluate)

-- bluefin
import Effectful (runPureEff)
import Effectful.Error.Static (runError)

main :: IO ()
main = do
  let
    n = 200_000_000
    eff_thunk = runPureEff do
      r <- runError do
        delay n do
          pure True

      pure $ case r of
        Left (_, ()) -> False
        Right r -> r

  eval_thread <- forkIO do
    void (evaluate eff_thunk)
  delay (n `div` 2) do
    killThread eval_thread
  putStrLn "After killThread"
  print eff_thunk
 where
  delay :: Int -> a -> a
  delay n x = sum [1..n] `seq` x

% cabal run test28.hs
After killThread
True

The best I have been able to come up with is runPureEffAsyncSafe:
https://github.com/tomjaguarpaw/bluefin/blob/d6f8995632466d3ad00b8f96d5e271e2c01610b4/bluefin-internal/src/Bluefin/Internal.hs#L1322-L1368
The equivalent of your point of Alexis's example is at:
https://github.com/tomjaguarpaw/bluefin/blob/d6f8995632466d3ad00b8f96d5e271e2c01610b4/bluefin-internal/test/Main.hs#L44-L68
Then it runs as desired:
% cabal test all --test-show-details=always
[...]
Starting
Launching thread to evaluate Eff thunk
Child running
Killed thread evaluating Eff thunk
Forcing Eff thunk again
Eff thunk handling async exception
Killing child
Waiting for child
Child received async exception:
thread killed
Throwing to self
Eff thunk thread threw exception
Looping
Child running
Child terminated normally
Returning
True

Test suite bluefin-test: PASS

I think what happens, based on Alexis's explanation on GitLab, is that when the async exception arrives the go loop is suspended, and the next time the eff_thunk is forced the go loop is resumed.  I didn't find the need to wrap/unwrap body in unsafePerformIO/evaluate.  I'm not sure why. Perhaps because, as explained below, effBody runs in its own thread so we're not trying to share work.
body runs effBody in a thread of its own, which seems sensible because then it's completely immune from further async exceptions because no one knows its ThreadId[^1].  The downside is that its evaluation will have to be completely restarted if eff_thunk is forced a second time.  I don't think there's any way around that, other than wrapping every Bluefin catch in this special logic, which is probably prohibitively expensive, and certainly intolerably messy.
I have no idea if this is actually correct or just seems to work so it would be good to try to get confirmation somehow.
[^1]: With the exception of listThreads and other abstraction-violating primitives, which should probably be considered as dangerous as unsafeCoerce.

Oh, and it would be nice if I could have done that with an existing structured concurrency abstraction like async, but withAsync's use of catch suffers the same undesirable behavior, so it seems here we have to write our own.

Both the issue and the workaround are complicated and subtle.
I don't possess deep knowledge of the RTS so my own understanding is somewhat murky, but I'll try to clarify as much as I can.
The Issue
The issue can be broken down into two key points:

When catch receives an unexpected exception, it handles it by rethrowing it synchronously.
When delivering an async exception, the RTS suspends the thunks whose evaluation it cancels, such that subsequent evaluations can continue where these ones left off.

In the original reproducer, the first point interferes disastrously with the second, resulting not only in lost work but even an exploding update.
Working Around It
To craft a workaround, you just need to address these points—lets rederive lexi-lambda's solution.
Rethrowing Asynchronously
For the first point, we want an alternative catch to explicitly handle async exceptions by rethrowing them asynchronously.
rethrowAsync :: Exception e => e -> IO ()
rethrowAsync e = do
  me <- myThreadId
  throwTo me e

That looks good.
Now we want to write something like:
catchPreserveAsync :: Exception e => IO a -> (e -> IO a) -> IO a
catchPreserveAsync act h = catches act
  [ Handler h
  , Handler \(e :: SomeAsyncException) -> rethrowAsync e
  ]

But throwTo isn't non-returning like a regular throwIO, so it can't stand in for an IO a.
You might think that it really won't return so we can just force it with $> undefined, but that only applies to this evaluation—the thunk itself will still be updated to resume from here.
That suggests the next iteration:
catchPreserveAsync :: Exception e => IO a -> (e -> IO a) -> IO a
catchPreserveAsync act h = fix \reset -> catches act
  [ Handler h
  , Handler \(e :: SomeAsyncException) -> rethrowAsync e >> reset
  ]

But as lexi notes, a recursive call in the handler is implicitly masked; we want one last tweak to unmask it:
catchPreserveAsync :: Exception e => IO a -> (e -> IO a) -> IO a
catchPreserveAsync act h = mask \restore -> fix \reset -> restore $ catches act
  [ Handler h
  , Handler \(e :: SomeAsyncException) -> rethrowAsync e >> reset
  ]

Though imperfect, this is already a functioning workaround!
It doesn't prevent loss of work in the enclosing thunk, but it will at least avoid the bad update that threatens program correctness.
Conserving Work
Though catchPreserveAsync can't save the thunk in question, other thunks are fair game.
To leverage this, we just need a bit of indirection: instead of executing an IO action directly, we shove it into a thunk and evaluate it:
conserve :: IO a -> IO a
conserve act = evaluate thunk
 where
  {-# NOINLINE thunk #-}
  thunk = unsafePerformIO act

Now when catchPreserveAsync (conserve act) resets the thunk, it doesn't perform act all over again, it just continues to evaluate thunk!
At this point the rederivation is already complete; if you put these pieces together and inline their definitions you'll arive at something equivalent to what lexi wrote.
Solutions
Unlike their Control.Exception equivalents, bluefin's try, handle, and catch are expected to run under unsafePerformIO, so their implementation ought to account for its foibles.
The simplest approach is to give up on conserving work and just implement them in terms of catchPreserveAsync.
A more complete and adventurous option would be to use catchPreserveAsync . conserve.
However, conserve is essentially unsafeInterleaveIO'.
To render conserve safe it must be made much stricter, but this imposes an NFData constraint:
conserve :: NFData a => IO a -> IO a
conserve act = evaluate (force thunk)
 where
  {-# NOINLINE thunk #-}
  thunk = unsafePerformIO act

Very clear derivation, thanks! I wonder why we don't catch all exceptions in the second branch, i.e.
-- Not SomeAsyncException
Handler \(e :: SomeException) -> rethrowAsync e >> reset

It seems to me that is still correct (because it will do the correct thing on synchronous exceptions too) and safer (because throwTo does not require its argument to be a SomeAsyncException).
In any case, I think that's moot for Bluefin, since I'm happy with runPureEffAsyncSafe (unless someone can point out some reason the "separate thread" strategy is doomed).


encoding/openapi: support OpenAPI

This is a tracking Issue for any OpenAPI changes until most of it is completed. This includes:

Convert CUE to OpenAPI
Convert OpenAPI to CUE

This issue has been migrated to https://github.com/cue-lang/cue/issues/56.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.


Storing Strings

I am trying to create the code generation process for a compiler. I am able to do almost everything I need except to create a StringType.
I can create strings this way:
builder.buildGlobalStringPtr("Hello, world!\n", name: "hello-world")

But that creates a global string. I want to be able to set the a function parameters type to string like I can for an Int or Float. Am I just trying to go about this the wrong way?
Here is an example of what I would like to do:
FunctionType(argTypes: [StringType], returnType: FloatType.float)

I think a string is just going to be a pointer to the global [i8 x length], LLVM doesn't really have a notion of a string type

Feel free to ask any further questions in our slack


[Dev] Adds a getting started guide

Based on my discussions with @eessex on porting a JS component into RF.
@anandaroop please read this before we pair tomorrow 👍

Very nice, I can add some relay tips to this as well.

Updated docs, happy to have @broskoski add some relay notes too ( might even be worth it's own doc?)
Agree re: relay modern and CamelCasing, but right now that'd look really inconsistent with the rest of the app - so I'm happy to wait on that one 👍


GitHub Action: protoc: Use token to avoid API rate limits

We are seeing issues where the GitHub action arduino/setup-protoc@v1 fails due to an API rate limit:
Error: API rate limit exceeded for <IP_ADDRESS>. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

This change adds an API key to get around this.
Example:
https://github.com/openconfig/featureprofiles/actions/runs/3895957137/jobs/6651901328
https://github.com/openconfig/featureprofiles/actions/runs/3887341411/jobs/6633493259

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 45.603%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
586

Relevant Lines:
1285

💛  - Coveralls


Scala CLI: Error: java.io.IOException: Cannot run program "ps"

Version(s)
scala-cli 1.0.2
Describe the bug
When trying to edit a Scala CLI script using VSCode and Metals on NixOS, I keep getting this error:
INFO  Scala CLI: Error: java.io.IOException: Cannot run program "ps": error=2, No such file or directory

Running scala-cli compile on the command line seems to work fine. I think scala-cli is running the bloopMemory function in gcbenchmark.scala but the PATH is not correctly set up by either VSCode or Metals.
To Reproduce
Open any scala-cli script when running NixOS.
Expected behaviour
No error messages

@benwbooth, Can you provide some additional details? Did you build scala-cli locally? Have you encountered this issue in previous versions of scala-cli? Also, do you have gcbenchmark.scala file locally? Any extra information could help us identify the problem.
If you want to previous version of scala-cli, you should run:
scala-cli --cli-version 1.0.1 run .

I've identified the location where this error is thrown. It originates from the libdaemon-jvm library, in the following lines of code - https://github.com/scala-cli/libdaemon-jvm/blob/b38e380449041762063625e4bf57eafc342e1b0a/library/src/libdaemonjvm/internal/Processes.scala#L20.


Get rid of the [Function: JitterBuffer] output

On the start of every application using node-mumble [Function: JitterBuffer] gets printed into the standard output, I was however not able to figure out where it comes from, I guess it might be the node-jitterbuffer package.

New Jitterbuffer version should be in npm too.


Application following web flow for OAuth token receives 404 when proxied through Envoy

I'm seeing something very strange with an app that I'm testing out in a service mesh environment. Here's what the setup looks like:

App is deployed as a pod in k8s on AWS
Istio 0.4.0 is installed and is using envoy as the sidecar
Egress rules are applied so that the app can reach *.github.com over TLS
URLs in the code have been rewritten to follow the http://...:443 syntax

For reference you can assume that the service's code to get an OAuth token looks very similar to this. What's strange is that the exact same code using the same client_id, client_secret, and code (the one that GitHub gives you in the callback) works locally. I was able to verify this by spinning up the Python repl locally, copy and pasting the same code that was deployed to AWS into the repl, providing the client_id, client_secret, and code (I grabbed the code from testing the live deployment as part of my debugging), and executing it all. I got a 200 response along with the OAuth token.
As the title says, this exact same code and execution flow throws a 404 along with 404 Not Found back to the app. I guess you could say the code is not 100% the same as the local test I did since the URLs need to be adjusted for the egress (http://github.com:443/login/oauth/access_token instead of https://github.com/login/oauth/access_token for example).
Is there something that Envoy is not handling or is stripping out from these kinds of requests?

@aaronjwood your route rules are likely not setup correctly but it's hard to say without looking at configs. If this is via Istio, I might recommend asking for help from the Istio folks?

Sure, I'll reach out to them about this. I'll share my configs in this issue once I'm back on Monday too.

FWIW I'm only using an egress, no routing rules:
apiVersion: config.istio.io/v1alpha2
kind: EgressRule
metadata:
  name: github-egress
spec:
  destination:
    service: "*.github.com"
  ports:
    - port: 443
      protocol: https

Envoy should preserve any form data, headers, etc. that the app passes, right?

I've just confirmed that taking Envoy out of the equation solves the issue. Once Envoy is no longer in place and the URLs in the code are changed back to https://github.com/... everything works.

I spun up a local instance of Envoy and tested the OAuth flow manually via curl which worked. I pretty much followed this and modified the config:
admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address: { address: <IP_ADDRESS>, port_value: 9901 }

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: { address: <IP_ADDRESS>, port_value: 10000 }
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        config:
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match: { prefix: "/" }
                route: { host_rewrite: github.com, cluster: service_google }
          http_filters:
          - name: envoy.router
  clusters:
  - name: service_google
    connect_timeout: 0.25s
    type: LOGICAL_DNS
    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    hosts: [{ socket_address: { address: github.com, port_value: 443 }}]
    tls_context: { sni: github.com }

curl -d "client_id=MYID&client_secret=MYSECRET&code=MYCODE" -X POST http://localhost:10000/login/oauth/access_token

access_token=MYTOKEN&scope=read%3Auser&token_type=bearer

Routes are empty for my local test:
curl <IP_ADDRESS>:9901/routes
[
]

but for my Istio/Envoy test they're not:
{
"version_info": "hash_647cee278e53d1e3",
"route_config_name": "443",
"cluster_name": "rds",
"route_table_dump": {"name":"443","virtual_hosts":[{"name":"*.github.com:443","domains":["`*.github.com`","`*.github.com:443`"],"routes":[{"match":{"prefix":"/"},"route":{"cluster":"out.`*.github.com`|external-HTTPS-443","timeout":"0s"},"decorator":{"operation":"default-route"}}]},{"name":"public-api.adsbexchange.com:443","domains":["public-api.adsbexchange.com","public-api.adsbexchange.com:443"],"routes":[{"match":{"prefix":"/"},"route":{"cluster":"out.public-api.adsbexchange.com|external-HTTPS-443","timeout":"0s"},"decorator":{"operation":"default-route"}}]}]}
}

this looks like the egress for https issue. your best bet is to use includeIPRange
https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly
to not intercept outgoing traffic unless you are able to change the client to use http on port 443

I am able to change the client to do http over port 443. I have verified that the TLS handshake from Envoy to GitHub succeeds. Before when I hadn't changed the URLs to something like http://github.com:443/... I would get handshake errors.
A few small updates: I wrongly thought that I was using Istio 0.5.0 in my original deployment when it is in fact 0.4.0. Also, when I exec into the container where these issues are happening and try to curl any part of GitHub I get 404's. Why would Envoy spit back 404's at me for paths that actually exist (such as / on GitHub)?
curl -vv http://github.com:443
* Rebuilt URL to: http://github.com:443/
* Hostname was NOT found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to github.com (<IP_ADDRESS>) port 443 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.38.0
> Host: github.com:443
> Accept: */*
>
< HTTP/1.1 404 Not Found
< date: Mon, 26 Feb 2018 22:33:34 GMT
* Server envoy is not blacklisted
< server: envoy
< content-length: 0
<
* Connection #0 to host github.com left intact

yes you will get 404 for everything that isn't configured (ie without egress in this case, unless you use includeIPRange as mentioned above)

Are you saying that the egress isn't applied properly in my case? I do have an egress config installed in the cluster (I posted what it looks like a few comments above) so I would think it should work...

the curl is from your injected pod ?
I have a similar rule that does work:
https://github.com/istio/admin-sites/blob/master/fortio/fortio.yaml#L11
I don't use a wildcard but I think wildcard should work - just to be sure though, mind dropping the wildcard ?

Yup, that's right. I actually tried dropping the wildcard earlier today and instead added two entries, one for github.com and another for api.github.com. I saw the same result.

which istio version?

0.4.0.
FWIW when I tried out a local test with a standalone instance of Envoy (https://github.com/envoyproxy/envoy/issues/2670#issuecomment-368642900) I was using the latest version of Envoy.

I don't think egress was working in 0.4; can you try our 0.6 release candidate:
http://gcsweb.istio.io/gcs/istio-prerelease/daily-build/0.6.0-pre20180222-22-57-06/
download the TESTONLY tar matching your client OS

Thanks, I'll give this a try and circle back.

@ldemailly was egress only partially working in 0.4.0? I have another microservice that has an egress defined:
apiVersion: config.istio.io/v1alpha2
kind: EgressRule
metadata:
  name: adsb-egress
spec:
  destination:
    service: public-api.adsbexchange.com
  ports:
    - port: 443
      protocol: https

and it works:
curl -s -i http://public-api.adsbexchange.com:443/VirtualRadar/AircraftList.json | more
HTTP/1.1 200 OK
date: Mon, 26 Feb 2018 23:33:06 GMT
content-type: application/json
content-length: 4671861
...

what's the difference between where it works and where it doesn't ? (wildcard maybe?)

I tried without the wildcard. I guess the only other difference is that the request is a POST with some headers to accept JSON back. The request I just tried was a basic GET.
I spoke with @rshriram a little about this and he mentioned that Istio is not setting the SNI field. Sounds like that may be the issue...

@aaronjwood friendly request. Do you mind potentially moving this issue over to the Istio repo? I don't think this has anything to do with Envoy specifically.

@mattklein123 @aaronjwood suspects it has to do with envoy not providing the SNI field when it makes the TLS connection; if that's confirmed it is an envoy issue no ?

Istio needs to configure upstream SNI if that is the issue: https://www.envoyproxy.io/docs/envoy/latest/api-v1/cluster_manager/cluster_ssl "sni"

thanks matt ! we can possibly close this issue in favor of the above istio one,
we seem to send an empty ssl_context for external services so I guess that's one issue
https://github.com/istio/istio/blob/master/pilot/pkg/proxy/envoy/v1/testdata/cds-ssl-context.json.golden#L101
this being said, could we have an "automatic" mode where it uses the Authority/Host: ?
because for wildcard it will probably not work otherwise, would it ?

@mattklein123 Following https://github.com/envoyproxy/envoy/issues/2670#issuecomment-368726197.  For orig_dst clusters, we cannot set SNI since we don't know the host in advance. Can Envoy set SNI automatically according to the Authority/Host headers in case the "sni" field is omitted?

@ldemailly @vadimeisenbergibm because of how Envoy does connection pooling, setting SNI based on host header is not trivial. I think we could likely figure something out but it will require a bunch of thinking. I'm going to go ahead and close this issue out. Please open a fresh issue requesting setting SNI based on host/authority and we can discuss there.

@mattklein123 I have created an example of using Envoy with NGINX, to solve this and other issues: https://github.com/vadimeisenbergibm/envoy-generic-forward-proxy .  It shows how Envoy can function as a generic forward proxy,  generic means being a proxy for arbitrary hosts.
Any comments are welcome.


Constant Regex not recognizing legal constant

I'm sure this regex is standard, so I may not be following the normal rules for constant definition, but here's what I'm seeing based on the following constant.language.nss scope in nwscript-ee.tmLanguage.json -> "\\b[A-Z]+(_[A-Z]+)*(_[a-zA-Z0-9]+){0,1}(?!\\()\\b":
H2_BLEED_TIMER_SCRIPT -> Not a constant token (because of the 2 in the first group)
H_2BLEED_TIMER_SCRIPT -> Not a constant token (because of the 2 in the second group)
H_BLEED_2TIMER_SCRIPT -> Not a constant token (because of the 2 in the third group)
H_BLEED_TIMER_2SCRIPT -> Valid constant token (numbers allowed in this capture group)
Also, any constant that would otherwise meet the definition, but starts with an underscore (i.e. _H2_BLEED_TIMER) is also unrecognized.  Are these generally accepted rules (numbers nearly never allowed and underscores can't start), even though they're acceptable in nwscript?  If so, no bid deal, I'll work within the normal rules.  If not, can the regex be changed to reflect these limitations?
I don't know much about regex, but this seems to work (but again, as long as it's valid in the greater language context, which I'm no expert at):  \\b_*([A-Z])+([_a-zA-Z0-9])*(?!\\()\\b

Hey!
The constant tokenization for NWScript is a complicated problem, because the keyword const was introduced later on in the language and variable in the global scope without the const keyword can actually be treated as a constant - all the constants in nwscript.nss for example. If it was not the case, we could have just have a regex that detects the const keyword and pick the third capturing group as the constant name.
We need to be careful with this, because variables could be treated as constants and vice-versa.
I will try to tweak the regex so that it is more permissive.


[✨Feature Request] Support @hover in group-hover

Clear and concise description of the problem
First of all, thanks for the @hover experimental feature, as this is one of the main reasons I'm migrating.
However, I found that seems group-hover: does not support that.
None of group-@hover:, group:@hover:, @group-hover:, @group:hover: works for me.
💚
Suggested solution
group-@hover: or group:@hover:
Alternative
No response
Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the README.md of using the package.
[X] Already used the Interactive Docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Please see example in usage & test in #3235


sticky-conversation-sidebar : extend to repository home sidebar

note : this triggers only when the sidebar fits in the viewport height ( just like the conversation sidebar in issues and PRs ). this means that most repositories would fall out of that category because they have too many sections.

LINKED ISSUES:
resolves #3349

TEST URLS:
https://github.com/fregante/Awesome-WebExtensions

SCREENSHOT:
Add a screenshot here if your PR makes visual changes

@fregante : I went against your advice and tried to refactor clean-sidebar. Honestly, I was already into it by the time you commented to make it a new feature.
Take a look and see if it looks okay. Otherwise, I can pull it out and integrate it with hide-zero-packages.

No.

Don't push 2 unrelated features in one PR
Don't go against my advice, especially when the line you're about to change specifically says Magic. Do not touch.

Also I'd advice against force-pushing to PRs after reviews because it makes it difficult to follow changes

Don't push 2 unrelated features in one PR

My reasoning for pushing to the same PR was that cleaning up the repository sidebar would make more number of repositories to be work for this feature. You are right though, they seem unrelated when looking at it feature-wise.

Don't go against my advice, especially when the line you're about to change specifically says Magic. Do not touch. The DOM is completely different.

I am sorry about that. Like I said, I was already making those changes. And I wanted to get review whether what I was doing was right. Especially because I touched the magic line too. I tried to break my change to the magic line so much ( except on GitHub Enterprise ) but could not find it to break which lead me to believe it was fine. I tried both AJAX and non-AJAX page-loads.

Also I'd advice against force-pushing to PRs after reviews because it makes it difficult to follow changes. Merge commits are fine

I never change any commit that is already reviewed or looked at. The commit I was force-pushing was the latest one and it was only lint changes.
Finally, I have reverted the last commit from the branch, would you please consider re-opening this PR since the remaining changes are good for #3349?


Look into option to delete localdb on error boundary

Task Description
If an error happens that bubbles up to the error boundary, is it possible to clear local data and know the user was logged in?
Task Notes

if so show a dialog for users to do so with text

Sometimes this message occurs when remote results and results stored locally disagree, clearing local data may resolve this.
Note: this will not remove any data preprocessed by coinstac, but it will however no longer show in the UI. This data can still be found in your coinstac directory.```

@rssk is your reasoning that the error might bubble up because of some kind of malformed local state?
if so, where is this state located? local storage just appears to have a bunch of id_tokens

Its indexedDB by logged in i mean has had auth, but actually that doesnt matter, you can do this from webtools/the OS either way so it wouldnt prevent anything there

Inside of this function is where the delete needs to happen
https://github.com/trendscenter/coinstac/blob/master/packages/coinstac-ui/app/render/components/ErrorBoundary.jsx#L43

@rssk What information are we trying to delete? If it's not in indexedDB, do you have an idea of where it could be? I can search but I don't know what I'm searching for.

We also use https://www.npmjs.com/package/redux-persist-electron-storage

I dont know actually, I'd see where thats loaded to check, I think the data we're looking for is in the electron store however

We want this button to exist in the error boundary component.


Docker Monitoring error handling

@composit,
Looking at some errors w/the new Docker Monitoring Plugin. I'm seeing this one:

Excon::Errors::SocketError: 757: unexpected token at '404 page not found
' (JSON::ParserError)
/usr/local/share/gems/gems/scout-5.9.8/vendor/json_pure/lib/json/common.rb:155:in `parse'
/usr/local/share/gems/gems/scout-5.9.8/vendor/json_pure/lib/json/common.rb:155:in `parse'
Docker Monitor:80:in `parse_stats'
Docker Monitor:31:in `block in streamer'

I'm guessing either (1) it's not running a version of docker that supports the stats api (2) the stats api isn't enabled. We should check/return a better error message for this.

Added better error handling if API endpoint is unreachable: https://github.com/scoutapp/scout-plugins/commit/a7a2b2bc3347ae6cb8b33e479319c09f5963bebb


Kestrel extremly slow then eventually stops responding for PartsUnlimited app on Linux

This reproduces for both Mono and CoreClr runtimes 1.0.0-beta6-12032.

Clone the PartsUnlimited repo (https://github.com/Microsoft/PartsUnlimited.git)
Follow the instructions at https://github.com/jeremymeng/PartsUnlimited/blob/dev/beta5/docs/GettingStartedLinuxOSX.md to publish the site to some folder
Run the published Kestrel script
Access http://localhost:5001

The web site title is showing in the browser but the page remains blank, and the status icon keeps spinning.
If I use a text-based browser (e.g., links) I am able to see the page on the first request, but any later clicks would get request time-out. links only received 34 kB of data.
Below are the logs after the server starts
Started
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Diagnostics.Abstractions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
Information: [NuGetAssemblyLoader]: Loaded name=Microsoft.AspNet.Diagnostics.Abstractions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null in 0ms
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Http.Extensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
Information: [NuGetAssemblyLoader]: Loaded name=Microsoft.AspNet.Http.Extensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null in 0ms
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Mvc.Abstractions.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=null
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Mvc.Abstractions.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=null
Information: [LoaderContainer]: Load name=Microsoft.AspNet.WebUtilities, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
Information: [NuGetAssemblyLoader]: Loaded name=Microsoft.AspNet.WebUtilities, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null in 0ms
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Razor.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
Information: [NuGetAssemblyLoader]: Loaded name=Microsoft.AspNet.Razor.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null in 0ms
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Mvc.Razor.Host.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=null
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Mvc.Razor.Host.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=null
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Razor.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=null
Information: [LoaderContainer]: Load name=Microsoft.AspNet.Razor.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=null
Information: [ProjectLibraryExportProvider]: GetLibraryExport(PartsUnlimitedWebsite, DNX,Version=v4.5.1, Debug, )
Information: [LoaderContainer]: Load name=Microsoft.AspNet.PageExecutionInstrumentation.Interfaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
Information: [NuGetAssemblyLoader]: Loaded name=Microsoft.AspNet.PageExecutionInstrumentation.Interfaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null in 0ms

There are no errors in the logs. The only warnings are all
Warning: PDB generation is not supported on this platform

What version of kestrel?

1.0.0-beta5-11767
Do I have to upgrade the project to beta6?

If you want to get a new version of kestrel then yes.

I wanted to stay on beta5 to avoid dealing with breaking changes for now.  But https://github.com/dotnet/coreclr/issues/1002 seems only fixed in beta6 :(

This happens in dnx-mono.1.0.0-beta5-11781 too.

Running a different version of the DNX most likely won't make kestrel run any differently... That's why I asked about the kestrel version

I can't easily look into this issue becase the PartsUlimited app is still using all beta5 dependencies. If you can reproduce this issue with beta7 bits or beta8 nightlies please reopen.


Us-local/tvtv.us  Broken

Guide
https://iptv-org.github.io/epg/guides/us-local/tvtv.us.epg.xml.gz
Description
Ive not been getting any updates from any of the tvtv sources for 3 days.

Duplicate of #1106


Fix missing link in README.md

I've fixed the missing link in README.md .
The section #Building is not exist now.

I don't think the CI failure is due to this change.


Drop Python2 support

Do not merge yet!!
This pull request...

[x] Adds more classifiers
[x] Drops the last of our Python2 support
[x] Makes it so we don’t have to do compatibility checks
[x] Makes what OSs we support more clear also
[ ] Allows zombies to take over the world

Already, some of our code causes errors in python2 such as the f-strings, and I think that it’s better to fully support one platform rather than say we work on all platforms which we don’t.


App launcher ala rofi widget

How to use:
local app_launcher = require("bling").widget.app_launcher()
app_launcher:toggle()

@JavaCafe01 @Nooo37 This is almost ready now, let me know your thoughts

@JavaCafe01 @Nooo37 This is almost ready now, let me know your thoughts

@Kasper24 Unfortunately I cannot get this running :/. I also got the code from #129, but I'm getting that _private from icon_theme.lua is nil.

@Kasper24 This looks amazing! Picture for reference:


ci: Fix clang-tidy-diff (again)

the cause of this is that when we were checking out with a shallow checkout github creates a non-merge commit, so the comparison algo worked - it compared against the merge commit.
Switching to non-shallow checkout (to make clang-tidy work more generally and to avoid needing to unshallow in this case) meant that instead the comparison commit was the actual unmerged commit in a given PR - hence a lot more change
Fix #26743

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

i wasnt able to repro locally checking out the commit in the erring CI, so not sure if this will fix, but doesnt look like a bad change either

i dont think this fixes, attempting to debug further

done

pushing through to fix CI


Minor improvements to constructors and related tests

Some additional changes I was going to request in #325

For future reference: let the person who opened the PR merge the PR:) For example, in this scenario, I thinking if maybe I should add a few more tests for the constructors.


Cannot uninstall packages

Having trouble uninstalling packages.  I tried w/ --force and was able to remove the packages.

I think you may need to download a uninstall tool to force uninstall the packages.


Update to last Flutter version

In order to handle new Flutter version:

Update gradle plugin management (https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply)
Update Flutter new naming theme convention (https://stackoverflow.com/a/78518133/1140357)
Replace DioError by DioException as it is deprecated and will be removed in 6.0.0 version of Dio
Remove not maintained plugin material_dialog and uses the default dialog from Flutter (https://docs.flutter.dev/release/breaking-changes/dialog-border-radius)

Thank you for raising this PR. I'll be closing it as the main branch is already up-to-date with the changes you suggested. Appreciate your contribution!


Live Indicator

URL:
https://www.vidstack.io/docs/player/components/display/live-indicator
Describe:
There's no docs here yet and we were planning on having a component but it's not required. We don't need a component because the live attribute is exposed on the player so you can conditionally show/hide anything with CSS when it's present. We just need to document this and add an example.

Based on the following requirements this may be upgraded to an official component media-live-indicator:

Displaying icon conditionally whether we're at live edge or not.
Seek to live edge on press.


fix: mouse not working in terminal

Also updated the deprecated function nvim_buf_get_option to nvim_buf_get_option_value.
Fixes #72

Any feedback on this?
This fixes using the mouse to exit terminal mode and ensures the terminal window behaves normally.
Before this fix, it was impossible to view the full output generated by a command if it was very long.

@hankertrix thanks for the PR, I just tried it out and an error happens:
E5108: Error executing lua: ...ocal/share/nvim/lazy/hardtime.nvim/lua/hardtime/init.lua:43: attempt to call field 'nvim_buf_get_option_value' (a nil value)
stack traceback:
        ...ocal/share/nvim/lazy/hardtime.nvim/lua/hardtime/init.lua:43: in function 'should_disable'
        ...ocal/share/nvim/lazy/hardtime.nvim/lua/hardtime/init.lua:49: in function <...ocal/share/nvim/lazy/hardtime.nvim/lua/hardtime/init.lua:48>

My version:
NVIM v0.10.2
Build type: Release
LuaJIT 2.1.1732813678

Okay, I fixed the issue.

Okay I have updated the code.

I believe this should be resolved with the call to should_disable, which includes the disabled_filetypes.Let me know if I’m missing something.On 20 Dec 2024, at 3:47 PM, Max Shen @.***> wrote:
@m4xshen commented on this pull request.
In lua/hardtime/init.lua:

 vim.api.nvim_create_autocmd("TermEnter", {

    group = hardtime_group,

    callback = function()

       if config.disable_mouse then

          vim.opt.mouse = "nvi"

       end

    end,

 })

 vim.api.nvim_create_autocmd("TermLeave", {

    group = hardtime_group,

    callback = function()

       if

          config.disable_mouse

          and vim.api.nvim_get_option_value("buftype", { buf = 0 })

             ~= "terminal"

       then

          vim.opt.mouse = ""

       end

    end,

 })

Instead of only handle the case for terminal. We should also handle it for other filetypes in disabled_filetypes.
This one
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

I believe this should be resolved with the call to should_disable, which includes the disabled_filetypes. Let me know if I’m missing something.

Yeah, but TermEnter only occurs when the user enters insert mode in terminal. Therefore, should_disable is not called when the user enters a file type such as help.

Ah okay, I get what you want now.

I made the changes to the code so that the mouse is always enabled for disabled file types.

Thanks a lot for the PR!

You’re welcome!
Thanks for merging!


Explicitly check permissions

How can I explicitly check permissions without using annotations using PermissionsDispatcher ?

Relying on code generation and the annotation processor is arguably the cornerstone of PermissionsDispatcher's entire existence, so you won't gain much over the vanilla Android approach for Runtime Permissions if you don't use annotations.
If you absolutely need to know the state of a given permission imperatively, our generated code uses boolean PermissionUtils.hasSelfPermissions(Context, String…) to check if permissions are granted.

I would completely agree with you and as you said sometimes you have to know the state of a given permission imperatively and was just wondering if there is any way to do that PermissionsDispatcher so as to avoid writing a helper class.

Got it. You can use our PermissionUtils in that case, as mentioned above. We do reserve the right to introduce backwards-incompatible changes to its API in later versions, but the signatures should remain pretty stable at this point, I suppose.


INT-B-17922 - Deprecate INTERNAL PPM APIs

B-17922
Summary
INTEGRATION
Removing internal endpoints(PPM) no longer in use.
GET: /estimates/ppm:
operationId: showPPMEstimate
tags:
- ppm
GET: /estimates/ppm_sit:
operationId: showPPMSitEstimate
tags:
- ppm
Verification Steps for the Author
These are to be checked by the author.

[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Have the Agility acceptance criteria been met for this change?

Verification Steps for Reviewers
These are to be checked by a reviewer.

[ ] Has the branch been pulled in and checked out?
[ ] Have the BL acceptance criteria been met for this change?
[ ] Was the CircleCI build successful?
[ ] Has the code been reviewed from a standards and best practices point of view?

Setup to Run the Code

Instructions for starting storybook
Instructions for starting the MilMove application
Instructions for running tests

How to test
Best way to verify is to run client apps locally and go to the swagger page. The APIs will no longer be exposed.
http://milmovelocal:3000/swagger-ui/internal.html
GET: /estimates/ppm
GET: /estimates/ppm_sit

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

  Generated by :no_entry_sign: dangerJS against f946357d0fa8c70ca534eb58105c4b2d5e2bfbfc


Can I manually specify the binlog file and location?

In addition to deploying a standalone cascading replica database, can I restore an instance from a backup, then specify binlog files and locations for incremental synchronization. Finally build a simulation of the slave database synchronization.
FLUSH TABLE WITH READ LOCK This online database is not acceptable

Unfortunately the replica library requires a database connection. The only option available to avoid issues with the live database is to use a cascading replica

Okay, I got it

I'll add in the version 2.1 the possibility to run the init replica in a single transaction but this will work only for innodb tables. for the myisam the read lock is the only option to get consistent data

cool, all our tables are innodb engine, that does not matter.
When can I see this version? :)
2017-12-08 15:48 GMT+08:00 Federico Campoli<EMAIL_ADDRESS>
I'll add in the version 2.1 the possibility to run the init replica in a
single transaction but this will work only for innodb tables. for the
myisam the read lock is the only option to get consistent data
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/the4thdoctor/pg_chameleon/issues/48#issuecomment-350196753,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGvNtSrMmvMKRHp8JzY90hEiY61ZntMgks5s-OnhgaJpZM4Q6gYo
.

I haven't started the development yet. I will begin the new cycle when the 2.0 is out.
Probably by the middle of January 2018 there will be something.

Great, it's really cool !
2017-12-12 0:53 GMT+08:00 Federico Campoli<EMAIL_ADDRESS>
I haven't started the development yet. I will begin the new cycle when the
2.0 is out.
Probably by the middle of January 2018 there will be something.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/the4thdoctor/pg_chameleon/issues/48#issuecomment-350785062,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGvNtZJOgeXd_x5EbTGh2tKUZhTrWdKsks5s_V3vgaJpZM4Q6gYo
.


[Bug]: Game crashes after the 9/21/21 update

[X] read this document fully before sending the issue off.
[X] are running the latest commit from this repository clean without any modification.
[X] and I have installed all requirements for this project as required to run. (even if you have gdb/gcc/g++, you need at the least the version we have selected in the appropriate requirement installation commands in the README.)

What happened?
game crashing as soon as I inject the cheat
Relevant log output or backtraces.
No response

I cannot reproduce this issue, what distro are you running?

i'm having the same problem on manjaro

i'm having the same problem on manjaro

Just since last update? I'm fine on arch

yeah, since the last update

can you send me your config please? :D

yeah, since the last update

can you load the project with gdb -bd -ld, then when it prompts you to press c to continue, do it, then do c to continue again so we can catch the crash with gdb. Once we've got it do bt to get a backtrace and provide it in a pastebin please?

https://pastebin.com/PSPi2n54

doesn't look like you built as debug, can you make sure to do -bd instead of -b and do it again?

https://pastebin.com/gZknen7y

You ingame? thought u said it occurs on inject?

yeah, i replied like retard, it crashes in loading the map

You ingame? thought u said it occurs on inject?
It is happening will most of the cheats some crash on injecting some crash while changing settings I have tried yours and missedIT

I'm getting the same issue on Mint. It seems to occur on player render.
https://pastebin.com/WAWrWBhn

the linegoesthroughsmoke sig is outdated

just stop running linegoesthroughsmoke until lwss adds the sig to Fuzion for me to steal 😏

and how i can do that? :D

Use my fork, it's fixed.

its not brother

I fixed it you 混蛋

it literally crashes on the same thing

I fixed it you 混蛋

你妈妈是个汉堡包

操你，我会重命名我的叉子来瞄准

操你，我会重命名我的叉子来瞄准

闭嘴，你的训练软件很烂

polak 想成为编码员

I fixed it you 混蛋

它仍然不起作用笨蛋

操你，我会重命名我的叉子来瞄准

闭嘴，你的训练软件很烂

你的还在崩溃

just stop running linegoesthroughsmoke until lwss adds the sig to Fuzion for me to steal

How do I stop running it?

你的还在崩溃

瞄准软件总是比游戏落后两步

polak 想成为编码员

我在这里引用
"and how i can do that?

:D:D:D:D:D:D

Hi there
Welcome to my profile!
I am deox, coder from Czechia.  Go ask her... She screamed "Oh! Polak! Polak!"...

yeah yeah, i asked her, you are completely true

Yes bro...  She was very good at the sex

Yes bro...

@Nigma1337 is a real 1!

Yes bro...

I'm on arch, I have all the required packages. My game crashes as soon as a player is rendered

I cannot reproduce this issue, what distro are you running?

I'm on arch, I have all the required packages. My game crashes as soon as a player is rendered

Yeah you said it occurred on inject though, not on joining a game please be more specific next time, we know the issue now anyways, just remove the smoke check from the vis check until I can be arsed to update the sig

https://github.com/KittenPopo
:)

I cannot reproduce this issue, what distro are you running?

I'm on arch, I have all the required packages. My game crashes as soon as a player is rendered

Yeah you said it occurred on inject though, not on joining a game so please be more specific next time, we know the issue now anyways, just remove the smoke check from the vis check until I can be arsed to update the sig

I initially thought it was on inject because I would inject it while already having a player renderered. But yeah thx

linegoesthroughsmoke = 40 0F B6 FF 55


swipe page back onclick

Hello Framework7 team,
We can slide the last page back from left to right.
Is there a way to do this on click without the underlying page being reinit.
Kind regards,
Mario

Not needed anymore.
Kind regards,
Mario