(QENG-1695) Improves OSX Support

Fixes for root key location copy
Adds a Vagrant VB OSX option
Fixes PermitRootLogin regex
Adds option to enable GUI
Raises error if version not given for DMG

Now works with an example OSX Virtualbox image :+1:

Can one of the admins verify this patch?

ok to test

:red_circle: Test failed.
Refer to this link for build results: http://jenkins-beaker.delivery.puppetlabs.net/job/Beaker Combined Smoketest/427/

Sorry I accidentally picked up a different commit whilst rebasing, just fixed.

:red_circle: Test failed.
Refer to this link for build results: http://jenkins-beaker.delivery.puppetlabs.net/job/Beaker Combined Smoketest/429/


engine->flutter roller blocked on customer testing failures

Example:

https://github.com/flutter/flutter/pull/137291
https://ci.chromium.org/ui/p/flutter/builders/try/Windows customer_testing/65851/overview

It looks like the tests are passing but there is an exception in the code following all the tests passing, this may be a Dart integration problem?
log
| 00:13 +166: All tests passed!
Tests finished in 36.00 seconds per iteration.
Deleting temporary directory...

Processing .\registry\provider.test...
Created temporary directory: C:\b\s\w\ir\x\t\flutter_customer_testing.provider.dce80856
>> git clone https://github.com/rrousselGit/provider.git tests
| Cloning into 'tests'...
>> git -C tests checkout a60a35c49e907fed597dd2af28ed79cc94b7671a
| HEAD is now at a60a35c Fix CI (#810)
Updating code in C:\b\s\w\ir\x\t\flutter_customer_testing.provider.dce80856\tests\....
>> flutter packages get
| Resolving dependencies...
| + _fe_analyzer_shared 61.0.0 (65.0.0 available)
| + analyzer 5.13.0 (6.3.0 available)
| + args 2.4.2
| + async 2.11.0
| + boolean_selector 2.1.1
| + build 2.4.1
| + built_collection 5.1.1
| + built_value 8.6.3
| + characters 1.3.0
| + clock 1.1.1
| + code_builder 4.7.0
| + collection 1.18.0
| + convert 3.1.1
| + coverage 1.7.1
| + crypto 3.0.3
| + dart_style 2.3.2 (2.3.3 available)
| + fake_async 1.3.1
| + file 7.0.0
| + fixnum 1.1.0
| + flutter 0.0.0 from sdk flutter
| + flutter_test 0.0.0 from sdk flutter
| + frontend_server_client 3.2.0
| + glob 2.1.2
| + http_multi_server 3.2.1
| + http_parser 4.0.2
| + intl 0.18.1
| + io 1.0.4
| + js 0.6.7
| + leak_tracker 9.0.11
| + leak_tracker_flutter_testing 1.0.9
| + leak_tracker_testing 1.0.5
| + logging 1.2.0
| + matcher 0.12.16
| + material_color_utilities 0.8.0
| + meta 1.11.0
| + mime 1.0.4
| + mockito 5.4.2
| + nested 1.0.0
| + node_preamble 2.0.2
| + package_config 2.1.0
| + path 1.8.3
| + pool 1.5.1
| + pub_semver 2.1.4
| + shelf 1.4.1
| + shelf_packages_handler 3.0.2
| + shelf_static 1.1.2
| + shelf_web_socket 1.0.4
| + sky_engine 0.0.99 from sdk flutter
| + source_gen 1.4.0
| + source_map_stack_trace 2.1.1
| + source_maps 0.10.12
| + source_span 1.10.0
| + stack_trace 1.11.1
| + stream_channel 2.1.2
| + string_scanner 1.2.0
| + term_glyph 1.2.1
| + test 1.24.9
| + test_api 0.6.1
| + test_core 0.5.9
| + typed_data 1.3.2
| + vector_math 2.1.4
| + vm_service 12.0.0 (13.0.0 available)
| + watcher 1.1.0
| + web 0.3.0
| + web_socket_channel 2.4.0
| + webkit_inspection_protocol 1.2.1
| + yaml 3.1.2
| Changed 67 dependencies!
| 4 packages have newer versions incompatible with dependency constraints.
| Try `flutter pub outdated` for more information.
| Resolving dependencies in .\example...
| Got dependencies in .\example.
>> dart fix --apply
| Computing fixes in tests...
| Error from the analysis server: Exception while getting bulk fixes: type 'NotLibraryButPartResult' is not a subtype of type 'ParsedLibraryResult' in type cast
| #0      BulkFixProcessor._computeChangesToPubspec (package:analysis_server/src/services/correction/bulk_fix_processor.dart:373:13)
| #1      BulkFixProcessor.fixPubspec (package:analysis_server/src/services/correction/bulk_fix_processor.dart:284:7)
| #2      EditBulkFixes.handle (package:analysis_server/src/handler/legacy/edit_bulk_fixes.dart:56:38)
| #3      LegacyAnalysisServer.handleRequest.<anonymous closure>.<anonymous closure> (package:analysis_server/src/legacy_analysis_server.dart:559:25)
| #4      OperationPerformanceImpl.runAsync (package:analyzer/src/util/performance/operation_performance.dart:172:29)
| #5      LegacyAnalysisServer.handleRequest.<anonymous closure> (package:analysis_server/src/legacy_analysis_server.dart:540:29)
| #6      _rootRun (dart:async/zone.dart:1399:13)
| #7      _CustomZone.run (dart:async/zone.dart:1301:19)
| #8      _runZoned (dart:async/zone.dart:1804:10)
| #9      runZonedGuarded (dart:async/zone.dart:1792:12)
| #10     LegacyAnalysisServer.handleRequest (package:analysis_server/src/legacy_analysis_server.dart:536:5)
| #11     LegacyAnalysisServer.handleRequestOrResponse (package:analysis_server/src/legacy_analysis_server.dart:600:7)
| #12     _rootRunUnary (dart:async/zone.dart:1407:47)
| #13     _CustomZone.runUnary (dart:async/zone.dart:1308:19)
| #14     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217:7)
| #15     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
| #16     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
| #17     _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:63:11)
| #18     _EventSinkWrapper.add (dart:async/stream_transformers.dart:13:11)
| #19     new _DebounceRequests.<anonymous closure>.<anonymous closure> (package:analysis_server/src/server/debounce_requests.dart:50:20)
| #20     _rootRun (dart:async/zone.dart:1391:47)
| #21     _CustomZone.run (dart:async/zone.dart:1301:19)
| #22     _CustomZone.runGuarded (dart:async/zone.dart:1209:7)
| #23     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249:23)
| #24     _rootRun (dart:async/zone.dart:1399:13)
| #25     _CustomZone.run (dart:async/zone.dart:1301:19)
| #26     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1233:23)
| #27     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
| #28     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
| #29     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
| #30     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
|
|
| #0      BulkFixProcessor._computeChangesToPubspec (package:analysis_server/src/services/correction/bulk_fix_processor.dart:373:13)
| #1      BulkFixProcessor.fixPubspec (package:analysis_server/src/services/correction/bulk_fix_processor.dart:284:7)
| #2      EditBulkFixes.handle (package:analysis_server/src/handler/legacy/edit_bulk_fixes.dart:56:38)
| #3      LegacyAnalysisServer.handleRequest.<anonymous closure>.<anonymous closure> (package:analysis_server/src/legacy_analysis_server.dart:559:25)
| #4      OperationPerformanceImpl.runAsync (package:analyzer/src/util/performance/operation_performance.dart:172:29)
| #5      LegacyAnalysisServer.handleRequest.<anonymous closure> (package:analysis_server/src/legacy_analysis_server.dart:540:29)
| #6      _rootRun (dart:async/zone.dart:1399:13)
| #7      _CustomZone.run (dart:async/zone.dart:1301:19)
| #8      _runZoned (dart:async/zone.dart:1804:10)
| #9      runZonedGuarded (dart:async/zone.dart:1792:12)
| #10     LegacyAnalysisServer.handleRequest (package:analysis_server/src/legacy_analysis_server.dart:536:5)
| #11     LegacyAnalysisServer.handleRequestOrResponse (package:analysis_server/src/legacy_analysis_server.dart:600:7)
| #12     _rootRunUnary (dart:async/zone.dart:1407:47)
| #13     _CustomZone.runUnary (dart:async/zone.dart:1308:19)
| #14     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217:7)
| #15     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
| #16     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
| #17     _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:63:11)
| #18     _EventSinkWrapper.add (dart:async/stream_transformers.dart:13:11)
| #19     new _DebounceRequests.<anonymous closure>.<anonymous closure> (package:analysis_server/src/server/debounce_requests.dart:50:20)
| #20     _rootRun (dart:async/zone.dart:1391:47)
| #21     _CustomZone.run (dart:async/zone.dart:1301:19)
| #22     _CustomZone.runGuarded (dart:async/zone.dart:1209:7)
| #23     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249:23)
| #24     _rootRun (dart:async/zone.dart:1399:13)
| #25     _CustomZone.run (dart:async/zone.dart:1301:19)
| #26     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1233:23)
| #27     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
| #28     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
| #29     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
| #30     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
|
Terminate batch job (Y/N)?

dart fix in the latest Dart SDK is applying changes to pubspec.yaml which add a line that references the package's own name.
For example, running dart fix in the flutter_svg package adds a flutter_svg: any dependency line to pubspec.yaml.
pub get then fails with an error:
ERR : Error on line 19, column 3 of pubspec.yaml: A package may not list itself as a dependency.
    |    ╷
    | 19 │   flutter_svg: any

This was introduced by https://dart.googlesource.com/sdk/+/3c6ceb851ada75197cafd6e839df3e8086539629

I think this may be fixed by https://dart-review.googlesource.com/c/sdk/+/332242 which just landed.

Oops, sorry, it is clearly due to the pubspec fix added to dart fix, and a revert is already created for that (but not landed):
https://dart-review.googlesource.com/c/sdk/+/332171

Here is the commit with the revert: https://dart.googlesource.com/sdk/+/ed1842480c966b93ecf80627178dc2238d6f0e2a
That revert made it into https://dart.googlesource.com/sdk/+/refs/tags/3.3.0-65.0.dev.
Closing this issue although the dart roll is still blocked.  I'll file a new issue representing the latest stoppage.


translate not working when its loaded in slow internet connection

I am using $translateProvider.preferredLanguage('en'); in my app.js, but in regular 3g or slow internet connection the file corresponding to it gets loaded but changes do not get reflected on the page. I am using this async loader directive
//this factory is used to fetch the language file according to selected language for translation
app.factory('asyncLoader', function($q, $timeout, $http, envService){
  return function(options) {
  var deferred = $q.defer(), translations;
  var pathUrl = envService.read('lang_file_path');

  var resturl = pathUrl + 'language-' + options.key + '.json';
  $http.get(
    resturl,{cache:true}).success(function(translations) {
      deferred.resolve(translations);
      }).error(function(translations) {
        deferred.reject(translations);
      });
    $timeout(function() {
        deferred.resolve(translations);
      }, 2000);

      return deferred.promise;
    };
});

Setting done in app.js
//language settings
$translateProvider.preferredLanguage('en');
$translateProvider.useLoader('asyncLoader');
$translateProvider.useSanitizeValueStrategy('sanitizeParameters');

Hi!
To help out - can you setup a short Plunker (plnkr.co) so we have a running example to take a look on?
Otherwise, if you need more help on a "how do I" basis, please try asking this question on StackOverflow - you'll reach a broader audience there.
Thanks.

yep sure...
Thanks.

+1
Got
"Could not translate angular Please check your Angular-Translate $translateProvider configuration"
sometimes for first time after reset cache

Hello,
as we had already mentioned in the issue's template, we need a working and as minimal as possible demo covering your specific use case or issue.
Follow these steps:

Please open this plnkr base.
Fork it (at the top left).
Ensure the version of AngularJS and angular-translate is correct.
Ensure all angular-translate plugins are available; reduce and remove anything you can.
Write a minimal as possible demo for your specific issue.
Save and freeze. Provide us the final link to your demo.

Friendly reminder.


Add a feature

Hi. I'd like to make a suggestion about the feature.
Following steps are for an imagination of workflow.

Imagine, page now on the root '/'.
Click to open MENU, then page will navigate to '#/menu'
Make an action to close menu and the page will return back to '/'
Click to open CART, then the page will navigate to '#/cart'.
But if I'll click 2 times back in the browser, it will navigate to '#/menu' and open it by handling browser history!
Are there some possible features to ignore history item but handle it?
I tried to use pause API function, but it works like no changes.
Thanks.

Can you use history.go(-1) to close MENU?

@cloudever this seems a little bit hacky. I'll not change how the browser handles route because probably the users get used to it. Do you mean that you want to trigger a route handler but don't change the URL so the user don't get the address bar updated?

@betofigueiredo , I tried to use history.back(), but it won't done my job.
@krasimir no, I just would like to replace history. I've played with location.href and I think it's possible to use location.replace instead of location.href =

@krasimir I just want to make possible close menu and cart on mobile phone by clicking back button.
But all routes write to history and it will being negative UX.

Heu @cloudever,
I made some experiments and now I think that Navigo can't fix the problem. That's because we are trying to use the URL as a state holder for the menu and at the same time a state holder for the page management. From a application point of view that's wrong. The state of the different parts of the application should be handled separately. I see your use case but I'll suggest to handle the menu opening and closing using cookies and leave the pagination to the router.

@cloudever I guess you are looking for something like adressbar you can use it with Navigo. Hope it helps.


small corrections to DA

? where to find 'dansk' in language selector at web, have to be 'Dansk'

The language names come from this package: https://github.com/meikidd/iso-639-1/blob/master/src/data.js#L122
If it should be captalized in the native language you could submit a PR there and update the library here :)

