Flutter app has AppLifecycleState.inactive during call on iOS with locked screen

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create a minimal iOS app that uses PushKit (capability voip) and Callkit. I used this plugin, it has an example https://pub.dev/packages/flutter_callkeep
Create a Timer.periodic that logs the SchedulerBinding.instance.lifecycleState once a second.
Obtain the APNS voip token.
Lock the phone screen.
Send a PushKit push and "take the call" on the locked phone. It will show the iOS native call screen.
You will be able to notice that the lifecycleState remains inactive.

Expected results
The app gets launched by the OS (if it's terminated) and is used for handling a call, so I would expect it to enter resumed state and provide full functionality.
Actual results
The state remains inactive. Unfortuanately in the case of my app some of the state is tied to widgets and the app doesn't behave correctly in inactive state. I'm not even able to force flutter to rebuild with SchedulerBinding.instance.scheduleForcedFrame()
Code sample
After installing this plugin flutter_callkeep: ^0.3.3
In AppDelegate
import UIKit
import PushKit
import Flutter
import flutter_callkeep

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate, PKPushRegistryDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        GeneratedPluginRegistrant.register(with: self)

        //Setup VOIP
        let mainQueue = DispatchQueue.main
        let voipRegistry: PKPushRegistry = PKPushRegistry(queue: mainQueue)
        voipRegistry.delegate = self
        voipRegistry.desiredPushTypes = [PKPushType.voIP]

        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }

    // Handle updated push credentials
    func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials, for type: PKPushType) {
        print(credentials.token)
        let deviceToken = credentials.token.map { String(format: "%02x", $0) }.joined()
        print(deviceToken)
        //Save deviceToken to your server
        SwiftCallKeepPlugin.sharedInstance?.setDevicePushTokenVoIP(deviceToken)
    }

    func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType) {
        print("didInvalidatePushTokenFor")
        SwiftCallKeepPlugin.sharedInstance?.setDevicePushTokenVoIP("")
    }

    // Handle incoming pushes
    func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
        print("didReceiveIncomingPushWith")
        guard type == .voIP else { return }

        let id = payload.dictionaryPayload["id"] as? String ?? ""
        let callerName = payload.dictionaryPayload["callerName"] as? String ?? ""
        let userId = payload.dictionaryPayload["callerId"] as? String ?? ""
        let handle = payload.dictionaryPayload["handle"] as? String ?? ""
        let isVideo = payload.dictionaryPayload["isVideo"] as? Bool ?? false

        let data = flutter_callkeep.Data(id: id, callerName: callerName, handle: handle, hasVideo: isVideo)
        //set more data
        data.extra = ["userId": callerId, "platform": "ios"]
        data.appName = "Done"
        //data.iconName = ...
        //data.....
        SwiftCallKeepPlugin.sharedInstance?.displayIncomingCall(data, fromPushKit: true)
    }
}</details>

Minimal flutter app
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String _apnsToken = '';
  Timer? _timer;

  void _setToken(String token) {
    print(token);
    setState(() {
      _apnsToken = token;
    });
  }

  Future<void> _getToken() async {
    final token = await CallKeep.instance.getDevicePushTokenVoIP();
    _setToken(token);
  }

  Future<void> _initGetToken() async {
    await Future.delayed(Duration(seconds: 10));
    await _getToken();
  }

  void _initLifecycleLogging() {
    _timer = Timer.periodic(Duration(seconds: 1), (timer) {
      print("Lifecycle state is ${SchedulerBinding.instance.lifecycleState}");
    });
  }

  @override
  void initState() {
    super.initState();
    _initGetToken();
    _initLifecycleLogging();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,

        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              _apnsToken,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _getToken,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.13.8, on macOS 14.1.1 23B81 darwin-x64, locale pl-PL)

    • Flutter version 3.13.8 on channel stable at /Users/thomaskirchner/flutter

    • Upstream repository https://github.com/flutter/flutter.git

    • Framework revision 6c4930c4ac (7 weeks ago), 2023-10-18 10:57:55 -0500

    • Engine revision 767d8c75e8

    • Dart version 3.1.4

    • DevTools version 2.25.0

