text:
Fastlane Pilot "Missing password for user" but still succeed

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
Running https://github.com/maierj/fastlane-action and Fastlane Pilot succeed and still displays a failure error.
Command executed
deploy_ios:
    name: Deploy beta build to TestFlight
    runs-on: macos-latest
    steps:
      - name: Checkout code from ref
        uses: actions/checkout@v2
      - name: Decrypt iOS keys
        run: sh ./ios/decrypt.sh
        env:
          RELEASE_SECRET_PASSPHRASE: ${{ secrets.RELEASE_SECRET_PASSPHRASE }}
      - name: Setup Flutter
        uses: subosito/flutter-action@v1
        with:
          flutter-version: 2.0.4
      - run: flutter pub get
      - run: flutter build ios --release --no-codesign --flavor prod
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '2.7.2'
      - name: Deploy iOS Beta to TestFlight via Fastlane
        uses: maierj/fastlane-action@v2.0.1
        with:
          lane: closed_beta
          subdirectory: ios
        env:
          APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}'
          DEVELOPER_APP_ID: '${{ secrets.DEVELOPER_APP_ID }}'
          DEVELOPER_APP_IDENTIFIER: '${{ secrets.DEVELOPER_APP_IDENTIFIER }}'
          DEVELOPER_PORTAL_TEAM_ID: '${{ secrets.DEVELOPER_PORTAL_TEAM_ID }}'
          FASTLANE_APPLE_ID: '${{ secrets.FASTLANE_APPLE_ID }}'
          FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: '${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}'
          MATCH_PASSWORD: '${{ secrets.MATCH_PASSWORD }}'
          GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
          PROVISIONING_PROFILE_SPECIFIER: '${{ secrets.PROVISIONING_PROFILE_SPECIFIER }}'
          TEMP_KEYCHAIN_PASSWORD: '${{ secrets.TEMP_KEYCHAIN_PASSWORD }}'
          TEMP_KEYCHAIN_USER: '${{ secrets.TEMP_KEYCHAIN_USER }}'

Fastfile
default_platform(:ios)

DEVELOPER_APP_ID = ENV["DEVELOPER_APP_ID"]
DEVELOPER_APP_IDENTIFIER = ENV["DEVELOPER_APP_IDENTIFIER"]
PROVISIONING_PROFILE_SPECIFIER = ENV["PROVISIONING_PROFILE_SPECIFIER"]
TEMP_KEYCHAIN_USER = ENV["TEMP_KEYCHAIN_USER"]
TEMP_KEYCHAIN_PASSWORD = ENV["TEMP_KEYCHAIN_PASSWORD"]

def delete_temp_keychain(name)
  delete_keychain(
    name: name
  ) if File.exist? File.expand_path("~/Library/Keychains/#{name}-db")
end

def create_temp_keychain(name, password)
  create_keychain(
    name: name,
    password: password,
    unlock: false,
    timeout: false
  )
end

def ensure_temp_keychain(name, password)
  delete_temp_keychain(name)
  create_temp_keychain(name, password)
end

platform :ios do
  lane :closed_beta do
    keychain_name = TEMP_KEYCHAIN_USER
    keychain_password = TEMP_KEYCHAIN_PASSWORD
    ensure_temp_keychain(keychain_name, keychain_password)

    match(
      type: 'appstore',
      app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
      git_basic_authorization: Base64.strict_encode64(ENV["GIT_AUTHORIZATION"]),
      readonly: true,
      keychain_name: keychain_name,
      keychain_password: keychain_password
    )

    gym(
      configuration: "Release-prod",
      workspace: "Runner.xcworkspace",
      scheme: "prod",
      export_method: "app-store",
      export_options: {
        provisioningProfiles: {
            DEVELOPER_APP_ID => PROVISIONING_PROFILE_SPECIFIER
        }
      }
    )

    pilot(
      apple_id: "#{DEVELOPER_APP_ID}",
      app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
      skip_waiting_for_build_processing: true,
      skip_submission: true,
      distribute_external: false,
      notify_external_testers: false,
      ipa: "./Runner.ipa",
      changelog: "Fixed notifications and improved UX a bit"
    )

    delete_temp_keychain(keychain_name)
  end
end

Matchfile
git_url("https://github.com/louis030195/certificates.git")
storage_mode("git")
type("appstore")

Appfile
app_identifier(ENV["DEVELOPER_APP_IDENTIFIER"])
apple_id(ENV["FASTLANE_APPLE_ID"])

itc_team_id(ENV["APP_STORE_CONNECT_TEAM_ID"])
team_id(ENV["DEVELOPER_PORTAL_TEAM_ID"])