Thank you, I have maked a PR for the correction :-)

@freshollie ... and the PR are merged by meikidd :-)

@freshollie package.json are reported not to be part of git, can you fix that ?

@freshollie anyway, please approved this PR, have some small correction to #69

If you commit with -n you can ignore the error. Please include the library upgrade as part of this

If you commit with -n you can ignore the error. Please include the library upgrade as part of this

YES ! thank you :-)

(sorry mixed different branch when make another PR)
Now ready here both DA correction and Bump of iso639-1


Fix README FCM example schedule type

I found that the schedule hour/minute/second in the json example, will never work because AssertUtils.extractValue seems to be designed to handle color code instead of converting string to int, so I changed hour/minute/second to int type to make it work. second to int type to make it work
this.hour =
        AssertUtils.extractValue(NOTIFICATION_SCHEDULE_HOUR, dataMap, int);
    this.minute =
        AssertUtils.extractValue(NOTIFICATION_SCHEDULE_MINUTE, dataMap, int);
    this.second =
        AssertUtils.extractValue(NOTIFICATION_SCHEDULE_SECOND, dataMap, int);

  static extractValue<T>(String reference, Map dataMap, Type T) {
    dynamic defaultValue = _getDefaultValue(reference, T);
    dynamic value = dataMap[reference];

    // Color hexadecimal representation
    if (T == int && value != null && value is String) {
      String valueCasted = value;

      final RegExpMatch? match =
          RegExp(r'^(0x|#)(\w{2})?(\w{6,6})$').firstMatch(valueCasted);
      if (match != null) {
        String hex = (match.group(2) ?? 'FF') + match.group(3)!;
        final int colorValue = int.parse(hex, radix: 16);
        return colorValue;
      }
    }

    switch (value.runtimeType) {
      case MaterialColor:
        value = (value as MaterialColor).shade500;
        break;

      case MaterialAccentColor:
        value = Color((value as MaterialAccentColor).value);
        break;

      case CupertinoDynamicColor:
        value = Color((value as CupertinoDynamicColor).value);
        break;
    }

    if (value == null || !(value.runtimeType == T)) return defaultValue;

    return value;
  }

I agree with you that it will never work with String values, but i disagree with your solution.
On my opinion, the readme file example is correct. Instead, the extractValue needs to be improved. I gonna improve it in your cloned repository and also gonna add a test to check if its working propertly.
Check the changes that i gonna send to you and tell me if you agree or not. Also, check in your current project if this changes also make your local app works as expected.

Thank you for your serious attention, I tested the function of Schedules in the background and foreground on both Android 11 and iOS 15 devices, everything worked fine, so i agree!

Merge done! Thank you so much for your help!


The subdirs test package most likely does not test what it is intended to test

The subdirs test package installs some Python code https://github.com/mesonbuild/meson-python/blob/fc7245d66186e244681cb0e10dfcaacd4fbb8d0e/tests/packages/subdirs/meson.build#L13-L18
However, for how install_sources() works, all the files are installed by Meson as top level modules and not as nested packages, as the name of the test package would suggest, with later instances of the files names __init__.py and c.py overwriting earlier instances.
What was this test package supposed to test? The scipy-like test package already contains a test for nested packages. I'm tempted to just delete this test package.

That seems like a wrong test indeed. It would do the right thing if it would have the preserve_path keyword, added in 0.64.0: https://mesonbuild.com/Release-notes-for-0-64-0.html#added-preserve_path-arg-to-install_data. So adding that would be the alternative to deleting it.

Unless I'm missing something, this test package is used only here https://github.com/mesonbuild/meson-python/blob/fc7245d66186e244681cb0e10dfcaacd4fbb8d0e/tests/test_sdist.py#L32-L44 to test the generation of an sdist, thus the fact that a wheel generated from that package would not make much sense is not really relevant. On the other hand, I don't understand why we need to test that subdirs are included in the sdist. However, I don't see anything in the sdist generation that may trip over the archive containing subdirectories.
We cannot use preserve_path unless we bump the minimum required Meson version from 0.63.3 to 0.64. I don't know if it is worth doing only for this.

I think I added this in the beginning to make subdirs would get indeed copied to the sdist. We can bump to 0.64 in tests only and add preserve_path, and add a wheel test.

I found this yesterday late when I was looking for a test package that actually installs a Python package (it is funny that almost none of the test packages do that) to use in the tests for the editable wheels. I wanted to annotate it somewhere to do not forget in case it was relevant. For how the test package is used, it does not seem to be relevant.
I like the possibility to run the tests without to much trickery with the oldest supported Meson. I'll fix this up later today. Most likely just splitting up the py.install_sources() call into multiple calls and leaving a note saying that we could use preserve_path in later Meson versions.


how to handle certificate rotation for calico-apiserver?

We are running the API server using the manifest based installation and have added a cert-manager managed certificate to it. We observed that after rotation of the certificate, the API server is no longer usable, even though kubectl get apiservices still reports that the service is available. The docs at https://docs.tigera.io/calico/latest/operations/install-apiserver#install-the-api-server don't mention anything about certificate renewal and I'm wondering what the best mode of operation is here.
Expected Behavior

It would be great if the API server somehow notices that the certificate was renewed and reloads its certificate itself without requiring us to manually restart it.
Current Behavior

We need to restart the API server every time the certificate is renewed
Possible Solution