[!] Android toolchain - develop for Android devices (Android SDK version 32.0.0)

    • Android SDK at /Users/thomaskirchner/Library/Android/sdk

    ✗ cmdline-tools component is missing

      Run `path/to/sdkmanager --install "cmdline-tools;latest"`

      See https://developer.android.com/studio/command-line for more details.

    ✗ Android license status unknown.

      Run `flutter doctor --android-licenses` to accept the SDK licenses.

      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)

    • Xcode at /Applications/[Xcode.app/Contents/Developer](http://xcode.app/Contents/Developer)

    • Build 15A507

    • CocoaPods version 1.13.0

[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google [Chrome.app/Contents/MacOS/Google](http://chrome.app/Contents/MacOS/Google) Chrome)

    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Android Studio (version 2020.3)

    • Android Studio at /Applications/Android [Studio.app/Contents](http://studio.app/Contents)

    • Flutter plugin can be installed from:

      🔨 https://plugins.jetbrains.com/plugin/9212-flutter

    • Dart plugin can be installed from:

      🔨 https://plugins.jetbrains.com/plugin/6351-dart

    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.74.3)

    • VS Code at /Applications/Visual Studio [Code.app/Contents](http://code.app/Contents)

    • Flutter extension can be installed from:

      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)

    • macOS (desktop) • macos • darwin-x64 • macOS 14.1.1 23B81 darwin-x64

    ! Error: Browsing on the local area network for Thomas’s iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.

      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources

    • All expected network resources are available.

! Doctor found issues in 2 categories.

This will help you to understand. Why this happening.

Hi @petroniuchacz
As @akmalviya03 referred to onInactive:

On mobile platforms, this can be during a phone call or when a system dialog is visible.

That being said, this is documented and you should implement your app logic corresponding to this. Closing as this is WAI. If you disagree, please write in the comments and I will reopen it. Thanks!


add more information in LazyEvent printout

Add the index number and field names to the LazyEvent string representation. This is with julia -t 4, as an example.
julia> using UnROOT, Polyester

julia> const t = LazyTree(ROOTFile(joinpath(UnROOT.@__DIR__, "../test/samples/NanoAODv5_sample.root")),"Events", ["Jet_pt","nJet"]);

before:
julia> @batch for evt in t
           @show evt
           break
       end
evt = "LazyEvent with: (:tree, :idx)"
evt = "LazyEvent with: (:tree, :idx)"
evt = "LazyEvent with: (:tree, :idx)"
evt = "LazyEvent with: (:tree, :idx)"

after:
julia> @batch for evt in t
           @show evt
           break
       end
evt = "LazyEvent 751 with 2 fields: (:Jet_pt, :nJet)"
evt = "LazyEvent 1 with 2 fields: (:Jet_pt, :nJet)"
evt = "LazyEvent 501 with 2 fields: (:Jet_pt, :nJet)"
evt = "LazyEvent 251 with 2 fields: (:Jet_pt, :nJet)"

anything else worth adding?

looks good to me! let's move forward


OrientDB statistics widget for tools page

New type of widget to display statistics

Fixed in https://github.com/OrienteerBAP/Orienteer/commit/35b7b4ba76da0b532359feb657c4e5304b272d25


WebGPU: Implemented contant buffer reflection (close #503)

Vulkan tests fail: row-major matrices need to be properly detected
To avoid changing the offsets in tests, replace 4x2 matrices with 2x4 matrices


Demo code for Batched inference

❓ Questions and Help
Could you please provide a demo code for Batched inference?

I can provide a demo code for it, but in general it is as simple as passing a list of images to to_image_list instead of a single image.
How would you like to see a demo for that?
Also note that tools/test_net.py support batches inference

Okay. I will try that. Thanks

Can you share the demo code with me?


No test accuracy improvement between baseline augmentation and searched augmentation

Hi, I have noticed that there is no noticeable improvement from the baseline test accuracy when using the policy searched by the code from the repo.
Baseline:

CIFAR10 searched policy:

Is this a common occurence?

Hi, I recently got another report about this issue. I will investigate this issue.
Meanwhile, autoalbument by albumentations reproduces our work. I think they maintain better than us, so please check it.
https://github.com/albumentations-team/autoalbument-benchmarks

Hi, Thank you for the prompt reply and the recommendation, much obliged.


Browser Running Out of Memory

I tried to to get a text of an audio which has a length of 33 minutes and it has multiple speakers. First I tried with google chrome  60.0.3112.113 (Official Build) (64-bit) then Opera 47.0.2631.71 (PGO) and Firefox 55.0.3 (32-bit) though Firefox could survive more ;) , ultimately all of the browsers went "Out of memory".I used US English Broadband Model(16Khz). I split the audio into 2 and then ran it again it worked fine. I've already seen the notice that "Some models can detect multiple speakers; this may slow down performance.". But notifying the users a error free maximum length for an audio can enhance the usability of the application. Otherwise users get the error after waiting a long time. it is not good at all I guess ? cause I also faced the same problem. Thanks

Can you share the file you were using?

A it's kind of a private one, What I uploaded was an (.opus) file, and there were 2 speakers and the file size is around 15 mb s. Can you try with a file like that?

I think I can.

Love to see the results 👍

@germanattanasio  any updates?

I can think of a couple of possible causes:

It's loading the entire audio file into memory, perhaps there is a bug somewhere that causes this to happen multiple times
the interim results sends a new JSON blob for every second or so of audio, and we hang onto all of them for the JSON tab

If it's the later, I'm not sure if there is a good fix... Maybe just suggest that the demo shouldn't be given more than 15 minute's worth of audio?


Added explicit mapping between characters and words

It is more verbose but provides more accurate grouping settings and validations
Depends on #61
Fixes #67

Hi @mnaoumov, thank you again for your contributions. Aiming for explicit mapping, language (#78) and variant (#76) options in the Spelling Alphabet brick is awesome but comes at a cost with the current implementation. The source file size of this encoder grew to ~200KB.
I think we need to split off the mapping data and put it into an external resource that is only being loaded when the Spelling Alphabet brick is in use. Until now resource dependencies on bricks have not been solved. I created the issue #81 for it to keep track of it. It needs to be solved before we can prepare to merge all the goodness you've put together. Do you follow me on this?

@ffraenz Yes, I completely understand and agree. I will try to suggest some implementation on that in the future pull requests. How granular do you think the resources should be made? One resource for all alphabets? Or individual resources for each language? Or even for each variant? I bet 99.9% percent of use-cases would be using default English variant


run.py: Provide --os-{type,version} values to get_initial_tasks

We want to be able to check the final values of os_type and os_version
in get_initial_tasks, so move the command-line override up to before
the get_initial_tasks() method call.
Signed-off-by: Nathan Cutler<EMAIL_ADDRESS>

So this is ready to merge?

Sure, looks fine to me. @zmc, any objections?

@zmc Is this ready to merge?


Mode: New mode for splitting httpClient and client code into two files

What happens?
I am using electron application when I am having client and httpClient in same file server is trying to import react query which is breaking on build
What versions are you using?
  System:
    OS: macOS 14.6.1
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 230.52 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  npmPackages:
    @tanstack/react-query: ^5.51.23 => 5.51.23
    orval: ^7.0.1 => 7.0.1
    react: ^18.3.1 => 18.3.1
    zod: ^3.23.8 => 3.23.8

I think same as #1576

Seems so


Simplify the impementation of the set_gauge helper

The set_gauge now uses OpenTelemetry's newer helper, which creates a sync gauge.
Our own implementation of create_gauge around the async OpenTelemetry's implementation has been removed in favor of the newer sync helper.
Closes #220

Can you add a minimum version requirement on the API/SDK package?

Sure! :D I wanted to do this during the development of this PR.


Update zio, zio-test, zio-test-magnolia, ... to 1.0.2

Updates

dev.zio:zio
dev.zio:zio-test
dev.zio:zio-test-magnolia
dev.zio:zio-test-sbt

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

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio" } ]

labels: library-update, semver-patch

Codecov Report

Merging #53 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #53   +/-   ##
=======================================
  Coverage   86.89%   86.89%
=======================================
  Files          27       27
  Lines         801      801
  Branches       29       29
=======================================
  Hits          696      696
  Misses        105      105

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 4a3fb88...2042035. Read the comment docs.


Pass attributes to Client constructor

Add attributes to rocketeer-slack.php config array
a000f54
Pass attributes from config if set Client constructor
b0d7492

Thanks!


Fix 2 bugs

:tada: This PR is included in version 1.3.6 :tada:
The release is available on:

Visual Studio Marketplace
GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Unable to parse table inside table. ArgumentOutOfRangeException

Here is some funny page.
When I am trying to parse it, WebScrapping.Run reports ArgumentOutOfRangeException during some Slicing inside.
Tried css:

table
table.skl

I believe, the nested tables made this.
using DevOvercome.WebScrap;

var request = "http://frs24.ru/st/soderzhanie-kletchatki-v-produktah/";

// Download the html:
using var client = new HttpClient();
using var response = await client.GetAsync(request);
var html = await response.Content.ReadAsStringAsync();

// Run the WebScrapper:
var css = "table.skl";
var resultJson = new WebScrapper(html)
    .Run(css)
    .AsJson();

Is it works?

It doesnt crash anymore.
The funny page has bad encoding which is beyond the project.


closing a session

It would be great to be able to "logout this session" or "revoke this session" -- not "close all sessions (apart from the active one)" as a big hammer. But maybe that is my preference?

done in #87


Filtering by "related entity contains" returns more/different objects than expected

Filtering by "Related Property" and "Related entity contains" doesn't seem to work 100%.
Example:
Filtering Frischmuth Works by related property WorkType containing "Artikel" returns 11 objects; the "Artikel" WorkType, however, is only linked to 5 works.
It seems to me the remaining non-Artikel works are themselves linked to entirely different entity objects which contain the word "Artikel" (i.e. the relationship chain is traversed in different directions on the next level, or possibly on all levels). E.g.:

Die Klosterschule of WorkType "Übersetzung" is linked to a PhysicalObject with "Zeitungsartikel" in its description
another Übersetzung "Spiró, György: Die Hühnerköpfe" also has Vorlassobjekte which contain the word (e.g. Lexikonartikel, Zeitungsartikel)

I'll add there are two WorkTypes which contain the word "Artikel" but "Journalartikel" is currently not connected to any Works at all. The six additional work objects returned by the filter are of completely different types.

Filtering Frischmuth Works by related property WorkType containing "Artikel" returns 11 objects; the "Artikel" WorkType, however, is only linked to 5 works.

The filtering means: give me entities that are related to entities that have "Artikel" in their name and that are somehow connected to a WorkType via has type | werktyp. It does not filter for entities that are related to werktyps with "Artikel" in their name. The two filters are combined with && but they are independent

The two filters are combined with && but they are independent

Ohhhhh. Yeah, I was about to follow up with the question if "related entity contains" ignores whatever is selected in "related property" after testing this with a word that only appears in PhysicalObjects.
I thought the two worked in conjunction with each other. D'oh.

Hmm, seeing as the rest of the filters are stacked/combined, I'd argue these two should follow the same pattern.

Hmm, seeing as the rest of the filters are stacked/combined, I'd argue these two should follow the same pattern.

They are combined with all the other filters with &&.

Hmm, seeing as the rest of the filters are stacked/combined, I'd argue these two should follow the same pattern.

They are combined with all the other filters with &&.

Yeah, but I was/am thinking of the relationship filters as stacked (on top of one another), much like the field filters for the entity itself stack.
Perhaps it would help to imagine the two fields flipped, because that's actually how I was thinking of them in my head (i.e. I thought they were arranged weirdly). First I filter by "related property" type, then I restrict that further by adding a search term on top.
Idk, this seems much more logical to me than to simultaneously filter for objects connected via a specific property and for words in objects connected via random (other) properties. But maybe let's discuss this further in person.


Replace Vuex (deprecated) with Vue.Observable

https://vuejs.org/v2/api/#Vue-observable

Completed by #272


Uwsgi support question.

Hi I've been trying to run pilbox on elastic beanstalk I got pretty close to it but I'm stuck with some async issue.
Here is the code I have so far:
#!/usr/bin/env python

import tornado.wsgi
from pilbox.app import PilboxApplication, main, options

options.port = 80
options.implicit_base_url = 'http://someurl'
uwsgi_adapter = tornado.wsgi.WSGIAdapter(PilboxApplication())
application = tornado.wsgi.WSGIContainer(uwsgi_adapter)

if __name__ == "__main__":
    main(application)

This starts the server correctly and it seems to do it's job but I get this error while running sending a request:
[E 151128 13:13:53 http1connection:53] Uncaught exception
    Traceback (most recent call last):
      File "/Users/marco/git/cc-pilbox/env/lib/python2.7/site-packages/tornado/http1connection.py", line 234, in _read_message
        delegate.finish()
      File "/Users/marco/git/cc-pilbox/env/lib/python2.7/site-packages/tornado/httpserver.py", line 280, in finish
        self.server.request_callback(self.request)
      File "/Users/marco/git/cc-pilbox/env/lib/python2.7/site-packages/tornado/wsgi.py", line 280, in __call__
        WSGIContainer.environ(request), start_response)
      File "/Users/marco/git/cc-pilbox/env/lib/python2.7/site-packages/tornado/wsgi.py", line 230, in __call__
        raise Exception("request did not finish synchronously")
    Exception: request did not finish synchronously
[I 151128 13:13:53 web:1811] 200 GET /?url=/thumbnail/28556751/4000&w=100&h=100&mode=crop (::1) 214.98ms

The reason I use the WSGIContainer is for local development but when submitting to elastic beanstalk I use the WSGIAdapter version. Any ideas would be great.

From http://www.tornadoweb.org/en/stable/wsgi.html:
In WSGI mode asynchronous methods are not supported. This means that it is not possible to use AsyncHTTPClient, or the tornado.auth or tornado.websocket modules.
Pilbox uses tornado.httpclient.AsyncHTTPClient to make requests.


dnsutil: Don't error when checking record with preexisting values

When checking whether a new DNS TXT record is deployed, as part of the
DNS challenge procedure, checkAuthoritativeNss is called in a loop until
the requested TXT value is found in one of the records, or until a
timeout.
Previously, if there were other DNS TXT records for the same FQDN, the
call to checkAuthoritativeNss failed and the whole DNS challenge was
canceled. This means for example that if there was any previous
_acme-challenge TXT for the domain, the DNS challenge would always fail.
This fixes this issue by not returning an error, but instead returning
not ready, when there are other values returned by that DNS TXT record
request.

I have tested this successfully on my server by running certmagic with a DNS solver with a preexisting _acme-challenge TXT record. It didn't work before and worked after the patch 🙂

The current behaviour waits for all authoriative nameservers to have the record before continuing with the challenge. (ie If any server does not have the record, return false.) Using return true right without found change the behaviour to: wait until any nameserver has the record.


Update TranscationReceipt to include decoding of events

See https://github.com/hyperledger/firefly-transaction-manager/pull/123
Example usage to extract (only) ERC-20 / ERC-721 events from a transaction:
Example FFTM POST on /

Note the example here includes both ABI definitions, which actually have the same signature, but are incompatible due to one being indexed on the value and one not (great quirk of ERC-20/ERC-721 ABI event definitions 🫠 ). The code tries both, and finds the one that works.

{
    "headers": {
        "type": "TransactionReceipt"
    },
    "transactionHash": "0xba7cbb474a1c2c1c392ef612b20c8eff79d876f5b66a0d1a27178eb3ae262f84",
    "eventFilters": [
        {
            "event": {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "from",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "to",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "value",
                        "type": "uint256"
                    }
                ],
                "name": "Transfer",
                "type": "event"
            }
        },
        {
            "event": {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "internalType": "address",
                        "name": "from",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "internalType": "address",
                        "name": "to",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "internalType": "uint256",
                        "name": "tokenId",
                        "type": "uint256"
                    }
                ],
                "name": "Transfer",
                "type": "event"
            }
        }
    ]
}

