A disposed Provider does not remove itself from the dependents of another provider during frequent updates

Describe the bug
When an autodisposed Provider is disposed on closing a page it is used in, while its value changes frequently causes the provider it depends on to keep the disposed provider as a dependent. This causes it to recompute its value even though it is not a dependency of any other provider or widget.
(More specific details in the Analysis section)
Riverpod version: 2.0.0-dev.5
Flutter version: 2.10.5
The app in the following minimal reproducible example shows an app that fakes loading data on the press of a "Go" button. However the loaded data depends on some other data, in this case the value of a counter, which can be be increased with a "+" FAB. The desired behavior is that the data is loaded only once it is viewed, and not when the counter changes while it is not being viewed.

To Reproduce

Run flutter create riverpod_bug, add flutter_riverpod: ^2.0.0-dev.5 to the dependencies in the pubspec.yaml and copy the following code from the minimal reproducible example into the main.dart

Expand minimal reproducible example
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

const totalProgress = 100;

final counterProvider = StateProvider<int>((ref) => 0);

final progressProvider = StreamProvider<int>((ref) async* {
  ref.onCancel(() => print('progressProvider cancel'));
  ref.watch(counterProvider);
  for (var i = 0; i <= totalProgress; i++) {
    // Sums to a total of about 2 seconds.
    await Future.delayed(const Duration(milliseconds: 2000 ~/ totalProgress));
    yield i;
  }
});

final progressCopyProvider = Provider.autoDispose<AsyncValue<int>>((ref) {
  ref.onDispose(() => print('progressCopyProvider dispose'));
  return ref.watch(progressProvider);
});

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const ProviderScope(
      child: MaterialApp(title: 'Riverpod Bug', home: HomePage()),
    );
  }
}

class HomePage extends ConsumerWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return Scaffold(
      appBar: AppBar(title: const Text('Riverpod Bug')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text('You have pushed the button this many times:'),
            Text(
              ref.watch(counterProvider).toString(),
              style: Theme.of(context).textTheme.headline4,
            ),
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => const LoadingPage(),
                  ),
                );
              },
              child: const Text('Go'),
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          ref.read(counterProvider.notifier).state++;
        },
        child: const Icon(Icons.add),
      ),
    );
  }
}

class LoadingPage extends ConsumerWidget {
  const LoadingPage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return Scaffold(
      appBar: AppBar(title: const Text('Loading')),
      body: Center(
        child: ref.watch(progressCopyProvider).maybeWhen(
              data: (i) {
                if (i == totalProgress) {
                  return const Text('Done');
                }
                return CircularProgressIndicator(
                  value: i.toDouble() / totalProgress,
                );
              },
              orElse: () => const Text('Else'),
            ),
      ),
    );
  }
}

Tap the "Go" button. A loading screen with a filling progress indicator appears.
Wait until the loading completes and tap the back button in the top left to go back to the home screen.
Tap the "+" FAB on the home screen and wait a few seconds.
Tap the "Go" button again. The loading screen appears again and loads starting from 0.

This is as expected because the progressProvider watches the counterProvider. And since the count changed, the loading needs to restart from scratch.
However most notably, the loading only starts once the loading screen is opened, because the progressCopyProvider is autoDispose and was disposed after the loading screen was closed previously. Therefore the progressProvider didn't bother reloading because no one was watching until now.

Tap the back button in the top left, before the loading completes.
Tap the "+" FAB on the home screen
One second later tap the "Go" button again.

Expected behavior

The loading screen should again start from 0 because the progressCopyProvider marked as autoDispose should have removed itself as dependant of the progressProvider after closing the loading screen during the loading. And since again no one is watching progressProvider, it should not have started the loading again.

Actual behavior

The loading screen opens while the progress was counting up already. (Or if you wait 3 seconds after pushing the "Go", the loading screen starts at "Done" already.)
This is because the progressProvider still thinks the progressCopyProvider is listening (even though it's disposed). And reran the create callback the moment the "+" FAB was pressed, because it has it dependency on the counterProvider.

Analysis
My search for the bug so far has shown that this happens because during the frequent updates in the loading screen, the AutoDisposeProviderElement of the progressCopyProvider is mounted and dismounted repeatedly. And when the back button is pressed, the _ProviderScheduler basically always calls _performDispose during a time at which the AutoDisposeProviderElement for the progressCopyProvider is not mounted. This causes the check at
https://github.com/rrousselGit/riverpod/blob/b1a7128fabe6862632899c8764ad396ad42f44e1/packages/riverpod/lib/src/framework/scheduler.dart#L79-L84
to continue and skip the provider because the !element._mounted is true.
The two prints in the providers also give some insight into this behavior. If the loading page is closed while done, first progressCopyProvider dispose and then progressProvider cancel is printed. If it is closed while loading, only progressCopyProvider dispose is printed a lot of times (during the updates).
If the const totalProgress = 100; at the top is set to for example 10, the problem does not happen, because the provider is mounted most of the time. (Maybe it sometimes happens if you get unlucky and press "back" just as an update comes in?)
I don't know what the actual root cause of this problem is. Should the provider even be dismounted and mounted every time the value changes? Should the scheduler only call _performDispose at a time where the provider is mounted? Or should the check omit the test for if the provider element is mounted?

Thanks a lot for the very detailed report! I'll investigate

It sounds like the _mounted check in the scheduler is completely unnecessary and is the one causing the problem.
Thinking about it, that _mounted check doesn't make sense as even if the provider is currently disposed of, we still want to remove its element

So I found a reliable way to reproduce the problem and fixed it.
This has revealed a separate issue unrelated to autoDispose.
Dependencies are cleared after the provider rebuilds. But if a provider isn't listened, the provider won't rebuild and therefore will not remove its dependencies.
This will require changing how dependencies are cleared, which is a big change.
That second issue will be fixed as part of https://github.com/rrousselGit/riverpod/issues/1253


Refactor replace_wildcard_variables

Refs #110 (https://github.com/adieyal/dynamicprompts/pull/110#discussion_r1400100634)
cc @mwootendev :)

Superseded by #114.


chore: Revert "feat: partial notes log encoding (#8538)"

This reverts commit 5f5ec2099782a64160c7b06ce2021d28c264e7e9.
Please read contributing guidelines and remove this line.

#8725
#8712  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @benesjan and the rest of your teammates on  Graphite


As a student, I would like to give each of my art works a medium or some sort of label

As a student, I would like to give each of my art works a medium or some sort of label

Students can add an optional artist comment.
Students can select one of the predefined media types or enter their own.
Closed in #142


Passing subscription queries to sources does not work

I'm trying to use mesh as a gateway, and I want the graphql-subscriptions to work as well as queries. There is a repo with my problem representation: https://github.com/germankrause/mesh-issue.
I'm getting an error: Cannot read property 'eventtest' of undefined in graphql-tools: generateProxyingResolvers function. It's trying to resolve payload[targetFieldName], but payload is undefined. I found out that payload is passed rootValue, so I've added it, and now I'm just getting null in the response data. Original source resolver is not even called
I've debugged it and have seen that mesh successfully build the schema using stitching algorithm, but in generateProxyingResolvers it builds non-working resolvers, so I get errors after the mesh bootstrapped when I try to run the subscription query.

@germankrause In source.js, it uses ApolloServer which uses deprecated subscriptions-transport-ws package;
See package.json; https://github.com/apollographql/apollo-server/blob/main/packages/apollo-server-core/package.json#L51
See the deprecation note: https://github.com/apollographql/subscriptions-transport-ws/#graphql-ws
Since Mesh uses the new graphql-ws protocol, you need to upgrade to graphql-ws manually. See https://github.com/enisdenjo/graphql-ws#recipes
And in your gateway.js, you are using express-graphql only which doesn't support subscriptions by itself. And you need to configure it in the same way.

@germankrause In source.js, it uses ApolloServer which uses deprecated subscriptions-transport-ws package;
See package.json; https://github.com/apollographql/apollo-server/blob/main/packages/apollo-server-core/package.json#L51
See the deprecation note: https://github.com/apollographql/subscriptions-transport-ws/#graphql-ws
Since Mesh uses the new graphql-ws protocol, you need to upgrade to graphql-ws manually. See https://github.com/enisdenjo/graphql-ws#recipes
And in your gateway.js, you are using express-graphql only which doesn't support subscriptions by itself. And you need to configure it in the same way.

@ardatan I've used graphql-ws on the gateway side, but nothing of the recipes work for my source, the best I've got there is Could not connect to websocket endpoint ws://localhost:3002/graphql (check source-with-graphql-ws.js in the repo). But still, with graphql-ws on the gateway, I get the same error Cannot read property 'eventtest' of undefined from the mesh. And it doesn't even send any request to the source, so it looks like the source implementation doesn't matter here, as schema to stitch stays the same.

@ardatan I've used graphql-ws on the gateway side, but nothing of the recipes work for my source, the best I've got there is Could not connect to websocket endpoint ws://localhost:3002/graphql (check source-with-graphql-ws.js in the repo). But still, with graphql-ws on the gateway, I get the same error Cannot read property 'eventtest' of undefined from the mesh. And it doesn't even send any request to the source, so it looks like the source implementation doesn't matter here, as schema to stitch stays the same.

@germankrause I'm facing a similar problem, did you manage to make it work?


linode-cli: 2.15.0 -> 5.0.1

linode-cli updated to 5.0.1. Works for me on NixOS x86_64.
Note: I've removed a patch that was blocking upgrade. It is working fine (for me) despite patch removal.

@superherointj Thanks!


[Compat] Advanced Tooltips - Hovering over Armor - results in Crash

When playing hovering over any type of armor with a modifier results in a crash due to "Unknown TooltipComponent"
crash-2023-02-06_18.27.42-client.txt
crash-2023-02-06_18.40.07-client.txt
crash-2023-02-06_18.41.02-client.txt
this seems to be the case for all modified Armor items Including: Helmet, Chestplate, Leggings, Boots
possible solution much aprreciated