Complete output when running fastlane, including the stack trace and command used
[15:30:53]: -------------------
[15:30:53]: --- Step: pilot ---
[15:30:53]: -------------------
[15:30:53]: Ready to upload new build to TestFlight (App: ***)...
[15:30:53]: Fetching password for transporter from environment variable named `FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD`
[15:30:53]: Going to upload updated app to App Store Connect
[15:30:53]: This might take a few minutes. Please don't interrupt the script.
[15:32:50]: iTunes Transporter successfully finished its job
[15:32:50]: --------------------------------------------------------------------
[15:32:50]: Successfully uploaded package to App Store Connect. It might take a few minutes until it's visible online.
[15:32:50]: --------------------------------------------------------------------
[15:32:50]: Successfully uploaded the new binary to App Store Connect
[15:32:50]: Login to App Store Connect (***)
-------------------------------------------------------------------------------------
Please provide your Apple Developer Program account credentials
The login information you enter will be stored in your macOS Keychain
You can also pass the password using the `FASTLANE_PASSWORD` environment variable
See more information about it on GitHub: https://github.com/fastlane/fastlane/tree/master/credentials_manager
-------------------------------------------------------------------------------------
+------------------------------------+------------------------------------------------------------------------------------------------+
|                                                            Lane Context                                                             |
+------------------------------------+------------------------------------------------------------------------------------------------+
| DEFAULT_PLATFORM                   | ios                                                                                |
| PLATFORM_NAME                      | ios                                                                                |
| LANE_NAME                          | ios closed_beta                                                                                |
| KEYCHAIN_PATH                      | ~/Library/Keychains/***                                                                      |
| SIGH_PROFILE_TYPE                  | app-store                                                                                |
| MATCH_PROVISIONING_PROFILE_MAPPING | {"***"=>"***"}                                              |
| IPA_OUTPUT_PATH                    | /Users/runner/work/langame-app/langame-app/ios/Runner.ipa                                      |
| XCODEBUILD_ARCHIVE                 | /Users/runner/Library/Developer/Xcode/Archives/2021-04-27/Runner 2021-04-27 15.14.21.xcarchive |
| DSYM_OUTPUT_PATH                   | /Users/runner/work/langame-app/langame-app/ios/Runner.app.dSYM.zip                             |
+------------------------------------+------------------------------------------------------------------------------------------------+
[15:32:50]: Missing password for user ***, and running in non-interactive shell

+------+------------------+-------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
| 2    | create_keychain  | 0           |
| 3    | match            | 1           |
| 4    | gym              | 1002        |
| 💥   | pilot            | 117         |
+------+------------------+-------------+

[15:32:50]: fastlane finished with errors

Looking for related GitHub issues on fastlane/fastlane...

bundler: failed to load command: fastlane (/Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/fastlane)
Found no similar issues. To create a new issue, please visit:
/Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/credentials_manager/lib/credentials_manager/account_manager.rb:135:in `ask_for_login': \e[31m[!] Missing password for user ***, and running in non-interactive shell\e[0m (RuntimeError)
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/credentials_manager/lib/credentials_manager/account_manager.rb:56:in `password'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/client.rb:383:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/client.rb:355:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/tunes/spaceship.rb:24:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/connect_api/client.rb:56:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/connect_api/spaceship.rb:85:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/pilot/lib/pilot/manager.rb:31:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/pilot/lib/pilot/build_manager.rb:56:in `upload'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/actions/upload_to_testflight.rb:31:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
	from Fastfile:56:in `block (2 levels) in parsing_binding'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane.rb:33:in `call'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/cli_tools_distributor.rb:122:in `take_off'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/bin/fastlane:23:in `<top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/fastlane:23:in `load'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/fastlane:23:in `<top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in `load'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in `kernel_load'
https://github.com/fastlane/fastlane/issues/new
Run `fastlane env` to append the fastlane environment to your issue
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in `exec'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in `dispatch'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in `start'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:49:in `block in <top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:37:in `<top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/bundle:23:in `load'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/bundle:23:in `<main>'
/Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/credentials_manager/lib/credentials_manager/account_manager.rb:135:in `ask_for_login': Missing password for user ***, and running in non-interactive shell (RuntimeError)
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/credentials_manager/lib/credentials_manager/account_manager.rb:56:in `password'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/client.rb:383:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/client.rb:355:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/tunes/spaceship.rb:24:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/connect_api/client.rb:56:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/spaceship/lib/spaceship/connect_api/spaceship.rb:85:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/pilot/lib/pilot/manager.rb:31:in `login'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/pilot/lib/pilot/build_manager.rb:56:in `upload'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/actions/upload_to_testflight.rb:31:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
	from Fastfile:56:in `block (2 levels) in parsing_binding'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane.rb:33:in `call'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/cli_tools_distributor.rb:122:in `take_off'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.181.0/bin/fastlane:23:in `<top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/fastlane:23:in `load'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/fastlane:23:in `<top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in `load'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in `kernel_load'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in `exec'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in `dispatch'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in `start'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:49:in `block in <top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:37:in `<top (required)>'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/bundle:23:in `load'
	from /Users/runner/hostedtoolcache/Ruby/2.7.2/x64/bin/bundle:23:in `<main>'

This is not blocking but can be unnecessarily worrisome.
Thank you for your help, I hope no mistake on my part?🤔

Hi @louis030195
One small suggestion, (Unrelated to this issue)
You don't need to use maierj/fastlane-action to run Fastlane, and maierj/fastlane-action action is even tracking you with extra API call....which we can avoid
https://github.com/maierj/fastlane-action/blob/1c48e141e0c0f87112c5cf9ca6604d8decde1ad1/main.js#L17
# NOW

- name: Deploy iOS Beta to TestFlight via Fastlane
        uses: maierj/fastlane-action@v2.0.1     # Running using 3rd party, making extra API call for the tracking details
        with:
          lane: closed_beta
          subdirectory: ios
        env:
          APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}'
          ...
          ...

# Proposal

- name: Deploy iOS Beta to TestFlight via Fastlane
        run: bundle exec fastlane ios closed_beta        # Running Fastlane directly
        env:
          APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}'
          ...
          ...

@crazymanish thank you for the tips!
Somehow the error stopped occurring


text:
invalid option: --capture_output

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
In the issue template it says:

You can use --capture_output as the last command line argument for many commands to get that collected for you.

However that command produces an error: invalid option: --capture_output.
Command executed
fastlane match --capture_output

Complete output when running fastlane, including the stack trace and command used

fastlane match --capture_output
[✔] 🚀
[20:28:01]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
invalid option: --capture_output

Environment

✅ fastlane environment ✅
Stack

Key
Value

OS
12.2

Ruby
3.0.3

Bundler?
false

Git
git version 2.32.0 (Apple Git-132)

Installation Source
/opt/homebrew/Cellar/fastlane/2.200.0/libexec/bin/fastlane

Host
macOS 12.2 (21D5039d)

Ruby Lib Dir
/opt/homebrew/Cellar/ruby/3.0.3/lib

OpenSSL Version
OpenSSL 1.1.1l  24 Aug 2021

Is contained
false

Is homebrew
true

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode_13.2.1.app/Contents/Developer/

Xcode Version
13.2.1

Swift Version
5.5.2

System Locale

Variable
Value

LANG

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

fastlane_version "2.94.0"

default_platform(:ios)

platform :ios do
  before_all do
    setup_circle_ci
  end

  desc "Run tests"
  lane :tests do
    run_tests(scheme: "TestappTests")
  end

  desc "Take snapshots"
  lane :screenshots do
    capture_screenshots(scheme: "TestappScreenshots", add_videos: "video.mov")
  end

  desc "Push a new release build to the App Store"
  lane :release do
    match(type: "appstore", app_identifier: ["com.rrainn.ios.testapp"], force: true, readonly: false)
    capture_screenshots(scheme: "TestappScreenshots", add_videos: "video.mov")
    gym(scheme: "Testapp", workspace: "Testapp.xcworkspace", include_bitcode: true, export_method: "app-store") # Build your app - more options available
    deliver(force: true)
  end
end

`./fastlane/Appfile`
app_identifier("com.rrainn.ios.testapp") # The bundle identifier of your app
apple_id("charlie@rrainn.com") # Your Apple email address

itc_team_id("118418113") # iTunes Connect Team ID
team_id("33LGSB2522") # Developer Portal Team ID

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

fastlane gems

Gem
Version
Update-Status

fastlane
2.200.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.5.0

atomos
0.1.3

rexml
3.2.5

CFPropertyList
3.0.5

claide
1.1.0

colored2
3.1.2

nanaimo
0.3.0

xcodeproj
1.21.0

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
1.8.0

plist
3.6.0

public_suffix
4.0.6

addressable
2.8.0

multipart-post
2.0.0

word_wrap
1.0.0

optparse
0.1.1

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

artifactory
3.0.15

babosa
1.0.4

colored
1.2

highline
2.0.3

commander
4.6.0

excon
0.90.0

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

faraday-multipart
1.0.3

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.9.3

unf_ext
0.0.8

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.4

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.6

gh_inspector
1.1.3

json
2.5.1

mini_magick
4.11.0

naturally
2.2.1

rubyzip
2.3.2

security
0.1.3

xcpretty-travis-formatter
1.0.1

dotenv
2.7.6

bundler
2.2.32

simctl
1.6.8

jwt
2.3.0

uber
0.1.0

declarative
0.0.20

trailblazer-option
0.1.2

representable
3.1.1

retriable
3.1.2

mini_mime
1.1.2

memoist
0.16.2

multi_json
1.15.0

os
1.1.4

signet
0.16.0

googleauth
1.1.0

httpclient
2.8.3

webrick
1.7.0

google-apis-core
0.4.1

google-apis-playcustomapp_v1
0.7.0

google-apis-androidpublisher_v3
0.15.0

google-cloud-env
1.5.0

google-cloud-errors
1.2.0

google-cloud-core
1.6.0

google-apis-iamcredentials_v1
0.10.0

google-apis-storage_v1
0.11.0

rake
13.0.6

digest-crc
0.6.4

google-cloud-storage
1.36.0

emoji_regex
3.2.3

jmespath
1.5.0

aws-partitions
1.547.0

aws-eventstream
1.2.0

aws-sigv4
1.4.0

aws-sdk-core
3.125.3

aws-sdk-kms
1.53.0

aws-sdk-s3
1.111.1

set
1.0.1

forwardable
1.3.2

logger
1.4.3

pathname
0.1.0

shellwords
0.1.0

cgi
0.2.1

date
3.1.3

timeout
0.1.1

stringio
3.0.1

securerandom
0.1.0

uri
0.10.1

ipaddr
1.2.2

openssl
2.2.1

digest
3.0.0

io-nonblock
0.1.0

io-wait
0.2.0

zlib
2.0.0

resolv
0.2.1

time
0.1.0

open-uri
0.1.0

mutex_m
0.1.1

net-protocol
0.1.1

ostruct
0.3.1

english
0.7.1

erb
2.2.0

strscan
3.0.1

abbrev
0.1.0

io-console
0.5.7

tempfile
0.1.1

delegate
0.2.0

fileutils
1.5.0

tmpdir
0.1.2

base64
0.1.0

singleton
0.1.1

net-http
0.1.1

open3
0.1.1

nkf
0.1.0

prettyprint
0.1.1

pp
0.2.1

find
0.1.0

yaml
0.1.1

psych
3.3.2

generated on: 2022-01-14

Thanks @fastlane-bot... waiting for a reply from someone from Fastlane.
This issue still occurs on fastlane 2.204.3.

Care to comment on this @joshdholtz??? @fastlane-bot should not be trying to close issues as stale when there has been absolutely NO involvement from the Fastlane team.
This issue still occurs in fastlane 2.205.1...
Completely understand that this is open source, and most efforts are volunteer driven. However, there has to be a balance between that, and just closing issues as stale when it's clearly still an issue.
It's not worth my time to continuously comment on this issue to keep it open, even tho it is still an active issue...

Hanging out with family right now but I'll prevent the bot from closing this and look into it later this week!

My apologies and I will do better!

@joshdholtz Thanks! No pressure, mainly just want the bot to stop trying to close a perfect valid issue. Enjoy your weekend!!

STILL an issue @fastlane-bot... cc/ @joshdholtz

@joshdholtz What is going on here? Totally fair that we all get busy, and this is open source software. But kinda frustrating to have the bot constantly trying to close this issue.
Is there not a tag that can be applied to turn off the bot for this issue?

@fishcharlie My apologies! Again 😔
Turning this into my highest priority because it is annoying. I will look at the bot code to create tag for that tonight but I will also look at this issue tonight

@fishcharlie Ahhh! Did some digging into this and it doesn't look like any of the major tools (match, sigh, etc) support this 😱 Will get a PR up for this

@joshdholtz Awesome. Thanks so much for your help on this. Don't wanna ask too much of you, but if there is any chance you'd also be willing to look at #19800 I'd REALLY REALLY appreciate it. Think it has something to do with capitalization mismatch when comparing strings.

@fishcharlie On it!

@fastlane-bot Bump. cc/ @joshdholtz

@joshdholtz

Will try to look into soon! Been on family leave for 7 weeks and starting to ramp back into things 🙂

source: gharchive/issue

authors: fishcharlie joshdholtz

repo: fastlane/fastlane

license: MIT

license_type: permissive

license_source: github-api


text:
Add server url to the Sonar action

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Description
This is a main option and should be available as a direct argument.

you'll need to sign a Contributor License Agreement (CLA)

Done

source: gharchive/pull-request


text:
[action] add proxy config file path for Xcode11 #15819

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context

Fix #15819
Description

Add how to set up proxy configuration for Xcode11 or later. Since Xcode11, path of itms has changed. So I add new path information to deliver's document.
This is my first PR to fastlane.
I am always grateful for your help 😄 .  Thank You.
Testing Steps

Thank you so much!!
This is good experience for me!! 😍


text:
overhaul user experience to make Curio more beginner friendly.

This involves providing a single, unified interface for TLS and TCP connections, as well as bringing important features such as a connection pool into the picture

This project is currently being worked on under the alpha branch

repo: fatalcenturion/Curio


text:
Clone resolvers

As announced in https://github.com/fatho/logru/pull/33#issuecomment-2542231484

Any chance for a release? I want to show a demo of my software including your library at Congress. It would be nice if I didn't have to fork it tomorrow to get this done :P

Sure thing: https://crates.io/crates/logru/0.4.1

authors: dcz-self fatho

repo: fatho/logru


text:
Styling voor Vaardigheden en Laatste Artikelen Sectie

Beschrijving:

Implementeer de styling voor de vaardigheden- en laatste artikelen-secties, inclusief lay-out, schaduwen, voortgangsbalken, en hover-effecten.

Taken:

Stijl de vaardigheden-sectie met een flexibele lay-out, voortgangsbalken en een nette schaduw voor elke vaardigheid.
Stijl de laatste artikelen-sectie met een overzicht van artikelen, inclusief schaduwen, afbeeldingen, en een hover-effect op de artikelen.
Zorg voor een consistente opmaak met padding, marges, en lettergroottes in beide secties.

voldaan. de issue kan gesloten worden. ik neem de feedback mee naar sprint 2.

repo: fatimahilali/the-client-website


text:
Styling voor Artikelinformatie en Categorie

Beschrijving:

Implementeer de styling voor de artikelinformatie, inclusief de categorie en datum/tijd, om deze visueel duidelijk te maken.

Taken:

Voeg een flexibele lay-out toe aan de artikelinformatie met behulp van CSS Flexbox.
Zorg ervoor dat de categorie vetgedrukt en in een opvallende kleur wordt weergegeven.
Implementeer een lichtgewicht en donkere stijl voor de datum/tijd in de artikelinformatie.

Aan de hand van de PO-feedback kan deze issue gesloten worden.


text:
How to implement the lstm model from 'http://deeplearning.net/' in keras?

I'm new to keras.Now i want to implement the imdb classification task example with lstm from  "http://deeplearning.net/". The following graph is the model:

What's the right way to implement it?
Thanks.

@discobot thanks for your answering.I've read the section.But now i still have the following questions:
1.Can i only use the last output of lstm(ie. hn) as the sentence vector?If so,how to do?
2.How can i sum or concate the [h0,h1,...,hn] as the sentence vector?
Would you please to answer the questions?
Thanks.

Just set return_sequences = False
Just use TimeDistributedMerge in sum mode

How can i sum or concate the [h0,h1,...,hn] as the sentence vector?

You know you can implement your own operations, right? What you are looking for is:
from keras.layers.core import Lambda
from keras import backend as K

temporal_mean_pooling = Lambda(lambda x: K.mean(x, axis=1), output_shape=lambda s: (s[0], s[2]))

Warning: untested, etc.

@lemuriandezapada
@fchollet
Thanks for your answer.

authors: fchollet lemuriandezapada njoe9

repo: fchollet/keras


text:
Precision, Recall and F1 Metrics Removed

It appears Precision, Recall and F1 metrics have been removed from metrics.py as of today but I couldn't find any reference to their removal in the commit logs. Was this intentional?

Yes, it was intentional. See https://github.com/fchollet/keras/wiki/Keras-2.0-release-notes

Ah missed that, thank you very much.

What was the reason behind removing them?

Basically that these are all global metrics that were approximated
batch-wise, which is more misleading than helpful. This was mentioned in
the docs but it's much cleaner to remove them altogether. It was a mistake
to merge them in the first place.
On 19 March 2017 at 11:28, Jacek Karwowski notifications@github.com wrote:

What was the reason behind removing them?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/fchollet/keras/issues/5794#issuecomment-287636509,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AArWb3iZAJPZC-FrViC7eESFBO4ceX2yks5rnXPPgaJpZM4MeOw0
.

@fchollet Are there any plans to add another implementation for these metrics (evaluated globally) ?

@karimpedia What I did was creating a Callback and calculate them on the end of each epoch with the validation data.
class Metrics(keras.callbacks.Callback):
    def on_epoch_end(self, batch, logs={}):
        predict = np.asarray(self.model.predict(self.validation_data[0]))
        targ = self.validation_data[1]
        self.f1s=f1(targ, predict)
        return
metrics = Metrics()
model.fit(X_train, y_train, epochs=epochs, batch_size=batch_size, validation_data=[X_test,y_test],
       verbose=1, callbacks=[metrics])

And implement a function that calculates the f1 score or instead use Scikit Learn's Fscore function.

@imanoluria, i was using your code with the sklearn F1 in my model. the model has 3 inputs and one output.
i used two calbacks: callbacks=[checkpointer, metrics].
alas, i get the error:
File "build/bdist.linux-x86_64/egg/keras/engine/training.py", line 1631, in fit
File "build/bdist.linux-x86_64/egg/keras/engine/training.py", line 1233, in _fit_loop
File "build/bdist.linux-x86_64/egg/keras/callbacks.py", line 73, in on_epoch_end
File "rafael.py", line 29, in on_epoch_end
predict = np.asarray(self.model.predict(self.validation_data[0]))
File "build/bdist.linux-x86_64/egg/keras/engine/training.py", line 1730, in predict
File "build/bdist.linux-x86_64/egg/keras/engine/training.py", line 121, in _standardize_input_data
ValueError: The model expects 3  arrays, but only received one array. Found: array with shape (34374, 15, 9)
my input to the validation is (first dim is #samples):
(34374, 15, 9)-temporal samples
(34374, 3)-1D vector samples
(34374, 7)-1D vector samples
my model's output is a one hot 25 category vector...
can you see what's the problem? thanks a lot!
@fchollet - will there be a future innate API for metrics in check pointer / similar method?

Hi @basque21, I tried to extend your example to work with predict_generator but it did not work. Any ideas?
The error I got was  AttributeError: 'Metrics' object has no attribute 'validation_data'.
My code snippet is below:
class Metrics(keras.callbacks.Callback):
    def on_epoch_end(self, batch, logs={}):
        predict = self.model.predict_generator(
            self.validation_data,
            steps=self.validation_steps,
            workers=6
        )
        targ = self.targ
        self.f1s=f1(targ, predict)
        return

@ShiangYong Did you set validation_data when you fit()?

Em sex, 20 de abr de 2018 às 2:11 AM, Daniel Klevebring <
notifications@github.com> escreveu:

@ShiangYong https://github.com/ShiangYong Did you set validation_data
when you fit()?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/keras-team/keras/issues/5794#issuecomment-382978514,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ai62Hu897l4u2QQZEvkx3QTfGiAu-HhCks5tqW3mgaJpZM4MeOw0
.

no

@dakl No, I need to use fit_generator or predict_generator for my applications, those expect generators and not validation_data

If someone needs to implement it I suggest this work-around:

install keras_metrics package by ybubnov
call model.fit(nb_epoch=1, ...) inside a for loop taking advantage of the precision/recall metrics outputted after every epoch

Something like this:
        model_hist = model.fit(X_train, Y_train, batch_size=batch_size, epochs=1,
                            verbose=2, validation_data=(X_val, Y_val))

        precision = model_hist.history['val_precision'][0]
        recall = model_hist.history['val_recall'][0]
        f_score = (2.0 * precision * recall) / (precision + recall) ```

authors: Lif3line ShiangYong arcticriki dakl fchollet gabrielam2018 imanoluria inexxt karimpedia lucasoldaini ndor


text:
Enable recursive setting of the trainable parameter

Doing model.trainable = False doesn't do anything, since its layers seem to still be trainable. I propose the method set_trainable for both layers and models that will recursively set the parameter.
The main use case is when we have sub-models inside the model we want to freeze, since we won't have to manually loop through an unknown number of layer depths.
If you think this is a good addition, I'll change the examples, add some docs, and a test.

Great addition, as you said need some docs and tests :)

Yay must definitely need this feature!!! Now if someone could also make use_learning_phase recursively so I can use TimeDistributed with BatchNormalization & Dropout I might finally get my model to work lol. Thanks @Dapid.

@Dapid While you're into recursive stuff could you fix this in the same PR? Mostly copy this : https://github.com/Dapid/keras/blob/8fd785d4695aaea10cc4af30317ab7cdab8b5995/keras/engine/topology.py#L1925
In the Layers class
Otherwise, I'll do it in a separate PR no problem.

I thought this feature is already implemented.
The code below doesn't update the weights.
Is there something wrong?
#!/usr/bin/env python

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, InputLayer

inner = Sequential([
    Dense(3, input_shape=(10,))
])

inner.trainable = False

model = Sequential([
    InputLayer((10,)),
    inner
])

model.compile("adam", "mse")

x = np.random.uniform(0, 1, [1000, 10])
y = np.random.uniform(0, 1, [1000, 3])

before = inner.get_weights().copy()
print(before)

model.fit(x, y, verbose=0)

after = inner.get_weights().copy()

print(after)
print(np.array_equal(before[0], after[0]))  # True
print(np.array_equal(before[1], after[1]))  # True

@t-ae that is true for Dense layers, but not for all. BatchNormalization, for example, changes behaviour based on its .trainable property.

Let's get this merged :D. @Dapid can you do the same for use_learning_phase? It's also suffering from recursive chain issue. Where learning phase is not passed to submodels of submodels...
Example TimeDistributed(Dropout()) got fix. but TimeDistributed(Sequential(Dropout)) or a cnn_model with dropout or BatchNormalization passed via TimeDistributed also will fail.
Seems a lots of the bugs have to do with recursiveness and or chaining of models inside models.

@abnera I'll track the use_learning_phase, but I think it should be a different PR to keep things neat. I'll ping you when done so you can review and help François.

@Dapid thanks. That should be no problem. I apologize for the trouble. I'm a researcher, not so good at the coding part, but good at finding bugs. I can help with testing and feedback. I'm also available on the slack channel as avn3r.
PR: https://github.com/fchollet/keras/pull/6387 was supposed to address the use_learning_phase but still suffers from when model has submodels.
wrapper_test.py should test TimeDistirbuted(Sequential(Sequential(Dropout())) or something like that to ensure if can chain the parameters regardless of the number of submodels.
@fchollet: maybe in future version of Keras a redesing of how models pass meta-data between child and parents models might be needed? Just a thought, you the expert.

The trainable attribute of a model behaves exactly like that of a layer (because models shared the same API as layers). It only affects users of the model. Not users of the underlying layers. And that's on purpose. You don't want a layer's state to change based on who uses it and how it's being used.
Consider:
text_encoder = LSTM(...)

x = Input(...)
y = text_encoder(x)
y = Dense(...)(y)

text_clf_model = Model(x, y)

x2 = Input(...)
y2 = text_encoder(x2)

feature_extraction_model = Model(x, y)
feature_extraction_model.set_trainable(False)

# And now I can't train `text_encoder`? Really?
text_clf_model.fit(...)  # does not work

@fchollet Ok that may be its intended behavior. Then how can we best help each other as a community to allow a model to access its submodels and change the submodel layers trainable status.
Example:
base_model = VGG16(input_shape=(224, 224, 3))
top_model = Sequential([Dropout(.5, input_shape=base_model.output_shape[1:]), Dense(101)])
cnn_model = Model(inputs=base_model.input, outputs=top_model(base_model.output))
model = Sequential([TimeDistributed(cnn_model, input_shape=(3, 224, 224, 3))])
for layer in base_model.layers:
    layer.trainable = False
model.compile(optimizer=Nadam(lr=2e-3),
                      loss='categorical_crossentropy',
                      metrics=['accuracy'])
model.summary() # Only top model layers will be trained
model.save('model.h5')

model2 = load_model('model.h5')
model2.summary() # No way to train base model layers now than we finished training top layers.
# Cannot re-create models and pass weights either will get a rank error based on how model was saved.

Now that we have trained top_model (submodel) of model. How can we load and train base_model (submodel) of model. I have also tried to create the model again and pass the weights. model.load_weights(path) but that won't work either since it leads to rank errors.

No way to train base model layers now than we finished training top layers.

Why? I don't understand your example.

@fchollet I apologize for lack of clarity. I believe @Dapid created this PR to set trainable parameters of submodels once when loading the model for a second time.
I'll use the example you provided in the Tensorflow Submit about Video Q&A but in here just video.
For video classification, you have recommended the usage of TimeDistributed.
I first create my cnn_model (image model). The cnn_model is composed of two parts. The VGG16 base_model (without include top) and the top_model (classification layers).
In summary:
Train Top Model Layers

Create CNN Model:
cnn_model = base_model (VGG16) + top_model(Dense layer)
Now I need to pass the cnn_model via the TimeDistributed.
TimeDistibuted(cnn_model)
freeze VGG16 layers since we will use imagenet wieghts while we train the new layers (top_model)
for layer in base_model.layers:
layer.trainable = True
Compile & Train model: Save model with ModelCheckpoint callback.

Fine-Tune base_model layers (VGG16)

model = load_model(path)
Cannot unfreeze the layers I already froze on the model. Since I do not have access to the sub-models anymore. So basically I cannot do fine-tuning transfer learning on this example.

I want to be able to unfreeze those VGG16 on the model I have already saved and trained. I do not want to convert to fix features because that last may lead to accuracy gains, so I want an end-to-end model training. But I have no way to unfreeze any layers of the submodels once I load the curent best model.

Cannot unfreeze the layers I already froze on the model

But, you can. Not sure about the specifics of your model, but if your combined model is a Sequential model made of two layers, a pre-trained CNN and a classifier on top, then you can do model.layers[0] = False/True to freeze/unfreeze the CNN. I don't understand your issue.

Just run this simple example in a notebook.
model2 (the loaded model) will have 101k trainable parameters.
if u do model2.trainable = True or model2.layer[0].trainable = True it will not make all weights trainable. It will leave it at 101k. That is the bug. Unless you have another way of making parameters trainable that I do not now. The question is simple given this example, try to print a model2.summary() and show all parameters are trainable. Mine still shows they aren't regardless of how many times I call model2.trainable = True.
base_model = VGG16(input_shape=(224, 224, 3))
top_model = Sequential([Dropout(.5, input_shape=base_model.output_shape[1:]), Dense(101)])
cnn_model = Model(inputs=base_model.input, outputs=top_model(base_model.output))
model = Sequential([TimeDistributed(cnn_model, input_shape=(3, 224, 224, 3))])
for layer in base_model.layers:
    layer.trainable = False
model.compile(optimizer=Nadam(lr=2e-3),
                      loss='categorical_crossentropy',
                      metrics=['accuracy'])
model.summary() # Only top model layers will be trained
model.save('model.h5')

model2 = load_model('model.h5')
model2.summary() # No way to train base model layers now than we finished training top layers.
# Cannot re-create models and pass weights either will get a rank error based on how model was saved.

So, model2 is a Sequential model with a single layer, a TimeDistributed layer. Which wraps cnn_model. Which is just VGG16 with an added Sequential on top.
To retrieve all your guys:
model2 = load_model(...)
time_distributed = model2.layers[0]
cnn_model = time_distributed.layer
top_model = cnn_model.layers[-1]
all_other_vgg_layers = cnn_models.layers[:-1]

You can then unfreeze all_other_vgg_layers as you like.
If you keep track of what the code you have written yourself does, there is nothing complicated about it. Btw there are cleaner ways to implement fine-tuning... take a look at the applications page in the docs.

As for this PR: this is a function that does
def set_trainable(layer, value):
   layer.trainable = value
   # case: container
   if hasattr(layer, 'layers'):
     for l in layer.layers:
       set_trainable(l, value)
   # case: wrapper (which is a case not covered by the PR)
   if hasattr(layer, 'layer'):
      layer.layer = value

What are the motivations for adding it as a method on all layers/containers? I don't get it.

@Dapid
I read BatchNormalization code, and couldn't find where trainable affects.
Didn't you mistake training for trainable?
And we should consider model.trainable = True may break the untrainable layers inside.
I think it'll be better if setting only container's trainable works perfectly.

@fchollet Thanks, I guess I finally learn how to do this. I have been asking for ages. Maybe a great addition to docs.
As for this PR all I wanted was what I described above. Mainly it's not intuitive. From a practical standpoint, I would want a way for a parent model to force all it's children to trainable = True.
Example: model2.trainable = True should be sufficient for all weights to be unfreeze. Have a parent/children structure where is I make sub_model.trainable = True only the submodel weights get updated but if I want the parent (model.trainable = True); it should force it's children to trainable = True. That is the main feature I am personaly asking for. I thought that is what @Dapid aimed to do, but you would have to ask him.

I would want a way for a parent model to force all it's children to trainable = True.

That's reasonable. Maybe we can consider it. That would be a breaking API change, though.

authors: Dapid Dref360 abnera fchollet t-ae


text:
Export binary descriptions

Fixes https://jira.duraspace.org/browse/FCREPO-2154

Wondering what, if anything, I'm doing wrong here?
BuckyKatt:/Users/bseeger/Projects/fedora/fcrepo4-labs/fcrepo-import-export/fcrepo-import-export-driver/target>java -jar fcrepo-import-export-driver-0.0.1-SNAPSHOT.jar -m export  --binDir ../../../../backup/export/bin_dir --descDir ../../../../backup/export/bin_dir --resource http://localhost:8080/fcrepo_4.6_rc/rest/ Exporting! java.io.FileNotFoundException: ../../../../backup/export/bin_dir/fcrepo_4.6_rc/rest/goats/fcr_metadata.ttl (Not a directory) 	at java.io.FileOutputStream.open0(Native Method) 	at java.io.FileOutputStream.open(FileOutputStream.java:270) 	at java.io.FileOutputStream.<init>(FileOutputStream.java:213) 	at java.io.FileOutputStream.<init>(FileOutputStream.java:162) 	at java.io.FileWriter.<init>(FileWriter.java:90) 	at org.fcrepo.exporter.Exporter.writeResponse(Exporter.java:143) 	at org.fcrepo.exporter.Exporter.exportDescription(Exporter.java:119) 	at org.fcrepo.exporter.Exporter.writeResponse(Exporter.java:150) 	at org.fcrepo.exporter.Exporter.exportBinary(Exporter.java:107) 	at org.fcrepo.exporter.Exporter.export(Exporter.java:85) 	at org.fcrepo.exporter.Exporter.exportMembers(Exporter.java:130) 	at org.fcrepo.exporter.Exporter.exportDescription(Exporter.java:124) 	at org.fcrepo.exporter.Exporter.export(Exporter.java:87) 	at org.fcrepo.exporter.Exporter.run(Exporter.java:79) 	at org.fcrepo.importexport.ImportExportDriver.run(ImportExportDriver.java:52) 	at org.fcrepo.importexport.ImportExportDriver.main(ImportExportDriver.java:41)

authors: bseeger escowles

license_source: bigquery


text:
Simple vnc connection problem

I can't follow the instructions to start a connection to this docker container running in a remote server from my laptop (ubuntu 20.04).
Here's what I've tried running on the remote server
docker run -p 5900:5900 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vn

which outputs
2021-01-30 18:24:34,824 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
2021-01-30 18:24:34,825 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2021-01-30 18:24:34,829 INFO RPC interface 'supervisor' initialized
2021-01-30 18:24:34,829 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2021-01-30 18:24:34,829 INFO supervisord started with pid 12
2021-01-30 18:24:35,832 INFO spawned: 'nginx' with pid 14
2021-01-30 18:24:35,835 INFO spawned: 'web' with pid 15
2021-01-30 18:24:35,838 INFO spawned: 'xvfb' with pid 16
2021-01-30 18:24:35,840 INFO spawned: 'wm' with pid 17
2021-01-30 18:24:35,843 INFO spawned: 'lxpanel' with pid 18
2021-01-30 18:24:35,846 INFO spawned: 'pcmanfm' with pid 19
2021-01-30 18:24:35,849 INFO spawned: 'x11vnc' with pid 20
2021-01-30 18:24:35,852 INFO spawned: 'novnc' with pid 21
2021-01-30 18:24:36,119 INFO  Listening on http://localhost:6079 (run.py:87)
2021-01-30 18:24:36,876 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-01-30 18:24:36,876 INFO success: web entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-01-30 18:24:36,876 INFO success: xvfb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-01-30 18:24:36,876 INFO success: wm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-01-30 18:24:36,877 INFO success: lxpanel entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-01-30 18:24:36,877 INFO success: pcmanfm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-01-30 18:24:36,877 INFO success: x11vnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-01-30 18:24:36,878 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

but I've tried connecting with a bunch of VNC programs and none of them work
I used remmina with this configuration , but it times out without connecting.

I tried tightvncconnect myserverip in the terminal but it doesn't output anything or bring up any new graphical applications.
I'm sure I'm missing something super basic, so hopefully this isn't a tricky one. Thanks for the help!

Hi @DevinBayly ,
Herewith the command i run to start my container.
docker run
-d
-p 47387:443
-p 6885:5900
-v /dev/shm:/dev/shm
-e RESOLUTION=2560x1440
-e VNC_PASSWORD=yourvncpwd
-e USER=dennis
-e PASSWORD=youruserpwd
-e SSL_PORT=443
--cap-add=SYS_PTRACE
--mount source=ubuntu-desktop-home-dennis,target=/home/dennis
--mount type=bind,source=/etc/localtime,target=/etc/localtime
--mount type=bind,source=/root/ssl/ubuntu-desktop,target=/etc/nginx/ssl
--restart=always
--name ubuntu-desktop
dennisvanderpool/ubuntu-desktop
I've created a Dockerfile based on this one.
If that still doesn't work try checking if port might be blocked on the firewall (check iptables).

@dennisvanderpool Thanks for the info! What program are you using for your vnc client if I may ask, and do you just make it connect to the host ip running the container on port 6885?

Remmina on Linux and used 2 different VNC clients on Windows, they all work.

alright good to know. I was able to connect using the turbovnc client and the ./vncviewer with the hostip::6885 and then my provided password.
Couldn't get remmina, but that's ok. Thanks for your help!

authors: DevinBayly dennisvanderpool

repo: fcwu/docker-ubuntu-vnc-desktop


text:
Add fdgongora2's file

Add fdgongora2's file

dfdfdf


text:
Autocompletion when iterating XML in haxe

for some reason, I have a lot of trouble getting auto-completion to show up when running the following code:
var Root:Xml = Xml.parse(xml);
Root = Root.firstChild;
for (entity in Root.elementsNamed("entity"))
{
    //entity. <--- no auto complete
}

Do you have any idea why this is? maybe I'm doing this in an ugly way without knowing it?
Thanks,
Nico

This issue is still relevant?

Fixed in latest development build.

repo: fdorg/flashdevelop


text:
point to /express instead of /middleware which no longer exists

middleware.js was renamed to express.js in version 0.0.6 but Readme is still pointing to this old file name. Updated Readme to point to 'feathers-authentication-popups/express'.

Ah. Thanks!

authors: Evanht marshallswain


text:
Use Promises

todoService.create({
  text: 'A todo',
  complete: false
}, function(error, todo) {
  console.log('Success');
});

Should be:
todoService.create({
  text: 'A todo',
  complete: false
}).then(function (todo) {
  console.log('Success');
});

It should indeed. I'm working on 0.3.0 which will be migrated to ES6, support batches (https://github.com/feathersjs/feathers-batch) and promises.

This is available in the 0.3.0 release. The plugin has also been migrated to ES6.

authors: daffl makrolabs

repo: feathersjs/feathers-client

license: mit


text:
Make conditional hooks compatible with unless

unless allows a boolean, Promise or a function as the predicate.

They were compatible. Docs were incomplete. Fixed docs.

repo: feathersjs/feathers-hooks-common


text:
Wrong ObjectId passed to service methods on nested routes

I have a REST/WebSockets backend that I set up with feathers-cli. It uses feathers-mongoose as a data store.
It has three main tables -users, products and subscriptions. Subscriptions belong to products, and users own both products and subscriptions.
Supplementing the products service I have a nested service to query subscriptions based on their productId.
app.use("/products/:id/subscriptions", {
  find: (params) => app.service("subscriptions").find({
    query: {
      productId: params.id
    }
  }),
  create: (data, params) => app.service("subscriptions").create(Object.assign(data, {
    productId: params.id
  }))
});

The data that I am posting to the server looks like this:
{"name":"Lifetime","duration":"0","price":"10","desc":"A lifetime subscription to FooBar.","productId":"57924101232cfaed5ff125c2"}

However, the server responds with the following 404 error: No record found for id '57964d07ecaf8e915bee9108'. This is puzzling. No product, user or subscription in the database has the ObjectId 57964d07ecaf8e915bee9108. So I am wondering why the ID magically transforms on the server-side.

Can you create a breaking example? The strange object id you're getting makes me think it has something to do with the setup of related services. Also, in this case it shouldn't matter but id is reserved for get routes in services (it sets up a servicename/:id route). I'd go with /products/:productId/subscriptions.

@daffl Apologies for the late response. Not really sure what a good example would be here, but here's the situation as of now. I did change from :product_id to :productId, but that unfortunately did not resolve the issue.
Anyways, on the front-end, I am using Dart and Polymer. I have a class with the following code:
void loadSubscriptions(appId) {
  var subs = _feathers.service("products/$appId/subscriptions");
  subs.index().then((subscriptions) {
    _appDetail.set("subscriptions", subscriptions);
  });
}

The _feathers object you see is an instance of a Feathers client library I whipped up by forking the Angel client. (If you'd like, I can open-source this?). My FeathersService classes have this method, index, that is the same as find. Looks like this:
// TL;DR - Send authed request and return 'data'
@override
Future<List> index([Map params]) {
  var completer = new Completer();
  // buildRequest basically just adds the JWT to an XHR
  // 'basePath' in this case is '/api/v1/products/<id>/subscriptions
  var request = buildRequest("$basePath", method: "GET", write: false);
  request.onLoad.listen((_) {
    completer.complete(request.response["data"]);
  });
  request.send();
  return completer.future;
}

Anyways, when I look in Chrome's 'Network' tab, I see a that the request is sent correctly, correct JWT in the Authorization header, etc.
The response is just very confusing to me. The URL I first found the error on was /api/v1/products/57924101232cfaed5ff125c2/subscriptions. However, the error was about id '579adf3acf609b905a8b37fd', and I have no real idea where that comes from.
Here is relevant output from server.js:
OPTIONS /api/v1/products/57924101232cfaed5ff125c2/subscriptions 204 1.161 ms - -
info: (404) Route: /products/57924101232cfaed5ff125c2/subscriptions - No record found for id '579adf3acf609b905a8b37fd'
GET /api/v1/products/57924101232cfaed5ff125c2/subscriptions 404 20.463 ms - 128

I am running Mac OS X El Capitan 10.11.
Hopefully this is detailed enough, if you need any more, I will provide. Thanks in advance. I really dig Feathers a lot.

Are you using authentication on this service? The error message could also come from sending a token that is valid but has the id of a user that doesn't exist.

Yes, indeed, I am using authentication of this service. I'm wondering, is there any way to see the JWT attached to the request after it is decoded? Is there such thing as a params.token?
However, I'm not really sure why the JWT would have the ID of a user who doesn't exist. The JWT is from an XHR to /ap/v1/auth/local, so I'm still confused.

Yes, the token should be in params.token after the authentication hooks. One way the id could be invalid is when you re-initialize the database and then re-use an old token (instead of getting a new one).

Ah, that makes sense. I store the token and user data in localStorage, like the official client.
When I initialize my client I POST the stored token to /auth/token to see if it is still valid. Perhaps that is the wrong practice.
Regardless, I will check out params.token when I get home and see.

Update - I added a simple hook to the service:
productSubscriptions.before({
  all: [
    hook => {
      console.log("Dumping token: ", hook.params.token);
    },
    auth.verifyToken(),
    auth.populateUser(),
    auth.restrictToAuthenticated(),
    auth.associateCurrentUser()
  ]
});

And now the error I receive changed, and you were right, the JWT is expired.
error: (401) Route: /products/57924101232cfaed5ff125c2/subscriptions - jwt expired
info: NotAuthenticated: jwt expired
at NotAuthenticated.ExtendableBuiltin (/Users/tobe/Source/Node.js/shield-min/api/v1/node_modules/feathers-errors/lib/index.js:21:28)
at NotAuthenticated.FeathersError (/Users/tobe/Source/Node.js/shield-min/api/v1/node_modules/feathers-errors/lib/index.js:99:87)
at new NotAuthenticated (/Users/tobe/Source/Node.js/shield-min/api/v1/node_modules/feathers-errors/lib/index.js:152:85)
at /Users/tobe/Source/Node.js/shield-min/api/v1/node_modules/feathers-authentication/lib/hooks/verify-token.js:47:25
at /Users/tobe/Source/Node.js/shield-min/api/v1/node_modules/jsonwebtoken/index.js:155:18
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)

I took a look back at my code, and although I thought I had a POST to /auth/token, it's not there. I'm going to put it in my client constructor and see how it goes. Hopefully that is the fix.

Looks like we figured it out 😄

authors: daffl thosakwe

repo: feathersjs/feathers-mongoose


text:
Problems with React Native

I'm having this error while running this plugin with a React Native app (Android emulator or device):

omit: function omit(obj) {
    var result = _extends({}, obj);

    for (var _len = arguments.length, keys = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      keys[_key - 1] = arguments[_key];
    }

    var _iteratorNormalCompletion = true;
    var _didIteratorError = false;
    var _iteratorError = undefined;

    try {
      // Here
      for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
        var key = _step.value;

        delete result[key];
      }
    } catch (err) {
      // ...

Original utils.js file comes from feathers-commons: https://github.com/feathersjs/feathers-commons/blob/master/src/utils.js#L27
Running in the iOS emulator works great, but it seems to not work on a real device.
I made a project to show the error (also tried older versions of RN and Rxjs).
https://github.com/mrpatiwi/reactNativeRxjs

Using a forEach loop instead of a (let key of keys) fix the Symbol error, but it produces a Time Out exception now.
keys.forEach(key => delete result[key]);

client.js belongs to feathers-socket-commons, send method.

Closed via https://github.com/feathersjs/feathers-commons/pull/25 in v0.7.4.
I'm not sure how much of ES6 React Native JS engines support but this problem might also be fixed by including babel-polyfill (which is probably generally not a bad idea to include).
Thanks a lot for the fix!

Yeah I think that was an issue with your babel config. RN needs some specific set ups.

authors: daffl ekryski mrpatiwi

repo: feathersjs/feathers-reactive


text:
Rename methods in TieredMulti to be more descriptive

For context I pasted the generic T implemenation for TieredMulti below.
I put the new suggested names above the method in a comment.
Probably take a look at Tiered as well if these renames happen.
thoughts?
@dpc
Short:
impl<T> TieredMulti<T> {
    pub fn new(map: BTreeMap<Amount, Vec<T>>) -> Self { TieredMulti(map) }

    // good. or notes_amount() or notes_value() or total_notes_value()
    pub fn total_amount(&self) -> Amount { }

    //  count_notes()
    pub fn item_count(&self) -> usize { }

    // count_tiers()
    pub fn tier_count(&self) -> usize { }

    // iter_tiers() or keys()
    pub fn tiers(&self) -> impl Iterator<Item = &Amount> { }

    pub fn is_empty(&self) -> bool { }

    pub fn map<F, N, E>(self, f: F) -> Result<TieredMulti<N>, E> }

    pub fn structural_eq<O>(&self, other: &TieredMulti<O>) -> bool { }

    // iter() ,it also just calls iter()
    pub fn iter_tiers(&self) -> impl Iterator<Item = (&Amount, &Vec<T>)> { }

    // Note: order of the elements is important here: from lowest tiers to highest, then in order of elements in the Vec
    pub fn iter_items(&self) -> impl Iterator<Item = (Amount, &T)> + DoubleEndedIterator { }

    // Note: order of the elements is important here: from lowest tiers to highest, then in order of elements in the Vec
    pub fn into_iter_items(self) -> impl Iterator<Item = (Amount, T)> + DoubleEndedIterator { }

    /// Returns the max number of notes for any given denomination tier
    // max_number_of_notes(), would be longer but descriptive. I'd also change the documentation since there is no "given denomination tier"
    pub fn max_tier_len(&self) -> usize { }

    /// Verifies that all `self.keys()` are contained in the keys of the given parameter `Tiered`
    // tiers_exist_in()
    pub fn check_tiers<K>(&self, keys: &Tiered<K>) -> Result<(), InvalidAmountTierError> { }

    pub fn get(&self, amt: Amount) -> Option<&Vec<T>> { }

    // TODO: Get rid of it. It might be used to break useful invariants (like making sure there are no empty `Vec`s after removal)
    pub fn get_mut(&mut self, amt: Amount) -> Option<&mut Vec<T>> { }
}

with code implemenation
impl<T> TieredMulti<T> {
    pub fn new(map: BTreeMap<Amount, Vec<T>>) -> Self {
        TieredMulti(map)
    }

    // good. or notes_amount() or notes_value() or total_notes_value()
    pub fn total_amount(&self) -> Amount {
        let milli_sat = self
            .0
            .iter()
            .map(|(tier, coins)| tier.msats * (coins.len() as u64))
            .sum();
        Amount { msats: milli_sat }
    }

    //  why not count_notes()
    pub fn item_count(&self) -> usize {
        self.0.values().map(|coins| coins.len()).sum()
    }

    // count_tiers()
    pub fn tier_count(&self) -> usize {
        self.0.len()
    }

    // iter_tiers() or keys()
    pub fn tiers(&self) -> impl Iterator<Item = &Amount> {
        self.0.keys()
    }

    pub fn is_empty(&self) -> bool {
        self.item_count() == 0
    }

    pub fn map<F, N, E>(self, f: F) -> Result<TieredMulti<N>, E>
    where
        F: Fn(Amount, T) -> Result<N, E>,
    {
        let res = self
            .0
            .into_iter()
            .map(|(amt, coins)| -> Result<_, E> {
                let coins = coins
                    .into_iter()
                    .map(|coin| f(amt, coin))
                    .collect::<Result<Vec<_>, E>>()?;
                Ok((amt, coins))
            })
            .collect::<Result<BTreeMap<Amount, Vec<N>>, E>>()?;

        Ok(TieredMulti(res))
    }

    pub fn structural_eq<O>(&self, other: &TieredMulti<O>) -> bool {
        let tier_eq = self.0.keys().eq(other.0.keys());
        let per_tier_eq = self
            .0
            .values()
            .zip(other.0.values())
            .all(|(c1, c2)| c1.len() == c2.len());

        tier_eq && per_tier_eq
    }

    // iter() ,it also just calls iter()
    pub fn iter_tiers(&self) -> impl Iterator<Item = (&Amount, &Vec<T>)> {
        self.0.iter()
    }

    // Note: order of the elements is important here: from lowest tiers to highest, then in order of elements in the Vec
    pub fn iter_items(&self) -> impl Iterator<Item = (Amount, &T)> + DoubleEndedIterator {
        self.0
            .iter()
            .flat_map(|(amt, coins)| coins.iter().map(move |c| (*amt, c)))
    }
    // Note: order of the elements is important here: from lowest tiers to highest, then in order of elements in the Vec
    pub fn into_iter_items(self) -> impl Iterator<Item = (Amount, T)> + DoubleEndedIterator {
        self.0
            .into_iter()
            .flat_map(|(amt, coins)| coins.into_iter().map(move |c| (amt, c)))
    }

    /// Returns the max number of notes for any given denomination tier
    // max_number_of_notes(), would be longer but descriptive
    pub fn max_tier_len(&self) -> usize {
        self.0.values().map(|notes| notes.len()).max().unwrap_or(0)
    }

    /// Verifies that all `self.keys()` are contained in the keys of the given parameter `Tiered`
    // tiers_exist_in()
    pub fn check_tiers<K>(&self, keys: &Tiered<K>) -> Result<(), InvalidAmountTierError> {
        match self.0.keys().find(|&amt| keys.get(*amt).is_none()) {
            Some(amt) => Err(InvalidAmountTierError(*amt)),
            None => Ok(()),
        }
    }

    pub fn get(&self, amt: Amount) -> Option<&Vec<T>> {
        self.0.get(&amt)
    }

    // TODO: Get rid of it. It might be used to break useful invariants (like making sure there are no empty `Vec`s after removal)
    pub fn get_mut(&mut self, amt: Amount) -> Option<&mut Vec<T>> {
        self.0.get_mut(&amt)
}

Not sure if iter is better than iter_tiers, but no strong opinion
count_notes while these mostly contain note-related Ts, not every instance contains actual notes
Where you note order requirements, maybe we can actually put that into the name?

LGTM.

Not sure if iter is better than iter_tiers, but no strong opinion

so there is
    // iter_tiers() or keys()
    pub fn tiers(&self) -> impl Iterator<Item = &Amount> { }
  // iter() ,it also just calls iter()
    pub fn iter_tiers(&self) -> impl Iterator<Item = (&Amount, &Vec<T>)> { }

the new iter_tiers would actually iter over the tiers &Amount. while the new iter() would do an iteration over (&key, &val) as I'd expect at iter to do.

* `count_notes` while these mostly contain note-related `T`s, not every instance contains actual notes

right. so I think count_value_items would be good

* Where you note order requirements, maybe we can actually put that into the name?

actually, that's already in the source code.  I haven't quite looked at where it's used or why the order is "important"

actually, that's already in the source code. I haven't quite looked at where it's used or why the order is "important"

I remember working with something where this mattered, but generally - this struct is used for consensus a lot so we need to be specific about the behavior. Even if it wasn't - just being deterministic is an important property for project like fedimintd. For this reason I would avoid using any HashMaps and HashSets anywhere.

thanks for the explanation!
I'm not sure if it should/must be represented in the method name as @elsirion  suggested. :thinking:
Since it's from lowest to highest I thought about the _asc (ascending) suffix. But not sure.  The note should definitely continue to be there to document this. Perhaps I'll add a bit to it.

I don't think we have to put it in a name. User 99% of the time won't care, and if they do, they will read the comment. What's important is that it works deterministically. :)

right, well, it wasn't in the docstring of the method, so I moved it to the method body as comment in the PR. Should I put the note in the docstring of the method?

Should be everywhere where relevant, I think?

authors: dpc elsirion mxz42

repo: fedimint/fedimint


text:
Fix debian packages

Our debian packages are broken in a few ways:

The client package is empty (can likely be removed, fedimint-cli is included in the fedimint package)
The fedimint package installs the necessary binaries but doesn't correctly link them to /bin

root@04a40849f8dc:~# dpkg -c fedimint-pkgs-bin-fedimint-pkgs_1.0_amd64.deb
drwxr-xr-x 0/0               0 1980-01-01 00:00 ./
drwxrwxrwx 0/0               0 1980-01-01 00:00 ./bin/
lrwxrwxrwx 0/0               0 1980-01-01 00:00 ./bin/fedimint-pkgs -> /nix/store/0qkacykmwmd7vvx4gzsx6kdqn7zfqp02-fedimint-pkgs/bin/fedimint-pkgs
drwxrwxrwx 0/0               0 1980-01-01 00:00 ./nix/
drwxrwxrwx 0/0               0 1980-01-01 00:00 ./nix/store/
…

root@04a40849f8dc:~# ls /nix/store/0qkacykmwmd7vvx4gzsx6kdqn7zfqp02-fedimint-pkgs/bin/
fedimint-cli  fedimint-dbtool  fedimintd

Instead of the link ./bin/fedimint-pkgs -> /nix/store/0qkacykmwmd7vvx4gzsx6kdqn7zfqp02-fedimint-pkgs/bin/fedimint-pkgs there should be three links to the actual binaries contained in /nix/store/0qkacykmwmd7vvx4gzsx6kdqn7zfqp02-fedimint-pkgs/bin.

> nix bundle .#fedimintd -o fedimintd.bundled
> ./fedimintd.bundled --help
Usage: fedimintd [OPTIONS] --data-dir <DATA_DIR>
...

That much works, possibly. Let's see dpkg.

Yes, the normal binaries worked for me too (even though the first start is comically slow).

The tool seems to assume that the name of the output is the name of the binary. I have a fix coming that just does it this way, and hopefully good enough for now.

Fixed in #3836

authors: dpc elsirion


text:
Add dbtool documentation

People keep asking me how to use it, I take this as a sign that I should document it better :laughing:

I think it's still useful, just a question of how annoying rebasing would be. Feel free to just copy the useful parts into your PR and close this one if it's significantly easier. Otherwise we can merge this and you rebase, so we have the docs a bit earlier.

dbtool saved my tail today 😂

authors: elsirion justinmoon


text:
chore(test): another mint module recovery test

@elsirion Maybe, but would need a description of a guess of a scenario that we're missing here.
The recovery logic does not have a lot of weird cases in my mind. You start from the empty state and rewind existing history. Any state that the user can hit, we should be able to hit with just the cli.

More tests more good, but I wish this was a unit test. You built a beautifully testable recovery logic, that is very self-contained at its core and only relies on DB access at the very end. These CLI tests are really hard to debug should they ever become flaky.


text:
Removed problematic session check for VPN

Removed the extra check that was causing issues

Looks good.

authors: bsweger jworcestBAH

repo: fedspendingtransparency/data-act-broker


text:
entry.first_richtext works only with RichTextContent

entry.first_richtext does not work if i use the contenttype other than RichTextContent
from redactor.fields import RedactorField
from elephantblog.models import Entry

class Content(models.Model):
    content = RedactorField(u'content', null=True, blank=True)
    class Meta:
        abstract = True
    def render(self, **kwargs):
        return self.content

Entry.create_content_type(Content, regions=('main',))

See pull #49

The RichTextContent and MediaFileContent models are hard coded. Maybe we could put the method into a class and make that class replaceable. This way we could use Django Filer or RedactorContents with Elephantblog.

authors: sbaechler winsento

repo: feincms/feincms-elephantblog


text:
ci: lint the Vagrantfiles

So we don't have to run vagrant package to check the syntax of the Vagrantfile which comes packaged in the box. This saves some time in the build.
References https://github.com/hashicorp/vagrant/issues/12125.
Closes #21

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

v5.2.0
GitHub release

Your semantic-release bot :package::rocket:


text:
🛑 PasImpCh is down

In 41dfaa8, PasImpCh ($SITE_PASIMPCH) was down:

HTTP code: 0
Response time: 0 ms

Resolved: PasImpCh is back up in 4cfc008 after 13 minutes.

repo: felipesbs/bitrate-uptime


text:
Display API errors in UI, not just console

For example:

no internet
incorrect API key
too long input

Fixed in 7fbe6b4

repo: felixbade/chatgpt-web-ui

license: ISC


text:
Difficulty installing and configuring on macOS 10.15.7

I'm working on an LSP client and would like to add preconfigured support for this language server. In the process I'm trying to develop end-user installation instructions.
Reading README.md, the instructions say:
The recommended installation method is through [Composer](https://getcomposer.org/).
Simply run

    composer require felixfbecker/language-server

When I attempt this, I get the following:
% composer require felixfbecker/language-server
Using version ^4.6 for felixfbecker/language-server
./composer.json has been updated
Running composer update felixfbecker/language-server
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - felixfbecker/language-server[v4.6.0, ..., v4.6.1] require squizlabs/php_codesniffer 3.0.0RC3 -> found squizlabs/php_codesniffer[3.0.0RC3] but it does not match your minimum-stability.
    - felixfbecker/language-server[v4.6.2, ..., v4.6.4] require php ^7.0 -> your php version (8.0.2) does not satisfy that requirement.
    - Root composer.json requires felixfbecker/language-server ^4.6 -> satisfiable by felixfbecker/language-server[v4.6.0, ..., v4.6.4].

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

After much thrashing around, including rolling my installed PHP back to 7.4.15, I was able to do the following, which appears to have succeeded:
composer global config minimum-stability dev
composer global require felixfbecker/language-server -W

This may be worth a note in the README.
I then went to the next step in the instructions:
composer run-script --working-dir=vendor/felixfbecker/language-server parse-stubs

This failed, because vendor/felixfbecker/language-server does not exist. The correct invocation appears to be:
composer run-script --working-dir=.composer/vendor/felixfbecker/language-server parse-stubs

(Using Composer 2.0.11 and PHP 7.4.15)
I'm not sure if that's a documentation issue or a Composer issue.
Finally, and here is where I am blocked:
siegel ~ % composer run-script --working-dir=.composer/vendor/felixfbecker/language-server parse-stubs
> LanguageServer\ComposerScripts::parseStubs
[...lots and lots of "Parsing file:////path/to/something.php" output, then…]
Parsing file:///Users/siegel/.composer/vendor/jetbrains/phpstorm-stubs/standard/standard_8.php
Script LanguageServer\ComposerScripts::parseStubs handling the parse-stubs event terminated with an exception

  [RuntimeException]
  A type is missing before a type separator

At this point I am unable to proceed further, and would appreciate any recommendations you may have.

Same for me
Composer 2.0.13
PHP 7.4.19
Mac 11.2.3 (big sur)
Removed http.php and standard_8.php - worked for me.
I think this is somehow related to php8?

same to me, Removed http.php and standard_8.php - worked for me.

For anyone finding this same issue, here's the source:
it's the result of using using the master branch for the jetbrains/phpstorm-stubs dependency here. Since it's using the branch directly (instead of a package version), Composer doesn't know that the master branch now uses PHP 8 in that JetBrains repo. So the first PHP 8 syntax it sees (the spread operator: ...) will cause the TypeError you're seeing.
This project might be abandoned (don't see any activity in diffs for the last few years), so it's not likely that it'll get patched. To unblock yourself, you can just remove that file + it should complete building. (Though you might see other errors of the same type; continue ignoring those files.)

I agree the project seems to be abandoned; from what I can tell, folks have settled on Intelephense (and we've been recommending it).

authors: arthur-s siegel taylordaughtry tskorupka

repo: felixfbecker/php-language-server

license: isc


text:
Autocomplete not working?

I don't know if I am doing something wrong or if it is even possible but I have framework classes in vendor folder so I would thought that autocomplete function hinting/completing these classes, eg. in use statement, function parameters etc. Every other function of your extension works well, great job! But autocomplete is not, even with your PDO example.

This issue was moved to felixfbecker/php-language-server#276

authors: felixfbecker snizemic

repo: felixfbecker/vscode-php-intellisense


text:
pool.getConnection(function (error, connection) not returning a connection

Hi,
Lately i've been experiencing an issue where pool.getConnection(function (error, connection) is not returning a function and is hanging any Express.js request i have that contains MySQL queries.
I've done debugging and tracked it back to this code.
The code i'm using is

var mysql = require('mysql'),
	sApp = null;
module.exports = {
connect : function (app, callback) {

	sApp = app;
	pool  = mysql.createPool({

	  	host     : app.config.mysql.hostname,
	  	user     : app.config.mysql.username,
	  	password : app.config.mysql.password,
	  	database : app.config.mysql.database,
	});

	app.logging.info("Creating a new MySQL Pool");
	callback();
},

query : function (string, params, callback) {

	pool.getConnection(function (error, connection) {

		console.log(error);

		connection.query(string, params, function (error, rows) {

			connection.end();
			callback(error, rows);
		});
	});
}

}

huft

authors: abdymalikmulky dannybisby

repo: felixge/node-mysql


text:
Request: Rental Code

Hello team PokePaste!
Would you please add an optional 4th field for the Team's Rental Code as that feature in Gen 8 is likely going to be with us for a LONG time? Plus there are so many NEW players starting to dip their toes into the competitive scene that it would be make them so much more familiar with PokePaste if the Rental Codes could be on the team page share.
:)
Thanks in advance and am so happy this site exists!

I 2nd this idea. Would be a very cool feature. Even tho, you could just put the Rental code in the comments it would be neat to see a special place for it to help it stand out more.

There's an effort to standardise this in it's fullest. Feel free to contribute https://github.com/Pokemon-Standards-Consortium/standards/issues/13

repo: felixphew/pokepaste


text:
How to use UI but at a different URL than /login-api

Thanks for the work on this package.
I don't want to set up a login form. I want to use the ui that comes with the package but still be able to customize the URL on which I can access it. eg: /api/v1/docs/login

As you can see url is hardcoded in the UI component, you can fork it, rebuild and replace as your package.
https://github.com/femike/swagger-protect-ui/blob/85ac094bfdf1c87209d02907c1588b2ada1b4f0e/src/components/LoginForm.vue#L165

@femike Would this not be possible to be added into this package? Seems like such a small change to introduce own fork for this

authors: femike shellking4 xtrinch

repo: femike/swagger-protect


text:
Add a simple key-value test

Before we merge this, there's one open question:
The test has an assumption that a key-value store labeled "default" exists. In Spin CLI, this is the case without any further action, but for other runtimes, there might not be a "default" key-value store by default, and the test runner might need to take action to create the store.
We'll need to figure out some mechanism for the test to specify that it is relying on the store existing.

We'll need to figure out some mechanism for the test to specify that it is relying on the store existing.

Would it make sense to have some kind of explicit "precondition" asserts that document this kind of requirement?

Would it make sense to have some kind of explicit "precondition" asserts that document this kind of requirement?

Yes, I'm going to try to come up with something like this. We'll likely have to change it over time, but hopefully we'll eventually land on something that works.

Ok I've changed the "services" config to a general "preconditions" config which covers both the services that need to run as well as other preconditions (e.g., which stores need to exist).

authors: lann rylev

repo: fermyon/conformance-tests


text:
Update Python documentation to support Spin SDK 3.1.0 and Componentize-Py 0.13.3

Update all Python code samples, config and working examples to use spin-sdk 3.1.0 and componentize-py 0.13.3. These are the latest releases that have changes to outbound request bodies and better support for composition.

Waiting for https://github.com/fermyon/spin-python-sdk/pull/99

repo: fermyon/developer