Example Response
{
    "blockNumber": "27",
    "transactionIndex": "0",
    "blockHash": "0x474497495a4657f2bb3bd998e7e0e22bc4e08e9d8f3da3405cd2be4ab9d66fa6",
    "success": true,
    "protocolId": "000000000027/000000",
    "extraInfo": {
        "contractAddress": null,
        "cumulativeGasUsed": "87154",
        "from": "0x4817ff50820c4f21cef657a00ac75033686b02c3",
        "to": "0x590a0fc9da219c67ff0818268c2e2d0d43a53637",
        "gasUsed": "87154",
        "status": "1",
        "errorMessage": null
    },
    "events": [
        {
            "address": "0x590a0fc9da219c67ff0818268c2e2d0d43a53637",
            "blockHash": "0x474497495a4657f2bb3bd998e7e0e22bc4e08e9d8f3da3405cd2be4ab9d66fa6",
            "blockNumber": "27",
            "data": {
                "from": "0x0000000000000000000000000000000000000000",
                "to": "0x4817ff50820c4f21cef657a00ac75033686b02c3",
                "tokenId": "22"
            },
            "inputSigner": "0x4817ff50820c4f21cef657a00ac75033686b02c3",
            "logIndex": "0",
            "removed": false,
            "signature": "Transfer(address,address,uint256)",
            "timestamp": "2024-06-11T14:23:06Z",
            "topics": [
                "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                "0x0000000000000000000000000000000000000000000000000000000000000000",
                "0x0000000000000000000000004817ff50820c4f21cef657a00ac75033686b02c3",
                "0x0000000000000000000000000000000000000000000000000000000000000016"
            ],
            "transactionHash": "0xba7cbb474a1c2c1c392ef612b20c8eff79d876f5b66a0d1a27178eb3ae262f84",
            "transactionIndex": "0"
        }
    ]
}

Will hold of merging until I can refer to FFTM using a release


First-party skybox support

What problem does this solve or what need does it fill?
A single color background is boring for 3D environments. In other engines like Unity and Unreal, there's an effect that shows either a set of textures or something procedurally generated on the infinite horizon. It'd be nice to have this in Bevy.
This can also be combined with environment light maps for a nicer combined effect.
What solution would you like?
A first-party solution that adds this at the very beginning of the render graph.
In Bevy 0.5, @jomala wrote a bevy_skybox crate, though it seems like it wasn't published to crates.io.
What alternative(s) have you considered?
Revive the 0.5 ecosystem crate.

Would https://github.com/bevyengine/bevy/blob/main/examples/3d/skybox.rs work if that feature was brought in engine rather than in an example?

If it's a first party integration, there should also be some way to sync the environment map light texture with the skybox.
As for third_party there's also bevy_atmosphere that is really nice

To start, we should provide a way to have a user-provided cubemap background image (skybox).
bevy_atmosphere would be great to have integrated as well, but it's not necessary for a first step.
Generating EnvironmentMapLight textures from a given texture (such as, automatically once you set a skybox) would also be nice to have, but not necessary as a first step.

Pinging @JonahPlusPlus about this. Not sure how much of bevy_atmosphere we can upstream, but having it be first-party, well integrated with rest of the first-party renderer, and supporting the base case for user-provided cubemaps seems like a plan to me.

I did some research on how to best render a skybox. Here's what I learned:

Draw a fullscreen triangle at the end of the opaque pass (or maybe alpha pass?)

The reason to draw at the end is to reduce overdraw - we only have to shade pixels that haven't been shaded and written to the depth buffer

Before drawing, set the viewport to min_depth = max_depth = 1 (or maybe 0, whichever is the furthest depth)

This forces the triangle to be written behind everything else

We can put the skybox + sampler under a separate bind group, and use a separate non-material pipeline, and switch to that before drawing the skybox rather then stick it into the view bind group and use the material API.
If we split up the main pass node, we could add the skybox as a separate node between the opaque node and the next, in a separate plugin, which would be more modular.

I'm open to the possibility of bevy_atmosphere being upstreamed. I could see it being part of a 3dPlugins group, alongside plugins for 3D terrain, physics, etc.
For those unfamiliar with bevy_atmosphere, it's a complex system for procedural atmospheres (so currently just the sky, but hopefully other phenomena as well). 0.6 will bring a new layer system, which will allow for combining shaders (for example, overlaying a cloud or starmap texture over a procedural sky). The layer system will just be another model, meaning it's completely optional and you could even have layers within layers (performance permitting). It's capable of all this by rendering the entire sky at once when settings change. This does mean it's not aimed at rapid changes, but I have set the groundwork for an update to change this.
Support for cubemaps is something I'll investigating. With the current asset system, processing images to be in the proper format is cumbersome, but I might have a solution.

One issue would be WebGL compatibility. WebGL doesn't have compute shaders, which bevy_atmosphere depends on. It might be necessary to add a fallback when compiling for browsers.
Also, it currently uses a cube that fits into the camera far plane. If there are any tricks with the render graph to make it  "clear" with the sky texture instead, I would love to move to that instead.

One issue would be WebGL compatibility. WebGL doesn't have compute shaders, which bevy_atmosphere depends on. It might be necessary to add a fallback when compiling for browsers.

We can make procedural atmospheres a non-webgl only feature.

Also, it currently uses a cube that fits into the camera far plane. If there are any tricks with the render graph to make it "clear" with the sky texture instead, I would love to move to that instead.

Read my comment above for a good way to do this. Tldr full screen triangle, set the viewport, run at the end of the opaque pass for maximum speed.

It's embedding that agreed best approach to when and how to fill in the background that I'd love to see as part of Bevy. If it can remain flexible enough about what to fill it in with that it supports skyboxes and compute shaders, that'd be perfect.
Once you have the concept of "the camera is always at 0,0,0, and ignore the depths, this is background", I'm not sure how much more it makes sense to upstream. bevy_skybox is very rough-and-ready, but that's because most of it is heuristics for parsing images from the internet. The basic object of an inward-facing cube with texture on it is pretty simple to implement.

If we split up the main pass node, we could add the skybox as a separate node between the opaque node and the next, in a separate plugin, which would be more modular.

We already had a few attempts/investigations into this already. I like this approach.

I've started working on this, but run into the issue that I need the main pass 3d node split up, so I can insert a skybox node in between the opaque/alpha and transparent phases.


Add a "getting started" guide.

I'm looking for something to help automate the release of various libraries I write, so something that would bump versions automatically, commit and push tags, generate changelog etc would be great, but I can't for the life of me figure out how to use this project. I've gleaned some information from the various documentation, but when I run semantic-release version it keeps telling me it won't make a new release.
A "getting started" guide with a few steps for how to try this tool out would be very nice.

Good idea, I'll try to review the docs this weekend. I thought there were something, but I must have forgot it.
The key is the commit messages since last release. If you use the default parser it looks for angular commit style where commits with the type feat or fix will create releases, in addition a commit with BREAKING CHANGE in the footer would also create a release. To know which commits to include it uses the git log since the tag of the latest release. That means if the version in the version variable is 1.0.0 then it would evaluate the commits in git log v1.0.0....
Make sure these things is correct:

Last version is tagged with a tag that has the current version number prefixed with v.
There are some commit since then that will be evaluated to trigger a new version.
version_variable is set in setup.cfg

Thank you, that's pretty much all that's needed. It looks like I only had chore-type commits, that's why a release wasn't created. By the way, you have an error in documentation, you mention that the setup.cfg header should be semantic-release and it's semantic_release.
Thank you!

Sweet :sparkles:
The typo should be fixed now, thanks for mentioning it.

Any updates on this? I have troubles getting started with this tool on a new project, since whatever command I run, I get errors.
I would like some basic instructions like:

Do I need to specify the version variable reference in a pyproject.toml? Or will it create a separate file to store the version by default? I would have expected the latter, but if I have to put it in a Python file, that's fine.

What tags need to exist? Do I have to have a v0.0.1 tag to begin with?

Perhaps this can be added to the README.
Thanks!

The variable should be in a python file and referenced in either pyproject.toml and setup.cfg. If it complains about missing tag it is possible to force a release by passing the bump level flag.