It could check whether /code/apiserver.local.config/certificates/apiserver.crt and /code/apiserver.local.config/certificates/apiserver.key changed and reload those files.
Steps to Reproduce (for bugs)

Deploy API server with manifests
Create certificate
Wait until certificate expires/rotates
Do something that involves the API server

Context

We noticed that this is happening while deleting a namespace that was not related to calico in any way. Kubernetes tried to contact the calico API server during finalization and since the certificate was invalid at that point, was not able to delete the namespace.
Your Environment

Calico version: 3.28.2
Calico dataplane (iptables, windows etc.): iptables
Orchestrator version (e.g. kubernetes, mesos, rkt): kubernetes
Operating System and version: ubuntu 20.04
Link to your project (optional):

@sebhoss thanks for raising - just to confirm, you did rotate the certificate but noticed that the Calico API server didn't load the new certificate until being restarted?

@caseydavenport yes exactly. Here is an example showing what is happening for us:

Do something like kubectl diff with a calico resource:

$ kubectl diff -k ./calico-policies
diff --new-file --unified --color /tmp/LIVE-127225091/projectcalico.org.v3.GlobalNetworkPolicy..allow-unknown-destinations /tmp/MERGED-4003578456/projectcalico.org.v3.GlobalNetworkPolicy..allow-unknown-destinations
--- /tmp/LIVE-127225091/projectcalico.org.v3.GlobalNetworkPolicy..allow-unknown-destinations    2024-11-05 05:42:01.626050778 +0100
+++ /tmp/MERGED-4003578456/projectcalico.org.v3.GlobalNetworkPolicy..allow-unknown-destinations 2024-11-05 05:42:01.626050778 +0100
@@ -0,0 +1,15 @@
+apiVersion: projectcalico.org/v3
+kind: GlobalNetworkPolicy
+metadata:
+  creationTimestamp: "2024-11-05T04:42:01Z"
+  name: allow-unknown-destinations
+  uid: 5c98f3c6-5ea2-4f1f-9380-bb47a62c292e
+spec:
+  egress:
+  - action: Allow
+    destination: {}
+    source: {}
+  order: 1999
+  selector: allow_untrusted_destinations == "enabled"
+  types:
+  - Egress

Use cmctl to renew certificate of calico-apiserver:

$ cmctl renew calico-apiserver -n calico-apiserver
Manually triggered issuance of Certificate calico-apiserver/calico-apiserver

Run the same diff command again:

$ kubectl diff -k ./calico-policies
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get globalnetworkpolicies.projectcalico.org allow-unknown-destinations)

Verify that calico-apiserver is still marked as ready:

$ kubectl get apiservices | grep calico
v1.crd.projectcalico.org                     Local                                   True        306d
v3.projectcalico.org                         calico-apiserver/calico-api             True        289d

Restart calico-apiserver:

$ kubectl -n calico-apiserver rollout restart deployment calico-apiserver

kubectl diff works fine again (same output as 1.)

@sebhoss great, thanks for the detailed description!
Sounds like at a minimum, we need documentation to explain that the apiserver requires a restart after rotating the ceritificate.
Agree it would be a nice enhancement to have the apiserver detect that the certificate has changed and reload it without requiring a manual restart of the pod.


Unsub is removing all subscriptions

When we call unsub from one callback, it removed the subscription entirely, rendering other callbacks useless.

implement fanout algo in sub and unsub.


Step 6 & 9: Microsoft.FeatureManagement.AspNetCore;

Should the using statement for the Feature Management package be Microsoft.FeatureManagement.AspNetCore; or Microsoft.FeatureManagement;? Currently I can only get my project to build if the using statement is set to Microsoft.FeatureManagement; Just want to check to see if this is a typo or if I'm doing something wrong.

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

ID: d781aae8-fa5c-27a4-5d3d-64c60d008b4c
Version Independent ID: ba2bfca5-06a9-abc8-77f2-fbcb0dcb74c3
Content: Quickstart for adding feature flags to ASP.NET Core
Content Source: articles/azure-app-configuration/quickstart-feature-flag-aspnet-core.md
Service: azure-app-configuration
GitHub Login: @yegu-ms
Microsoft Alias: yegu

@niswitze
Thanks for your feedback! We will investigate and update as appropriate.

@niswitze, thanks for reporting this! We updated the .NET Core Feature Management library recently. Please consult the latest documentation. If you still run into issues, let us know and we'll investigate.

#please-close

@yegu-ms , the latest available version for this package is 1.0.0-preview-009000001-1251. When I added the reference in my project, I have the following namespaces available -

Microsoft.FeatureManagement
Microsoft.FeatureManagement.Mvc
Microsoft.FeatureManagement.FeatureFilters
I don't know why the namespace Microsoft.FeatureManagement.AspNetCore isn't available.

@feroz-ahmmed Sorry about the confusion! You just need to use "Microsoft.FeatureManagement". I'll update the doc as well.

#please-close


Clicking on "Prisma Migrate" under "Set up Prisma with your own database" doesn't honor the redirect

On https://www.prisma.io/docs/getting-started/quickstart-typescript#set-up-prisma-with-your-own-database
when clicking "Prisma migrate" I end up being scrolled back to the top with this URL: https://www.prisma.io/docs/getting-started/setup-prisma/start-from-scratch-prisma-migrate/ which shows me the old migrate guide.
When refreshing, it shows the newly updated guide.
I suspect that clicking the button doesn't honor the redirect while the reload does.

Thanks for raising this, fixed via: https://github.com/prisma/docs/pull/1063


PSR-12 compability?

I noticed the code is currently using a somewhat uncommon formatting (partly enforced via editor config). Would it make sense to adopt PSR-12? I'm happy to provide a pull request if wanted.

Frankly, I don't like the PSR-12.
I use my own style of formatting based on recommendations and my personal preferences.

fair enough


Use tox plugin to consolidate tox environments

This change adds a tox plugin in toxfile.py which allows for sets of commands to be mapped to names in the test environment configuration. Additionally, a command line option is added to tox which allows one of these command sets to be selected by name and run in place of the default commands entry. With this alternative commands feature, several of the test environments that were in tox.ini were consolidated into three remaining environments with different sets of commands. The remaining environments are:

The main Python test environment used for tests, linting, etc.
The docs environment, needed because of a Sphinx bug that prevents a development install of qiskit-experiments from working on macOS.
The test environment that uses the Qiskit main branch instead of the released package.