Thanks for reporting, fixed with https://github.com/Globox1997/tiered/commit/aca317b23ed720b48a4cfbff76cc81398934b097


ICS consumer chain generation

TODO

[x] Add / remove ICS as expected with tags
[x] Add new 'staking' option. This feature is on by default but hidden

If ICS is used, then staking is disabled, removes all references for staking. \
Also remove Distr, Mint, etc.

[x]  Integrate Interchaintest w/ simple ICS test ( https://github.com/strangelove-ventures/interchaintest/pull/1088 )
[x] Add test_ics_node.sh instead of test_node.sh w/ Stide's provider hack
[x] CI: Run test_ics_node.sh for ics chain (matrix?)
[x] Speed up CI
[ ] Unit Test (ref: stride, neutron)
[ ] rename to ics_basic_test.go - see if we can abstract in setup.go so we can reuse standard test instead of new ones
[ ] Update to ICTest v8.3.0 + IBC  validation (from upstream ICT)
[ ] Local Interchain proper generation (remove default)
[ ] In UI, if ICS selected, deselect POA

Test Basic
make install && rm -rf testics1/
spawn new testics1 --disable=poa,tf,globalfee,packetforward,ibc-ratelimit,cw,wasm-lc,ignite-cli

spawn new chain1 --disable=ics
spawn new chain2

[ ] merge different ChainSepc array setups into 1. This way it can be used in all the test. Then just have the provider setup automatically. We just switch between Ethos, CosmosHub, and Saga (only allow 1 for an ICS chain, Hub default)
[ ] Local-Interchain have ICS be renamed to the normal file start testnet (For JSON generation, maybe have a struct instead of the raw JSON files. (we only bech32 convert wasm1 & wasmd info, so other networks like cosmoshub, neutron, ethos, are safe to support directly in the file)
[ ] Local-IC delete encoding-options which are not used (probably part of the above JSON builder)

TODO: push up ICS 4.1.0 with heighliner to confirm make template-ics and make template-staking's make ictest-basic function as expected


Rubycritic Results

Look at this report :
https://drive.google.com/file/d/0BwPktlS0QfnNQlB1ZjFJVTZaWDA/view?usp=sharing
for the improvements that can be made.

Thank you! I will close this issue as it is more of an enhancement but pull requests that improve the code are always welcome. :)

Code is very clever. I cannot help you there.


Improve issue templates

Improvements based on the information we actually require. Happy to make some changes to this if there are other thoughts.

LGTM. The python type ("e.g., Anaconda") might be useful in some cases but it's not critical for all reports.

Agree, if we find it to be a common requirement we can add it back


add case statement for on_skipped

Resolves #289

@raeyulca Great catch! Thanks for the PR. Merging.
We probably don't have some tests around this condition
@cirelli94 @alessandro-sorint Would you like to add some tests to check this case?

@sgotti I done the PR #302 with the test.
Can you accept my PR if it is ok? Thanks


API / use-cases

So after writing with @mallardduck on twitter I think it's better to discuss the API and use-cases here in an issue so all can see it.
For me it's far more important to provide a good DX and make app code really easier to read/understand than a real node.js path port. So it's totally fine for me to be an "opinionated/enhanced/inspired" port of that module but still a standalone package.
The package shouldn't have any dependencies, except mb-string.
And I think that the real public API should be thought/built around real use-cases/issues and not just a theoretical port of something.

Path Builder
One of the main things I would use this package for is path building - so a good path builder, in best case fluent, is like a must-have. In node.js that's the path.join() and path.resolve() part.
I would image a fluent API like the Laravel Str::of() but context-aware that it's all about paths.
Path::of('cache/')
  ->prepend(__DIR__)
  ->append(substr(hash('md5', $payload), 0, 2))
  ->append('/cache.json');
// /User/tom/git/app/cache/a5/cache.json

The resolve() could be part of it to reduce some dots:
Path::of('app/')
  ->prepend(__DIR__)
  ->append('../src/')
  ->append('./helpers.php')
  ->resolve();
// /User/tom/git/app/src/helpers.php

String Path vs Filesystem Path
There are things you only can do with a path if you know on which filesystem it is applied to. As we don't want to build another Flysystem we should limit, like PHP, to local.
An idea is to have two methods, classes, interfaces:

Path::of() - PathInterface
Path::local() - FilesystemInterface&LocalFilesystem

The two interfaces for the Path::local() are there to allow things like Path::ssh() in the future and keep it flexible.
While PathInterface absolutely and only does String manipulation/aggregation/interpretation the FilesystemInterface one can do things like realpath(), is_dir() or whatever.

Path parsing
Following the fluent API for building a path accessing the path info would be also great.
Path::parse($path): PathInfo;
Path::of($path)->info(): PathInfo;
Path::of($path)->dirname: string;

It could possibly even provide mimetype and so on by implementing symfony/mime.

@szepeviktor besides things like string|Stringable which is "the same" I haven't anything in mind accepting different types, yet.
I mean the whole package is all about, special, strings.^^

Path OS transformation
It's not possible to transform an absolute path between Linux/Windows as one uses multiple disks and the other one a single root folder with mounts.
But it's absolutely possible to transform a relative path - this could be combined with the Path::relative() to transform absolute paths with a given base.
Path::of('secrets/credentials.json')
  ->toWindows();
// secrets\credentials.json

Path::of(__DIR__.'/secrets/credentials.json')
  ->toWindows(base: __DIR__);
// secrets\credentials.json

It would be important for a great DX to have the toWindows() method also on the WindowsPath` object and vice versa.

Alright, so coming back to this with a bit of time - I've got some ideas on my own personal wish list for this library. And I want to start that based on my "issues" with native pathinfo.
Here are a few examples and notes on where native pathinfo falls short IMO:

No context on if path info was relative or absolute - so we can figure out our own logic.
Lacks delineation between file and folder paths - we could assume trailing DIRECTORY_SEPARATOR means it's meant to be a directory string path.
The following oddities:

var_dump(pathinfo('./dir/.also-dir/')); // pathinfo looses the trailing slash - as mentioned we can use that context.
var_dump(pathinfo('./dir/.also-dir')); // Not explicit dir, so OK with abiguous result, however, PHP defines anything after `.` as the extension.
var_dump(pathinfo('./dir/.bash_profile')); // Again, we can't assume anything about Dir vs file; but this path should not count as having an extension should it?
var_dump(pathinfo('/var/dir/.also-dir/')); // This has leading and trailing DirSep, so we can assume it's absolute and a directory.
var_dump(pathinfo('/var/dir/file.text')); // Almost same as previous, except we know it's a file.

var_dump(pathinfo('/var/dir/file.text'));

This could be a directory.

var_dump(pathinfo('/var/dir/file.text'));

This could be a directory.

Sorry, you're correct that it's ambiguous.
However I'd still say we can "assume" it's a file as it has an extension coming from pathinfo.
I guess to be more clear, the reason I'm concerned comes down to the examples Tom mentioned like appends.
Since appending a File vs Dir might be different. If it's a dir, append probably just goes on the end simply. But if it's a file, are we appending the extension, the filename, or the base directory?

Long time no talk...kinda feel into a pit myself, but slowly digging out.
Had this package in mind the other day as I was getting into my other projects.
The realization I had was that all OSes support / path separators, but only Windows accepts \.
This means that any application created paths can simply use / and windows will sort out the rest.
On the flip side, any OS provided paths (or path parts) will include windows \.
From the windows docs:

Canonicalize separators
All forward slashes (/) are converted into the standard Windows separator, the back slash (). If they are present, a series of slashes that follow the first two slashes are collapsed into a single slash.

https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats#canonicalize-separators
So as far as addressing the "OS-agnostic" aspects of this package this fact feels like a good one to work with. Given that Windows was already the "odd man out", this can be used to inform how we deal with it. For me at least it feels like good perspective to reset my original train of thought  on the package - which was too literal in porting NPMs concepts.


Contribute

I'd happy to contribute. I have been working on a similar module but using Certificates for seamless authentication.

Hi @FaganSC,
glad to hear that! I already noticed your Fork, nice.
Do you want to contribute with code? I am glad to receive your PR, e.g. if you want to add certificate support for authentication. As far as I've seen it, certificate authentication is only available for AD?
Best,
Matthias

Yea that would be helpful to write the contribute page. I haven't worked with the build and testing process your using so a little help getting setup would be great.
I have successfully setup several of the modules to connect using my setup with certificates and would be happy to add to your module.

Hi @FaganSC
I added the CONTRIBUTE documentation, do you want to have a look?
About certificate authentication: do you want to create a separate feature request for it?
Is it just available for Azure of for all services? Does it should be linked to #23 (user configuration file)?


Move the MRT reference app to the SDKs, so that we can verify eg. Node support

Review Instructions

Read and compare with the existing test app on https://git.soma.salesforce.com/cc-mobify/ssr-infrastructure
Check out this repository and initialize with npm ci.
Check the app starts correctly with cd packages/template-mrt-reference-app, npm start
From the repository root run GENERATOR_PRESET=mrt-reference-app node packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js --outputDir ~/ref-app
Do cd ~/ref-app, run npm start and check that the generated test app also starts correctly.

The last step – generating the test app – is what we're planning to use in our MRT Jenkins jobs in future!
Description
This app is what the MRT team uses to verify deploys in the Manager repository. It has lived here for the longest time, which is convenient for MRT, but has the downside that our test app is (1) hardly known beyond the MRT team and (2) very out of date.
We'd like to be able to collaborate better with platform users and we need to be able to write better tests of the interface between apps -> platform.
Essentially, when we run a CI job on Managed Runtime, we want to be able to do this:

# Generate a project, as an end-user would do!
npx pwa-kit-create-app --preset mrt-reference-app

# Deploy that reference app, as an end-user would do!
npm run push

# Verify that platform features work, for newly-generated projects, as an end-user would do
npm run tail-logs

#... etc, etc

Changes

Port the existing MRT reference app to the pwa-kit repo.

Is there any bureaucracy that must be bureaucraced in order to open source this code?

Is there any bureaucracy that must be bureaucraced in order to open source this code?

No, this would be similar to any other test-related additions. OK to open source by including in the repo with the usual copyrights/licenses as included in the PR

@olibrook The code all looks good to me. What do you think about deploying the app to MRT and running the e2e tests against it to ensure all the tests work as expected?
./scripts/run-e2e-tests.sh --url https://${smokeTest['endpoint']}.${storefrontDomain} --deploy-id ${deployId}

When I run the app locally the home page loads but there is an error in the console

@lizcross Thanks for taking a look! I have done the ./scripts/run-e2e-tests.sh step you recommended locally already. I'm working on getting that actually demoable on the ssr-infrastructure repository, too.
If you're curious to try, you can check out this line in ssr-infrastructure and try the same thing on your machine - https://git.soma.salesforce.com/cc-mobify/ssr-infrastructure/pull/905/files#diff-e6ffa5dc854b843b3ee3c3c28f8eae2f436c2df2b1ca299cca1fa5982e390cf8R162
(Note that the test on the other repo uses a hard-coded artifact at the moment, until we publish this SDK update to NPM. The hard-coded artifact was built with the generator that you just tested, here on this PR)

Is it possible to remove the loading screen from the app? It doesn't seem necessary. Or is that loading screen part of pwa-kit-runtime?

This part of the SDKs, we cannot – and I would argue do not want to – get rid of it. It isn't used on Lambda, so it can't affect tests.

Cannot read property 'compilation' of undefined

Great catch – thank you. I think this error is new, having merged with develop today. Investigating.... 👀

I deployed the generated app and I was able to successfully run the e2e tests (using scripts from sfci-main branch of ssr-infra)

@olibrook how would we generate the app with different node versions?

@olibrook how would we generate the app with different node versions?

@lizcross Great question. I've handled this on the ssr-infrastructure side, here.
I think it's a great idea to parametrize this in the generator, but I'd ask that we do this as a follow-up – the generator has a bunch of complexities that are new to me, given that on the SDKs side there are now multiple ways to configure the lambda version, and the method used varies from one template to the next.
(Basically, it can go into package.json or into a newer config file and we haven't standardized across all templates.)


Break out as-cell-summaries by as_3d_id

@bherr2
It has been requested that we share as-cell-summaries by as_3d_id, not by as_id (=UBERON term, which distinguishes between laterality but not sex). I think the part where we grab the UBERON ID from a collision rather than the PURL of an as_3d_id (e.g., http://purl.org/ccf/latest/ccf.owl#VHFemaleOrgans_VH_F_renal_column_R) is right here: https://github.com/x-atlas-consortia/hra-pop/blob/main/src/compute-as-cell-summaries.js#L30
Can you confirm?

Update via email: @bherr2 suggests different strategy.


ILDtkImportedLevel's OnLDtkImportLevel not invoked

I specified a level prefab for an LDtk file, and that prefab had a behavior that implemented the ILDtkImportedLevel interface, but its OnLDtkImportLevel function was never called. On the other hand, the same script also implemented ILDtkImportedFields, and its OnLDtkImportFields function was called.
I believe it can be fixed by swapping line 159 and line 162 of Editor/LDtkBuilderLevel.cs (though I've only briefly looked at the source code, so I'm not 100% sure).
Before:
if (addedFields)
{
    LDtkInterfaceEvent.TryEvent<ILDtkImportedLevel>(monoBehaviours, levelComponent => levelComponent.OnLDtkImportLevel(level));
}

LDtkInterfaceEvent.TryEvent<ILDtkImportedFields>(monoBehaviours, levelComponent => levelComponent.OnLDtkImportFields(lDtkFields));

After:
if (addedFields)
{
    LDtkInterfaceEvent.TryEvent<ILDtkImportedFields>(monoBehaviours, levelComponent => levelComponent.OnLDtkImportFields(lDtkFields));
}

LDtkInterfaceEvent.TryEvent<ILDtkImportedLevel>(monoBehaviours, levelComponent => levelComponent.OnLDtkImportLevel(level));

Yes, this is 100% an oversight that I've also caught wind of from another report on the discord server. I'm keeping tabs on it and the fix will be in a coming update. I'll let you know back here when the next update is released with this fix.
Also, expect lots of performance optimizations in the next update 🙂

Hi, this issue should be fixed from the new update from today. (3.1.0)
I'll close this, but if you have any additional issues about this then feel free to reopen 🙂


Fix EventHubs live tests

Incorrect syntax for environment variable in client.live.yml resulted in the tests being unable to parse connection string
Fixing some null pointer exceptions in tests when cleaning up test run.

Can one of the admins verify this patch?


convert jade to pug

npm WARN deprecated<EMAIL_ADDRESS>Jade has been renamed to pug, please install the latest version of pug instead of jade

+1


#35 Create user service, user own security service, user own security controller

Are you sure it should be master branch?


Add environment specific index.html files

Is this a bug report?
No
This is a feature request for environment specific index.html files, much like .env does
As a user of create react app, I would like to create environment specific index.html based on NODE_ENV.
For example:
index.development.html
index.staging.html
index.production.html
An example of where this would be useful:
We load in a dynamically generated global variables that are environment dependent. Since we can't do conditional logic in the index.html file, I thought this might be another option. The global variables method I am using is noted here in the documentation: https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#using-global-variables

This sounds like a concern of your web application serving index.html, we don't offer anything to help you serve a index.html based on environment nor have any plan to generate multi-environment files after a build.
Good luck!


[docs] Update dev guide with steps for running operator directly with Go binary

The development guide says that the operator can be run directly from the Go binary, but no instructions are provided.
It would be great to provide step-by-step instructions on how to do this.
Thanks
John

PR #50 has been merged so I am closing this.


Add dart to the list of language identifiers

It looks like the spec defines language identifiers:

In the specification, each text document has a unique specific language identifier. The following table lists all currently defined language identifiers:

I don't know what the implications of not being on that list are, but I'm working on LSP support for the Dart analysis server so it seems like maybe it should be on the list?
(it may also be worth documenting the implications of being/not being on that list in the docs)

@dbaeumer Thanks!
I think it'd be worth adding a note to the docs about the implications of not being on that list. I was already using dart as a language identifier in testing with seemingly no issue, so I wasn't really sure what it actually does :-)

I already did that. I made it clear that this is a suggestion but not being in that list is not a spec violation.

Perfect, thanks!


[request] ls command for functions and APIs

Is your feature request related to a problem? Please describe.
it can be hard to find the functions and API paths already available - would be nicer to just list it in a CLI command
Describe the solution you'd like

amplify function ls
amplify api ls

Describe alternatives you've considered
have users dig thru json files to figure it out

tagging @dabit3

@sw-yx this works today with amplify status is there a reason you prefer ls?

@brene status does indeed list the functions, but I think the main ask here is surfacing the API endpoints and the paths associated with each endpoint.

what he said. basically if i need to use it in my code (eg API.get https://github.com/aws-amplify/docs/issues/1969 ) then i'd like to pull it up easily without digging thru a pile of json and nested folders

Agree with @sw-yx . This command will be of good help. Usually I name API-s with *Api and Lambdas with *Lambda and do a grep with status command: amplify status | grep "Lambda"

Closing as this has since been released. To list statuses for functions or other categories, run amplify status function or amplify status <category>


Feature update email domain

Changing the email domain had no effect previously if an anonymous user was already generated. We fixed that now so that a new email is generated with the new email domain and the user is updated to use the new email.

Codecov Report

Merging #51 into master will increase coverage by 0.48%.
The diff coverage is 95.71%.

@@            Coverage Diff             @@
##           master      #51      +/-   ##
==========================================
+ Coverage   85.42%   85.91%   +0.48%
==========================================
  Files          25       25
  Lines        1489     1455      -34
==========================================
- Hits         1272     1250      -22
+ Misses        217      205      -12

Impacted Files
Coverage Δ

Gini-iOS-SDK/GINIUserCenterManager.m
95.59% <95%> (-0.38%)
:arrow_down:

Gini-iOS-SDK/GINISessionManagerAnonymous.m
97.29% <96.66%> (+0.74%)
:arrow_up:

Gini-iOS-SDK/GINISessionManagerServerFlow.m
30.95% <0%> (-3.79%)
:arrow_down:

Gini-iOS-SDK/GINISessionManagerClientFlow.m
55.88% <0%> (-2.26%)
:arrow_down:

Gini-iOS-SDK/GINIDocument.m
74.28% <0%> (-2.19%)
:arrow_down:

Gini-iOS-SDK/NSString+GINIAdditions.m
92.1% <0%> (-0.92%)
:arrow_down:

Gini-iOS-SDK/GINISessionManager.m
65.33% <0%> (-0.61%)
:arrow_down:

Gini-iOS-SDK/GINIInjector.m
96.47% <0%> (-0.44%)
:arrow_down:

Gini-iOS-SDK/GINIKeychainManager.m
98.38% <0%> (-0.17%)
:arrow_down:

... and 14 more

Continue to review full report at Codecov.

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


Allow user to select runtime image

Summary
Closes: https://github.ibm.com/IBM-Q-Software/provider-planning/issues/4
Allow user to select runtime image
Details and comments
Added new optional field runtime in provider.runtime.run(...) to specify the runtime image used to run the program.
Added new field runtime in RuntimeJob

Would it be useful to add an integration test for this in test_runtime_integration.py?

Only select accounts have access to choose a different image though, so the test would not work for most people. Also there is no guarantee what images are available. There's also no way to query the images (it's a very beta feature still)


chore(main): release 1.0.2

:robot: I have created a release beep boop
1.0.2 (2024-11-25)
Bug Fixes

ci: add prepublishOnly to run build before publish (b4796ae)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.0.2
:sunflower:


[typescript-resolvers] Allow passing parent types to Resolvers

Problem
We use this wonderful tool together with @graphql-utilities/schema to generate type safe mocks for our UI component stories. In those stories, we've given developers the ability to mock the GraphQL schema by passing in resolvers. These resolvers might have different parent types depending on what the developer is presenting in the story. At the moment, it's only possible to generate resolver types with specific parent types or overridable parent types via allowParentTypeOverride. Unfortunately, this means that each resolver needs to have types added, though. Also, allowParentTypeOverride is just for the generics and doesn't change the valid types that can be returned from a resolver and one might want to return a different type like when using mappers.
Solution/Request
It would be great if when using Resolvers we could pass ResolversParentTypes. It would look something like this:
const resolvers: Resolvers<Context, { User: { id: string } }>

Internally, Resolvers would replace the parent types given and fall back to the current behavior when a type is missing. This could be done like this:
type Resolvers<TContext = Context, TResolverParentTypes = ResolverParentTypes> = {
  // ...
  User?: UserResolvers<TContext, (Omit<ResolverParentTypes, keyof TResolverParentTypes> & TResolverParentTypes)['User']
  // ...
}

A similar change would be needed for type resolvers where the mappers are also able to be inferred from this second generic of Resolvers

At the moment we have to use defaultMapper: any and then manually import <TypeName>Resolvers so that we can pass our own custom parent type. Ideally we can just leave the default defaultMapper and just import Resolvers and pass the parent type map as the second generic to Resolvers

@migueloller this sounds like a very useful idea. What do you think about creating a PR?

@dotansimha, I've been meaning to respond to this for a while now. Sorry for the delay! I would love to contribute with a PR, but unfortunately I'm quite busy at my job right now.


Renewed certificates are not reloaded by nginx-ingress

File a PR against nginx-ingress-controller

Until this is fixed, is there a known way to manually force nginx to reload renewed certs?

@devth I think it works for me with my custom built image: simonswine/nginx-ingress-controller:0.0.2
But it's not yet merged to the upstream nginx-ingress-controller

@simonswine cool, thanks! Is there a PR I can subscribe to?

Never mind, found it! https://github.com/kubernetes/contrib/pull/1063

@simonswine fixed and available in gcr.io/google_containers/nginx-ingress-controller:0.8.1

0.0.4 contains supports upstream nginx and reloads correctly


Cmake improve

Generate appropriate CppUTestConfig.cmake files so find_package works properly.
After installing CppUTest (using cmake) under one of the predefined default locations other projects may find it by calling find_package(CppUTest). After successful call variable CppUTest_INCLUDE_DIRS should be initialized with path to CppUTest headers and CppUTest_LIBRARIES variable should be initialized with appropriate targets to link with, e.g.
find_package(CppUTest  REQUIRED NO_CMAKE_PATH)
include_directories(${CppUTest_INCLUDE_DIRS})
# ...
target_link_libraries(my_tests ${CppUTest_LIBRARIES})

If you wish to use CppUTest installed under non-standard location use CppUTest_DIR variable to point out directory with appropriate CppUTestConfig.cmake file. It is usually installed under <install_prefix>/lib/CppUTest/cmake path, e.g.
set(CppUTest_DIR "/opt/weird_path/lib/CppUTest/cmake")
find_package(CppUTest  REQUIRED NO_CMAKE_PATH)
include_directories(${CppUTest_INCLUDE_DIRS})
# ...
target_link_libraries(my_tests ${CppUTest_LIBRARIES})

You may also use CppUTest without installation. Just point out CppUTest_DIR variable to the directory where CppUTest was built (it's CMAKE_BINARY_DIR) before calling find_package.
Last option is to build CppUTest together with your project. Put CppUTest source code under subdirectory of your own project (e.g. using git submodule) and add that directory to build using add_subdirectory command. You may set CppUTest configuration variables before that, e.g.
set(MEMORY_LEAK_DETECTION OFF)
add_subdirectory(ext/CppUTest)
find_package(CppUTest  REQUIRED NO_CMAKE_PATH)
include_directories(${CppUTest_INCLUDE_DIRS})
# ...
target_link_libraries(my_tests ${CppUTest_LIBRARIES})

Both linux and windows build failed though...

Good. Let me give @martiert and @arstrube some time to comment on this still.

I like the patches. Makes it a lot more pleasant to work with cpputest in this manner :)

It would be nice to have the "how to" bits on cpputest.github.io...

@basvodde my knowledge of Cmake is quite sketchy and I don't normally use it, so if you and @martiert like it, that's plenty good enough for me :)


update community meeting time with office hours and update communication page

/assign @qiujian16

/approve
/lgtm


Face_Detection using Open Cv

I want to contribute to your project by adding Face and Eye detection part with the help of Opencv and Python
In which it can detect the face, eye, and middle part of the face with the use of open cv and Python
@Niketkumardheeryan Kindly assign this issue to me under the label of LGMSOC'21

@anubhav201241 someone is working on this issue...


feat(FlowLayout): Add option for left-to-right align

Contains
Summary
Enhancement of FlowLayout: option to change the left-to-right align of included items that it has, to a right-to-left align.
Additions
Added a variable named rightToLeftAlign, by which the module chooses which type of aligning to use at its FlowLayout.
Before the use of rightToLeftAlign
Before reaching the presented changes, I had changed the code as for it to apply only left-to-right alignment. Afterwards, I incorporated the boolean and combined the before and after. Seeing the merged version right away might be tricky to get what is for which alignment, thus, you can check:

left-to-right  code here:
https://github.com/MovingBlocks/Terasology/blob/7a86cd19a2f436740c87513166a58acf091897f7/engine/src/main/java/org/terasology/rendering/nui/layouts/FlowLayout.java#L65-L80
right-to-left code here:

public void onDraw(Canvas canvas) {
        int filledWidth = canvas.size().x;
        int filledHeight = 0;
        int heightOffset = 0;
        for (UIWidget widget : contents) {
            Vector2i size = canvas.calculatePreferredSize(widget);
            filledWidth -= size.x;
            if (filledWidth != canvas.size().x - size.x && filledWidth < 0) {
                heightOffset += filledHeight + verticalSpacing;
                filledWidth = canvas.size().x - size.x;
                filledHeight = 0;
            }
            canvas.drawWidget(widget, Rect2i.createFromMinAndSize(filledWidth, heightOffset, size.x, size.y));
            filledWidth -= horizontalSpacing;
            filledHeight = Math.max(filledHeight, size.y);
        }
    }
}

Basically:

anchor point of first item in a row

left-to-right anchor point is 0
right-to-left anchor point is the canvas width minus the widget length

wrapping

left-to-right wraps up when the widget's width exceeds the remaining space at the row
right-to-left wraps up when the next widget's anchor point is below 0 (can't start from outside the FlowLayout!)

How to test

Check https://github.com/Terasology/LightAndShadow/pull/141
Start a LAS game
Notice the quickslot's items (should get the 1st result screenshot below)

or if you don't want to test it with LightAndShadow, you can:

Find a .ui file that uses a FlowLayout - in which are added at least 2 items/widgets
add the line "rightToLeftAlign": true, right below the line "type": "flowLayout",
run the module you applied the changes at, and check that flowLayout's included item's aligning. Result should be that items are added from right-to-left instead of the original left-to-right

Outstanding before merging
I am not that fond of how many times I check if rightToLeftAlign boolean is true, but I wanted to avoid repeating the rest of the code as much as possible.
Result

Updated the description to switch right-to-left and left-to-right.
The original alignment is left-to-right: WidgetA -> Widget B -> Widget C
The new alignment option is to change this to right-to-left: Widget C <- Widget B <- Widget A


Informational messages appear off screen on mobile

Describe the bug
Informational messages (toasts) appear offscreen when using a mobile. Likely due to the absolute positioning getting confused with the browser bar at the bottom.
To Reproduce
Steps to reproduce the behaviour:

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

Expected behaviour
The messages should appear.
Screenshots

Smartphone (please complete the following information):

Device: Google Pixel
OS: Android
Browser Edge

Related #8


Fixes compatibility for Symfony 3.0

In Symfony 3.0, scopes and the 'request' service have been removed.
This commit fixes that while preserving BC.

thanks!

@docteurklein Would it be possible to create a new version tag with the fixes up to this moment? That way we would be able to incorporate the new fixes.

@tobias-93 I'll do that ASAP.

Ping @docteurklein

done: 1.3.0

Thank you!


[INLONG-7392][Sort] Refactor Doris single table to solve performance issues

Fixes #7392

Motivation
Currently, Doris single table has low throughput (1700 records/s, where it should be 50000). I need to ensure that its performance is good enough.
The cause of the issue is because Doris multiple logic and single table logic are not actually compatible. Instead of doing a huge modification on the base class, I choose to make them into two separate classes, so the logic is simpler in each of the two classes.
Modifications
To fix this issue, I am isolating single and multiple logic for Doris, and refactor the internal logic for doris single table. DirtyHelper, Inlong metric and etc. are still being kept.

create DorisSingleOutputFormat to handle single table logic without repeated access to the single identifier in batchmap
create relevant interfaces and builders based on multipleSink, so that DorisSingleOutputFormat is used instead of DorisDynamicSchemaOutputFormat when handling single table logics
remove single table logic processing from DorisDynamicSchemaOutputFormat*

comment: this fix is unnecessary. could have been a one-line fixer.


[Question] Troubleshoot NIC connection speed between nodes

Hi,
I'm pretty new to Harvester, currently only trying to have a quick setup to evaluate it with a 3 nodes cluster. Each node has a 2x100 Gb network card (Intel E810), but when trying to setup a 2 VM on 2 different nodes, I can only get 10-11 Gb connection speed between (with VirtIO adapters)
What is the correct way to troubleshoot NICs on Harvester ? Is there a way to test physical link speed at the node level ? I usually use iperf (multithreaded) but here Harvester seems to have a very different way to handle the physical NICs (which is pretty logical as there are some features added on top of them)
Thank you!

Some complementary information : my idea would be to conduct some tests for the real base link speed (as with iperf for example), but from the node themself and not the VM (to avoid any other issue).
For what I've read Intel E810 cards can sometimes be slow with the kernel default driver (which can be upgraded with the Intel ICE version), but here we are 10x less. Also sometimes there can be hardware issues,  especially at this 100Gb/s speed (switch, bad DAC cable or adapter, ...)
Right now I checked with Ethtool, and my cards are UP and negociated a 100000Mb speed (which is fine).
So now my idea would be to further test with a node to node connection test

cc @mingshuoqiu
@ctft1 I'd Are you running VMs with the default management network (that is, no VLAN involved)? If yes, I'd try iperf to test the pod network https://www.suse.com/support/kb/doc/?id=000020954. The pod network is an overlay network build with flannel (VxLan), there is some overhead due to encapsulation. But I don't feel the performance should degrade so much.

The management network was orignilly setup with an additional RJ45 (1Gb) NIC, so no.
The VMs are connected through an UntaggedNetwork configured as a Cluster Network only with 2 NICs (1 NIC for each node) at the moment. But as I know there may be some specific issues with this additional config, that's why I would prefer to ensure the network can reach it's full speed at the node level.
Right now I removed some other Network Cluster config (to get back the 100Gb NIC as "master" (not SLAVE), then added an IP address for those 2 nodes. I can ping, but it seems iperf was removed from the default tools (and I cannot install it as the OS is mounted as read-only if I'm right)
Maybe iperf was replaced with another tool ? Or maybe there are some diag tools for this on Harvester ? (I'm running v1.3.0

iperf3 is good enough.
Since there will be a software bridge for each Cluster Network, I'll suggest to test the end-to-end traffic between the Node first to verify the network speed of the physical layer.
If the throughput looks good, then we can verify the speed between nodes to see if there's any overhead introduced.
Please share your network topology between nodes with us, we'll try to find out the bottleneck.

@ctft1 iperf is not shipped with the OS, and it's not easy to install it because it's an immutable system. You can try use a toolbox container: https://harvesterhci.io/kb/package_your_own_toolbox_image/

Thank you both. I totally agree that I should first check at the lowest lovel (node)
What I also did is bypassing the PCIE NIC cards to the VMs. That's not perfect as I guess there is still some overhead / different interrupts management / ... but it gave me an idea that something may be wrong with the NIC config or even hardware setup as I cannot go over 35 Gbit/s with 1500 MTU , and ~45 Gbit/s with 9000... This also allowed me to test with the Incel ICE driver (not the kernel one) but this is almost the same bandwidth
That's great for the toolbox container, I will try this solution ASAP, as it would be the correct way to process directly from the node.

I have a newbie question: I created my Toolbox Dockerfile as ddescribed here https://harvesterhci.io/kb/package_your_own_toolbox_image/
When i the Dockerfile dir and triying to run docker build -t harvester/toolbox:dev .
I'm getting either :
As non-root user:
WARN[0000] environment variable XDG_RUNTIME_DIR is not set, see https://rootlesscontaine.rs/getting-started/common/login/
WARN[0000] environment variable XDG_RUNTIME_DIR is not set, see https://rootlesscontaine.rs/getting-started/common/login/
WARN[0000] environment variable XDG_RUNTIME_DIR is not set, see https://rootlesscontaine.rs/getting-started/common/login/
WARN[0000] environment variable XDG_RUNTIME_DIR is not set, see https://rootlesscontaine.rs/getting-started/common/login/
FATA[0000] rootless containerd not running? (hint: use `containerd-rootless-setuptool.sh install` to start rootless containerd): environment variable XDG_RUNTIME_DIR is not set, see https://rootlesscontaine.rs/getting-started/common/login/

As root user (sudo -i):
ERRO[0000] `buildctl` needs to be installed and `buildkitd` needs to be running, see https://github.com/moby/buildkit  error="3 errors occurred:\n\t* failed to ping to host unix:///run/buildkit-k8s.io/buildkitd.sock: exec: \"buildctl\": executable file not found in $PATH\n\t* failed to ping to host unix:///run/buildkit-default/buildkitd.sock: exec: \"buildctl\": executable file not found in $PATH\n\t* failed to ping to host unix:///run/buildkit/buildkitd.sock: exec: \"buildctl\": executable file not found in $PATH\n\n"
FATA[0000] no buildkit host is available, tried 3 candidates: 3 errors occurred:
        * failed to ping to host unix:///run/buildkit-k8s.io/buildkitd.sock: exec: "buildctl": executable file not found in $PATH
        * failed to ping to host unix:///run/buildkit-default/buildkitd.sock: exec: "buildctl": executable file not found in $PATH
        * failed to ping to host unix:///run/buildkit/buildkitd.sock: exec: "buildctl": executable file not found in $PATH

Is there a first step to complete before running this Docker command?

@ctft1 If you have another machine that runs Docker, you might want to build the toolbox image there instead of directly on the Harvester node. After the container image is constructed and pushed, run the container (the docker run command) on the Harvester node to start the diagnosis.

Thank you! I could create my container and run it from the node. I just have a question about the network. I've seen I can use "--network host" or "--net=host" params when running the container to make the container use the host connection.
Does anyone know if there is some overhead for that, or is it a kind of direct pass-through? (it's important to understand this point as I plan to run network bandwidth tests)

It's a direct pass-through and I think the overhead should be minor.

Ok perfect, thank you, that was helpful to be able to perform iperf tests. I finally found the speed issue was related to a modified BIOS parameter ("memory interleave" had been disabled)

Ok perfect, thank you, that was helpful to be able to perform iperf tests. I finally found the speed issue was related to a modified BIOS parameter ("memory interleave" had been disabled)

@ctft1 Thanks for sharing the cause! @mingshuoqiu we can collect tips like this to KB articles.


iOS7 Safari Scrolling

Scrolling down a page, turning the phone landscape, portrait, tends to lag the browsing, to a point where you cannot scroll up or down at all.
Has anyone come across this before and is there a solution?
Thanks,

I'm having the same problem on iOS7 safari. Anyone have any ideas?

Does this happen on the skrollr website as well for both of you?


Query tab cannot be disabled on Docker

I'm running Puppetboard v3.4.1 using the official docker container running on Kubernetes using a home-made helm chart.
I wanted to disable the Query tab using the "ENABLE_QUERY" environment variable but it does not work because the docker_settings.py file does not handle the variable as a boolean like other variables like OFFLINE_MODE or ENABLE_CATALOG (using the coerce_bool function).
The fix should be easy, I can try to provide a PR.

Thanks for the fix @ldumont! It has been released in v3.4.2 a moment ago.


AzureStaticWebApp@0: Preview environments are named merge when task is used inside build validation

Current behaviour
I have a static web app and using AzureStaticWebApp@0 in order to deploy each pull request in my Azure DevOps Repo separately. The pipeline file to do this looks very basic:
name: Deploy static web app

jobs:
- job: build_and_deploy_job
  displayName: Build and Deploy Job
  pool:
    vmImage: ubuntu-latest
  variables:
  - group: Azure-Static-Web-Apps-...
  steps:
  - task: AzureStaticWebApp@0
    inputs:
      azure_static_web_apps_api_token: $(AZURE_STATIC_WEB_APPS_API_TOKEN_WHITE_DUNE_044A9F703)
      app_location: "/"
      output_location: "/dist"
      production_branch: 'main'

I don't use the trigger inside the pipeline config, but the "Build validation" in DevOps itself because:

I want to make the pipeline mandatory
The pipeline run should be visible right inside the pull request

The problem
When using "Build validation" to trigger a pipeline, the branch inside the pipeline isn't the branch of the pull request anymore. It changes to merge. Because of this, every pull request gets deployed to the merge environment, which makes the feature more or less useless:

I read a bunch of issues here on GitHub, this one goes into detail about it: https://github.com/microsoft/azure-pipelines-tasks/issues/8793. Pull request builds are merged into their source branch with a virtual commit, and this commit lives in the merge branch. The pipeline runs with the branch. Therefore, the variable SourceBranchName doesn't refer to the original branch of the pull request anymore, but to this virtual one. Unfortunately, this is the one the AzureStaticWebApp task is using:
https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureStaticWebAppV0/index.ts#L125
Expected behaviour
The AzureStaticWebApp task should:

deploy each pull request trigger with the appropriate branch name, and not use the virtual merge branch
be a "Build validation" step

How can I achieve this?

For me this bug/feature makes the "preview environments" for my use case useless, too :(.
As a workaround I now use the named environments with the PR ID as the name:
- task: AzureStaticWebApp@0
  inputs:
    deployment_environment: $(System.PullRequest.PullRequestId)
    ...

This way I have a stable unique environment per PR.
The above example is a simplified version of my pipeline. If the branch is e.g. "main" I skip setting the deployment_environment so that I avoid named environments of non-feature branches.

Any updates regarding this matter?

This is well noted. This happen when a pipeline is triggered by a Pull Request. So instead of Build.SourceBranchName you should use System.PullRequest.SourceBranch. Is described here.
Sadly this variable contains a full name of the source branch, so you have to manipulate a bit to have the short handy name. There is a feature request on MS's dev community which ask to introduce System.PullRequest.SourceBranchName (short name of System.PullRequest.SourceBranch and symmetrical to System.PullRequest.TargetBranchName that already exist)


Frontend (Team of 2) - CRUD functionalities Implemented with Tree (Urgent)

Objective: Be able to offer CRUD functionalities of the Tree on Page - Find out if the hooks/functionalities might potential block each other or cause other functionalities to be not usable
Exploration/Learning needed if not already familiar with React-Flow - 8 hours
Reference:
https://reactflow.dev/learn/getting-started/building-a-flow
https://reactflow.dev/learn/tutorials/mind-map-app-with-react-flow
Ticket Scope:

Add a node functionality enable on any node of the tree - 3 hours
Delete a node functionality enable on any node of the tree - 3 hours
Edit node  functionality enable on any node of the tree - 3 hours
List out the limitations for each function and combined

Acceptance Criteria:
AC1: Add Node
Given a user has selected a node within the tree,
they should be able to add the new node,
The new node should appear as a child of the selected node in the tree.
AC2: Delete Node
Given a user selects a node within the tree,
When they press [BACKSPACE] on keyboard or a Delete button to delete the node(pick one way to implement)
Then the node should be removed from the tree
AC3: Edit Node
Given a user selects a node within the tree,
When they choose the option to edit or double click the node,
Then they should be able to modify the node's details
AC4: JSON Schema for Nodes and Edges:
Define the structure of nodes and edges in JSON format.
Note:
Use localstorage/whatever is easier to manage state if other Zustand takes longer
When you implement a custom node it is wrapped in a component that enables basic functionality like selection and dragging. Your custom node receives the following props:
export type NodeProps<T = any> = {
id: string;
data: T;
dragHandle?: boolean;
type?: string;
selected?: boolean;
isConnectable?: boolean;
zIndex?: number;
xPos: number;
yPos: number;
dragging: boolean;
targetPosition?: Position;
sourcePosition?: Position;
};

Direct Tree manipulation vs Control Panel?


pass script-args

Currently, the script-args param does not get passed over to ocr-transform. IIUC, this should be used for the Saxon parameters in the last position.

What's the problem so far?
I integrated the step into a Makefile-configuration, with parameters and it converted PAGE to ALTO (V4).
Looks like it's working.
Good job!

The issue is not with the base functionality, but with the script-args parameter which does not get passed to the backend. So when you want/need to pass options to Saxon, they get ignored.


ASN ban support: Part 1

An ASN is an unsigned 32 bit integer. This issue is resolved by implementing the following:

ability for an ASN ban to exist in the database
when a player connects, their IP address is passed to a method that is expected to return an ASN which is then checked to see if it matches a ban entry and is handled accordingly

ASN ban entires
ASN bans should support all the same things that current bans do, excluding the ban target options. This means things like ban reasons, expirations, unbans, flags, and a record of who placed the ban and when.
I'm not sure if there's a good way to expand current bans to support ASN bans rather than creating a new ban type or something, but the vast majority of bans will not include an ASN, and no ban that includes an IP component will include an ASN. Putting AS100 in the IP field of a ban to ban ASN 100 would be great, but I'm pretty sure that's not possible on the database end of things.
Getting ASNs
The actual implementation of the method that translates IP to ASN can be done in many different ways, so it's not included in this issue. It is probably a good idea to build the system in a way where different options are available through cvars, similar to how SS14 can use SQLite or PostgreSQL.

Curious: What's the use case to ban an entire AS?
(this is my first attempt to contribute, if I'm doing something dumb lmk)
AS's don't necessarily persistently own, or even always announce, IP ranges. Because of this, there has to be some mechanism to update this data when we use it. I wasn't able to find an easily-accessible source for the authoritative owners of individual IP ranges, but was able to find [a good source](https://thyme.apnic.net/current/) of what CIDR blocks are currently being announced by what ASs.
I think this is probably a good enough source of data for our uses since it's simple to consume, updated daily, and removes a lot of the complexity for us. Using this comes with the assumptions that you intend to ban any IP addresses that an AS is advertising, so that as they buy/sell IP ranges (or leases end etc.) that those get updated periodically on our end. This also means that if a BGP hijack was happening during the time we updated our entries, the IPs hijacked would 'belong' to another AS.
I'm not doing it now because i'm lazy, but if the above assumptions are not good enough you could probably go deeper and find something from RIPE. https://ris.ripe.net/docs/mrt is a direction.
I did some work while daydrinking on throwing the data from the first source into sqlite/pg, so I can do some work on the actual lookup portion next. It's my first time in at least a decade or so using C#, so we'll see how it goes. I figured we would want the query to be happening locally to the server for privacy, license, cost, and latency reasons, so that's the path I'm headed.


[cluster-admin] Highlighted list items for better UX

To ensure a similar user experience (UX), the following features are proposed:

Minimum width column for the ResourceStatus
Rows are now grey if the user hovers
Rows are light grey if the detail view for the cluster is open
If the user clicks the active list item the detail panel is closed.

Thanks for adding this! Just some remarks on how to extract active state without changing the showClusterDetails type

Thanks for adding this! Just some remarks on how to extract active state without changing the showClusterDetails type

Should be all fine now. :)


Performance problem

I notice a performance bottleneck passing to JS a Dictionary<string,string> of 1000 items.
So after a long investigation I found that the culprit is the context switching registering the type.
Every 'WriteProperty' does a context switch. I don't understand why.
So I removed the context switch ( I exposed the 'Enter' and 'Leave' to the rules and I created a 'WriteProperty' that does not switch the context.
The difference is impressive: with the context switch, passing the dictionary it takes 2500ms. Without 15ms.
Do I miss something, or is it a bug ?

hi DrEight,
Thanks for your message, This behavior is by design. it sacrifice the performance to make the library thread safe. By wrapping each engine operation in a context switch. user do not need to call "Leave" manually( it happens a lot and hard to debug).
I'm planning to add a set of "BatchXXX" to provide a walkaround in future version. But due to my limited bandwidth, I can't tell when it will be finished.

Thank you for the clarification. I've already implemented a kind of 'batch' call, but it is not very elegant, so I'll don't create a pull request.

there's another hack way. you can wrap your call into ContextSwitchService.With().  The library will ignore nested "Enter","Leave" method.

please avoid any long running code inside the With() method if you have multi thread call to the engine as the With() will cause lock.

to improve performance, the best way is use memorymapped object, you can see the unit test for reference. The sample will be published in next phase, hope I can finish it this month.


kibana_read_only not working properly on kibana 1.13.0

Hi,
I created a new role kibana_dashboard_only_user with read rights on my index pattern (used example from here https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/users-roles/#sample-roles) and added kibana_user and kibana_read_only user to my backend role "developers,' so my user has 3 roles assigned.

I can see only dashboard in nav bar

but when I enter on dashboard page I can see Create dashboard

and i can see edit button and can edit dashboards

but I only can edit views names and remove them, if I try to edit one view I get Application Not Found error

We are doing some "spring cleaning in the fall", and to make sure we focus our energies on the right issues and we get a better picture of the state of the repo, we are closing all issues that we are carrying over from the ODFE era (ODFE is no longer supported/maintained, see post here).
If you believe this issue should still be considered for current versions of OpenSearch, apologies! Please let us know by re-opening it.
Thanks!


Camel 17154: Dynamic Router EIP Component

This introduces a new Dynamic Router EIP Component.  This allows routing participants to subscribe with Predicates to evaluate exchanges, and destination URIs for exchanges that match.  They may also unsubscribe at any time.  Subscribing and unsubscribing happens on a reserved "control channel".  Even though there is already one implementation of a dynamic router in camel core, this one is substantially different because it much more closely adheres to the Dynamic Router EIP description.  Note that there is a corresponding pull request for a spring boot starter, and another for a spring boot example.  All of them are in a branch called CAMEL-17154 in their respective repos.  The best way to see (and experiment with) what this component does is to also check out the CAMEL-17154 branch in the spring-boot-examples repo, and run the dynamic-router-eip module, and edit the code there to try different things.
Uncomment and fill this section if your PR is not trivial

[x] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] If you're unsure, you can format the pull request title like [CAMEL-XXX] Fixes bug in camel-file component, where you replace CAMEL-XXX with the appropriate JIRA issue.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Run mvn clean install -Psourcecheck in your module with source check enabled to make sure basic checks pass and there are no checkstyle violations. A more thorough check will be performed on your pull request automatically.
Below are the contribution guidelines:
https://github.com/apache/camel/blob/main/CONTRIBUTING.md

I have been making some minor adjustments while I am waiting for this PR to be reviewed.  Please comment if any of you are beginning to review this, and I will hold off until reviews are complete.


Korean Language Support

Adding Korean Language Support

Closing in favor of #2677 to get full font support. The actual Korean translation has been merged ... it just doesn't quite work yet, alas :-)


Clicking header should navigate to root URL.

Wrap this header SVG at the top left of the page in a <Link href="/"/> basically

@PatrickCleary can you assign this issue to me


Minor Clean Up of Quantizer.py

Warnings / Weak Warnings

In this line : https://github.com/NervanaSystems/distiller/blob/2bb9689fe58d196ccbccd3f2f44ac27192eb64e1/distiller/quantization/quantizer.py#L114 , Local variable keys_list might be referenced before assignment, due to the fact that keys_list is declared only when we request for bits_overrides.

In this line : https://github.com/NervanaSystems/distiller/blob/2bb9689fe58d196ccbccd3f2f44ac27192eb64e1/distiller/quantization/quantizer.py#L175 Variable module is used,  but this Variable module  is already declared in for loop above .

Thanks. The second one is definitely a bug, but since we don't reference the module declared at the upper-level from that point forward it's not actually causing any issues.
Feel free to make a PR, otherwise we'll fix it in an upcoming commit.


"TARGET_PDB_FILE is not supported by the target linker."

I don't know why this happening. I'm using Mingw-W64 under Windows.
Here is the full error:
Built dependencies are out of date, forcing recompile.
Looking for snappy installation...
...snappy OK.
Looking for nvtt installation...
...nvtt OK.
Looking for OpenAL installation...
...OpenAL OK.
Looking for ogg installation...
...ogg OK.
Looking for vorbis installation...
...vorbis OK.
Looking for FLAC installation...
...FLAC OK.
Looking for PhysX installation...
...PhysX OK.
Looking for FBXSDK installation...
...FBXSDK OK.
Looking for freetype installation...
...freetype OK.
Looking for freeimg installation...
...freeimg OK.
Looking for XShaderCompiler installation...
...XShaderCompiler OK.
Configuring done
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsf>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfD3D11RenderAPI>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfOpenAudio>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfRenderBeast>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfPhysX>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfFBXImporter>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfFontImporter>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfFreeImgImporter>

TARGET_PDB_FILE is not supported by the target linker.
CMake Error:
Error evaluating generator expression:
$<TARGET_PDB_FILE:bsfSL>

TARGET_PDB_FILE is not supported by the target linker.
Generating done
CMake Warning:
Manually-specified variables were not used by the project:
QT_QMAKE_EXECUTABLE

CMake Project parsing failed.

Hi. The build system was never configured for MinGW/Cygwin environments. In this particular case it was assuming it was running under MSVC just because it was on Windows. I've submitted a fix that hopefully resolves the issue.
But since this environment was never tested it's quite likely you'll run into other issues.

Hi, I assumed that since it compiles on linux with GCC it will compile on Windows with MinGW with no issues. Thanks for the heads up anyway !

Building still seems to fail. But since GCC is not meant to be supported on Windows, I'm closing this for now.


PCK&AUC

Hi！Thank you for the excellent project and I am very interested in your project. How can I measure PCK AUC on the MPI dataset？

Hello @AsukaCamellia,
We have defined a function called save_data_inference here that stores a matlab file called inference_data.mat and 'inference_data_best.mat. The evaluation code for PCK and AUC is written in matlab and can be seen in repositories like STCFormer. I used mpii_test_predictions_py.m if I remember correctly. Note that the matlab code also requires some ground truth annotations which they can be downloaded from the official website of MPI-INF-3DHP. For downloading them you have to first download the small zip file and inside it there should be a bash file which you can run to download the annotations. Do not forget to adjust the config inside the zip file first.

Hello @AsukaCamellia, We have defined a function called save_data_inference here that stores a matlab file called inference_data.mat and 'inference_data_best.mat. The evaluation code for PCK and AUC is written in matlab and can be seen in repositories like STCFormer. I used mpii_test_predictions_py.m if I remember correctly. Note that the matlab code also requires some ground truth annotations which they can be downloaded from the official website of MPI-INF-3DHP. For downloading them you have to first download the small zip file and inside it there should be a bash file which you can run to download the annotations. Do not forget to adjust the config inside the zip file first.

Thank you for your answer!!!!


Project logo

Organizations on GitHub have a logo.
Here is a logo suggestion for the project:

It combines the Emacs logo (GPL) and the incognito icon from the Chromium project (BSD-style).

The hat + glasses is probably too easily identifiable as the incognito icon so probably too confusing. Just the hat:

Let's go with that for now.


Allow moving out of AwaitingApplicant1Response state for stuck cases

Change description
Cases stuck in awaiting app1 response can now be moved out using this event.

Closed as we opted for SQL query to fix the 1 broken case. Better to not open this event up further.


Add vue filetype to the defaults

First, thanks for your work here, I just find out this plugin and it looks really good!
I use Vue a lot and think it will be a great addition to the default filetypes list, I added it in the
let g:tagalong_additional_filetypes = ['vue']

and it's working as it should! :)

Makes sense -- I've added the vue filetype to the default list :+1:

Makes sense -- I've added the vue filetype to the default list :+1:


Unable to create API Operation with parameters

When trying to create an operation with any parameters using the .net sdk a 400 is returned.
Example code:
ResourceIdentifier apiResourceId = ApiResource.CreateResourceIdentifier(configs.subscriptionId, configs.resourceGroupName, configs.serviceName, apiName);             ApiResource api = client.GetApiResource(apiResourceId);             ApiOperationCollection collection = api.GetApiOperations();             ApiOperationData data = new ApiOperationData()             {                 Description = operation.Description,                 DisplayName = operation.Name,                 Method = operation.HTTPType.ToString(),                 UriTemplate = operation.FrontendURITemplate,                             };             ArmOperation<ApiOperationResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, operation.OperationId, data);
Even if I use the Example URL "/customers/{cid}/orders/{oid}/?date={date}" I receive the following error
{"error":{"code":"ValidationError","message":"One or more fields contain incorrect values:","details":[{"code":"ValidationError","target":"","message":"All template parameters used in the UriTemplate must be defined in the Operation 'OperationName', and vice-versa."}]}}
This suggests I should be defining the parameters but as you can see  public IList<ParameterContract> TemplateParameters { get; } doesn't contain a setter

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Hey @chshum , please use IList.Add to add parameters.


Refresh tokens and keeping tokens alive

What is the best way to implement refresh tokens using this approach? Thanks in advance.

I added a sample for generating refreshed tokens in #16

i am new in token. can i ask a question?  when will i send a request to RefreshPath?

@anhlee24 That's up to you. You can calculate it by adding expiration time to current time.

@MihaMarkic  you mean that if i set the expiration time by 30m. So i will setup the Client (SPA) to send a request to RefreshPath to keep it alive after 30m?

@anhlee24 Yes, but more likely slightly before expiration, like after 29m or something :)

Thank you so much!

@MihaMarkic
Hi, I want to handle the acccess_token expiraton at server side, how can i handle it?
The response header contain: "Bearer error="invalid_token", error_description="The token is expired", but i don't know how to handle this error.
Can you give me any suggest? Thank you :)

@anhlee24 Could it be that your token has actually expired? You have to request the refresh before it expires.

@MihaMarkic
Yes. But i want to handle the token expiration in Client (SPA) to redirect to Login page or Unauthorized page, etc ...

@anhlee24 On client side you should catch Unauthorized response after each request and redirect app to login page somehow. This is really up to the client implementation.

@MihaMarkic  Thank you so much :).


Merge docker changes into stable branch

Let's throw the Dockerfile and docker-compose into the root, the distrib can just be the readme and the run.sh

Hmm, we could probably throw most of the docker instructions into the main root readme file as well. That one's only for developers/github so we can add a section before the Credits down the bottom and throw it there maybe?

(ahh didn't realise that #674 got merged as-is with this. eh either way's fine then, it's just that having the dockerfile at the root is standard for projects these days, it's pretty common practice to clone and just use the dockerfile straight away)


Added function to migrate until a specific version

@sbose78 the problem was that migrationToVersion was migrating to currentVersion+ 1 instead of until the specified version.
related to https://github.com/almighty/almighty-core/issues/1188

Oh yes. The 'migrateToNextVersion' was the problem :)

Codecov Report

Merging #1194 into master will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1194      +/-   ##
==========================================
+ Coverage   60.18%   60.21%   +0.02%
==========================================
  Files         114      114
  Lines       10169    10169
==========================================
+ Hits         6120     6123       +3
+ Misses       3413     3412       -1
+ Partials      636      634       -2

Impacted Files
Coverage Δ

controller/workitem.go
78.95% <0%> (+0.7%)
:arrow_up:

Continue to review full report at Codecov.

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


Looking for help to maintain django-cookie-consent

I'm looking for somebody that can help maintain django-cookie-consent.
Any candidate?

@bmihelac How about making this a jazzband project? That way, the entire django community can maintain it. This is by far the best cookie library for django since it completely replaces paid solutions. I think it would be great for the community to have this project.

Hi and thanks for your answer @9mido .
jazzband is great and I would be glad to transfer project but I am not sure if it would be interesting for jazzband, given the relatively number of stars django-cookie-consent has.

@bmihelac You're welcome. Glad to see your thoughts on this. Maybe contact some of the jazzband people and see what they think. Even if it may not have enough stars, you could argue that cookie management is an essential part of the web nowadays. The laws could change at any time and this would be a great library to respond to those changing laws. I feel like most developers ignore the laws or are just don't know about them which is why this library does not have a lot of stars. Once part of jazzband, I would imagine the marketing and visibility of this library would become much more popular than it already is. There are also other cookie libraries on PyPi but none of them are as good at managing cookies as this one. This one should be the gold standard out of all of those other django cookie libraries. Without a cookie management solution, django developers everywhere could face very high fines. Just for those reasons, jazzband should adopt this project, regardless of the number of stars that it has. Plus it completely replaces something paid like OneTrust CookiePro and that alone makes it a very desirable django library.

@bmihelac are there any things in particular that need (urgent) attention?
Usually I get some time for contributing back to open-source on company time and we have the process of 3rd-party packages pretty fleshed out.

Small update to the community - I have maintainer rights on the repository now and should have some time to keep an eye on things :) Feel free to ping me if I'm missed something or input is required.
I need to get a bit more into the nitty-gritty implementation details and will probably first focus on open PRs, issues and general project maintenance (think documentation, CI...)

Thanks for the update @sergei-maertens.
I still would love for this library to be transferred to jazzband to ensure its long term survival. In order to do that though, @bmihelac must follow the links above to initiate the transfer when he is able to.

I'm going to close this issue - note however that I'm trying to get it transferred out of jazzband again as they are currently the blocking factor for getting new versions on PyPI.


[HUDI-210] Implement prometheus metrics reporter

What is the purpose of the pull request
Since Prometheus is a very popular monitoring system and time series database, it would be better to provide a metrics reporter to report metrics to prometheus.
Brief change log
The changes are as follows:

pom.xml
hudi-client/pom.xml
hudi-client/src/main/java/org/apache/hudi/config/HoodieMetricsConfig.java
hudi-client/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java
metrics/MetricsPrometheusPushGatewayReporter.java
metrics/MetricsReporterFactory.java
metrics/MetricsReporterType.java

Verify this pull request
This change added tests and can be verified as follows:

By TestHoodiePrometheusPushGatewayMetrics.java to verify the change.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

hi, @XuQianJin-Stars, this test case is useless. Because PushGateway use io.prometheus.client.Gauge instead of com.codahale.metrics.Gauge.
It need to regist io.prometheus.client.Gauge firstly, after that we can send these metrics.
For example,
PushGateway pushGateway = new PushGateway("localhost:9091");

MetricRegistry registry = new MetricRegistry();
registry.register("push_gateway1", (Gauge<Long>) () -> 123L);

io.prometheus.client.Gauge submitActiveTasksGauge = io.prometheus.client.Gauge.build()
        .name("active_tasks")
        .help("active_tasks").register();
submitActiveTasksGauge.set(5L);

pushGateway.push(CollectorRegistry.defaultRegistry, "PushGateway");

hi @lamber-ken  Thank you very much, Let me change it.

hi, Thanks for opening the PR @XuQianJin-Stars, this test case is useless. Because PushGateway use io.prometheus.client.Gauge instead of com.codahale.metrics.Gauge.
It need to regist io.prometheus.client.Gauge firstly, after that we can send these metrics.
For example, MetricRegistry registry = new MetricRegistry(); belllow is redundant.
PushGateway pushGateway = new PushGateway("localhost:9091");

MetricRegistry registry = new MetricRegistry();
registry.register("push_gateway1", (Gauge<Long>) () -> 123L);

io.prometheus.client.Gauge submitActiveTasksGauge = io.prometheus.client.Gauge.build()
        .name("active_tasks")
        .help("active_tasks").register();
submitActiveTasksGauge.set(5L);

pushGateway.push(CollectorRegistry.defaultRegistry, "PushGateway");

well, you are right. I will remove this test.

@lamber-ken @XuQianJin-Stars. Is it ready?

@lamber-ken @XuQianJin-Stars. Is it ready?

Not yet.

@lamber-ken @XuQianJin-Stars. Is it ready?

Not yet.

What is the status of this PR? Is it ready to merge?

What is the status of this PR? Is it ready to merge?

Hi @piyushrl Thanks for the interests, now @xushiyan is taking over the PR.

What is the status of this PR? Is it ready to merge?

Hi @piyushrl Thanks for the interests, now @xushiyan is taking over the PR.

Due to conflicts, planning to resume work on this once https://issues.apache.org/jira/browse/HUDI-836 is done.

@xushiyan   hello，how is the progress

@xushiyan hello，how is the progress

Unfortunately I have to de-prioritize this as the test improvements are more needed at the moment. I may only be able to come back to this after a while. Please feel free to pick up the ticket in the mean time. Thanks.

closing this one in favor of https://github.com/apache/hudi/pull/1726


Update CONTRIBUTING.md

Fixes
Checklist

[ ] I acknowledge that all my contributions will be made under the project's license
[ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
[ ] I have read the [Contribution Guide] and my PR follows them.
[ ] I updated my branch with the development branch.
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation about the functionality in the appropriate .md file
[ ] I have added in line documentation to the code I modified

Short description of what this PR does:

If you have questions, please send an email to Twilio Sendgrid, or file a Github Issue in this repository.

My advice would be to close this PR and add the invalid tag as well. Hacktoberfest processes the invalid tag by invalidating the contribution the user has made and won't count toward Hacktoberfest.
More information about this:
https://hacktoberfest.digitalocean.com/details#spam
The other PR's:
https://github.com/home-assistant/home-assistant/pull/27196
https://github.com/sendgrid/sendgrid-php/pull/886
https://github.com/valor-software/ngx-bootstrap/pull/5424
https://github.com/pypa/pipenv/pull/3972
https://github.com/tsuru/tsuru/pull/2351


Feature request: geofencing for arm/disarm?

I'm enjoying the integration thus far (thank you for your efforts!), and as I'm a recent convert from SmartThings one thing I did like was being able to trigger alarm states based on geofencing of my mobile devices. Is this something possible to add as a way to arm and disarm? Also any thoughts on when we'll be able to trigger a siren within this integration? I use Konnected for my devices and that one isn't working yet

Glad to hear. I'm just starting it, so you can expect more improvements to come.
Geofencing can be achieved in many ways. With the HA app for example, you can detect whether a person is home or not.
Such functionality will not become part of Alarmo.
The only thing that you need in addition, is some automation/logic to set the alarm to armed_away if all persons left the house, and to disarm when someone arrives.
You can already make this, by creating an automation.
The only problem is that you cannot configure the alarm to have a code (or you should type it as parameter it in the automation).
Maybe I will add a UI to configure such triggers from within Alarmo at some point. But it would have the same effect as writing an automation.
As for:

Also any thoughts on when we'll be able to trigger a siren within this integration

The same applies. You can create a automation to turn on your siren when the alarmo state goes to triggered.
I will add a small editor (like the notifications), but it is only for convenience.
It's not really needed because such functionality is already in HA.
It should probably be released by the end of the weekend (unless I encounter issues).

I'm closing this issue since it seems to be outdated.
The functionality you asked for is in place now.


Addressing 2 different issues related to scispacy.  scispacy small mo…

…del now requires v0.5.1 so I've updated all notebooks and continuous integration to reflect this.
This fixes the following issues:
#164
#116

@turbosheep  the CI for this is running now.  Since I actually changed some of the CI (i.e., which scispacy gets installed), if these tests all pass, could you review this change?
Note that I fixed two issues in the same commit and PR.  I usually don't do that, but these were highly related.

OK, this passed so the PR can be reviewed anytime.
@jianlins  I will add you as an optional reviewer as well, so that you are at least aware that I've updated a number of CI scripts.

Oh, didn't notice that's long ago. I think it's been fixed.


Remove unreferenced hash computations

The types float, double, and boolean are excluded from bucket
partitioning, which is the only part of the spec that uses hashing. As
such, we can remove these types from "Appendix B: 32-bit Hash
Requirements".

The CI failed with the following, which seems likely to be flaky if it is on a spec-only PR:
> Task :iceberg-spark:test

org.apache.iceberg.spark.source.TestIcebergSourceHiveTables > testHiveManifestsTable FAILED
    java.lang.RuntimeException at TestIcebergSourceHiveTables.java:438
        Caused by: org.apache.thrift.transport.TTransportException at TestIcebergSourceHiveTables.java:438
            Caused by: java.net.SocketException at TestIcebergSourceHiveTables.java:438

org.apache.iceberg.spark.source.TestIcebergSourceHiveTables > testHiveHistoryTable FAILED
    java.lang.RuntimeException at TestIcebergSourceHiveTables.java:285
        Caused by: org.apache.thrift.transport.TTransportException at TestIcebergSourceHiveTables.java:285
            Caused by: java.net.SocketException at TestIcebergSourceHiveTables.java:285

org.apache.iceberg.spark.source.TestIcebergSourceHiveTables > testHiveEntriesTable FAILED
    java.lang.RuntimeException at TestIcebergSourceHiveTables.java:144
        Caused by: org.apache.thrift.transport.TTransportException at TestIcebergSourceHiveTables.java:144
            Caused by: java.net.SocketException at TestIcebergSourceHiveTables.java:144

133 tests completed, 3 failed, 4 skipped

> Task :iceberg-spark:test FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':iceberg-spark:test'.
> There were failing tests. See the report at: file:///home/travis/build/apache/incubator-iceberg/spark/build/reports/tests/test/index.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

I'm reluctant to completely remove these in case there is some legitimate reason to hash values in the future that requires specification. I'm concerned if we did this a second time, I would forget that the hash values for equivalent floats and doubles are the same to support type promotion.
Instead of removing these entirely, what about moving them to a separate table with a note? "Boolean, float, and double values are valid types for bucketing, but in the event that the values should be hashed, the above hash function must be applied as in the following table."

Boolean, float, and double values are valid types for bucketing, but in the event that the values should be hashed, the above hash function must be applied as in the following table.

I'm confused. They are valid types for bucketing?

I'm confused. They are valid types for bucketing?

No, I just left out the "not" by accident.

Moved boolean and floating point types to a new table.


travis.yml: travis buddy

https://github.com/caskroom/homebrew-cask/pull/45294#issuecomment-377112070
https://github.com/caskroom/homebrew-cask/pull/45287#issuecomment-377111444

Hey @commitay,
Your changes looks good to me!

Travis Buddy
Ruby: system

Template still needs to be adjusted.
https://github.com/caskroom/homebrew-cask/pull/45287#issuecomment-377111444
Not sure what changes we need to make.

Hey @commitay, just wanted you to know what you saw at https://github.com/caskroom/homebrew-cask/pull/45287#issuecomment-377111444 was a problem on our side, and that it's fixed now.
Let me know if you occur further issues with TravisBuddy.

Travis Buddy
Ruby: system

     . ci/travis/script.sh

Running script.sh...

>>> brew cask _audit_modified_casks 2faa5bf4bec6888b5de29135079752cb69184843...3207acc124c11e2e40ca52235d018ebf3919e42e
==> 1 modified cask: autodmg
audit for autodmg: passed

>>> brew cask style Casks/autodmg.rb

1 file inspected, no offenses detected

>>> brew cask reinstall --verbose Casks/autodmg.rb
==> Satisfying dependencies
==> Downloading https://github.com/MagerValp/AutoDMG/releases/download/v1.8/AutoDMG-1.8.dmg
/usr/bin/curl --show-error --user-agent Homebrew/1.5.13-20-g60d6b4d (Macintosh; Intel Mac OS X 10.12.6) curl/7.54.0 --fail --silent --location --remote-time --continue-at - --output /Users/travis/Library/Caches/Homebrew/Cask/autodmg--1.8.dmg.incomplete https://github.com/MagerValp/AutoDMG/releases/download/v1.8/AutoDMG-1.8.dmg
==> Verifying checksum for Cask autodmg
==> Installing Cask autodmg
==> Purging files for version 1.8 of Cask autodmg
Error: It seems the App source '/usr/local/Caskroom/autodmg/1.8/AutoDMG-test.app' is not there.
Error: Kernel.exit

Thanks @bluzi!

Running script.sh...

>>> brew cask _audit_modified_casks 841a41af69af8f7b3e4992f42ac641efa87be0cc...5cc529ff591616cb29a3c74ff28393021517b296
==> 1 modified cask: vfuse
audit for vfuse: warning
 - allow_untrusted is not permitted in official Homebrew-Cask taps
Error: audit failed for 1 cask: vfuse


For Python modulefiles, do not load default Python if not Python module is loaded - user must do it explicitly.

It has emerged during the supercomputing meetings, and I agree, that users must explicitly load a Python interpreter before using a Python module. Not doing so should result in a error message, e.g., "Python interpreter not loaded."

Had a nice coffee chat with @Halolegend94 , suggested implementing a variable switch in maali to disable "module load python" during module creation. (needs to take into account both cases of python as COMPILER and PREREQ)

this is done