Thanks!
I believe though that all these points should be part of the README, or directly caught by the command with a helpful error message. Right now it’s hard to get started with the project.

I agree, PRs are very much welcome.

The variable should be in a python file and referenced in either pyproject.toml and setup.cfg. If it complains about missing tag it is possible to force a release by passing the bump level flag.

Just an add: it doesn't have to be. We tested and used .version (with version = 'v1.0.0' as content) and it also works. This looks less interrupting if working in non-python repositories.

Hm. I guess I still don't even slightly understand how this tool works and hence am unable to provide a PR.

@slhck I updated the readme hope it helps. If not please re-open the issue and add some notes about what is hard to understand or where you are stuck.


Application Dump, narrow columns

new Version 0.87.1, Application Dump, the left column with the display of the applications has become very narrow compared to the last version, you can no longer recognize exactly which application it is at first glance...
The right-hand column with the information has also become narrower.

Maximizing the window should help, especially on high DPI resolutions 🤔


Dom Exception

Error
• I downloaded your project when, I test your project, this give me this error:

Thanks for opening the issue. There has been an issue with the handleFiles() function but I have fixed it. Also, you can now play the attached sample file with a click of a button.
Additionally, the project is now working online and offline!
(see http://dominikhofacker.me/audiovisualization/)
There is still some work to do, that I might address in the near future like user feedback on file loading (as seen here: http://dominikhofacker.me/Web-GL-Audio-Visualizer/), overall design and handling music files with no Tags or long song/album/artist names.


format string as text/plain by default

This change will result in another conflict to #202, which I will resolve after this PR gets merged.

@daxian-dbw Does this imply a missing test case?

@jonsequitur Not sure I understand what you mean. The conflict comes from changing of the test name in that PR as well as the input data (User: --> User: )


Log stats to disk

Hi! Here's a small patch to log some of the stats to disk that may be useful to others.
It adds a new command line option: --statsfile <FILENAME>. It logs the following data in CSV format:
unix_time, last_cov_update, total_exec, exec_per_sec, crashes, unique_crashes, hangs, edge, pc

The logging is done every time new coverage is found.

Closing due to ENO-CLA


Calling plan required for resource accounts used as Caller ID from voice enabled channels?

According to Microsoft Support (case 28948227) and our own testing, it seems a calling plan license is required to be assigned to resource accounts so they can be used ID is used as caller ID for voice enabled channels.
If this is indeed required, it should be mentioned on https://docs.microsoft.com/en-us/microsoftteams/create-a-phone-system-call-queue#resource-accounts  and on https://docs.microsoft.com/en-us/microsoftteams/plan-auto-attendant-call-queue

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

ID: b755d9ae-13ac-019f-f5f4-a95b1eee2989
Version Independent ID: f7afd8ad-e6e0-6c79-aed1-4ee87d48ba12
Content: Create a call queue in Microsoft Teams - Microsoft Teams
Content Source: Teams/create-a-phone-system-call-queue.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

It shoudl be noted that if the tenant has communication credits then it would also work without calling plans. The credits would be consumed even if the user and resource account don't have credits license assigned. We have verified this behaviour and has been confirmed by Microsoft support on case 28948227.

Hello @JMCA2 how are you? unfortunately, we do not have access to the support cases, I am looking to confirm this behavior. Thanks for your feedback

@get-itips Hi, thanks. If it helps, I can provide in private the emails from Support and the names of the Support Escalation Engineers involved or any other details

@JMCA2 @get-itips
Thank you, both!
Microsoft has confirmed the requirement and has updated the information - the change should appear live after 3:30 PM Pacific Time today.
Closing this issue.


Error after entering invalid year or month

Error after entering invalid year or month

Hello @angeldragon, please what exactly does the error say or can you provide a description of the error?

After I entered the invalid year and month, after the verification prompts an error, the Flutter exception is reported when I get the input focus again.

how to upload my operator video?

You can upload the video to Youtube and share the link. Alternatively, you can paste the exception here.


Refactor: Optimize roots_to_destroy

Chasing conceptual review on using lazy-static
roots_to_destroy uses a non-zero hash as a marker, holding a root position that doesn't exist. We accomplish this by calling Hash::from_hex() and 0x01 as a 32-byte vector. However, from_hex involves expensive string parsing. After some testing[1], I found this function using more than 60% of cpu time while updating an accumulator.
This PR solves it by introducing a lazy global variable that contains this hash already, so we don't have to compute it over and over
[1] https://github.com/Davidson-Souza/dotfiles/blob/main/utreexo-wallet-flamegraph12212022.svg

Chasing conceptual review on using lazy-static

I don't have a preference either way. This would be a better question for the rust-bitcoin people since the goal is for this lib to be under the rust bitcoin organization.
Probably a dumb question but could you just have it as a static and not a lazy-static? Evaluating it once probably doesn't hurt it too much and wouldn't introduce a new dependency.
Of course, if rust-bitcoin people are ok with it then I'm ok with it as well.

Probably a dumb question but could you just have it as a static and not a lazy-static? Evaluating it once probably doesn't hurt it too much and wouldn't introduce a new dependency.

AFAIK, you can't create a static var from a non-static function like from_hex, at least not in an out-of-the-box way. Static variables should be compilation-time know. You would have to implement lazy-static by yourself. I'm not aware of any way to create a non-zero hash that is const.
For instance, this wouldn't work:
static ONE_AS_HASH: sha256::Hash = sha256::Hash::from_hex("0000000000000000000000000000000000000000000000000000000000000001").unwrap();

I played around with maybe changing the algorithm to not require the dependency but seems like there really isn't a clean way to do this.
If you rebase onto main, I'll merge it for now and worry about the extra dependency problem when we submit it to rust-bitcoin.

Rebased with main

ACK faeff4e25596727629a321a634dce4954e68e7f4


Demos still use cell rather than render.

Description
The editable example still uses cell={} rather than render={}
Expected Behaviour
Demos should be updated to latest api.
Additional Information

can you please provide a link to a react-table example with render={}?
the react-table example uses cell={}

How embarrassing.   I'm referring to mantine-datatable, DataTableColumn has a property called render and no property called cell, but I was googling around and found this link and didn't notice I ended up in a mantine-datagrid demo.  Sorry for the false report.


iOS Archiving for MapLibre + MetalANGLE

This PR is the result after testing Product > Archive from within Xcode.

Create an app with MapLibre + MetalANGLE to verify if the embedding of the Frameworks is correct.
This PR has changes to the Xcode Project, which is difficult to assess in git diff, so be sure to see the discussion and screen caps below.

@petr-pokorny-1 — please hold off on this PR until I can review #50 .  There may be some duplication that would cause us to void this PR.

Closing with out merging.  Cherry picking (manually) into #50.


[change] improve reliability on focus management.

This PR improves reliability to give back focus
to parent modal.
Upgrade Path (for changed or removed APIs):

empty

Acceptance Checklist:

[x] All commits have been squashed to one.
[x] The commit message follows the guidelines in CONTRIBUTING.md.
[x] Documentation (README.md) and examples have been updated as needed.
[ ] If this is a code change, a spec testing the functionality has been added.
[x] If the commit message has [changed] or [removed], there is an upgrade path above.

Coverage increased (+3.6%) to 80.576% when pulling 372a4d57265f0deb9bad53578ef5bd1c5467d047 on diasbruno:change/focus-reliability into 6ba1c8dce9451982db436b5c12ab07c1b08b5a88 on reactjs:master.

Coverage increased (+3.6%) to 80.576% when pulling e894e44b49adacca1301089f0cf3fdd382c1f796 on diasbruno:change/focus-reliability into 6ba1c8dce9451982db436b5c12ab07c1b08b5a88 on reactjs:master.

@claydiffrient updated. Thanks!

Coverage increased (+3.5%) to 80.505% when pulling c40b4b2d890968062cf7d142b8d91306fa8d0de4 on diasbruno:change/focus-reliability into 6ba1c8dce9451982db436b5c12ab07c1b08b5a88 on reactjs:master.


[Bug]: Rendering Conflict with InventoryHUD+

Version information
seaborgium-mc1.19.4-0.1.3
Expected Behavior
InventoryHUD+'s effects should draw on top of the health meter like they do normally.
Actual Behavior
Artwork for effects shown from InventoryHUD+ will render correctly, but any effect timer text rendering above absorption hearts will be invisible wherever there is an overlap.
Reproduction Steps

Install InventoryHUD+, then install Seaborgium
Place your effects HUD above your hotbar so extra health will move up underneath it.
run /effect give @s minecraft:absorption infinite 200 or something similar
Run a few other /effect commands to give yourself other effects if the HUD isn't overlapping yet

Java version
Java 17.0.4
CPU
Intel Core i5-8400
GPU
EVGA/NVIDIA GeForce GTX 1060 3GB
Additional information

Finally have a chance to look at this, InventoryHUD+ is not open source, so I can't really do compatibility though seaborgium without decompiling their mod which is a huge taboo.
If you can get the mod developer to reach out, I'd be able to work something out, but for now it's not really up to me to resolve.


Add concurrent scavenger GC policy to systemtests pertaining to abbs and mauve group

There was a request from the GC team to add a variation for some system tests (the tests that used to be the abbs group, plus mauve) for concurrent scavenger GC policy.
This issue is created to handle this task.
Note:

Abbs test -> Split out into DAA, ClassLoading, Lambda, Math
Mauve -> MauveSingleThreadLoadTest, MauveSingleInvocationLoadTest, MauveMultithreadLoadTest

Note from Micic: "-Xgc:concurrentScavenge option would make sense only for those test that already exercise Gencon-- the test are abbs and mauve, or their equivalent.
Another domain restriciton is platform
Only Z/OS and Z/Linux


Implement (most of the) MFA support for Okta.

Issue #13
I've extended the Okta authenticator to recognise the response from Okta that indicates at least one MFA is active and to act accordingly.
I have not been able to code for the hardware tokens (e.g. RSA) as I don't have one to test the code against. The implemented factors have been tested.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #14 into master will decrease coverage by 23.66%.
The diff coverage is 15.74%.

@@             Coverage Diff             @@
##           master      #14       +/-   ##
===========================================
- Coverage   98.09%   74.43%   -23.67%
===========================================
  Files           5        5
  Lines         315      442      +127
  Branches       42       73       +31
===========================================
+ Hits          309      329       +20
- Misses          3      108      +105
- Partials        3        5        +2

Impacted Files
Coverage Δ

awsprocesscreds/saml.py
69.25% <15.74%> (-30.75%)
:arrow_down:

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 af46070...556dad9. Read the comment docs.

@rprashad You may want to take a look at https://github.com/pcolmer/awsprocesscreds/tree/revised_prompting instead of the commit I'm referencing in this PR. It takes a different approach to prompt the users due to a limitation in botocore.

@JordonPhillips I'm going to need some help with writing the tests. I'm getting really stuck on how to properly handle the input and output in the tests. As you'll see from the CI build, one of the tests is failing under Python 3 because of how pytest handles input, but it passes on my computer.
To make matters worse, I've commented out one of the tests I was working on (test_process_mfa_totp) because the test process is hanging on waiting for input even though I'm re-using an approach that has worked in a different test.
I'm more than happy to put the effort into writing the tests but I'm hitting a brick wall here and just don't know what to do next.

@pcolmer I took a quick look on the test results. Have you considered mocking saml#get_response() in the test? This is the recommended approach as described here https://github.com/pytest-dev/pytest/issues/1598#issuecomment-224761877

fwiw, just tested @pcolmer fork and it works great with MFA... would love to see this supported upstream!
$ awsprocesscreds-saml -e <endpoint> -u <username> -p okta -a <role>
Password:
Please choose from the following authentication choices:
1: Push notification
2: SMS text message
3: GOOGLE authenticator app
4: OKTA authenticator app
Enter the number corresponding to your choice or press RETURN to cancel authentication: 1
Waiting for result of push notification ...press RETURN to continue
{
  "AccessKeyId": "<key>",
  "SecretAccessKey": "<secret>",
  "SessionToken": "<session>",
  "Expiration": "<expiration>",
  "Version": 1
}

@JordonPhillips anything blocking this pr? would be great to have MFA support for okta via credential_process!

@lorengordon I think the main thing blocking this PR is the lack of tests to run against the code I added. I frankly haven't had the time to write the tests lately and the maintainer won't accept the PR with such a poor code coverage.
Also, it looks like some of the tests are actually failing for some reason so that in itself is a blocker.
I do want to get this code to a state where it is acceptable to the maintainers - I am just struggling to find the time but I will try and carve some out from somewhere.

@pcolmer I can understand that. If it would help, we can commit some time starting maybe next month to get this done (need to close out other tasks first). Would just like some indication from a maintainer (@JordonPhillips) that if we get tests passing and improve coverage that the work would get merged and released (if not, would rather not spend the time).

@lorengordon certainly @JordonPhillips comment on Apr 6 suggests that, tests aside, the code would seem to be acceptable.
I have started looking at the tests again. The biggest challenge I have is that I've not written many Python tests before so trying to mock/patch routines is proving to be quite a stumbling block. I've tried @itaifrenkel suggestion but that doesn't work against the code. Part of the problem is that the input function is within the class and therefore the patching has to be done against the class instance, I believe, rather than against the class itself. Like I said, a bit of a newbie so lots of fumbling going on.
I'm going to review the other tests to see what they are doing; another part of the problem is that so much time has passed that I'm partly forgetting what I've written and what was already there … my thinking being that I can look at what was already there to try and learn from it.
Such fun :)

A small progress report … I've got past the input testing now. Currently stuck on the TOTP testing because I can't get the responses (mocking) library to react the way it seems to be documented for dynamic responses. I've raised an issue on that repo to try and get some help with that as I just can't see what I'm doing wrong.

Tests have been written and the Travis CI build now passes.
The CodeCov report hasn't been updated but coverage is now 94% for saml.py.

@pcolmer Played around with this more as a user today and there are a couple things that feel a little odd...

User input is not echoed when selecting the authentication choice:

Please choose from the following authentication choices:
1: Push notification
2: GOOGLE authenticator app
3: SMS text message
4: OKTA authenticator app
Enter the number corresponding to your choice or press RETURN to cancel authentication:

Entering a passcode is echoed, so it seems it should be possible to echo the response at that prompt.

Using Push notification or SMS text message results in an extra prompt that requires the user to press RETURN:

# push notification selected
Enter the number corresponding to your choice or press RETURN to cancel authentication:
Waiting for result of push notification ...press RETURN to continue
# <push not sent until RETURN pressed again>

# sms selected
Enter the number corresponding to your choice or press RETURN to cancel authentication:
Requesting code to be sent to your phone ... press RETURN to continue
# <sms not sent until RETURN pressed again>
Authentication code (RETURN to cancel, 'RESEND' to get new code sent): <code echoed>

@lorengordon thanks for the feedback and code inspection. I'm a bit torn over the MFA push and SMS changes, to be honest, partly because I wanted to provide feedback to the user as to what is happening and there is a limitation in the current Boto library where it "swallows" anything sent to stdout and stderr (https://github.com/boto/botocore/issues/1348). This is why I'm using _password_prompter as a backdoor mechanism to inform the user of what is happening, but it does have the downside of needing the user to press RETURN to continue.
For SMS, it can be somewhat mitigated by swapping the call to _password_prompter with the call to verify_sms_factor, in that this will then cause the SMS code to be delivered to your phone even if you haven't pressed RETURN yet.
For MFA Push, I do think the user needs to know that awsprocesscreds is triggering a push notification so that they get their phone/device ready. Without that prompt, awsprocesscreds could appear to just hang whilst it is waiting for the user's action.
Finally, thanks for the suggested change from _password_prompter to get_response. I'm not sure why I didn't have it written like that in the first place :). I'll make that change when we've agreed on the best way forwards with the other points.