This is a draft for now to see what other developers think. It allows combining most of our tox environments into a small set. Alternatively, we could still consider switching to nox (#1122) or hatch (which I saw in its latest release notes now supports working with projects that don't use hatchling for the build backend so it could work with qiskit-experiments' setuptools backend). I feel like the approach here does a decent job keeping the number of environments small and the syntax is not that different from hatch (I am not as familiar with nox). We could change the syntax as well. I don't feel too strongly about it.

This is also marked as a draft because the contributing guide needs to be updated. I didn't want to do that before we decided if we wanted to make this change.

The envlist entry also needs to be updated since there is no lint environment now. I wonder if it should just be removed (require -e to be used) or should be set to py. I don't think it is common to use the default value and run the tests on all versions of Python?
That is one downside of the change with this plugin -- you can't really run multiple things at once. I don't think that is common for qiskit-experiments. The tests already max out parallelization so there is not much benefit to running multiple things at once and it's not that bad to call tox multiple times. We could change the plugin so specifying mulitple --alts would combine all the commands into one big set.


Creation of SAI pin tuple without I2SPinSdB

Hi there,
I'm trying to use the SAI peripheral on an H735... But I'm stuck as I don't have an SdB pin and using None on the tuple will lead to rustc E0282 and rustc E0283.
let sai1_pins = (
            mclk_a_pin.into_alternate(),
            sck_a_pin.into_alternate(),
            fs_a_pin.into_alternate(),
            sd_a_pin.into_alternate(),
            None
        );

The compiler says I should say what Option none belongs to... So I thought something like this would work, but now I've got another compiler error, rustc E0277.
let sai1_pins = (
            mclk_a_pin.into_alternate(),
            sck_a_pin.into_alternate(),
            fs_a_pin.into_alternate(),
            sd_a_pin.into_alternate(),
            None::<sai::i2s::I2SPinSdB<pac::SAI1>>
        );

The SAI example available in the examples directory uses SdB pin... but it's not shown anywhere how None should be used in the case you don't have this pin.
The log of the first error is as follows:
error[E0283]: type annotations needed
   --> src/pcm_4202_driver.rs:62:13
    |
62  |             None
    |             ^^^^ cannot infer type of the type parameter `T` declared on the enum `Option`
...
65  |         let mut sai1 = sai1.i2s_ch_a(
    |                             -------- type must be known at this point
    |
    = note: multiple `impl`s satisfying `_: sai::i2s::I2SPinSdB<stm32h7xx_hal::stm32::SAI1>` found in the `stm32h7xx_hal` crate:
            - impl sai::i2s::I2SPinSdB<stm32h7xx_hal::stm32::SAI1> for stm32h7xx_hal::gpio::Pin<'E', 3, stm32h7xx_hal::gpio::Alternate<6>>;
            - impl sai::i2s::I2SPinSdB<stm32h7xx_hal::stm32::SAI1> for stm32h7xx_hal::gpio::Pin<'F', 6, stm32h7xx_hal::gpio::Alternate<6>>;
    = note: required for `(stm32h7xx_hal::gpio::Pin<'E', 2, stm32h7xx_hal::gpio::Alternate<6>>, ..., ..., ..., ...)` to implement `sai::i2s::I2SPinsChA<stm32h7xx_hal::stm32::SAI1>`
    = note: the full type name has been written to 'target/thumbv7em-none-eabihf/debug/deps/tcc-9b1e8f6e0ab9f3e3.long-type-11402833594598164313.txt'
note: required by a bound in `i2s_ch_a`
   --> .cargo/registry/src/github.com-1ecc6299db9ec823/stm32h7xx-hal-0.13.1/src/sai/i2s.rs:359:15
    |
359 |         PINS: I2SPinsChA<Self>;
    |               ^^^^^^^^^^^^^^^^ required by this bound in `i2s_ch_a`
help: consider specifying the generic argument
    |
62  |             None::<T>
    |                 +++++

Now I'm definitely not an expert in the language, I've only used it for a few years now, but not professionally nor with this heavy usage of templates and etc... Am I missing something really stupid?

I got rid of the error by using None::<gpio::Pin<'E', 3, Alternate<6>>>, but it's definitely ugly... Still think there might be a way where I don't need to concern myself over the port/pin/mode of something I won't use.

https://github.com/stm32-rs/stm32h7xx-hal/pull/431 does not change Sai interface, but also support pins in Default (Analog) mode to be passed in constructor.
So this also should work:
let sai1_pins = (
    mclk_a_pin,
    sck_a_pin,
    fs_a_pin,
    sd_a_pin,
    None::<gpio::PE3>
);


Add CGP-0134: Validators rewards - changes in epoch parameters

This PR is created to help @dee submit his governance proposal to increase validator rewards in line close to where they were originally set at genesis. This is also utilizing the payload created and tested in #425

You submitted the proposal #178 without this being merged, which made an invalid description url for the proposal.


inactive_settings in eb.yml

in eb_deployer you can do something like:
inactive_settings:
      # reduce instance count to 0 to save cost
      - namespace: aws:autoscaling:asg
        option_name: MinSize
        value: "0"
      # make sure cooldown is big enough to cope with DNS cache
      - namespace: aws:autoscaling:asg
        option_name: Cooldown
        value: "900"

what is the syntax for inactive settings for this gem?

Look at the readme sample and find aws:autoscaling:asg and you'll find other examples.  Our syntax is simpler and I believe our sample shows MinSize.

Yes but what about the inactive setting? I don't want to have two production servers running for my blue green setup as it is wasteful.

Do you not see the pattern based on MinSize?
options:

  aws:autoscaling:asg:
    MinSize: 1

This gem generates the option settings from the eb.yml.  If you are concerned it isn't going to be right,  create your package without deploying and inspect the aws option settings.

So for inactive settings it would be
inactive:
    aws:autoscaling:asg:
      MinSize: 0
      Cooldown: 900

right?

If that is a valid setting for aws elastic beanstalk, then yes that is how you would specify it.

I think its an eb_deployer specific setting as noted here:
https://github.com/ThoughtWorksStudios/eb_deployer/wiki/Elastic-Beanstalk-Tips-and-Tricks#set-inactive_settings-for-saving-cost-on-blue-green-deployment

@killerham there is an important distinction that I think you are misunderstanding - these are not eb_deployer settings, these are AWS elastic beanstalk settings.

I know
aws:autoscaling:asg:
      MinSize: 0
      Cooldown: 900

are elastic beanstalk settings. I'm only worried about inactive_settings vs option_settings. I know that option_settings becomes option.... I'm wondering if inactive_settings becomes inactive.

I think I see what you are saying, here is the section that states that eb_deployer treats this in a special way:

eb_deployer solves this problem by allow you set special settings to environments that only applied when they become inactive.

So they actually have a different settings root:
option_settings:
      # providing least redundancy
      - namespace: aws:autoscaling:asg
        option_name: MinSize
        value: "2"
      # make sure cooldown is reset back to default when environment become active again
      - namespace: aws:autoscaling:asg
        option_name: Cooldown
        value: "360"
    inactive_settings:
      # reduce instance count to 0 to save cost
      - namespace: aws:autoscaling:asg
        option_name: MinSize
        value: "0"
      # make sure cooldown is big enough to cope with DNS cache
      - namespace: aws:autoscaling:asg
        option_name: Cooldown
        value: "900"

If you look at the generated .ebextensions from above, all of these will be under options_settings.  We need to add some code to recognize options vs inactive in our eb.yml.

Okay cool! Is there a quick way I can add it to my current eb.yml? Or do I need to go into aws and do it manually?

Just add a inactive section, it should be a sibling to options.  I'll create a version that generates this in place and you can see if it works.

If you need this quickly, you need to go add it manually in AWS

@killerham Use github: 'alienfast/elastic-beanstalk' and update your gem.
I committed a change that should support it, but I really need you to test it out and let me know if it is good to go.  I threaded through the eb_deployer code and I think this will provide it with the inactive_settings as expected.  Feel free to look over the commit if there are any problems and let me know what you see.
Please let me know the results.

Can you bump the version number? Its not updating the gem otherwise.

The new change totally breaks my post scripts.
For example, eb:show_config used to show:
05-start-faye-server.config:
	    files:
	      "/opt/elasticbeanstalk/hooks/appdeploy/post/05_start_faye_server.sh":
	        mode: '000755'
	        owner: root
	        group: root
	        content: |
	          #!/usr/bin/env bash
	          # Loading environment data
	          EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
	          EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
	          EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
	          EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
	          # Setting up correct environment and ruby version so that bundle can load all gems
	          . $EB_SUPPORT_DIR/envvars
	          . $EB_SCRIPT_DIR/use-app-ruby.sh
	          # Now we can do the actual restart of the worker. Make sure to have double quotes when using env vars in the command.
	          cd $EB_APP_DEPLOY_DIR
	          su -s /bin/bash -c "RAILS_ENV=production bundle exec thin -C config/private_pub_thin.yml --timeout 60 start -d" $EB_APP_USER

Now it shows:
05-start-faye-server.config:
	    files:
	      "/opt/elasticbeanstalk/hooks/appdeploy/post/05_start_faye_server.sh":
	        mode: '000755'
	        owner: root
	        group: root
	        content: "#!/usr/bin/env bash\n# Loading environment data\nEB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config
	          container -k app_user)\nEB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config
	          container -k app_deploy_dir)\nEB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config
	          container -k script_dir)\nEB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config
	          container -k support_dir)\n# Setting up correct environment and ruby version
	          so that bundle can load all gems\n. /envvars\n. /use-app-ruby.sh\n# Now
	          we can do the actual restart of the worker. Make sure to have double quotes
	          when using env vars in the command.\ncd \nsu -s /bin/bash -c \"RAILS_ENV=production
	          bundle exec thin -C config/private_pub_thin.yml --timeout 60 start -d\"
	          \n"

It adds a bunch of new lines and puts the whole script in quotes.

I doubt my change did that, but your problem looks very familiar.
Please post your entire eb.yml (pull anything sensitive) so I can try it.  I believe I had to hack a write file solution for our docker-rails so that the content would be written out different with the pipe instead of quotes.  I'll dig that up and perhaps move it to dry-config since it may be the thing causing issues here.