@lorengordon the problem with removing those prompts, though, is that the user has no indication of what the script is doing. Suppose they haven't realised that their device hasn't got a signal to receive SMS or Internet access to receive Push? Yes, the code works perfectly without the prompts but I do feel it is less informative to the user.
Also, are you testing this code by running it directly or by calling it from within AWS CLI? The reason why get_mfa_choice uses _password_prompter is because get_response uses input, which outputs the prompt to stdout, and that breaks the JSON response returned from awsprocesscreds to AWS CLI. So, in actual fact, rather than switching from _password_prompter to get_response, I've realised that I've got to go the other way and stop using get_response completely.
Basically the link between AWS CLI and awsprocesscreds relies on the latter only emitting a valid JSON block on stdout, which means that the script can only use stderr to display anything to the user, and Boto swallows that. The only workaround I've managed to find is to use _password_prompter which uses getpass. Now, I could try and dig into the source for getpass and try to replicate that inside the script but it would hopefully only be short-lived and would require me to add more tests.
I can try rewording the prompts to see if that makes it clearer?

Oh, quite right! I was testing execution directly for the sake of expediency. Sorry! 🤕
Rewording the prompts would help I think. Maybe:
"Press RETURN when you are ready to request the SMS text message"
and
"Press RETURN when you are ready to request the push notification"

Actually, for SMS, changing this line to use _password_prompter and deleting the first prompt to press RETURN a second time works pretty well...
response = self.get_response(self._MSG_SMS_CODE)

Using it looks like this:
$ aws s3 ls --profile okta
Password:
Please choose from the following authentication choices:
1: SMS text message
2: GOOGLE authenticator app
3: Push notification
4: OKTA authenticator app
Enter the number corresponding to your choice or press RETURN to cancel authentication:
Authentication code (RETURN to cancel, 'RESEND' to get new code sent):

OK - I've updated the user prompting code and I've also restructured some of the code in order to allow me to get a higher coverage with the tests. I'll see if I can get the coverage any higher.

Tested and looks great, nice work!

@JordonPhillips can you please let me know if anything further needs to be done for this PR in order to facilitate getting it merged into the base branch?
Or is this repo dead? I find it a bit concerning that it hasn't been touched since it was announced at last year's re:Invent. Is that because the functionality is going to be folded into CLI 2?
I want to push ahead with adopting Okta for federated authentication inside my company but I can't until the MFA support is there. This PR needs to be merged for that to happen, or for AWS to provide their own alternative code for MFA support.
Thanks.

@pcolmer If Amazon isn't going to maintain this project, perhaps someone (maybe you or I) could fork it and maintain it instead?

@lorengordon I agree that that would seem to be the sensible way forward … but I would prefer it if someone from Amazon could categorically state what is happening with this repo. Is it dead? It is being subsumed into CLI 2?
I'm happy to maintain my own contribution but my coding skills are not strong enough to maintain the whole repo, I'm afraid.

This project isn't all that active, and we have experience publishing packages to PyPi and generating self-contained executables. I don't expect it would be much of a burden to maintain (famous last words). I'll talk with our team and explore the code base, and if we don't hear back from @JordonPhillips, we may be able to take it on.
Or perhaps, another option would be to add a compatible credential_process outputter to another project, and maybe okta support as well:

https://github.com/Versent/saml2aws
https://github.com/techservicesillinois/awscli-login
https://github.com/ddimitrioglo/aws-saml

Just a little bit of feedback on the other potential projects:

saml2aws already supports Okta
I like how awscli-login integrates with AWS CLI as a login provider. It looks like it supports 2-factor so this could be worth further investigation/testing.
aws-saml is written in Ruby. I'd personally prefer to stick to one programming language.

I'll try and find the time for a closer look at awscli-login.

Hi @pcolmer, any chance you might be able to resolve the new conflicts?

Hi @lorengordon, all sorted.

Using pcolmers fork I am having issues.
I am able to get a token, but I get a SAML error and it does not prompt me for MFA.
`C:>awsprocesscreds-saml -e  -u  -p okta -a
Password: --verbose
Password:
Sending HTTP POST with username (username) and password to Okta API endpoint: (endpoint)
Got status 200 and response: {"expiresAt":"2019-10-31T18:06:20.000Z","status":"SUCCESS","sessionToken":"sessionToken","_embedded":{"user":{"id":"id","profile":{"login":"login","firstName":"firstName","lastName":"lastName","locale":"en","timeZone":"America/Los_Angeles"}}},"_links":{"cancel":{"href":"href","hints":{"allow":["POST"]}}}}
Received HTTP response of status code: 200
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python36\Scripts\awsprocesscreds-saml-script.py", line 11, in
load_entry_point('awsprocesscreds==0.0.2', 'console_scripts', 'awsprocesscreds-saml')()
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\awsprocesscreds\cli.py", line 81, in saml
creds = fetcher.fetch_credentials()
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\awsprocesscreds\saml.py", line 555, in fetch_credentials
creds = super(SAMLCredentialFetcher, self).fetch_credentials()
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\botocore\credentials.py", line 643, in fetch_credentials
return self._get_cached_credentials()
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\botocore\credentials.py", line 653, in _get_cached_credentials
response = self._get_credentials()
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\awsprocesscreds\saml.py", line 564, in _get_credentials
kwargs = self._get_assume_role_kwargs()
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\awsprocesscreds\saml.py", line 605, in _get_assume_role_kwargs
assertion = self._authenticator.retrieve_saml_assertion(config)
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\awsprocesscreds\saml.py", line 442, in retrieve_saml_assertion
return self.get_assertion_from_response(endpoint, parsed)
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\awsprocesscreds\saml.py", line 262, in get_assertion_from_response
r = self._extract_saml_assertion_from_response(response.text)
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\awsprocesscreds\saml.py", line 210, in _extract_saml_assertion_from_response
raise SAMLError(self._ERROR_LOGIN_FAILED)
awsprocesscreds.saml.SAMLError: Login failed, could not retrieve SAML assertion. Double check you have entered your password correctly.

@livt0ride Maybe try using aws-okta-processor instead. That project implements credential_process support, works with MFA, and has responsive maintainers.


remove Darwin from stdenv.isBSD

Darwin is a BSD derived OS, however there are vast differences between Darwin and open source BSDs (e.g. the graphics stack), so adding Darwin to isBSD diminishes its usefulness.
Darwin was added to isBSD by this commit for Darwin fixes: 3e8344d334d42824ac3061a919ac15b19a1bf21d
Adding Darwin to isBSD more or less broke the functionality of the following:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/archivers/zpaq/default.nix
https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/archivers/zpaq/zpaqd.nix
https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/system/tree/default.nix
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/chicken/default.nix3
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/libffi/default.nix

Agreed and think this should go in, although it would be nice to have more direct "feature flags" in terms of things that builds actually care about, rather than these confusing categories.
For example, newcomers might still assume isBSD is true on Darwin, because a traditional Mac OS install has primarily BSD-based tooling. Using Nix on Mac OS then goes and fills it with GNU coreutils and friends, so the BSD-ness of Darwin decreases significantly.

I agree that it is a bit to vague as to its purpose and that overall categories like this might be misleading.  Do you think that it might be better to remove it altogether.  There are only a small number of packages that use it, so removing it would be simple.

Not sure, let's see if anyone else has opinions!

Yeah, isBSD is probably not very useful. It might be useful if one day we support FreeBSD, NetBSD, OpenBSD, etc., although I don't know how similar they are nowadays.

The main problem I see: it's unclear what isBSD is actually supposed to mean, except that anyone can have a look at the current set of included platforms. I agree that particular feature flags of type stdenv ? glibc are likely to be more useful.

I updated the pull request to remove isBSD completely since that seems to be the consensus.


Cache backend can join and leave

Identifying the current engines by the cache URI and rule name, creating N * M engines;
When a new node joins, we create a new engine for each rule. When it leaves applies to all rules.
Adding a new rule creates an engine for each known member.

I still need a way to write a proper test. Ideally, we would have some integration tests, especially the reconnection part.

Identifying the current engines by the cache URI and rule name, creating N * M engines;

I think I might have missed a discussion, or two. Does this mean that it's not possible to have 1 engine per node for all of the rules?

@ryanemerson Not right now :( That would be the follow-up, just getting things to work on this one. It is the consolidating task I was dealing with.

Just added a few tests. I'll look if it is worth removing the reconnect method and keeping only start and stop. The caches will be started using the scheduled task

Ok, with the latest commit, I think that's it. Now the CacheService itself can create or restart the connections as needed, it is not necessary to keep track of that and call the methods correctly (start or reconnect).
The point of attention for the reviewers:

I am creating the backend for the data, offset, and schema when reconnecting because we keep getting an exception.
Most important changes are around ManagedEngine and HotRodCacheService.

Weirdly enough, we had a run that failed CI. Failed running oracle-infinispan by failing to initialize the DB, even though oracle w/ cache-manager worked. The re-run was green.

Thanks @jabolina


LSTM layer output inconsistent on different backends

System information.

Have I written custom code (as opposed to using a stock example script provided in Keras): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Centos 8
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): keras version: 2.2.4, 2.3
Python version: 3.6
Bazel version (if compiling from source):
GPU model and memory: TITAN RTX

Describe the problem.
Given a randomly generated input array, keras.layers.LSTM API will output inconsistent result when using different backends. For TensorFlow, CNTK, and Theano, the LSTM layer will output non-zero but inconsistent value even though the random seed is fixed. For mxnet backend, the LSTM layer will directly output zero.
Source code / logs.
Please reproduce this issue by running the following script:
import os
import argparse
import sys
import warnings
parse = argparse.ArgumentParser()
parse.add_argument("--bk", type=str,default="tensorflow", help="the name of backend")
flags, _ = parse.parse_known_args(sys.argv[1:])
os.environ["KERAS_BACKEND"]=flags.bk
bk = flags.bk
gpu_list=["0"]
if bk == 'tensorflow':
    os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2'
    import tensorflow as tf
    tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)  # ignore warnings
    batch_size = 32

if bk == 'theano':
    if len(gpu_list) == 2:
        os.environ['THEANO_FLAGS'] = f"device=cuda{gpu_list[0]},contexts=dev{gpu_list[0]}->cuda{gpu_list[0]};dev{gpu_list[1]}->cuda{gpu_list[1]}," \
                              f"force_device=True,floatX=float32,lib.cnmem=1"
    else:
        os.environ['THEANO_FLAGS'] = f"device=cuda{gpu_list[0]},contexts=dev{gpu_list[0]}->cuda{gpu_list[0]}," \
                                     f"force_device=True,floatX=float32,lib.cnmem=1"
    import theano as th

if bk == "cntk":
    from cntk.device import try_set_default_device, gpu
    try_set_default_device(gpu(int(gpu_list[0])))

import keras
from keras import initializers, layers
import numpy as np
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings("ignore", category=UserWarning)
model = keras.models.Sequential()
model.add(layers.LSTM(5))
np.random.seed(10)
x = np.random.rand(1,10,2)
pred = model.predict(x)
print(pred)

Command to reproduce (suppose above script is saved as file: try.py):
python try.py --bk tensorflow
python try.py --bk theano
python try.py --bk cntk
python try.py --bk mxnet

Output:
tensorflow: [[-0.05560498  0.03696749  0.0953454  -0.04178171  0.00761575]]
theano: [[-0.04984551  0.01884622 -0.0549684  -0.16306187 -0.06385145]]
cntk: [[-0.05105171  0.10062361 -0.04274062 -0.10008237  0.20301312]]
mxnet: [[0. 0. 0. 0. 0.]]

Related backend version is:
tensorflow-gpu==2.0.0
theano==1.0.5
cntk-gpu==2.7
mxnet==1.8.0

Problem exists when I use either keras 2.2.4 or keras 2.3.

@maybeLee,
As per my understanding, this is expected because each Backend uses different Compilers and different Weight Initialization Methods, and they might be implemented in different Languages as well.
However, getting Reproducible Results using 1 Backend (example Tensorflow) is possible, as shown in this comment. Thanks!

@rmothukuru,
Thanks for your reply, to reduce the influence of weight initialization and randomness, I built a one-layer (LSTM) model and save its weights as model.h5 for different backends to use.
import os
np.random.seed(10)
if not os.path.exists("model.h5"):
    print("creating new model")
    model = keras.models.Sequential()
    model.add(layers.LSTM(5))
else:
    print("model exists, loading old model")
    model = keras.models.load_model("model.h5")
x = np.random.rand(1,10,1)
pred = model.predict(x)

The result shows that there still exists large inconsistency:
tensorflow: [[-0.05560498  0.03696749  0.0953454  -0.04178171  0.00761575]]
theano: [[-0.08818588  0.07905697  0.1577689  -0.11601128  0.00531999]]
cntk: [[-0.18581256  0.15982811  0.3080599  -0.21439359  0.01037333]]
mxnet: [[0. 0. 0. 0. 0.]]

From my perspective, this inconsistency issue is quite important, when developers are running pretrained models on different backends, they expect the output to be similar.

Hi @maybeLee, support for non-TF backends was dropped multiple keras versions ago so we would suggest only paying attention to the TF backend.
As for why they may have differed:

you were only setting the numpy seed, but each individual backend has their own seeds that they use for random operations used for e.g. weight initializations.

Hi @tomerk, thanks for your explanation. As I tested earlier, when I save the LSTM layer and its weight as a model, such inconsistency issue still exists when using different backend to run inference on such model. Besides, I am not sure simply performing model inference will introduce any variance factor. Another possible explanation for such inconsistency can be: for different backends, the implementations of the LSTM layer are different. I understand this may be difficult to debug, however, it is very essential if there exists bugs in the implementation of LSTM.
Anyway, I will do more experiments to see if I can help you identify the root cause of such inconsistency.

@maybeLee, If you would like to debug the Tensorflow implementation specifically to see if anything misbehaves then feel free and please do file a separate bug if you spot that it is misbehaving. (Please use the newest version of both TF and Keras to try this instead of TF 2.0).
As for the other backends: As I mentioned above they are no longer under development. Even if you do find an issue with their existing implementations there is no repository to submit the changes to and no new releases will be made.
@rmothukuru please feel free to close this issue as it is not actionable for us at this time

@maybeLee,
Closing the issue as per @tomerk's comments. Please file a new bug as per his suggestion. Thanks!


lightning: 2.2.2 -> 2.2.3

Description of changes

Closes https://github.com/NixOS/nixpkgs/pull/287661
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-in-distress/3604/85

@nixpkgs-merge-bot merge

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/3486


init support for freethreading

CPython has released a nogil version, luckly, cython catch up soon, so we can release a version that compatible with it.
According to the docs, compile it on windows would be something like python -Xgil=0 setup.py bdist_wheel

Great work @synodriver - I didn't know about freethreading!

Looks good - I'll merge it = )


HBASE-22501 Modify the hadoop support matrix in the ref guide

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
47
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

_ master Compile Tests _

+1
mvninstall
291
master passed

0
refguide
441
branch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.

_ Patch Compile Tests _

+1
mvninstall
251
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

0
refguide
429
patch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.

_ Other Tests _

+1
asflicense
16
The patch does not generate ASF License warnings.

1543

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/266

Optional Tests
dupname  asflicense  refguide

uname
Linux 54244b8a09f6 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / 70fb30cd56

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

refguide
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/1/artifact/out/branch-site/book.html

refguide
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/1/artifact/out/patch-site/book.html

Max. process+thread count
96 (vs. ulimit of 10000)

modules
C: . U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/1/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
195
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

_ master Compile Tests _

+1
mvninstall
328
master passed

0
refguide
510
branch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.

_ Patch Compile Tests _

+1
mvninstall
303
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

0
refguide
547
patch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.

_ Other Tests _

+1
asflicense
17
The patch does not generate ASF License warnings.

1969

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/266

Optional Tests
dupname  asflicense  refguide

uname
Linux f814f784fc02 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / 1be93fcaec

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

refguide
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/2/artifact/out/branch-site/book.html

refguide
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/2/artifact/out/patch-site/book.html

Max. process+thread count
96 (vs. ulimit of 10000)

modules
C: . U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/2/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

Please add a note that links to the CVE page for hadoop and notes that downstream folks should be cognizant of the current CVE list. Not every CVE is applicable to every deployment (some folks might run HBase without a YARN deployment, for example).

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
28
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

_ master Compile Tests _

+1
mvninstall
272
master passed

0
refguide
743
branch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.

_ Patch Compile Tests _

+1
mvninstall
265
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

0
refguide
431
patch has no errors when building the reference guide. See footer for rendered docs, which you should manually inspect.

_ Other Tests _

+1
asflicense
15
The patch does not generate ASF License warnings.

1817

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/266

Optional Tests
dupname  asflicense  refguide

uname
Linux 1582ee70a410 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / 6735cc13c1

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

refguide
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/3/artifact/out/branch-site/book.html

refguide
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/3/artifact/out/patch-site/book.html

Max. process+thread count
96 (vs. ulimit of 10000)

modules
C: . U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-266/3/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

Add a link to the CVEs.


installation error on Ubuntu (permission denied for mkdir)

With node v11.2, on ubuntu 18.04 (actually LinuxMint 18.3, but there should be no difference), I can't install noble. I have follow the instructions for the Ubuntu install.
Logs below.
$ sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
bluez is already the newest version (5.37-0ubuntu5.1).
bluetooth is already the newest version (5.37-0ubuntu5.1).
The following packages were automatically installed and are no longer required:
  cmake-data containerd hplip-doc libjsoncpp1 libnotify-bin libpython3-dbg libpython3.5-dbg python-pip python3-dbg python3-notify2 python3-pyqt4 python3-pyqt4-dbg python3-sip python3-sip-dbg python3.5-dbg runc
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  libbluetooth-dev libudev-dev
The following packages will be upgraded:
  libudev1 udev
2 upgraded, 2 newly installed, 0 to remove and 310 not upgraded.
Need to get 1,343 kB of archives.
After this operation, 1,115 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 udev amd64 229-4ubuntu21.22 [994 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libudev1 amd64 229-4ubuntu21.22 [53.9 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libudev-dev amd64 229-4ubuntu21.22 [150 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libbluetooth-dev amd64 5.37-0ubuntu5.1 [145 kB]
Fetched 1,343 kB in 3s (435 kB/s)
(Reading database ... 275342 files and directories currently installed.)
Preparing to unpack .../udev_229-4ubuntu21.22_amd64.deb ...
Unpacking udev (229-4ubuntu21.22) over (229-4ubuntu21.17) ...
Preparing to unpack .../libudev1_229-4ubuntu21.22_amd64.deb ...
Unpacking libudev1:amd64 (229-4ubuntu21.22) over (229-4ubuntu21.17) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot
Processing triggers for systemd (229-4ubuntu21.17) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Setting up libudev1:amd64 (229-4ubuntu21.22) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Selecting previously unselected package libudev-dev:amd64.
(Reading database ... 275342 files and directories currently installed.)
Preparing to unpack .../libudev-dev_229-4ubuntu21.22_amd64.deb ...
Unpacking libudev-dev:amd64 (229-4ubuntu21.22) ...
Selecting previously unselected package libbluetooth-dev.
Preparing to unpack .../libbluetooth-dev_5.37-0ubuntu5.1_amd64.deb ...
Unpacking libbluetooth-dev (5.37-0ubuntu5.1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up udev (229-4ubuntu21.22) ...
addgroup: The group `input' already exists as a system group. Exiting.
update-initramfs: deferring update (trigger activated)
Setting up libudev-dev:amd64 (229-4ubuntu21.22) ...
Setting up libbluetooth-dev (5.37-0ubuntu5.1) ...
Processing triggers for initramfs-tools (0.122ubuntu8.14) ...
update-initramfs: Generating /boot/initrd.img-4.10.0-38-generic
Warning: No support for locale: en_US.utf8
Adding /lib/firmware/i915/skl_huc_ver01_07_1398.bin
Adding /lib/firmware/i915/skl_guc_ver9_33.bin
Adding /lib/firmware/i915/skl_dmc_ver1_26.bin