Here is my eb.yml
# This is a sample that has not been executed so it may not be exactly 100%, but is intended to show
#   that access to full options_settings and .ebextensions is intended.
#---
# http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html#command-options-ruby
#
# This is a sample that has not been executed so it may not be exactly 100%, but is intended to show
#   that access to full options_settings and .ebextensions is intended.
#---
app: myapp
region: us-west-2
# Choose a platform from http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html
solution_stack_name: 64bit Amazon Linux 2015.09 v2.0.6 running Ruby 2.2 (Passenger Standalone)
strategy: inplace-update # default to inplace-update to avoid starting new environments
keep_latest: 10
package:
  verbose: true
  includes:  ['public/assets/.sprockets-manifest-*.json'] # ensure '.' manifest is added when using assets:precompile
  exclude_dirs: [features, spec, target, coverage, vcr, flows, tmp]  # additional dirs that merge with default excludes
  exclude_files: [.ruby-*,  rspec.xml, README*, db/*.sqlite3, bower.json]
smoke_test: |
    lambda { |host|
      EbSmokeTester.test_url("http://#{host}/health", 600, 5, 'All good! Everything is up and checks out.')
    }
#--
ebextensions:
  # General settings for the server environment
  01-environment.config:
    commands:
      01timezone:
        command: "ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime"

  # These are things that make sense for any Ruby application
  02-ruby.config:
    # Install git in order to be able to bundle gems from git
    packages:
      yum:
        postgresql93-devel: []
        git: []
        gcc: []
        libxml2: []
        libxml2-devel: []
        libxslt: []
        libxslt-devel: []
        patch: []

    files:
      "/opt/elasticbeanstalk/hooks/appdeploy/pre/01a_bootstrap.sh":
        mode: "000755"
        owner: root
        group: root
        content:  |
          #!/usr/bin/env bash

          rm -rf /var/app/support/cache
          mv -f /var/app/support/tmp/* /var/app/support

          rm -r /var/app/support/tmp

          mkdir /var/app/ondeck/vendor /var/app/ondeck/public /var/app/support/bundle /var/app/support/assets /var/app/support/cache

          ln -s /var/app/support/bundle /var/app/ondeck/vendor
          ln -s /var/app/support/assets /var/app/ondeck/public
          ln -s /var/app/support/cache  /var/app/ondeck/vendor

      "/opt/elasticbeanstalk/hooks/appdeploy/pre/10a_bundle_pack.sh":
        mode: "000755"
        owner: root
        group: root
        content:  |
          #!/usr/bin/env bash
          # Loading environment data
          EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
          EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
          # Setting up correct environment and ruby version so that bundle can load all gems
          . $EB_SUPPORT_DIR/envvars
          . $EB_SCRIPT_DIR/use-app-ruby.sh

          cd /var/app/ondeck

          bundle pack --all

    sources:
      /var/app/support/tmp: https://s3-us-west-2.amazonaws.com/myapp/bundle.tar.gz
      /var/app/support: https://s3-us-west-2.amazonaws.com/myapp/assets.tar.gz

  # Run rake tasks before an application deployment
  03-create-post-deploy.config:
    commands:
      create_post_dir:
        command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
        ignoreErrors: true

  05-start-faye-server.config:
    files:
      "/opt/elasticbeanstalk/hooks/appdeploy/post/05_start_faye_server.sh":
        mode: "000755"
        owner: root
        group: root
        content:  |
          #!/usr/bin/env bash
          # Loading environment data
          EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
          EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
          EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
          EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
          # Setting up correct environment and ruby version so that bundle can load all gems
          . $EB_SUPPORT_DIR/envvars
          . $EB_SCRIPT_DIR/use-app-ruby.sh
          # Now we can do the actual restart of the worker. Make sure to have double quotes when using env vars in the command.
          cd $EB_APP_DEPLOY_DIR
          su -s /bin/bash -c "RAILS_ENV=production bundle exec thin -C config/private_pub_thin.yml --timeout 60 start -d" $EB_APP_USER

  07-start-delayed-job.config:
    files:
      "/opt/elasticbeanstalk/hooks/appdeploy/post/07_start_rpush_daemon.sh":
        mode: "000755"
        owner: root
        group: root
        content:  |
          #!/usr/bin/env bash
          # Loading environment data
          EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
          EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
          EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
          EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
          # Setting up correct environment and ruby version so that bundle can load all gems
          . $EB_SUPPORT_DIR/envvars
          . $EB_SCRIPT_DIR/use-app-ruby.sh
          cd $EB_APP_DEPLOY_DIR
          su -s /bin/bash -c "RAILS_ENV=production bin/delayed_job restart" $EB_APP_USER

  08-update-cache.config:
    files:
      "/opt/elasticbeanstalk/hooks/appdeploy/post/08_update_cache.sh":
        mode: "000755"
        owner: root
        group: root
        content:  |
          #!/usr/bin/env bash
          # Loading environment data
          EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
          EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
          # Setting up correct environment and ruby version so that bundle can load all gems
          . $EB_SUPPORT_DIR/envvars
          . $EB_SCRIPT_DIR/use-app-ruby.sh

          if [ "$RAILS_ENV" != "staging" ]; then
            exit
          fi

          cd /var/app/support

          #tar zcf bundle.tar.gz bundle cache
          #s3put -b myapp -p /var/app/support -g public-read bundle.tar.gz

          #tar zcf assets.tar.gz assets
          #s3put -b myapp-cache -p /var/app/support -g public-read assets.tar.gz

#---
options:

  # Any environment variables - will be available in ENV
  aws:elasticbeanstalk:application:environment:
    RAILS_SKIP_ASSET_COMPILATION: true # Use if doing asset compilation before packaging (recommended)
    BUNDLE_DISABLE_SHARED_GEMS: 1
    BUNDLE_BIN: 'bin'
    BUNDLE_PATH: 'vendor/bundle'

  aws:autoscaling:launchconfiguration:
    EC2KeyName: myapp-key
    SecurityGroups: 'myapp-production-control'
    IamInstanceProfile: 'arn:aws:iam::48484848:instance-profile/aws-elasticbeanstalk-ec2-role'

  aws:autoscaling:asg:
    MinSize: 1
    MaxSize: 5
    # Restrict to Reserved Instance zone: http://stackoverflow.com/a/33131364/2363935
    'Custom Availability Zones': 'us-west-2a, us-west-2b, us-west-2c'
    'Availability Zones': Any 1

  aws:elb:loadbalancer:
    SSLCertificateId: 'arn:aws:iam::48484848:server-certificate/myapp-ssl'
    LoadBalancerHTTPSPort: 443

  aws:elb:policies:
    Stickiness Policy: true

  aws:elasticbeanstalk:sns:topics:
    Notification Endpoint<EMAIL_ADDRESS>
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: '/health'

  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced

  aws:elasticbeanstalk:environment:
    ServiceRole: aws-elasticbeanstalk-service-role

#---
staging:
  options:
    aws:autoscaling:launchconfiguration:
      InstanceType: t2.micro
#---
production:
  strategy: blue-green # always fire up a new environment and healthcheck before transitioning cname
  options:
    aws:autoscaling:launchconfiguration:
      InstanceType: t2.medium

  inactive:
    aws:autoscaling:asg:
      MinSize: 0
      Cooldown: 900

  ebextensions:
    06-start-rpush-daemon.config:
      files:
        "/opt/elasticbeanstalk/hooks/appdeploy/post/06_start_rpush_daemon.sh":
          mode: "000755"
          owner: root
          group: root
          content:  |
            #!/usr/bin/env bash
            # Loading environment data
            EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
            EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
            EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
            EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
            # Setting up correct environment and ruby version so that bundle can load all gems
            . $EB_SUPPORT_DIR/envvars
            . $EB_SCRIPT_DIR/use-app-ruby.sh
            # Now we can do the actual restart of the worker. Make sure to have double quotes when using env vars in the command.
            cd $EB_APP_DEPLOY_DIR
            su -s /bin/bash -c "bundle exec rpush start -e production" $EB_APP_USER

I can confirm that this issue is unrelated.  Even though show puts the script content in a quoted single line, this is still valid yaml and should be read by the server as such.
What error are you receiving from the server?

I'm receiving this error:
Elasticbeanstalk instance provision failed (maybe a problem with your .ebextension files). The original message: [Instance: i-jffjdkfj] Command failed on instance. Return code: 10 Output: (TRUNCATED)...elasticbeanstalk/hooks/appdeploy/post/05_start_faye_server.sh: line 9: /use-app-ruby.sh: No such file or directory
/opt/elasticbeanstalk/hooks/appdeploy/post/05_start_faye_server.sh: line 11: cd: HOME not set
Could not locate Gemfile or .bundle/ directory.
Hook /opt/elasticbeanstalk/hooks/appdeploy/post/05_start_faye_server.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

Although it is valid YAML, it looks like the Bash variables are being interpolated on my local machine for some reason. If you look at the script before it was . $EB_SUPPORT_DIR/envvars but now its just . /envvars and the $EB_APP_USER completely goes away.

ah...hmmm...yes we just did that with #31 and now it's causing you problems.
Hack the interpolation to false and redeploy to see if it works.
https://github.com/alienfast/elastic-beanstalk/blob/master/lib/elastic/beanstalk/config.rb#L25
Once you confirm, perhaps we should consider partially interpolating variables or turning it back off.
/cc @djsegal

Run this first
EbConfig.instance_values["options"][:interpolation] = false

And I should put that in application.rb?

Sure, either that or edit the gem source directly (temporary)

@rosskevin this kind of goes back to using <%= ... %>. i think its pretty standard for yml rails files to allow that format. is there a way to change interpolation techniques in https://github.com/alienfast/dry-config?

this can safely be done with ERB.new('<%= "Hello World" %>').result
Note that ERB.new('"Hello World"').result also works as expected

I would think interpolation belongs in dry-config.  You could say that the problem is that dry-config interpolates the entire contents of a file:
https://github.com/alienfast/dry-config/blob/master/lib/dry/config/base.rb#L114
We could:

selectively interpolate values
continue to change entire file and selectively apply interpolations i.e. only erb for this gem?
add erb to this gem only

All are reasonable. 2 and 3 are easiest.  Thoughts?

@djsegal let's just reverse the interpolation change and add in your original pull with ERB.

Finally had a chance to try it. I get the following crash when trying to deploy on my staging environment:
NoMethodError: undefined method `each_key' for nil:NilClass
/Users/me/.rvm/gems/ruby-2.2.1/bundler/gems/elastic-beanstalk-e8506f6d373c/lib/elastic/beanstalk/config.rb:126:in `generate_settings'
/Users/me/.rvm/gems/ruby-2.2.1/bundler/gems/elastic-beanstalk-e8506f6d373c/lib/elastic/beanstalk/config.rb:66:in `inactive_settings'
/Users/me/.rvm/gems/ruby-2.2.1/bundler/gems/elastic-beanstalk-e8506f6d373c/lib/elastic/beanstalk/tasks/eb.rake:320:in `block (2 levels) in <top (required)>'
/Users/me/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval'
/Users/me/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => eb:deploy

Same thing happen on show?

No is fine when using rake eb:show_config[staging]

@killerham I found the problem.  I have a fix but waiting on merging #33 so I don't cause a conflict with him.
I think my change and @djsegal's pull will probably get you there.  Give us an hour or so.

Okay sounds good!

@killerham try v1.1.12

Awesome it worked! Thanks. When is this going to be pushed out to ruby gems?

Already pushed as v1.1.12.  You should be good to get off the repo now.


pygradboost | error

. pylearn, setup
Looking for Python module pandas...
The module pandas was found.
Looking for Python module numpy...
The module numpy was found.
Looking for Python module scikit-learn...
The module scikit-learn was found.
Done! All prerequisites for pylearn are installed.
. webuse iris, clear
(Iris data)
. pygradboost iris seplen sepwid petlen petwid, type(classify)
Traceback (most recent call last):
File "", line 1, in
File "", line 74, in run_gradboost
TypeError: init() got an unexpected keyword argument 'ccp_alpha'
r(7102);

It turns out this error is caused by an older version of scikit-learn. The ccp_alpha parameter was added to the gradient booster classes in scikit-learn 0.23 - you get this error if you have scikti-learn 0.22 or below.
In the near future, I'm going to handle this more flexibly, checking to see what version of scikit-learn you have, automatically upgrading to the latest version otherwise. But pygradboost should work for you now! Just run 'pylearn, upgrade' to upgrade to the version I just pushed.

now it is working.
My personal advice is not to automatically upgrading scikti-learn to the latest. It is the kind of fundamental package which hundred on others depend on ( python dependency hell ). Just expose your minimum requirements and let the user to decide upon. thks


Simple README example fix

MinimalExample.ios.js . calls the wrong function
should be startScanning instead of startDiscovery
thanks a million for all your work!
P:)

Thanks for pointing that out and the nice feedback! 😀 I changed the name in the REAMDE, not the file.


Any plans to add synchronised audio recording to Recorder

It would be lovely to be able to record audio along with the processed video. Are there any examples of that using the assetwriter with MetalPetal that does that?

I managed to adapt GPUImage's version to Metal petal and it seems to work.

wow.. thats great.
share share :)
Omar Juarez • MDM. BSc.
Interactive Developer
omarojo.com
On Aug 24, 2018, 2:05 PM -0700, kallipigous<EMAIL_ADDRESS>wrote:

I managed to adapt GPUImage's version to Metal petal and it seems to work.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Will do. I just need to organize it a bit.

Here's a simplified version of the four classes I use for using filters and recording video and audio using metalPetal. GPUImage does some fancy timecode checking to make sure audio and video are in sync but I just append the audio and video as it arrives it seems to be fine. Perhapse with significant processing it will get out of sync,
metalPetalVideoRecording.zip

@kallipigous hey man just wanted to say thank you very much for sharing your implementation. It works pretty nice. Will see later when using other filters but so far so good :)

Lovely. Let me know if you spot anything. It seems to work for me processing with a long array of filters.


CPP/error/linearSearch.cpp

rectify the error in the code.
NOTE:- Screenshot of the code and output is required.

Hello....Please Assign this to me


bug(ics29): fees cannot be refunded to blocked module account

Summary of Bug
It is possible to use a module account address as the refund address for packet incentivisation. However, this module account may be blocked and fees would still be escrowed, since SendCoinsFromAccountToModule does not check that the sender address is blocked.
The problem arises when:

fees are escrowed from a module account that is blocked,
if any of the fees need to be refunded, then that fails because the module account is blocked and SendCoinsFromModuleToAccount does check whether the recipient is in the blocked addresses list or not, and if it's blocked then it returns an error.

Expected Behaviour
A module account that is blocked should not be allowed to incentivize a packet.
Version
v4.0.0-rc2
Proposed solution
We should check after here in PayPacketFee in  and here in PayPacketFeeAsync that the RefundAddress is not blocked and return and error otherwise.

For Admin Use

[x] Not duplicate issue
[x] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

So basically we have to prevent a blocked address from being the escrow payer?

So basically we have to prevent a blocked address from being the escrow payer?

yes, otherwise they wouldn't be able to be refunded


feat(Variance): Experimental MVP for internal use

Overview
Checks in an experimental Refactor of gamut-system
Example code sandbox with recreating layout grid.
Improvements

Type system refactor for performant type inference and caching through interfaces.
The prop creators can now be used inline per component as opposed to imported pre made groups.
Built for customized prop names, create props that control multiple CSS properties or create shorthands for verbose properties.
Expanded transform API to accept more optional arguments for more surgical control over the final value.
Simplified internal API to reduce complexity.
Removes the concept of template types, all properties are sorted by the number of properties they handle.

Not implemented

Automated prop generation is not included here, props must explicitly configured.
Variant / CSS API, these are mostly implemented, but ultimately are not ready to be used.
Array scales (both literal and thematic)

Usage
Usage is similar to gamut-system but can be created anywhere.
import styled from '@emotion/styled';
import { variance as createVariance } from '@codecademy/variance';
import { Theme } from '@codecademy/gamut-styles';

const variance = createVariance.withTheme<Theme>();

const Container = styled.div(
  variance.create({
    w: { property: 'width' },
    p: { property: 'padding', scale: 'spacing' },
 })
);

<Container w="100%" p={[16, 24]}>Big thing</Container>

Composition
The composition API is the same but can only be used from the instance of variance you are using to ensure that theme is available.
import { variance } from './variance';

const spacing =   variance.create({
    m: { property: 'padding', scale: 'margin' },
    p: { property: 'padding', scale: 'spacing' },
 })

const dimensions =   variance.create({
    w: { property: 'width' },
    h: { property: 'height'  },
 })

// Uses just spacing
const Spacer = styled.div(spacing);

// Uses both props
const Box = styled.div(variance.compose(spacing, dimensions));

Configuration
The configuration API is similar to gamut-system but removes options
interface Prop<T extends AbstractTheme> {
  property: keyof PropertyTypes;
  properties?: (keyof PropertyTypes)[];
  scale?: keyof T | { [key: string]: string | number, [key: number]: string | number } ;
  transform?: (
    val: string | number,
    property?: string,
    props?: AbstractProps
  ) => string | number;
}

Exposed API

withTheme: Returns an instance of variance with a theme shape to derive the types from.
create:  Takes a map of configurations and returns a parser function that accepts the props configuration that will generate styles for each of the configured props.
compose: Takes any number of parser functions as arguments and returns a new parser that handles all the props.

Adds experimental variance API for ad hoc system props.

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: ABC-123
[x] I have run this code to verify it works
[x] This PR includes unit tests for the code change

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://60371343d8d89900ab2897c7--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6037167dd8d89900d22897a1--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6037bbdef999b50084c5f797--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6037d301e814fd121f5f670f--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6037f7fb2925b53bfb958e14--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://603d703de328a1395ed92949--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://603d72a2406f1e0095f0df12--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://603d7c389f233d0a97b9ada6--gamut-preview.netlify.appDeploy Logs


The set-output command is deprecated and will be disabled soon

When using actions-ecosystem/action-bump-semver@v1:
Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

@micnncim  any chance to get this issue fixed?

Update finising apdate

Scroll manual

is anybody monitoring this repo?

Hey @micnncim, just saw that you might be running this repo solo.  I'm up for lending a hand with managing stuff, and I reckon a few other PR folks might be keen to jump in too 😁

at this point in time I have lost all the hope (Sorry!!),
how difficult would it be to fork this repo and maintain the fork?


2.12ification #74

Problem
Project needs to support  scala 2.12 and tested to make sure it compiles.
Solution
Added crossScalaVersions to the build.scala file
Result
Project now supports Scala 2.12 and compiles

[Current coverage][cc-pull] is 69.88%

Merging [#77][cc-pull] into [develop][cc-base-branch] will not change coverage

@@            develop        #77   diff @@
==========================================
  Files            26         26
  Lines          1172       1172
  Methods        1108       1087    -21
  Messages          0          0
  Branches         64         85    +21
==========================================
  Hits            819        819
  Misses          353        353
  Partials          0          0

Powered by Codecov. Last updated by [eb77179...2bbe9e4][cc-compare]
[cc-base-branch]: https://codecov.io/gh/twitter/ostrich/branch/develop?src=pr
[cc-compare]: https://codecov.io/gh/twitter/ostrich/compare/eb77179d78d4646d3090f165ddb5bbc239e8b297...2bbe9e43096ea9809e8e2ebe6b3124cd2c7bf64d
[cc-pull]: https://codecov.io/gh/twitter/ostrich/pull/77?src=pr

@idarlington how did you compile it / run tests?  I have to say, I'm pretty surprised this works.  Did you try ./sbt +test?

Running crossversion test shows this :
[info] Tests: succeeded 102, failed 1, canceled 0, ignored 0, pending 0
[info] *** 1 TEST FAILED ***
[error] Failed tests:
[error] 	com.twitter.ostrich.admin.config.ServerConfigSpec
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful

Oh, I see!  OK, we probably want to figure out why that test failed and fix it before we merge this in.  Also, can you update the .travis.yml file to add 2.12.0-M4?
Did you see our discussion on the other ticket about whether it might be possible to move from scala-json to jackson?  Would you be interested in tackling that?

Hi @mosesn , this is the error :
[info] - configure Logger with loggerConfig when LoggerFactories not specified *** FAILED ***
[info]   Handler;(<com.twitter.logging.ScribeHandler level=ALL hostname=localhost port=1463 scribe_buffer=100.milliseconds scribe_backoff=15.seconds scribe_max_packet_size=1000 formatter=com.twitter.logging.Formatter@511d438f>) had size 1 instead of expected size 0 (ServerConfigSpec.scala:62)

Any ideas on why the test fails?

Someone is moving ostrich off of scala-json now, so we'll be able to merge this in soon!  Very excited =)

re: .travis.yml, let's just sit tight for now, but make sure all of the tests pass.  I don't know why that test fails, but it looks like it's in util, not in ostrich, right?  So it should be OK.  Might be worth filing a ticket on util?

https://github.com/twitter/ostrich/commit/80fe2dd4173b171f0d0e21b0a67671ca1e019447 landed, so this might be ready for the big time.  Thanks for your patience @idarlington!

We are waiting for the imminent 2.8.1 release of jackson-module-scala, which should have a scala 2.12.0-M4 build, and then we will get this merged. Thanks for your patience @idarlington!

Thanks @idarlington! I'm pulling this internally. Will close this ticket once it's merged.

@idarlington sorry for the long silence, this ended up requiring more internal work than we thought it needed.  we're still working on it!

Hi, @mosesn , I am fine with that. What other projects have issues I can work on ?

Finagle and Scrooge both have lots of starter tickets!

@idarlington this was finally merged internally.  thanks for your patience!

Hi @idarlington, thank you for your contribution. This has been pushed back out to GitHub in https://github.com/twitter/ostrich/commit/1a819b1fb76740fd81348c6e484fe5abed69ffe7
Now going to close this pull request.


Locate without GPS

As a map user, I want to be able to locate myself without the use of GPS.

Triangulation implemented


"Show details" does nothing for dashboard widgets

SQL Operations Studio Version: 2/2/2018 daily build (fe04fd7)
Steps to Reproduce:

Connect to a server and open the dashboard
Click on the options menu for the Backup Status widget and observe that nothing happens

I don't see an error anywhere though

This should be fixed now (at least with latest pending PR for fixing regressions)


[Bug] Wheels image thumb images are not deleted when deleting a wheel image

Describe the bug
When deleting a wheel image via the Asset Manager, the main image is removed in the appropriate POPMedia sub directory on the cabinet, but the corresponding pthumbs\ sub directory images are not. This causes a strange issue with wheel images for playlists, where trying to replace a image causes the original image to be restored.
To Reproduce
Steps to reproduce the behavior:

Open Asset Manager in VPin-Studio
Select a table or playlist with an existing wheel image
Note the filename of the image existing on the cabinet in the corresponding PinUPSystem\POPMedia\ directory as well as <filename>_thumb.png and <filename>_thumb_sm.png in the pthumbs\ sub directory.
Delete the wheel image via Asset Manager
Note that while the main image file is removed, the pthumbs\ files are not
If this is a playlist, try uploading a new wheel image in its place, then open PinUp Popper and see that is it showing the old image on the wheel bar.

Expected behavior
All files for a given wheel image, including pthumbs\<filename>_thumb.png and pthumbs\<filename>_thumb_sm.png should be removed when deleting the wheel image in Asset Manager.
Desktop (please complete the following information):

OS: Archlinux
Cabinet OS: Windows 10
VPin-Studio: 3.7.2

Fixed with 3.8

@syd711 I'm still seeing this problem on 3.8.1.
For example, if I have a playlist named "Classic", I delete the wheel image via the asset manager in vpin studio with the cabinet in maintenance mode. The file named pl_Classic.png gets deleted from PinUPSystem\POPMedia\Default\Wheel\, but PinUPSystem\POPMedia\Default\Wheel\pthumbs\pl_Classic_thumb.png and PinUPSystem\POPMedia\Default\Wheel\pthumbs\pl_Classic_thumb_sm.png still exist on the cabinet and are shown as the wheel image in Popper.
Also, uploading a new image doesn't replace those thumb images, so the old wheel image continues to be shown until they're manually deleted.

I have missed to check the playlists too. I've reopened the ticket

I've fixed the deletion there. Altough I've found the pthumbs folder also in my Default folder, I haven't figured out yet when these icons are converted.

Interesting. At least on my cabinet, I don't have any phumbs folder in Default itself. Deleting the images in Default\Wheel\pthumbs\ is what I've had to do manually to get new images to show up in the frontend.

I hope this is fixed now and will close this ticket.
Fixed with 3.9.2

This doesn't seem to be fixed for playlists on 3.9.3.
For instance, to test I put my cabinet into maintenance mode and open vpin studio's asset manager, then switch to playlists and then select my "Classic" playlist.
Then, I check what files exist (I have my pinball cabinet mounted on my local machine):
> pwd
/media/pinball/PinUPSystem/POPMedia/Default/Wheel
> ls pl_Classic.png
pl_Classic.png
> ls pthumbs/pl_Classic_thumb*
pthumbs/pl_Classic_thumb.png  pthumbs/pl_Classic_thumb_sm.png

Next, I delete the playlist's wheel image via the vpin studio asset manager. Now, the main wheel image file is gone, but the pthumbs still exist:
> pwd
/media/pinball/PinUPSystem/POPMedia/Default/Wheel
> ls pl_Classic.png
ls: cannot access 'pl_Classic.png': No such file or directory
> ls pthumbs/pl_Classic_thumb*
pthumbs/pl_Classic_thumb.png  pthumbs/pl_Classic_thumb_sm.png

At this point if I bring the cabinet out of maintenance mode, the deleted wheel image is still shown for the playlist. If I put it back in maintenance mode and upload a new different wheel image for that playlist, the main wheel image file is created, but since the pthumb files already exist they aren't regenerated and Pinup Popper still shows the old wheel image. At this point if I go back into maintenance mode and delete the files in pthumbs/, the files get regenerated off the current images when I it comes out of maintenance mode and the current images are displayed as expected.
Testing out via Pinup Popper's config tool, when deleting or replacing a playlist wheel image, the corresponding pthumbs/ files are removed and get regenerated on next run of the frontend.

Ok, thanks for reporting back. Would have been to easy. I'll check more thoroughly this time.

Ok, finally got it.
Fixed with 3.10.1

Confirmed, works as expected now. Thanks @syd711!


Syntax highlighting with JSX-Fragments broken

VSCode Version: 1.19.0-insider 6bc5a14bf34e44b3af5508350cc1221fcc999ceb
OS Version: MacOS High Sierra

Steps to Reproduce:

Create a .tsx file
paste this:

const foo = <>
Hello

World
</>;

Note: Requires TypeScript >= 2.6.2
Note: The opening fragment tag (<>) is recognized as invalid.illegal.tag.incomplete.tsx as tm scope.
Reproduces without extensions: Yes

Not able to repo this:

The document's language mode is TypeScript React? And this repos without any extensions enabled?

@mjbvz Thanks for having a look at this! Turns out, that I had the Latest TypeScript and JavaScript Grammar extension installed which broke highlighting. Removing it fixed the issue for me. 👍

Actually, it is broken without the extension as well. Here's an example where it gets totally borked:

Here's the code if anyone else want to try out:
import * as React from "react";

export default class App extends React.Component<{}, {}> {
    render() {
        const test: any[] = [];
        return (
            <>
                Highlighting does not work as expected with fragments.
                {Object.keys(test).map(key => {
                    return (
                        <p key={`date-${key}`}>
                            It's totally broken here.

                    );
                })}
            </>
        );
    }
}```

@mekwall I can't reproduce this with latest insiders build. Works fine for me.


Add dateify extension

Description

Add Dateify
Dateify is an extension to paste the current date & time in two formats to the active window. This simple extension aim to facilitate dating changes within any application. I use this to add dates to comments so I know when I last reviewed a section of code. E.g.,
#Some info here Reviewed: Thursday 31 October 2024 at 11:44:49
someFunction( )

Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Yeah lol... Bit of a raycast newb I now have it on !reviewed. Forgot to close, sorry about that. Thanks for taking the time to review the PR.


test: add GQL fallback to fetching user groups

This only affects the dataset live tests and does affect the package functionality. I am removing the _get_user_groups internal function though, since it was unused, and instead move the implementation into datasets-live.jl.

Codecov Report

Merging #21 (7f7ad0a) into main (e790f28) will decrease coverage by 54.92%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##             main      #21       +/-   ##
===========================================
- Coverage   76.65%   21.73%   -54.92%
===========================================
  Files          16       16
  Lines        2193     2158       -35
===========================================
- Hits         1681      469     -1212
- Misses        512     1689     +1177

Files Changed
Coverage Δ

src/userinfo.jl
0.00% <0.00%> (-82.50%)
:arrow_down:

... and 13 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Test !is_dir() before mkdir() makes mkdir() useless

This will work only if file exists and it is not directory. But if directory is missing completely, this will fail on "not a directory" and mkdir() never be runned.
Change !is_dir() to file_exists() && !is_dir()
Thnx

Check! =D


basis_universal: Update to upstream commit from Apr 16, 2021

BinomialLLC/basis_universal@ba1c3e40f1d434ebaf9a167b44e9b11d2bf0f765.

Outdated:
Draft as this should fail building due to symbol conflicts between basis_universal and tinyexr. Both dependencies bundle https://github.com/richgel999/miniz without namespacing it or renaming its symbols, so they clash.
tinyexr could be configured not to use miniz (with TINYEXR_USE_MINIZ=0) but then it requires jumping through a few hoops to link against zlib instead, and that's kind of just working around the problem.
There will likely also be a conflict between basis_universal's bundled jpgd and ours.

I will import the TPS demo and see what happens. Will report back.


Ntf trade ecology

by nft asset approve mechanism

This change is

This pr is closed, refer to the new PR #91


Error when slicing in zarr array

I am using this package to compress images in zarr array and if I try to access multiple images at the same time by slicing the zarr array, the decoders crash (I tried with Png and Jpeg compressors). I am not totally sure of where I should raise this issue but I think it is more logical to post it in this repository than in zarr or numcodecs.
As a quick summary, when using image compressors in zarr array, integer indexing works fine: imgs[0, :, :, :] but not slicing: imgs[:2, :, :, :] or imgs[:, :, :, :]. The zarr documentation suggests that slicing should work. This is not a blocking issue since the images can be accessed by using integer indexing (or a list of integers by using oindex) but it might still be worth it to fix it (in particular for the simple [:] slicing). I am guessing that in the case of a slice the decoder receive a single buffer containing multiple images and try to decode it as if it was a single image but I am not sure how to fix it.
Here is a more complete script to replicate the problem (with zarr 2.16.1, numcodecs 0.12.1 and imagecodecs 2024.1.1). The Png compressor raise a ValueError but the Jpeg one causes a segfault.
import traceback

from imagecodecs.numcodecs import Jpeg, Png
from numcodecs import Blosc
import numpy as np
import zarr

zarr.register_codec(Jpeg)
zarr.register_codec(Png)
N_IMAGES = 5
IMG_SIZE = 32, 32, 3

def create_images_array(compressor):
    imgs = np.zeros((N_IMAGES, *IMG_SIZE), dtype=np.uint8)
    arr = zarr.array(data=imgs,
                     dtype="uint8",
                     chunks=(1, *IMG_SIZE),
                     compressor=compressor)
    return arr

def test_zarr_array_slicing(arr):
    print(f"### Array of shape {arr.shape} with compressor ###"
          f"{arr.compressor.__class__.__name__}")
    # Valid indexing for every compressor
    print("  integer indexing:", end=" ")
    imgs[0, ...]
    imgs[1, ...]
    imgs.get_orthogonal_selection(([0, 1], slice(-1), slice(-1), slice(-1)))
    print("ok")

    # Causes crashes with imagecodecs's numcodes compressors
    print("  slicing: ", end="")
    imgs[:]
    imgs[:1, ...]
    np.asarray(list(imgs.islice(0, 2)))
    print("ok")

if __name__ == "__main__":
    for compressor in [Blosc(), Png(), Jpeg()]:
        try:
            imgs = create_images_array(compressor)
            test_zarr_array_slicing(imgs)
        except ValueError as e:
            print(f"Error")
            print(traceback.print_exception(e))
        print()

Thank you for this package, it is really useful and well coded.

Thanks for reporting. I thought slicing is tested and output buffers are checked for shape and strides. I'll have to debug this in detail...

I think I found the culprit. All codecs using strided decoding (PNG, WebP, JPEG) fail if the output buffer is not exactly the expected shape, but for example (1, *shape) returned by slicing. In that case out.strides[1] should be used instead of out.strides[0] as line stride.

Fixed in v2024.6.1.


Adding reentrancy flag to TERM_CourseOff_TDTM

Critical Changes
Changes
Updates to Prevent Reentrancy Issues

We've updated the TERM_CourseOff_TDTM class to prevent reentrancy issues.

Issues Closed
Fixes #536
New Metadata
Deleted Metadata
Testing Notes

Create a few terms for the upcoming school year. Do not set the start date and end date fields.
Create several hundred courses.
For a given term, use the bulk data loader to upload ~1000 or more course offerings - multiple course offerings for each course.

Some of these course offerings should not have a start date or an end date.
Some of these course offerings should have a start date, but not an end date.
Some of these course offerings should have an end date, but not a start date.
Some of these course offerings should have the start date and end date populated.

Navigate to the term and set the start date and end date.
Expectations: The term should update successfully. All course offering records without a start date or end date should be updated successfully. If only one of those fields was blank, that field should be updated but the field that already had a value should not be updated.

CCE feedback on release note usability:
"We've updated the TERM_CourseOff_TDTM class to prevent reentrancy issues."
What value did the changes to TERM_CourseOff_TDTM class bring to EDA?
Who would find the most value in knowing about these changes/improvements?


fix: #82 statemanager delete a State when uninstall failed

Signed-off-by: Daniel Hu<EMAIL_ADDRESS>Summary
fix: #82 statemanager delete a State when uninstall failed
Related Issues
fix: #82
/kind bug
/cc @IronCore864 @lfbdev

/lgtm


Add possibility create empty setUp Thread Group

This is necessary for the uniform creation of trade groups within the DSL. So far, I propose only for this thread of the group, as an opinion.
I will use it for my custom builder.

Hello, and thank you again for another contribution and another idea for analysis.
The final idea of this pr is to be able to do something like this when you want to tune thread groups properties, right?:
setupThreadGroup()
  .iterations(iters)
  .children(
    child1,
    child2)

where nowadays iterations you would need to the following, which is not consistent with other test elements in the dsl, since having to specify children and then properties is harder to read and reason:
setupThreadGroup(
   child1,
   child2)
  .iterations(iters)

If that is the spirit, go ahead and do all the necessary changes :-), we missed that inconsistency when releasing setup & teardown thread groups feature.
Thank you again for reviewing this and proposing a change to improve it :-).

Yes, you got the idea right. It's like that

Great, thank you again!
I would really appreciate if you contribute it, as for you as well to settle as an important contributor to the tool. If you see that you can't tackle it in the near term, let me know and I can check on getting it done by other means.
Regards

@rabelenda all is done. Can you check? :)

Awesome!, I will merge and do some small fixes in javadocs if you are ok. So we can have this asap in master and do a release.

My first helpful pr!  Thanks!  The next one is already waiting for you)

I'll add fixes on the comments tomorrow.

If it is possible to do merge now, it will be fantastically good.

I don't have enough time today, but I can tackle it tomorrow.

Fixed. Set 0.35 version num

Is there a chance to do the merge today? I'm really looking forward to it. Thanks!


(Question) Can be Aspnet Identity (Code First) with EF edmx model together?

Identity always uses Code First, so you cannot use EDMX with Identity. You can have a separate EDMX model in the same project as a CodeFirst one.

Yes @rowanmiller, but it causes a performance problem because you need to do Enumerable queries. Linq + EF can not work with separtely context I don't know why because will be easy to do dbo.db1.table1.id = dbo.db2.table2.id.

You can extend the existing Identity model to include other entities... you just need to keep using code-based modelling since that is how the model is defined.
BTW having the option to use EDMX for the identity model does not seem unreasonable to me, the work to do this would be in Identity and their issue tracker is at http://aspnetwebstack.codeplex.com/. That said, I don't think they will do the work since EDMX is no longer around in EF7 so they would only be doing the work for past versions of Identity.


Spatially reproject satellite data within nowcasting_dataset

Let's try creating batches directly from the raw EUMETSAT data (without an intermediate Zarr store).
So nowcasting_dataset must provide an option to spatially reproject satellite imagery from geostationary projection to Transverse Mercator, with a configurable target resolution (eg each pixel represents 4km x 4km).
This will almost certainly have to be done across multiple processes to make it fast enough.  (UPDATE: pyresample can be told to use multiple CPU cores)
On the other hand, if reprojecting spatial crops turns out to be really fast on our new computers, maybe we could consider reprojecting on the fly during ML training. This would have the advantage of not having to store over-sampled images to disk, and making it easy to provide raw (un reprojected images) to fully attentional models (hence avoiding reprojecting artefacts) :)

This will be implemented in https://github.com/openclimatefix/Satip/issues/15


Add an extra line to your CSV file to tell Excel what the separator is.

What?
Edit line 108:
var csvData = 'sep=,\r\n'

This will tell Excel to use the "," character as separator for the next lines. This first line is considered an instruction and not shown in your Excel sheet.
https://github.com/jecovier/vue-json-excel/blob/b8aaaed94f8757cd62f911c2432e3a6f16f500a3/JsonExcel.vue#L114

Hello @AleksandrGol, thanks for the suggestion!. I read about it and this seems to work only on excel. I think it would be great if it was an standard option, I prefer keep the line as it is for now.


Made the random function more versatile

The point is to meet user expectations and to make it more versatile, so it works under more circumstances.
At the moment the random function does only return the supplied parameter when it's not an array. That is not very useful. With this PR it will behave like
random() => integer as with mt_rand()
random(5) => integer between 0 and 5 as with mt_rand(0, 5)
random('foobar') => random character from 'foobar'
random(array(...)) => random element

I will add tests and documentation if you accept this PR.

Looks good to me. Can you update the docs and add some unit tests?

I'm not sure the string idea is a good idea. I don't see any use for it and think that it is non-obvious in terms of character encoding (e.g. the internal character encoding is not honored at all.)
Also, why was the random(end) form chosen over the random(start, end) form, which is consistent with mt_rand?

You have a point, that the string option does not have many use cases. But on the other hand what else do you expect when you pass a string to the random function? Also it's consistent with the current addition of string support for the reverse filter.
What do you mean with the character encoding is not honored? Does is not work with some encodings?
random(start, end) would require two params (in contrast to array or string). Also it is not of any extra use because you can easily achieve the same with only the end.

@fabpot That kind of was not what I was driving at, but okay, it's also a way ^^
@Tobion Well, random(int) has a different behavior than random(array) anyways, so there isn't really a reason to stick with the single parameter. Sure, it's not really good that the random() function is overloaded in this way (one could split it into randomElement() and randomNumber()), but that's a different question. I think using random(start, end) would be more consistent with the PHP way.


Rooch CLI server add clean subcommand

Clean storage

@wow-sven Hey I am learning rust from scratch, as it is a good first issue can you assign this to me >


Remove Tuist support

The latest versions of Tuist (4.x) are able to work with Lasso as a Swift Package, so we can remove this support from the repo.
The idea was brittle anyway, since the Product.swift file was dependent on a specific version of Tuist, and if the consuming project (i.e., WW) wasn't using the exact same version of Tuist there could be problems.
This PR:

removes all the Tuist things
Fixes CI so this PR can pass

@g-mark I noticed there are 7 build-and-test jobs running now. Will this be the case for all PRs going forward? That seems a little excessive right?

@g-mark I noticed there are 7 build-and-test jobs running now. Will this be the case for all PRs going forward? That seems a little excessive right?

It's the only way to test broad coverage of various Swift versions. Lasso supports as low as Swift 4.2! I don't know (I doubt) if any one in the community is relying on that level of support, but it would seem arbitrary to remove it just so we have fewer CI jobs running.
Since updates to Lasso are infrequent, this should be ok.