$ node -v
v11.2.0

$ lsb_release -a
No LSB modules are available.
Distributor ID:	LinuxMint
Description:	Linux Mint 18.3 Sylvia
Release:	18.3
Codename:	sylvia

$ sudo npm install noble

><EMAIL_ADDRESS>install /home/m/repos/test-noble/node_modules/usb
> prebuild-install --verbose || node-gyp rebuild

prebuild-install info begin Prebuild-install version 5.3.3
prebuild-install info looking for cached prebuild @ /home/m/.npm/_prebuilds/bea51f-usb-v1.6.1-node-v67-linux-x64.tar.gz
prebuild-install http request GET https://github.com/tessel/node-usb/releases/download/v1.6.1/usb-v1.6.1-node-v67-linux-x64.tar.gz
prebuild-install http 404 https://github.com/tessel/node-usb/releases/download/v1.6.1/usb-v1.6.1-node-v67-linux-x64.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=11.2.0 runtime=node arch=x64 libc= platform=linux)
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/m/repos/test-noble/node_modules/usb/build'
gyp ERR! System Linux 4.10.0-38-generic
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/m/repos/test-noble/node_modules/usb
gyp ERR! node -v v11.2.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

><EMAIL_ADDRESS>install /home/m/repos/test-noble/node_modules/bluetooth-hci-socket
> node-gyp rebuild

gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/m/repos/test-noble/node_modules/bluetooth-hci-socket/build'
gyp ERR! System Linux 4.10.0-38-generic
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/m/repos/test-noble/node_modules/bluetooth-hci-socket
gyp ERR! node -v v11.2.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN saveError ENOENT: no such file or directory, open '/home/m/repos/test-noble/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/m/repos/test-noble/package.json'
npm WARN test-noble No description
npm WARN test-noble No repository field.
npm WARN test-noble No README data
npm WARN test-noble No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/xpc-connection):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/usb):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>install: `prebuild-install --verbose || node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/bluetooth-hci-socket):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+<EMAIL_ADDRESS>updated 1 package and audited 111 packages in 3.834s
found 3 low severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

by upgrading to node v12.13.0, I get the #707 error


Until yesterday the software function can be used normally, today suddenly appeared the following error, I do not know what went wrong

scrcpy 1.24 https://github.com/Genymobile/scrcpy
ERROR: CreateProcessW() error 5
ERROR: Failed to execute: [D:\software\platform-tools], [start-server]
ERROR: Could not execute "adb start-server"
ERROR: Could not start adb daemon
ERROR: Server connection failed

ERROR: Failed to execute: [D:\software\platform-tools], [start-server]

You set the ADB environment variable to a wrong value: if it is defined, it must point to the adb.exe executable not its parent directory.
But the scrcpy release already contains adb, so unless you want to use a very specific adb version, just do not define the ADB environment variable.

Thanks for the help, I changed the name of adb to android and successfully solved this problem


HOP-1491

This PR adds

assemblies/web to build hop.war
docker/Dockerfile.web to build a Docker image for Hop Web
integration-tests/hopweb to do integration tests for Hop Web

Following this checklist to help us incorporate your contribution quickly and easily:

[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] Format the pull request title like [HOP-XXX] - Fixes bug in SessionManager,
where you replace HOP-XXX with the appropriate JIRA issue. Best practice
is to use the JIRA issue title in the pull request title and in the first line of the commit message.
[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 apache-rat:check to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[x] If you have a group of commits related to the same change, please squash your commits into one and force push your branch using git rebase -i.

Trivial changes like typos do not require a JIRA issue (javadoc, comments...).
In this case, just format the pull request title like (DOC) - Add javadoc in SessionManager.
If this is your first contribution, you have to read the Contribution Guidelines
If your pull request is about ~20 lines of code you don't need to sign an Individual Contributor License Agreement
if you are unsure please ask on the developers list.
To make clear that you license your contribution under the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

[ ] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004
[ ] In any other case, please file an Apache Individual Contributor License Agreement.

@hansva Once this PR gets merged, I'd need your help in doing followings:

Adjust docker/Dockerfile.web so that artifacts are downloaded from Hop's official artifactory.
Let Jenkins to build docker/Dockerfile.web
Let Jenkins to execute integration tests for Hop Web using the Docker image

Let me know your thoughts/concerns if any.

This is great work @HiromuHota,
I'll rewrite the dockerfile to work in the Jenkins context (https://issues.apache.org/jira/browse/HOP-2529)
Add the selenium tests to our nightly test framework (https://issues.apache.org/jira/browse/HOP-2530)


Problems rendering diagram blog posts

Hi I noticed that some of the example diagram blog posts don't render images.
Mindmap Diagram
https://hellotham.github.io/hello-astro/blog/2022-08-26-markmap-diagrams

Mermaid Diagram
https://hellotham.github.io/hello-astro/blog/2022-08-20-mermaid-diagrams

I have check with both Edge and Firefox browsers.

Hi - thanks for raising this issue. Looks like the issue is caused by me not using the rendered frontmatter for blog and doc posts. This should now be fixed in Release v2.4.1. Can you please check and confirm?

Looking good. Thanks


Bump to .Net 8 + Update Nuget Packages to non vulnerable version

Since I wanted to work some more with Statiq and figured out there had been some issues to integrate it with the current LTS (.net 8) version, started to work on an commit. Only shortly before wrapping up the PR figured out #270 had been open - but already since January, so assuming it's somewhat stale.
A few notes:

Statis.Tables had not been updated on EPPlus due to a more restrictive license change (pay to use)
A few breaking changes have been introduced, with the update of some nuget packages

Loading of SixLabors Image changed, where format is not an output parameter anymore, instead read through image metadata
Asserts have been restructured to use Assert.That() instead extension methods like .True()/.False()/.Equals()/etc.
SemVer is now SemanticVersioning
RecyclableMemoryStreamManager is instanciated through a options object, instead of parameters and property setters
XML Navigation with .Descendents().OfType() is obsolete and use of .Descendants() encouraged (uses the same under the hood)
Added few ArgumentNullChecks (where it would not really interrupt any code)

Quite a lot of new Code Analyzers have been introduced, but for now put as warning to keep the change as non-intrusive as possible (to avoid a super large change)

Builds on my machine, but not sure if/what/how to get the test's run, so a proper validation would still be pending - but compiles for me :) Tried to avoid adding any new or removing any existing code/features.

Last issue center around Statiq.Sass, which does not seem to be compatible with ARM64 which seems to be the case for macos runners from GitHub Actions (see open issue here: https://github.com/xoofx/SharpScss/issues/19) a workaround might fix the ability to run on the agent - but would not run on end-users working with Statiq on macos.

Thanks for all the work on this! Not sure when I'll have a chance to review it, but I'm hoping to carve out time soon since it covers what was the last thing I wanted to do before finally releasing a 1.0 version.

Sure, happy to contribute and no pressure. Been looking to make the update for Statiq.Docs and .Web as well - but the Scss issue is making this particular pull request somewhat tricky as it seems either a dirty workaround (installing libscss for the agent on macos only) or replacing SharpScss (?). Both did not seem ideal, if you have any preference/alternative more than happy to take this over the finishing line and you can review at your leisure


Allow anonymous pages that do not show up when browsing

This will allow you to make a page that only shows up when pressing a button. Then we need to make sure that that page always contains a going back button as the last one.

Done


fix(noty): noty needs to be initialized on turbolinks page load

Changes Unknown when pulling e7b2aef6ab1214dae7c5b3dae7e56f32fc7dacae on fix/noty into ** on master**.


configurability

I really like the mod, but I have a troller in my friend group and I don't want them to spam doors and jams.
Could you add config for disabling certain keybinds please?

Makes sense to add. We'll work on it.

I think a config file is smart for a few other reason. This is a client side mod unfortunately however. This is nice, as it means others don't require the mod when playing, so if your friend doesn't have it he can't even use it. This sadly also means that whatever configuration you set won't apply to your friend.
I will have to see if there is a way to keep this client side friendly, but also do a "host" check so that hosts can put in restrictions multiple people have the mod.

Just a heads up. We were able to successfully test this out yesterday and everything works while remaining Vanilla compatible. We'll build this out soon. Just note, if a client decides to run an old version of the mod after we push, the configs set by the host won't matter, as the mod is still client driven. I will keep you posted as to when we push the update.

Complete with 1.8.0 pushed today. Review readme for setting configurations if needed. The ability to disable both door and jamming has been added. You also have the option to add a simple cooldown time as well.

Having to reopen as Network API appears to not be compatible with vanilla.

Suring our vanilla check, we learned the other person had the same NetworkAPI running so it wasn't an accurate test.
Learning more about how netcode patching works, it's looking like this would be a pretty challenging thing (keeping it vanilla compatible with server/client communication capability). Keeping it client-side vanilla compatible is priority so we will have to table this for now. I will continue to research and see if there is a way to have the best of both worlds though.
Sorry for the bad news.

A work around we are considering. We may be able to tap into game chat. As the config needs to only be set once, we could send a single code through chat that clients would receive to update configs. It's hacky but would keep the mod vanilla compatible. Probably best to either have it manually sent by host from terminal OR auto send it at the start of every round so that it also work's with late company. If this works a "sync host settings" option will need to be set in configs.
Looking into this, should have more info later.

Ok should work with 1.9.0. Chat trick seems to be working.


[BUG] 'MODULE_NOT_FOUND'

I (think) i did all the steps correctly and got this error https://imgur.com/a/NprT0cq
I've made an .env and filled all the details

i also got this when installing yarn https://imgur.com/a/KkCC9Nd


yt-dlp: 2023.1.6 -> 2023.2.17 (thereby unbreaking YouTube downloads)

Description of changes
Less than one day ago, downloading YouTube videos with yt-dlp stopped working. A patch was quickly contributed and just a couple of minutes ago a new release was cut.
Per the comment in the file, this needs to be backported to the latest stable release. I am not familiar with the process for doing that.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Per the comment in the file, this needs to be backported to the latest stable release. I am not familiar with the process for doing that.

For simple cases, it is as simple as adding a proper label to the PR. I'll do it


Proxy Issues with VS Code and Corporate Proxy (Settings.xml seems to be ignored)

So for me to be able to get access to the extension library I need to use the command
code --proxy-server="<IP_ADDRESS>:8080;"
My settings.xml does not seem to apply anything but includes the following just to make my case. That proxy settings in the xml do not apply.
my settings.xml
{
"http.systemCertificates": false,
"http.proxySupport": "off",
"http.proxyStrictSSL": false
}

Noticed this command is not available any more
[me@here ~]$ code --proxy-server="socks5://localhost:9999"
Option 'proxy-server' is unknown. Ignoring.

# ssh socks proxy before I run the above
ssh -CD 9999 <server ip>

it says it is not available but actually does something because I can get the extensions to load into the ide

Message is gone as of
Version: 1.39.2
Commit: 6ab598523be7a800d7f3eb4d92d7ab9a66069390
Date: 2019-10-15T15:33:00.827Z

We need to clarify that the settings only apply to extensions. Will update the settings description.