text:
invalid byte sequence in UTF-8 when using update_info_plist

New Issue Checklist

[x] Updated fastlane to the latest version - yes, 1.08 as of nov 14 2016
[x] I have read the [Contribution Guidelines] - yes(https://github.com/fastlane/fastlane/blob/master/CONTRIBUTING.md)

Issue Description
i thought id try the fastlane advice of adding gemfile to speed things up ect. i followed the instructions and now the update_info_plist action is now throwing an error. the lane used here is called 'warmup'.
I am using rbenv version 0.4.0 and ruby 2.2.2, but i also tried 2.0.0 thinking version could be issue but it was not.
i saw someone else had a similar issue: https://github.com/fastlane/fastlane/issues/6810
Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

Captured Output
Command Used: warmup
Output/Log

+------+-------------------------------------+-------------+
|                     fastlane summary                     |
+------+-------------------------------------+-------------+
| Step | Action                              | Time (in s) |
+------+-------------------------------------+-------------+
| 1    | opt_out_usage                       | 0           |
| 2    | Verifying required fastlane version | 0           |
| 3    | default_platform                    | 0           |
| 4    | prompt                              | 0           |
| 5    | Switch to config_project lane       | 0           |
| 💥    | update_info_plist                   | 0           |
+------+-------------------------------------+-------------+

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

➡  upload_symbols_to_crashlytics invalid byte sequence
   https://github.com/fastlane/fastlane/issues/4027 [closed] 27 💬
   2 weeks ago

➡  invalid byte sequence in US-ASCII
   https://github.com/fastlane/fastlane/issues/2253 [closed] 2 💬
   22 Sep 2016

➡  invalid byte sequence in US-ASCII
   https://github.com/fastlane/fastlane/issues/2389 [closed] 2 💬
   22 Sep 2016

and 13 more at: https://github.com/fastlane/fastlane/search?q=invalid%20byte%20sequence%20in%20UTF-8&type=Issues&utf8=✓

Environment
Please run fastlane env and copy the output below. This will help us help you :+1:
If you used --capture_output option please remove this block - as it is already included there.
✅ fastlane environment ✅
Stack

Key
Value

OS
10.12

Ruby
2.0.0

Bundler?
false

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

Xcode Version
8.1

Git
git version 2.9.3 (Apple Git-75)

Installation Source
/Users/scc/.rbenv/versions/2.0.0-dev/bin/fastlane

Host
Mac OS X 10.12 (16A323)

Ruby Lib Dir
/Users/scc/.rbenv/versions/2.0.0-dev/lib

OpenSSL Version
OpenSSL 1.0.2h  3 May 2016

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE
en_US.UTF-8
✅

fastlane files:
`./Fastfile`
# written by Peter and Keven

require "spaceship"
opt_out_usage
fastlane_version "1.52.0"
default_platform :ios

before_all do
  get_flavs
  # ensure_git_status_clean
end

#----- LANES -----#

lane :test do _test_all end

lane :allsnap do |options| snap(flavorID:-1) end
lane :acro_snap do |options| snap(flavorID:17) end
lane :pbc_snap do |options| snap(flavorID:18) end

lane :bump do _bump end

#----- PRIVATE LANES -----#

private_lane :build_app do |options|

  flavor_id = options[:flavor_id]
  app_identifier = options[:app_identifier]

  output_dir = options[:output_dir]
  export_method = options[:export_method]

  warmup(flavor_id: flavor_id)

  cert # Get certificates

  #(development: true)
  udid = sigh(
    app_identifier: app_identifier,
    output_path: "/tmp",
    development: false#!options[:release]
    )

  ENV["PROJECT_UDID"] = udid

  #cocoapods TODO: enable

  gym(
    scheme: "Health StoryLines",
    output_directory: output_dir ? output_dir : "/tmp",
    output_name: "#{app_identifier}.ipa",
    sdk: "iphoneos",
    clean: true,
    use_legacy_build_api: true,
        export_method: !options[:release] ? 'development' : 'app-store', #"app-store", development
        include_symbols: true,
        include_bitcode: false,
        silent: true,
        configuration: !options[:release] ? 'Debug' : 'Release'
        )
end

lane :warmup do |options|

  puts "#{options}\n"
  opts = options[:options]

  get_flavs

  flavor_id = options[:flavor_id] ? options[:flavor_id] : select_flavor(flavor_id)
  flavor_data = $flavor_data ? $flavor_data :  get_flav(flavor_id.to_i)

  puts flavor_id
  puts flavor_data

  config_project(flavor: flavor_id,
   flavorData:flavor_data)
end

  lane :config_project do |options|

    puts "#{options}\n"

    if flavor_data = options[:flavorData] then
      puts "flavorData: #{flavor_data}\n"

      app_identifier = flavor_data["identifier"]
      server_url = flavor_data["serverurl"]

      ENV["APP_IDENTIFIER"] = app_identifier

      #update bundle id, display name
      update_info_plist(
        app_identifier: flavor_data["identifier"],
        display_name: flavor_data["shortname"],
        plist_path: 'Files/Resources/Supporting Files/Health StoryLines-Info.plist',
        xcodeproj: 'Health StoryLines.xcodeproj',
        )

      #update ServerURL
      set_info_plist_value(
        key: 'ServerURL',
        value: server_url,
        path: 'Files/Resources/Supporting Files/Health StoryLines-Info.plist',
        )

      # update_app_identifier(app_identifier: app_identifier, plist_path: 'Files/Resources/Supporting Files/Health StoryLines-Info.plist')

        # xcodeproj: "#{options[:project_name]}.xcodeproj",
        # plist_path: "#{options[:project_name]}/Info.plist",

        update_app_identifier(
          xcodeproj: 'Health StoryLines.xcodeproj',
          plist_path: 'Files/Resources/Supporting Files/Health StoryLines-Info.plist',
          app_identifier: app_identifier
        # options[:app_identifier]
        )

      #checking correct vals set
      puts get_info_plist_value(path: 'Files/Resources/Supporting Files/Health StoryLines-Info.plist', key: 'CFBundleIdentifier')
      puts get_info_plist_value(path: 'Files/Resources/Supporting Files/Health StoryLines-Info.plist', key: 'ServerURL')

      #TODO: copy plist into flavor folder?
      # FileUtils.cp("../", dest_folder)
    else
      puts "!!!!! ERROR NO FLAVOR DATA !!!!!!"
    end
  end

  private_lane :appetize do |options|
    appetize(
      api_token: 'tok_fg7vef0jmj7x7u2gzbadzp6kd8',
      url: 'https://example.com/your/zipped/app.zip',
      private_key: 'yourprivatekey'
      )
  end

  #################################################################
  ######################### PUBLIC LANES ##########################
  #################################################################

 #------------------------- Itunes Connect -------------------------#
# https://github.com/fastlane/fastlane/blob/master/spaceship/docs/iTunesConnect.md
desc "iTunes Connect Lane"
lane :itc do |options|
    # Spaceship.login
    # list all apps
    # puts all_apps = Spaceship.app.all
    # return

    # Apple Dev -----
    # Spaceship.app.all.collect do |app|
     # puts app.name
     # puts app.details
    # end

#app.all_processing_builds

#Select build fpr review

   # Spaceship::Tunes.login

   #  Spaceship::Tunes::Application.all.collect do |app|
   #   if !app.edit_version.nil? && app.name != 'CMT Neighbours'
   #    puts app.name
   #    version = app.edit_version
   #    puts version
   #    builds = version.candidate_builds
   #    puts builds
   #  end
   #  end

# version.select_build(builds.first)
# version.save!

# submission = app.create_submission

# # Set app submission information
# submission.content_rights_contains_third_party_content = false
# submission.content_rights_has_rights = true
# submission.add_id_info_uses_idfa = false

# # Finalize app submission
# submission.complete!

    # Itunes Connect -----
    Spaceship::Tunes.login
    Spaceship::Tunes::Application.all.collect do |app|
     puts app.name
     # puts app.details
     puts app.edit_version.version
   end

   return
   Spaceship::Tunes.login
   Spaceship::Tunes::Application.all.collect do |app|
    puts app.name
      ########### SET VERSION NUMBER  #################################
      if v = app.live_version
      v = app.live_version # || app.edit_version
      # Access information - apple_id, name, bundle_id
      puts v.app_status
      puts v.version
    end
    if(app.edit_version)
      v = app.edit_version
      puts 'Current Edit Version Exists'
      puts app.edit_version.version
        v.version = 2.0 # || app.edit_version

        changelog = "- Improved daily check-ins to help you track your health with ease
        - Improved user interface"

        v.release_notes.languages.each do |lang|
          v.release_notes[lang] = changelog
            #Update Version
            v.save!
          end
        else
          begin
           app.create_version!(2.0)
           puts 'New Version Created!'
           v = app.edit_version
            # Access information - apple_id, name, bundle_id
            # puts v.name
            puts v.app_status
            puts v.version
          rescue => ex
            puts "!!!!!!!!!!!!!!!!!!!!error!!!!!!!!!!!!!!!!!!!!!!!"
            puts ex
          end
        end
      end
      ##################################################################
#       v = app.edit_version # || app.edit_version
#       v.release_notes = "- Improved daily check-ins to help you track your health with ease
# - Improved user interface"

#       #Update Version
#       v.save!
    # end

    # Create a new app----------------
    # app = Spaceship.app.create!(bundle_id: "com.krausefx.app_name", name: "fastlane App") version, sku, primary_language ("English")

    # Update app details----------------
    # details = app.details
    # details.name['en-US'] = "App Name"
    # details.privacy_url['en-US'] = "https://fastlane.tools"
    # details.save!

    # Register a new device----------------
    # Spaceship.device.create!(name: "Private iPhone 6", udid: "5814abb3...")
    # all_devices = Spaceship.device.all

    # Submission----------------
    #     submission = app.create_submission

    # # Set app submission information
    # submission.content_rights_contains_third_party_content = false
    # submission.content_rights_has_rights = true
    # submission.add_id_info_uses_idfa = false

    # # Finalize app submission
    # submission.complete!
  end

  #------------------------- TEST -------------------------#

  def _test_all
    scan(
      workspace: "Health Storylines.xcworkspace",
      scheme: "Regression",
      device: "iPhone 6",
      destination: "platform=iOS Simulator,name=iPhone 6,OS=9.2",
      clean: true,
      slack_url: "https://hooks.slack.com/services/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",
      slack_channel: "#bitrise"
    )
  end

     # scan(
    #   workspace: "Health Storylines.xcworkspace",
    #   scheme: "Regression",
    #   device: "iPhone 6",
    #   destination: "platform=iOS Simulator,name=iPhone 6,OS=9.2",
    #   clean: true,
    #   slack_url: "https://hooks.slack.com/services/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",
    #   slack_channel: "#bitrise"
    #   )

  #------------------------- SNAP -------------------------#

  lane :liver_snap do |options|
    version = get_version_number(xcodeproj: 'Health StoryLines.xcodeproj')
    build_number = get_build_number(xcodeproj: 'Health StoryLines.xcodeproj')

    flavor_id = select_flavor(options[:flavor_id])

    #Distributing all flavors
    if flavor_id == -1 then

      app_identifiers = Array.new
      get_flavs

      puts "...Sending all flavors"
      # puts flavors_hash
      $flavors_hash.each_with_index do | (key, value), index |
        begin

          release(flavor_id: index)
          app_identifiers.push("#{key["identifier"]}")
        rescue => ex
          puts "!!!!!!!!!!!!!!!!!!!!error!!!!!!!!!!!!!!!!!!!!!!!" #TODO: email error
          puts ex
        end
      end

    # Distributing one flavor
  else
    app_identifier = $flavor_data["identifier"]
    warmup(flavor_id: flavor_id)
    snap(flavorID: flavor_id.to_i)

      # # cert
      # app_identifier = flavor_data["identifier"]
      # display_name = flavor_data["shortname"]
      # puts "-------------------------"
      # puts flavor_data
      # puts app_identifier
      # puts display_name
      # puts "-------------------------"

      # build_app(app_identifier: $flavor_data["identifier"],
      #   flavor_id: flavor_id,
      #   output_dir: "./builds/release/#{version}-#{build_number}/",
      #   release: true,
      #   export_method: "app-store"
      #   )

      # deliver(force: true,
      #   app_identifier: "#{app_identifier}",
      #   automatic_release: false,
      #   skip_screenshots: false,
      #   skip_metadata: true)
    # frameit
  end
end

desc "Do the snapshots"
lane :snap do |options|
    #check if flavor ID is -1 (snap all flavors)
    if options[:flavorID] && flavor_id = options[:flavorID].to_i then
      if flavor_id == -1 then
        get_flavs
        puts "...Snapshoting all flavors"
        # puts flavors_hash
        $flavors_hash.each_with_index do | (key, value), index |
          snap(flavorID: index)
        end
        return
      end
    end

    #check if flavor ID is set and prompt user
    unless options[:flavorID]
      select_flavor
      #flavor_id = select_flavor(options[:flavor_id])
      puts "-1 <SELECT ALL FLAVOURS>"
      flavor_id = prompt(text: "Which flavour?: ")
    end

      #todo: check not -999
      flavor_data = get_flav(flavor_id.to_i)
      # flavor_data = check_flavor(flavor_id.to_i)
      puts flavor_data
      warmup(flavor_id: flavor_id)
      snapshot(
        number_of_retries: 1,
        output_directory: "./screenshots/" + flavor_data["identifier"]
        )
    end

  #------------------------- UTIL LANES ------------------------#

  def _bump
    increment_build_number
    commit_version_bump(force: true, xcodeproj: 'Health StoryLines.xcodeproj')
    add_git_tag
    push_to_git_remote

  end

  lane :build do |options|
    version = get_version_number(xcodeproj: 'Health StoryLines.xcodeproj')
    build_number = get_build_number(xcodeproj: 'Health StoryLines.xcodeproj')

    flavor_id = select_flavor(options[:flavor_id])

    #Distributing all flavors
    if flavor_id == -1 then

      app_identifiers = Array.new
      get_flavs

      puts "...Sending all flavors"
      # puts flavors_hash
      $flavors_hash.each_with_index do | (key, value), index |
        begin

          build(flavor_id: index)
          app_identifiers.push("#{key["identifier"]}")
        rescue => ex
          puts "!!!!!!!!!!!!!!!!!!!!error!!!!!!!!!!!!!!!!!!!!!!!" #TODO: email error
          puts ex
        end
      end

    # Distributing one flavor
  else
    app_identifier = $flavor_data["identifier"]
    warmup(flavor_id: flavor_id)

    screenshots_path = "./screenshots/#{version}-#{build_number}/" + app_identifier

    build_app(
      app_identifier: $flavor_data["identifier"],
      flavor_id: flavor_id,
      output_dir: "./builds/release/#{version}-#{build_number}/",
      release: true,
      export_method: "app-store"
      )
  end
end

  #------------------------- BETA LANES ------------------------#

  desc "Submit a new Beta Build,"
  desc ""
  desc "Arguments:"
  desc "- flavor_id : the flavor ID of the app"
  desc "- notify_slack : if set to false slack won't be notified (for testing)"
  desc "- rls_build : if set to true the release build configuration is used instead of debug"
  desc "- notes : custom notes, otherwise notes are compiled from git commits"
  desc "- bump : if set the build number will be incremented, a tag will be made on git, and pushed to remote"

  lane :beta do |options|

    version = get_version_number(xcodeproj: 'Health StoryLines.xcodeproj')
    build_number = get_build_number(xcodeproj: 'Health StoryLines.xcodeproj')
    # puts version
    # puts build_number
    # flavor_id = options[:flavor_id]

    notes = options[:notes]

    # Get and fitder notes from git commits since the last tag to only post Tracker issues
    unless options[:notes]
      tracker_notes = changelog_from_git_commits.split("\n").select do |elem|
        elem['[#']
      end
      notes = tracker_notes.count > 0 ? tracker_notes.join("\n") : 'No notes provided.'
    end
    puts notes

    #TODO: add build number in notes
    #TODO: scan
    #TODO passing single flavor ID wont send to slack or increment build #
    notify_slack = options[:notify_slack]
    # notify_slack = options[:notify_slack] ? options[:notify_slack] : true
    flavor_id = select_flavor(options[:flavor_id])

# TODO: fix for single apps
# increment_build_number

    #Distributing all flavors
    if(flavor_id.to_i == -1) then

      # if !options[:bump].nil?
      #   increment_build_number
      # end

      app_identifiers = Array.new
      get_flavs

      $flavors_hash.each_with_index do | (key, value), index |
        begin
          beta( flavor_id:index,
            notes:notes,
            notify_slack:false,
            rls_build:options[:rls_build],
            bump:options[:bump])
          app_identifiers.push("#{key["identifier"]}")
        rescue => ex
          puts "!!!!!!!!!!!!!!!!!!!!error!!!!!!!!!!!!!!!!!!!!!!!" #TODO: email error
          puts ex
        end
      end

      if !options[:bump].nil?
        # commit_version_bump(force: true)
        # add_git_tag
        # push_to_git_remote
      end

      notify_slack = !app_identifiers.empty?

# TODO: fix for single apps
    # commit_version_bump(force: true)
    #     add_git_tag
    #     push_to_git_remote

    #Distributing one flavor
  else

      #enable for TF releases
      if(options[:rls_build])
        ENV["APP_IDENTIFIER"] = $flavor_data["identifier"]
        app_identifiers = [ENV["APP_IDENTIFIER"]]
        build_app(app_identifier: $flavor_data["identifier"],
          flavor_id: flavor_id,
          output_dir: "./builds/beta/dev/#{version}-#{build_number}/",
          release: true,
          )
        publish_testflight
      else

        build_app(app_identifier: $flavor_data["identifier"],
          flavor_id: flavor_id,
          output_dir: "./builds/beta/dist/#{version}-#{build_number}/",
          release: options[:rls_build])
        publish_crashlytics(notes: notes)
      end
    end
    # if s.kind_of?(Array) then

    # end

    if(notify_slack)
      ENV["SLACK_URL"] ||= "https://hooks.slack.com/services/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"
      slack(
        message: notes,
        channel: "#ios-hs-beta",
        default_payloads:[],
          payload: {            # Optional, lets you specify any number of your own Slack attachments.
            'Build Version' => version.to_s,
            'Build Number' => build_number.to_s,
            'Flavors' => app_identifiers.join("\n")  },
            )
    end
  end

  private_lane :publish_crashlytics do |options|
   crashlytics(
    ipa_path: lane_context[SharedValues::IPA_OUTPUT_PATH],
    notes: options[:notes],
      groups: ['hs-dev-team'], # hs-dev-team or devs
      api_token: "afd958b5b041a2b91b47b034b8de6d1f5158d6af",
      build_secret: "f6c421fc1fcd70ad626ed630ca749a35bf0e5f15da7b17130b31c23fc0979b68",
      notifications: true
      )
 end

 private_lane :publish_testflight do |options|
  app_identifier = ENV["APP_IDENTIFIER"]
    # output = sh("pilot builds -i #{lane_context[SharedValues::IPA_OUTPUT_PATH]}")

    pilot(
      app_identifier: app_identifier,
      ipa: lane_context[SharedValues::IPA_OUTPUT_PATH],
      #"./builds/beta/#{app_identifier}.ipa",
      skip_submission: true,
      )
  end

  #------------------------- APP STORE -------------------------#

  desc "Deploy a new version to the App Store"
  desc ""
  desc "Arguments:"
  desc "- flavor_id : the flavor ID of the app"
  lane :release do |options|
    # match(type: "appstore")
    # snapshot
    version = get_version_number(xcodeproj: 'Health StoryLines.xcodeproj')
    build_number = get_build_number(xcodeproj: 'Health StoryLines.xcodeproj')

    flavor_id = select_flavor(options[:flavor_id])

    #Distributing all flavors
    if flavor_id == -1 then

      app_identifiers = Array.new
      get_flavs

      puts "...Sending all flavors"
      # puts flavors_hash
      $flavors_hash.each_with_index do | (key, value), index |
        begin

          release(flavor_id: index)
          app_identifiers.push("#{key["identifier"]}")
        rescue => ex
          puts "!!!!!!!!!!!!!!!!!!!!error!!!!!!!!!!!!!!!!!!!!!!!" #TODO: email error
          puts ex
        end
      end

    # Distributing one flavor
  else
    app_identifier = $flavor_data["identifier"]
    warmup(flavor_id: flavor_id)

    screenshots_path = "./screenshots/#{version}-#{build_number}/" + app_identifier
    # snapshot(
    #   output_directory: screenshots_path
    #   )

    # # cert
    # app_identifier = flavor_data["identifier"]
    # display_name = flavor_data["shortname"]
    # puts "-------------------------"
    # puts flavor_data
    # puts app_identifier
    # puts display_name
    # puts "-------------------------"

    build_app(
      app_identifier: $flavor_data["identifier"],
      flavor_id: flavor_id,
      output_dir: "./builds/release/#{version}-#{build_number}/",
      release: true,
      export_method: "app-store"
      )

    notes = "{app_identifier} - #{version} - #{build_number}"
    puts notes
    # publish_crashlytics(notes: notes)

    deliver(
      force: true,
      app_identifier: "#{app_identifier}",
      screenshots_path: screenshots_path,
      automatic_release: false,
      skip_screenshots: true,
      skip_metadata: true
      )
    # frameit
  end

    ##TODO : set_changelog(app_identifier: "com.krausefx.app", version: "1.0", changelog: "All Languages")

  end

  #################################################################
  ######################### SUCCESS/ERROR #########################
  #################################################################

  after_all do |lane| # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )

  # # Remove all build artifacts, but keep mobileprovisioning profiles since they are stored in GIT
  # clean_build_artifacts(
  #   exclude_pattern: ".*\.mobileprovision"
  # )

  # # Reset all changes to the git checkout
  # reset_git_repo(
  #   force: true
  # )
end

error do |lane, exception|
    # if lane != "test"
    #   ENV["SLACK_URL"] ||= "https://hooks.slack.com/services/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"
    #   slack(
    #     message: "Error: #{exception.message}",
    #     success: false,
    #     channel: "#ios-automation-errors",
    #     default_payloads: [:lane, :git_branch]
    #     )
    # end

  # # Remove all build artifacts, but keep mobileprovisioning profiles since they are stored in GIT
  # clean_build_artifacts(
  #   exclude_pattern: ".*\.mobileprovision"
  # )

  # # Reset all changes to the git checkout
  # reset_git_repo(
  #   force: true
  # )
end

#################################################################
 ######################### PRIVATE METHODS #######################
 #################################################################

 def get_flavs
  puts 'Parsing flavors JSON...'
  flavors_file = File.read('../assets/flavors.json') or raise 'Flavors JSON not found'
  flavors_hash = JSON.parse(flavors_file) or raise 'Flavors JSON invalid'
    #TODO: if verbose puts flavors_hash
    $flavors_hash = flavors_hash
    # @flavors_hash
  end

  def list_flavs
    $flavors_hash.each_with_index do | (key, value), index |
      puts "#{index} #{key["identifier"]}"
    end
  end

  #Select a flavor
  def select_flavor(flavorID)
    get_flavs

    if flavorID && flavor_id = flavorID.to_i then
      # puts 'selected flavor'
    else
      list_flavs
      puts "-1 <SELECT ALL FLAVOURS>"
      flavor_id = prompt(text: "Which flavour?: ")
    end

    if flavor_id.to_i == -1
      puts ".....SELECTED ALL FLAVORS"
    else
      flavor_data = get_flav(flavor_id.to_i)
      puts flavor_data
      puts ".....Selected #{flavor_data["identifier"]}"
      $flavor_data = flavor_data
      ENV["FLAVOR_ID"] = flavor_id.to_s
    end

    return flavor_id.to_i
  end

  def get_flav(flavorID)
    $flavors_hash.count >= flavorID or raise 'Invalid flavor selected'
    $flavors_hash[flavorID]
  end

`./Appfile`
#app_identifier "com.selfcarecatalysts.ps" # The bundle identifier of your app

app_identifier ENV["APP_IDENTIFIER"]

apple_id "keven@selfcarecatalysts.com" # Your Apple email address

team_id "373M279DX4"  # Developer Portal Team ID

# you can even provide different app identifiers, Apple IDs and team names per lane:
# More information: https://github.com/fastlane/fastlane/blob/master/docs/Appfile.md

fastlane gems

Gem
Version
Update-Status

credentials_manager
0.16.2
✅ Up-To-Date

fastlane_core
0.55.0
✅ Up-To-Date

spaceship
0.37.0
✅ Up-To-Date

deliver
1.15.0
✅ Up-To-Date

snapshot
1.16.3
✅ Up-To-Date

frameit
3.0.0
✅ Up-To-Date

pem
1.4.0
✅ Up-To-Date

cert
1.4.4
✅ Up-To-Date

sigh
1.11.2
✅ Up-To-Date

produce
1.3.0
✅ Up-To-Date

gym
1.12.0
✅ Up-To-Date

pilot
1.12.0
✅ Up-To-Date

scan
0.14.1
✅ Up-To-Date

supply
0.7.1
✅ Up-To-Date

match
0.11.0
✅ Up-To-Date

screengrab
0.5.5
✅ Up-To-Date

fastlane
1.108.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

highline
1.7.8

commander
4.4.0

terminal-table
1.4.5

json
1.8.3

multipart-post
2.0.0

faraday
0.10.0

faraday_middleware
0.10.1

dotenv
2.1.1

net-sftp
2.1.2

plist
3.2.0

security
0.1.3

krausefx-shenzhen
0.14.11

slack-notifier
1.5.1

rouge
1.11.1

xcpretty
0.2.4

terminal-notifier
1.7.1

word_wrap
1.0.0

multi_json
1.12.1

colored
1.2

babosa
1.0.2

excon
0.54.0

rubyzip
1.1.7

gh_inspector
1.0.2

credentials_manager
0.16.2

fastlane_core
0.55.0

bundler
1.13.6

multi_xml
0.5.5

unf_ext
0.0.7.2

unf
0.1.4

domain_name
0.5.20161021

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
1.6.8

mini_magick
4.5.1

xcpretty-travis-formatter
0.0.4

CFPropertyList
2.3.3

claide
1.0.1

xcodeproj
1.4.1

generated on: 2016-11-14

i dont think it is related to codesigning. codesigning and a lane that allowed a full deploy to itc was already implemeneted by my coworker.

@kpogz Interesting, thanks for reaching out. Could you post your Info.plist for reference?
Btw I edited your original issue description since you included the fastlane env output multiple times and that made it kinda hard to follow.

thanks for the edit! Ill post the plist - although i am having some issue viewing it - it seems it got converted to a bplist . On other plists in xcode (such as test targets), i have option to 'open as-> source code' but the main plist is all hex now. shows the xml tags in finder preview but just hex when i open in sublime :s
i did the xcode quick view, but it doesnt allow copy paste??
would screenshots be ok?

oh - give me a moment while i try to get it using plutil

CFBundleDevelopmentRegion
en
CFBundleDisplayName
Health Storylines
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleGetInfoString

CFBundleIcons

CFBundleIcons~ipad

CFBundleIdentifier
com.healthstorylines.carcinoidnets
CFBundleInfoDictionaryVersion
6.0
CFBundleName
${PRODUCT_NAME}
CFBundlePackageType
APPL
CFBundleShortVersionString
7.12
CFBundleSignature
????
CFBundleURLTypes

CFBundleURLName
com.mixpanel.healthstorylines
CFBundleURLSchemes

hsmpdeeplink

CFBundleVersion
56
Fabric

APIKey
afd958b5b041a2b91b47b034b8de6d1f5158d6af
Kits

KitInfo

KitName
Crashlytics

LSApplicationCategoryType

LSRequiresIPhoneOS

NSAppTransportSecurity

NSExceptionDomains

acaai.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

add.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

allergyasthmanetwork.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

amazonaws.com

NSIncludesSubdomains

NSThirdPartyExceptionMinimumTLSVersion
TLSv1.0
NSThirdPartyExceptionRequiresForwardSecrecy

amazonaws.com.cn

NSIncludesSubdomains

NSThirdPartyExceptionMinimumTLSVersion
TLSv1.0
NSThirdPartyExceptionRequiresForwardSecrecy

bodymedia.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

dailymile.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

fatsecret.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

fitbit.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

fitbug.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

flurry.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

garmin.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

getqardio.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

google-analytics.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

googleapis.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

gstatic.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

healthstorylines.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

help4hep.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

hfsa.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

ihealthlabs.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

ipsencares.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

jawbone.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

jsdelivr.net

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

lfconnect.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

localhost

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

misfitwearables.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

mixpanel.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

movable.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

moves-app.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

mxpnl.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

mytelcare.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

pubnub.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

pureroom.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

runkeeper.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

selfcarecatalysts.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

somatulinedepot.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

strava.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

validic.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

vitadock.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

withings.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

NSPhotoLibraryUsageDescription
This app can use photo you select from your library to set as display pitures
ServerURL
carcinoidnets.healthstorylines.com
UIAppFonts

streamline.ttf
hsicons.ttf
ionicons.ttf
Roboto-Medium.ttf
Roboto-Bold.ttf
Lato-Semibold.ttf
Roboto-Regular.ttf
Lato-Bold.ttf
Lato-Light.ttf
Lato-Medium.ttf
Lato-Regular.ttf
Lato-Thin.ttf

UILaunchStoryboardName
Launch
UIMainStoryboardFile
Main
UIRequiredDeviceCapabilities

armv7
gamekit

UIRequiresFullScreen

UISupportedInterfaceOrientations

UIInterfaceOrientationPortrait

UISupportedInterfaceOrientations~ipad

UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown

UIViewControllerBasedStatusBarAppearance

aps-environment
production

CFBundleDevelopmentRegion
en
CFBundleDisplayName
Health Storylines
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleGetInfoString

CFBundleIcons

CFBundleIcons~ipad

CFBundleIdentifier
com.healthstorylines.carcinoidnets
CFBundleInfoDictionaryVersion
6.0
CFBundleName
${PRODUCT_NAME}
CFBundlePackageType
APPL
CFBundleShortVersionString
7.12
CFBundleSignature
????
CFBundleURLTypes

CFBundleURLName
com.mixpanel.healthstorylines
CFBundleURLSchemes

hsmpdeeplink

CFBundleVersion
56
Fabric

APIKey
afd958b5b041a2b91b47b034b8de6d1f5158d6af
Kits

KitInfo

KitName
Crashlytics

LSApplicationCategoryType

LSRequiresIPhoneOS

NSAppTransportSecurity

NSExceptionDomains

acaai.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

add.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

allergyasthmanetwork.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

amazonaws.com

NSIncludesSubdomains

NSThirdPartyExceptionMinimumTLSVersion
TLSv1.0
NSThirdPartyExceptionRequiresForwardSecrecy

amazonaws.com.cn

NSIncludesSubdomains

NSThirdPartyExceptionMinimumTLSVersion
TLSv1.0
NSThirdPartyExceptionRequiresForwardSecrecy

bodymedia.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

dailymile.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

fatsecret.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

fitbit.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

fitbug.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

flurry.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

garmin.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

getqardio.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

google-analytics.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

googleapis.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

gstatic.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

healthstorylines.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

help4hep.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

hfsa.org

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

ihealthlabs.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

ipsencares.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

jawbone.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

jsdelivr.net

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

lfconnect.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

localhost

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

misfitwearables.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

mixpanel.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

movable.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

moves-app.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

mxpnl.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

mytelcare.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

pubnub.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

pureroom.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

runkeeper.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

selfcarecatalysts.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

somatulinedepot.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

strava.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

validic.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

vitadock.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

withings.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

NSPhotoLibraryUsageDescription
This app can use photo you select from your library to set as display pitures
ServerURL
carcinoidnets.healthstorylines.com
UIAppFonts

streamline.ttf
hsicons.ttf
ionicons.ttf
Roboto-Medium.ttf
Roboto-Bold.ttf
Lato-Semibold.ttf
Roboto-Regular.ttf
Lato-Bold.ttf
Lato-Light.ttf
Lato-Medium.ttf
Lato-Regular.ttf
Lato-Thin.ttf

UILaunchStoryboardName
Launch
UIMainStoryboardFile
Main
UIRequiredDeviceCapabilities

armv7
gamekit

UIRequiresFullScreen

UISupportedInterfaceOrientations

UIInterfaceOrientationPortrait

UISupportedInterfaceOrientations~ipad

UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown

UIViewControllerBasedStatusBarAppearance

aps-environment
production

That might be your issue (it being a binary plist would mean that it could contain sequences that are undefined in UTF-8, which is exactly what the exception states), I'd suggest converting it back to xml. A quick google search turned up that plutil -convert xml1 Info.plist should work.

indeed that might be part of it. i was able to use plutil to provide the xml above. after rerunning however, i face a new issue but seems to be related to update_info_plist:
/Users/scc/.rbenv/versions/2.0.0-dev/lib/ruby/gems/2.0.0/gems/xcodeproj-1.4.1/lib/xcodeproj/plist.rb:23:in read_from_path': cannot load such file -- nanaimo (LoadError)
from /Users/scc/.rbenv/versions/2.0.0-dev/lib/ruby/gems/2.0.0/gems/fastlane-1.108.0/lib/fastlane/actions/update_info_plist.rb:37:in run'        	from /Users/scc/.rbenv/versions/2.0.0-dev/lib/ruby/gems/2.0.0/gems/fastlane-1.108.0/lib/fastlane/runner.rb:202:in block (2 levels) in execute_action'
from /Users/scc/.rbenv/versions/2.0.0-dev/lib/ruby/gems/2.0.0/gems/fastlane-1.108.0/lib/fastlane/actions/actions_helper.rb:35:in execute_action' ...
i will keep looking into this but let me know if you see something obvious!

Seems like you're missing the nanaimo gem, try installing it manually using gem install nanaimo.
Anyway, I also see you're using ruby version 2.0.0, which we don't really support. We are slowly rolling out a new installation method which has everything you need to run fastlane in a self-contained bundle. If you want, you could try installing the fastlane bundle from this link - that should also fix the issue you posted above. After downloading, just run the install script from a terminal or by right-clicking and selecting "Open", then follow the instructions.

i was experimenting with ruby 2.0.0 today but i actually use 2.2.2. i also just install 2.3.0-dev to see if it would make a difference but no luck yet. i installed nanaimo gem... i think its an intermittent thing not really the real issue.
thanks for sticking with me!
what i found was that by running plutil, i can revover the plist file into xml and it becomes readable as xml in sublime. BUT as soon as i run fastlane, it changes my plist file into hex, as seen in this issue: https://github.com/fastlane/fastlane/issues/6810
ill work on trying out your zip now!

but my version in the ios project folder did not change

What do you mean?

BUT as soon as i run fastlane, it changes my plist file into hex, as seen in this issue: #6810

Oooh, so that's a different issue. I will close this one for now since it's a duplicate of this other, underlying issue. We can track the progress there. If you are still interested in setting up the fastlane bundle, feel free to continue posting to this issue.

authors: kpogz milch


text:
Increment build and version numbers for Android apps using Gradle

Manipulating build and version numbers from fastlane is extremely helpful in iOS builds, so I was thinking how to do the same for Android. Unfortunately, there is no such things as agvtool for Android.
Currently I have something like this in my build.gradle:
versionName project.VERSION_NAME
versionCode Integer.parseInt(project.VERSION_CODE)

During build on CI server  VERSION_NAME and VERSION_CODE are written  into settings.gradle.
Of course, it is possible to create custom action that will just write this constants into my settings.gradle, but maybe there are more generic options that will work for any Android gradle project. In this case we can add such action to fastlane standard actions.
Any thoughts?

@igoris Can you take a look at #1082 and see if this will meet your needs? This will be available in the next release of fastlane! 🚀

Looks like #1082 should work to allow you to set a version with gradle. To get something like increment_build_number to work a solution may be to save the current version number in the metadata folder and increment that. Then in the cradle command pull from that.

Actually just was able to do it nicely with this:
# Get the last version code and increment it.
versionCode = File.read("metadata/versionCode").to_i
versionCode = versionCode +1

f = File.new("metadata/versionCode", "w")
f.write(versionCode)
f.close

gradle(task: "assemble", build_type: "Release",  properties: { 'versionCode' => versionCode })

If thats the accepted answer it could be added into the increment_build_number actions and the lane context as well too.

Are there any docs for this?  I'd like to get fastlane to bump my version in the same (or similar) way to how it works on IOS:
    increment_build_number(
      xcodeproj: './pomochat.xcodeproj'
    )

@npomfret As far as I know, @bassrock's solution is the most viable option. Have you tried it? Thanks 👍

@bassrock I have tried your proposed solution. My versionCode is not bump. It seems like gradle do not follow the versionCode in the properties at all. Here is my Fastfile
`
lane :beta do
# Get the last version code and increment it.
versionCode = File.read("metadata/versionCode").to_i
versionCode = versionCode+1
f = File.new("metadata/versionCode", "w")
f.write(versionCode)
f.close

# Build the release version of the Android App
gradle(
  task: "assemble",
  build_type: "Release",
  project_dir: "android/",
  properties: { 'versionCode' => versionCode }
)

`

@kobkrit I think you should change you build.gradle to something like this:
versionCode project.hasProperty('versionCode') ? project.property('versionCode') as int : 1

I replace the versionCode using awk:
echo "$(awk '{sub(/versionCode [[:digit:]]+$/,"versionCode "$2+1)}1' android/app/build.gradle)" > android/app/build.gradle

Called from within the Fastfile:
platform :android do

  def increment_version_code(gradle_build: 'android/app/build.gradle')
    sh %Q{cd ../ && echo "$(awk '{sub(/versionCode [[:digit:]]+$/,"versionCode "$2+1)}1' #{gradle_build})" > #{gradle_build} && cd -}
  end

  desc 'Create versioned build'
  lane :build do
    increment_version_code gradle_build: 'android/app/build.gradle'
    # gradle
  end
end

https://github.com/Jems22/fastlane-plugin-increment_version_code
This plugin seems to work pretty well too

source: gharchive/issue

authors: Singwai TKBurner asfalcone bassrock iForests igoris kobkrit koenpunt npomfret

repo: fastlane/fastlane

license: MIT

license_type: permissive

license_source: github-api


text:
[Feature Request] Allow string as chromosom names

Hi,
it would be great if fast-lmm would work with strings as chromosomes names and map them internally. I am currently mapping the names of the BIM file to integers and store the processed BIM file. After the run I map the ids back and override the BIM.
Would be very convenient and nice to have feature.
Thanks
Stefanie

Stefanie,
I think there is a feature of bed-reader that may help. See https://fastlmm.github.io/PySnpTools/#pysnptools.snpreader.Bed for some details.
Specifically, there is an option of Bed(...,chrom_map={...}) where you can specify a mapping from strings to any number. When you do that the chromosome names will be converted to numbers (which Fast-LMM requires) on the fly. This saves you from need to create new BIM files.  The only shortcoming is that the output Pandas dataframe will use the numbers, not the original string chromosome names.
Here is an example, run on a new sample bed file with chromosome names "One", "Two", "Three", "Four", "Five".
from fastlmm.association import epistasis, single_snp
from pysnptools.snpreader import Bed, Pheno
from fastlmm.util import example_file # Download and return local file name
bed_fn = "StringChrom.bed"
bed_reader = Bed(bed_fn, count_A1=True, chrom_map={"One":100, "Two":200, "Three":300, "Four":400, "Five":500})
pheno_fn = example_file("tests/datasets/synth/pheno_10_causals.txt")
cov_fn = example_file("tests/datasets/synth/cov.txt")
pheno = Pheno(pheno_fn)
df_single = single_snp(test_snps=bed_reader, pheno=pheno, covar=cov_fn)
df_single
Produces...
sid_index
SNP
Chr
GenDist
ChrPos
PValue
SnpWeight
SnpWeightSE
EffectSize
Mixing
Nullh2
0
52
snp495_m0_.01m1_.04
500.0
4052.0
4052.0
2.990684e-23
-0.418653
0.040052
7.372565e-03
0
0.451117
1
392
snp1422_m0_.49m1_.5
300.0
2392.0
2392.0
8.251921e-23
0.416495
0.040300
8.252624e-02
0
0.279710
2
650
snp1200_m0_.37m1_.36
300.0
2650.0
2650.0
3.048007e-14
-0.328870
0.042021
5.498609e-02
0
0.279710
...
Does this help?
Carl
From: snowformatics @.>
Sent: Wednesday, August 2, 2023 6:49 AM
To: fastlmm/FaST-LMM @.>
Cc: Subscribed @.***>
Subject: [fastlmm/FaST-LMM] [Feature Request] Allow string as chromosom names (Issue #36)
Importance: High
Hi,
it would be great if fast-lmm would work with strings as chromosomes names and map them internally. I am currently mapping the names of the BIM file to integers and store the processed BIM file. After the run I map the ids back and override the BIM.
Would be very convenient and nice to have feature.
Thanks
Stefanie

Reply to this email directly, view it on GitHubhttps://github.com/fastlmm/FaST-LMM/issues/36, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABR65P562YENLTS5MDPK7OLXTJLFHANCNFSM6AAAAAA3BJ35GA.
You are receiving this because you are subscribed to this thread.Message ID: @.@.>>

Hi Carl,
sorry I missed this option, my fault :( It works like charm and no problem for the output data frame, I just can convert the names.
Thanks a lot!
Stefanie

By the way, here is how you can change the chrom in the Pandas table:
[I didn't even figure this out myself. I used GitHub co-pilot and Chat GPT 4.]
from fastlmm.association import epistasis, single_snp
from pysnptools.snpreader import Bed, Pheno
from fastlmm.util import example_file # Download and return local file name

bed_fn = "StringChrom.bed"
chrom_map={"One":100, "Two":200, "Three":300, "Four":400, "Five":500}
bed_reader = Bed(bed_fn, count_A1=True,chrom_map=chrom_map)
pheno_fn = example_file("tests/datasets/synth/pheno_10_causals.txt")
cov_fn = example_file("tests/datasets/synth/cov.txt")
pheno = Pheno(pheno_fn)

df_single = single_snp(test_snps=bed_reader, pheno=pheno, covar=cov_fn)

reversed_chrom_map = {value: key for key, value in chrom_map.items()}
df_single["Chr"] = df_single["Chr"].apply(lambda x: reversed_chrom_map[x])
df_single

Outputs:
	sid_index	SNP	Chr	GenDist	ChrPos	PValue	SnpWeight	SnpWeightSE	EffectSize	Mixing	Nullh2
0	52	snp495_m0_.01m1_.04	Five	4052.0	4052.0	2.990684e-23	-0.418653	0.040052	7.372565e-03	0	0.451117
1	392	snp1422_m0_.49m1_.5	Three	2392.0	2392.0	8.251921e-23	0.416495	0.040300	8.252624e-02	0	0.279710
2	650	snp1200_m0_.37m1_.36	Three	2650.0	2650.0	3.048007e-14	-0.328870	0.042021	5.498609e-02	0	0.2797

authors: CarlKCarlK snowformatics

repo: fastlmm/FaST-LMM


text:
Enable defining a default backend using fastly.defaultBackend

When using existing libraries, it can be difficult to pass in the backend to use in fetch. With this change, it's possible to define a default backend to use when none is passed in to the fetch call.
Note that this isn't ideal in situations where multiple backends are used. An alternative that's been discussed is to derive the backend from the request URL's host name instead. We might do that before the next SDK release.
In the meantime, this helps get WPT tests running — see the next PR.

Note: this stacks on #38, so only the last commit is relevant here.

source: gharchive/pull-request

repo: fastly/js-compute-runtime


text:
TypeError: 'ListTank' object does not support indexing

Running stringcat_graph.py fails at this line because containersin is an object of type ListTank and does not support indexing. Should containersin be a list of ListTanks?

Yes, this is a transfer function so it takes a list of tanks as containers in and out so it can move things between them.

Except in the code a single ListTank object is passed in rather than a list. So containersin[0] generates an error since a single ListTank object is being indexed instead of a list of ListTanks. Hence ListTank object does not support indexing.
I've forked your code and I'm porting it to Python3. With your permission I might fire you some questions about it as they come up.

Looking at it, that doesn't need the index (I probably just did a copy
paste at some point, I don't remember testing all that carefully on this
node). The current set up for it is that the ListTank is set up with
multiple tanks so it should only be reading in from a single list tank node.
Feel free to fire questions my way. I'll try to answer in good time.
On Sun, Oct 6, 2019 at 4:01 AM Justin Robertson notifications@github.com
wrote:

Except in the code a single ListTank object is passed in rather than a
list. So containersin[0] generates an error since a single ListTank object
is being indexed instead of a list of ListTanks. Hence ListTank object does
not support indexing.
I've forked your code and I'm porting it to Python3. With your permission
I might fire you some questions about it as they come up.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/faulknerrainford/MetaChem/issues/2?email_source=notifications&email_token=ACFP6HKQ4QQEM3UYVXM3PZ3QNFIJLA5CNFSM4IUOUQG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAOALSI#issuecomment-538707401,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACFP6HP37BEUJCBQSE6OFVLQNFIJLANCNFSM4IUOUQGQ
.

authors: faulknerrainford retrosnob

repo: faulknerrainford/MetaChem


text:
Running out of RAM on Google Colab Comparison Notebook

I'm running on TPU in High Memory mode and still crashing.
https://i.imgur.com/tqcqSin.png
I've commented out the Google and AWS classifiers. Just trying to run keras_ocr.
https://colab.research.google.com/drive/1FMS3aUZnBU4Tc6bosBPnrjdMoSrjZXRp#scrollTo=2jXR7Bv7aW0D&line=7&uniqifier=1
Logs from Colab

Apr 25, 2020, 1:41:14 PM
WARNING
warn("IPython.utils.traitlets has moved to a top-level traitlets package.")

Apr 25, 2020, 1:41:14 PM
WARNING
/usr/local/lib/python3.6/dist-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.

Apr 25, 2020, 1:41:13 PM
WARNING
WARNING:root:kernel 11832529-bc42-465f-bbd5-9481e53c69ea restarted

Apr 25, 2020, 1:41:13 PM
INFO
KernelRestarter: restarting kernel (1/5), keep random ports

Apr 25, 2020, 1:41:12 PM
WARNING
LLVM ERROR: out of memory

Apr 25, 2020, 1:41:12 PM
WARNING
tcmalloc: large alloc 0 bytes == (nil) @ 0x7fa9a171f887 0x7fa8ea39feae 0x7fa8ea8839e9 0x7fa8ebe102a0 0x7fa8ebe14268 0x7fa8ebe14b94 0x7fa8ebe2719b 0x7fa8ebe27a68 0x7fa8e58edb42 0x7fa8e58ee61f 0x7fa8e59dc4e1 0x7fa8e59d91d3 0x7fa99ffff6df 0x7fa9a10e16db 0x7fa9a141a88f

Apr 25, 2020, 1:41:12 PM
WARNING
tcmalloc: large alloc 18446744065966874624 bytes == (nil) @ 0x7fa9a171d1e7 0x7fa8ea39fe31 0x7fa8ea8839e9 0x7fa8ebe102a0 0x7fa8ebe14268 0x7fa8ebe14b94 0x7fa8ebe2719b 0x7fa8ebe27a68 0x7fa8e58edb42 0x7fa8e58ee61f 0x7fa8e59dc4e1 0x7fa8e59d91d3 0x7fa99ffff6df 0x7fa9a10e16db 0x7fa9a141a88f

Apr 25, 2020, 1:41:12 PM
WARNING
tcmalloc: large alloc 3981369344 bytes == 0x29d9dc000 @ 0x7fa9a171d1e7 0x7fa8eac6f4b5 0x7fa8eb2819a5 0x7fa8ef30154a 0x7fa8ef8e2829 0x7fa8ef8e42da 0x7fa8ef9ae50d 0x7fa8ef9b20ad 0x7fa8ef9b259f 0x7fa8e58edb42 0x7fa8e58ee61f 0x7fa8e59dc4e1 0x7fa8e59d91d3 0x7fa99ffff6df 0x7fa9a10e16db 0x7fa9a141a88f

Apr 25, 2020, 1:41:12 PM
WARNING
tcmalloc: large alloc 9437184000 bytes == 0x6a9dc000 @ 0x7fa9a16ffb6b 0x7fa9a171f379 0x7fa8f16801f7 0x7fa8e57dbe4f 0x7fa8e5862e6b 0x7fa8e56d1996 0x7fa8e56d237b 0x7fa8e56d24a7 0x7fa8ef9b24ab 0x7fa8e58edb42 0x7fa8e58ee61f 0x7fa8e59dc4e1 0x7fa8e59d91d3 0x7fa99ffff6df 0x7fa9a10e16db 0x7fa9a141a88f

Apr 25, 2020, 1:41:12 PM
WARNING
2020-04-25 17:41:12.121517: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 9437184000 exceeds 10% of free system memory.

Can you help me diagnose and resolve the issue? Is anyone able to run the comparison on the Notebook? Original notebook here: https://drive.google.com/file/d/1FMS3aUZnBU4Tc6bosBPnrjdMoSrjZXRp/view?usp=sharing

This sounds like it may be related to https://github.com/faustomorales/keras-ocr/issues/65, which showed that there was a memory leak in recent versions of TensorFlow. If you only need inference, one workaround might be to use TensorFlow 1.15.2 until the memory leak is resolved.

Thank you for your response. I actually need to retrain the model to accept some punctuation and spacing. Am I correct that I need to use tf 2+ to retrain?

I think that you may be able to get away with TF 1.15.2 for training but it seems like the memory leak is only a problem for inference and not for training. So I would suggest (1) training with 2.x, (2) save weights, (3) load weights using TF 1.15.2, (4) carry out inference. Does that make sense?
I realize all this is far from ideal and really am sorry for the inconvenience.

Please, no apologies necessary. Thank you for the advice. I’ll try
everything out and report back in a few days.
On Wed, Apr 29, 2020 at 12:19 AM Fausto Morales notifications@github.com
wrote:

I think that you may be able to get away with TF 1.15.2 for training but
it seems like the memory leak is only a problem for inference and not for
training. So I would suggest (1) training with 2.x, (2) save weights, (3)
load weights using TF 1.15.2, (4) carry out inference. Does that make sense?
I realize all this is far from ideal and really am sorry for the
inconvenience.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faustomorales/keras-ocr/issues/69#issuecomment-620980560,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABU2FGFXIWAUOWXZ2B2KDM3RO6TFZANCNFSM4MQ22RZQ
.

Closing due to inactivity. Please reply back if this issue has not been resolved with newer versions of TensorFlow.

authors: faustomorales technoplato

repo: faustomorales/keras-ocr


text:
update notifier endpoint to app.airbrake.io

This is in order to deal with upcoming changes to routing in airbrake. Internally airbrake is changing it's routing for notifiers to app.airbrake.io.

@fazibear please take a look when you have a chance. Simple change.

repo: fazibear/airbrakex

license: mit

license_source: bigquery


text:
Ability to define a table name per xQuery module

Hi, here is my attempting to implement an ability to define table name per a whole xQuery module (Defql adopter).
Here is an example from updated README:
defmodule UserQuery do
  use Defql, table: :users

  defselect get(conds)
  definsert add(params)
  defupdate update(params, conds)
  defdelete delete(conds)
end

Hope, you'll find time to check this out.

Thanks!

@madeinussr  I was thinking If we can check if the table is specified at compile time. That would be great! If you don't specify table name at all.

authors: fazibear madeinussr

repo: fazibear/defql


text:
Console error sorter

Is there a option to show the errors in desc mode?
E.g.
#3 Combine this with the previous 'var' statement.
   var resMock = { // Line 137, Pos 13
#2 Combine this with the previous 'var' statement.
   var resMock = { // Line 116, Pos 13
#1 Combine this with the previous 'var' statement.
   var processor = rewire('../../controller/resource/processor.js'); // Line 88, Pos 13

Do you mean descending mode? If so, could you please go to the effort of adding those six extra characters? This allows me to concentrate on programming, instead of translating as well ;~)

Normal mode sublime console output error:
#1 Combine this with the previous 'var' statement.
var processor = rewire('../../controller/resource/processor.js'); // Line 88, Pos 13
#2 Combine this with the previous 'var' statement.
var resMock = { // Line 116, Pos 13
#3 Combine this with the previous 'var' statement.
var resMock = { // Line 137, Pos 13

My Desire mode  sublime console output error
#3 Combine this with the previous 'var' statement.
var resMock = { // Line 137, Pos 13
#2 Combine this with the previous 'var' statement.
var resMock = { // Line 116, Pos 13
#1 Combine this with the previous 'var' statement.
var processor = rewire('../../controller/resource/processor.js'); // Line 88, Pos 13

This would make it much easier to read through the error log, so I'll look into making this possible.

authors: Aedx carlosmcp

repo: fbzhong/sublime-jslint


text:
Anti-Mage Rework

Mana Break: When an attack reduces the target's mana below 75%, 50% or 25%, it explodes, dealing a portion of the max mana pool of the target to it and enemies in 380 AoE around it. This effect always procs when the target has 0 mana.
Blink: Adjust current mana burn numbers from 0/0/0/0/5/10/15% to 8/12/16/20/25/30/35%.
Update tooltip "actual mana" to "current mana".
Spellshield: now only reflects spells from units 2500 AoE away.

TALENTS:
Remove:
-1 Blink CD.
+1 Spell Shield duration.
+10% Blink mana burn.
+35 Mana Break damage.
-50 Mana Void CD.
Apply:

Blink gains 3 charges.
Spell Shield can be used even while stunned.
Blinking grants a 1 second magic immunity shield.
When activating Mana Void, the explosion is delayed for 2 seconds. Each point of mana lost while this is in effect is worth as 2x missing mana points.
Mana Break attacks burn mana of nearby enemies in 500 AoE, equal to 30% of the mana burned. This is shown through a blue cleave effect.

Random comment: talent 5 is weak (damage/mana per second removal is much weaker than what AM already does by simply hitting people) and can easily worsen game lag due to spawning several timers (think high attack speed AM). Would not recommend.

Got an alternative talent?
Regarding the several timers - it can be solved by assigning the modifier on Anti Mage, indexing mana pools to it, and running one timer. Code-wise this isn't a problem, but I do agree that it might not be as good as it sounds.

Done!

authors: Shushishtok X-TheDark fcalife


text:
Make navbar items responsive

The navbar items, except for the Join the community button will disappear on mobile.
Screenshots

Thanks, @jcunanan05 for contributing!


text:
support OOV token in Tokenizer.

I have implemented the option to replace OOV words with a OOV token instead of removing them.

Can you write unit test for this change? Current unit test for Tokenizer seems to be really incomplete.

sure, no problem!

while writing unit tests, I've found a one off bug in the tokenizer:
texts = ['I am',
             'I was']
    tokenizer = Tokenizer(num_words=1)
    tokenizer.fit_on_texts(texts)

    sequences = tokenizer.texts_to_sequences(texts)

sequences[0] and sequences[1] should both be equal to [1], but both are empty.
https://github.com/gewoonrik/keras/blob/25eb7cb6871fa73df9cbb805178e188699f140b7/keras/preprocessing/text.py#L206
i = self.word_index.get(w)
                if i is not None:
                    if num_words and i >= num_words:

in this case num_words == 1 and i ==1
it should be (because 0 is reserved for padding):
 if num_words and i > num_words:
do you want me to fix this here or in another PR?

fixed in 6a78fd7

Ping @fchollet

I believe this will create bugs in the 'model' since the actual vocabulary size is now num_words+1.
E.g. for the Embedding layer the input_dim should be word_vocab_size+1 instead of word_vocab_size!

That's why it is not the default option.
You are setting the Embedding input_dim yourself, so you can set it to word_vocab_size+1.
I tried to communicate that clearly in the documentation.

Maybe we should normalize on the behavior currently used by our text datasets:
start_char=1, oov_char=2, index_from=3
Which is to say that 0 is reserved, 1 is an optional start character, 2 is the OOV character, and words start at 3. Only num_words - 3 words get indexed, so that the highest index is num_words - 1.
We can default to start_char=None, oov_char=None, index_from=1 for bacwards compatibility.
What does everyone think of the current API, this PR, and my API proposal?

hmm, what would you use start_char for? To signal the start of the non-padding part?
To be concrete:
you propose adding start_char and oov_char as parameters, right?
Does that mean that when oov_char=True and start_char=None:
index_from=2 and the OOV character is 1?
Regardless of the above: I don't see benefits in letting people specify the oov_character/start_character themselves. I would just keep it at use_oov_char=False or use_oov_char=True. (or None instead of False, I don't know what the python best practices are)

@joelthchao do you have an opinion about this?

Regardless of the above: I don't see benefits in letting people specify the oov_character/start_character themselves. I would just keep it at use_oov_char=False or use_oov_char=True. (or None instead of False, I don't know what the python best practices are)

Maybe. In any case we would need a unified API, and we would need it to be backwards compatible. If you can make it happen, that's great 👍

Ah, now I understand why you are referring to start_char and oov_char. They are used in the load functions of the example datasets. I didn't know that. I'll take a look at that.

I'll create a new PR when I have found the time to fix this

authors: fchollet gewoonrik joelthchao uniaz

repo: fchollet/keras


text:
crash at openfl::removeEventListener

FD crashes when trying to go to declaration (F4) at removeEventListener function:

Stack:
************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: input
   at System.Text.RegularExpressions.Regex.IsMatch(String input)
   at HaXeContext.Completion.CodeComplete.FindMemberEx(String token, ClassModel inClass, ASResult result, FlagType mask, Visibility access) in e:\csharp\flashdevelop\External\Plugins\HaXeContext\Completion\CodeComplete.cs:line 1506
   at ASCompletion.Completion.ASComplete.FindMember(String token, ClassModel inClass, ASResult result, FlagType mask, Visibility access) in e:\csharp\flashdevelop\External\Plugins\ASCompletion\Completion\ASComplete.cs:line 3179
   at ASCompletion.Completion.ASComplete.EvalTail(ASExpr context, FileModel inFile, ASResult head, IList`1 tokens, Boolean complete, Boolean filterVisibility) in e:\csharp\flashdevelop\External\Plugins\ASCompletion\Completion\ASComplete.cs:line 2753
   at ASCompletion.Completion.ASComplete.EvalExpression(String expression, ASExpr context, FileModel inFile, ClassModel inClass, Boolean complete, Boolean asFunction, Boolean filterVisibility) in e:\csharp\flashdevelop\External\Plugins\ASCompletion\Completion\ASComplete.cs:line 2640
   at HaXeContext.Completion.CodeComplete.EvalExpression(String expression, ASExpr context, FileModel inFile, ClassModel inClass, Boolean complete, Boolean asFunction, Boolean filterVisibility) in e:\csharp\flashdevelop\External\Plugins\HaXeContext\Completion\CodeComplete.cs:line 1206
   at ASCompletion.Completion.ASComplete.GetExpressionType(ScintillaControl sci, Int32 position, Boolean filterVisibility, Boolean ignoreWhiteSpace) in e:\csharp\flashdevelop\External\Plugins\ASCompletion\Completion\ASComplete.cs:line 4388
   at ASCompletion.Completion.ASComplete.InternalDeclarationLookup(ScintillaControl sci) in e:\csharp\flashdevelop\External\Plugins\ASCompletion\Completion\ASComplete.cs:line 605
   at ASCompletion.Completion.ASComplete.DeclarationLookup(ScintillaControl sci) in e:\csharp\flashdevelop\External\Plugins\ASCompletion\Completion\ASComplete.cs:line 572
   at ASCompletion.PluginMain.GotoDeclaration(Object sender, EventArgs e) in e:\csharp\flashdevelop\External\Plugins\ASCompletion\PluginMain.cs:line 995
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.ProcessCmdKey(Message& m, Keys keyData)
   at System.Windows.Forms.ToolStripManager.ProcessShortcut(Message& m, Keys shortcut)
   at System.Windows.Forms.Form.ProcessCmdKey(Message& msg, Keys keyData)
   at FlashDevelop.MainForm.ProcessCmdKey(Message& msg, Keys keyData) in e:\csharp\flashdevelop\FlashDevelop\MainForm.cs:line 1495
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.ContainerControl.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.ContainerControl.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Form.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.ContainerControl.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
   at ScintillaNet.ScintillaControl.PreProcessMessage(Message& m) in e:\csharp\flashdevelop\PluginCore\ScintillaNet\ScintillaControl.cs:line 3820
   at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)

FD version: https://github.com/fdorg/flashdevelop/commit/bf335a72b1
Haxe: 4.0.3.
OpenFL: https://github.com/openfl/openfl/commit/51b239be50a62089ec4153ec99b10292e3338647

Main.hx:
package;

import openfl.display.Sprite;
import openfl.Lib;
import openfl.events.Event;

class Main extends Sprite
{
	public function new()
	{
		super();
		removeEventListener(Event.CHANGE, null, false);
	}
}

repo: fdorg/flashdevelop


text:
Diagnostics Completion

Adds methods to HaxeComplete for @diagnostics display mode and a linter that uses it.

There are still improvements possible for this that are in the works, merging now to also be able to get more feedback from other users.

authors: Neverbirth chipshort


text:
Telescope resume can break egrepify

Description
when i try to search something with egrepify, stop, and use resume afterwards, the search results just breaks if i try to search the same thing again or something else.

Neovim version
nvim --version
NVIM v0.9.2
Build type: Release
LuaJIT 2.1.0-beta3

    arquivo vimrc de sistema: "$VIM/sysinit.vim"
            padrão para $VIM: "/opt/homebrew/Cellar/neovim/0.9.2/share/nvim"

Operating system and version
macOS 14
Steps to reproduce

Search something
close the picker
resume the picker
erase and search for the same thing.

Expected behavior
the search should work like a new spawned one
Actual behavior
the search results are different
Minimal config
-------------------------------------------------------------------------------
-- Options
-------------------------------------------------------------------------------
vim.opt.number = true
vim.opt.cursorline = true
vim.opt.smartindent = true
vim.opt.expandtab = true
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.laststatus = 3
vim.opt.cmdheight = 0
vim.opt.numberwidth = 4
vim.opt.signcolumn = "yes"

-------------------------------------------------------------------------------
-- Keymap
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Bootstrap Package Manager
-------------------------------------------------------------------------------
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
	print("Installing 'folke/lazy.nvim'...")
	vim.fn.system({ "git", "clone", "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.rtp:prepend(lazypath)

-------------------------------------------------------------------------------
-- Plugins
-------------------------------------------------------------------------------
require("lazy").setup({
	{
		"nvim-telescope/telescope-fzf-native.nvim",
		build = "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build",
	},
	{
		"fdschmidt93/telescope-egrepify.nvim",
		keys = {
			{ "<C-p>", "<CMD>Telescope egrepify<CR>", mode = { "n", "i", "v" } },
			{ "<C-s>", function ()
        vim.cmd("Telescope egrepify")
        vim.cmd("norm ichar")
      end, mode = { "n", "i", "v" } },
		},
	},
  { "catppuccin/nvim", name = "catppuccin", priority = 1000 },
	{
		"nvim-telescope/telescope.nvim",
		dependencies = "nvim-lua/plenary.nvim",
		config = function()
			require("telescope").setup({
        defaults = {
          sorting_strategy = "ascending",
          layout_config = {
            horizontal = {
              prompt_position = "top",
            },
            vertical = {
              prompt_position = "top",
            },
          },
        },
				extensions = {
          egrepify = {
            filename_hl = "@attribute",
            lnum_hl = "CursorLineNr",
          },
					fzf = {
						fuzzy = true,
						override_generic_sorter = true,
						override_file_sorter = true,
					},
				},
			})

			require("telescope").load_extension("egrepify")
			require("telescope").load_extension("fzf")
		end,
	},
})

vim.cmd("colorscheme catppuccin")

I'm quite sure this is a problem with your config. Please always use the official minimal config since your screencast obviously is not a minimal one.
Copy & paste the one from the issue template and do nvim -nu minimal_init.lua and reproduce your issue.
I'm sorry to have to double down on this. Future issues that do not use the provided minimal init lua will be closed.
There are a few issues with :Telescope resume that are only tangentially related to what you've reported. It generally works for me. I'll merge a PR shortly that addresses the key problems.


text:
Gravatar example doesn't work?!

Hi!
Maybe I'm doing something wrong, but I'm using feathers with feathers-sequalize (latest version from NPM), and when copying the Gravatar example from https://docs.feathersjs.com/getting-started/formatting-and-hooks.html it doesn't work.
I get an error: info: TypeError: Cannot read property 'email' of undefined
My model does have an email field, and its properly filled.
I do notice the generated code from feathers generate hook is a bit differently structured than the one in the docs.
Generated:
module.exports = function(options) {
  options = Object.assign({}, defaults, options);

  return function(hook) {
    hook.gravatar = true;
  };
};

Docs:
module.exports = function() {
  return function(hook) {
    // Assign the new data with the Gravatar image
    hook.data = Object.assign({}, hook.data, {
      avatar: gravatarImage(hook.data.email)
    });
  };
};

However, even the simple generated code fails to add a field to the object.
All I want is to add an URL, based on another field in my object.
Thanks!!

Are you sure you added it as a before hook to the create method (logging hook.method should show create)?

Oh, sorry, no, that's the only thing I changed, I'm looking for an after hook, not before. Should they be structured differently? I haven't found any example of an after hook that ads a property, even if just a fixed string.

In an after hook you can add properties by modifying hook.result.

@PanMan If you want an after hook to add a property to the response, simply add it to hook.result.  If you want to add it to a db record, you'll have to reference the service that you want to modify by using app.service('/other/service').patch() or whatever method you want.

You are right, too. I think the Gravatar does make much more sense as an after hook. I will update that in the new guide we are finishing up.

Is there an example anywhere that modifies hook.result? Anything I tried, even just adding a static string, isn't shown eg in the REST api, while I do see the code being called (eg if I log).

If you are using Mongoose you need to use feathers-mongoose v4.0.0 or later with the default settings (or set lean: true). Mongoose models do not allow properties to be added or removed. There are several examples for changing hook.result in the documentation I linked.

I think we can close this. I kept it open to look into changing the Gravatar to an after hook but I think it can stay the way it already is.

I think as an example it can both be a before or after hook, but I still haven't seen an example with feathers-sequelize that adds a property to the result (eg a gravatar image).

Try doing
'''js
hook.result = hook.result.toObject()
hook.result.gravatar = "gravatarURL"
'''

That gives an error:
error: Route: / - hook.result.get is not a function
info: TypeError: hook.result.get is not a function

In that case, it should work to just do
hook.result.gravatar = "gravatarURL"

The world would face potential collapse if this functionality were broken in Feathers.  😉

Yeah, but it seems most people use feathers with feathers-mongoose, I haven't found any complete and working example for feathers-sequelize for an after hook. Btw, for a find hook, I need to add the field to every item in the result set, right?

There's only one difference between the databases when it comes to hook functionality: for SQL databases, you have to pre-define your tables.  With MongoDB, there's no concept of a table, which is part of the reason they called it a collection.  I haven't really considered a need for distinguishing between the two, hence no sequelize-specific tutorial.
If you are populating the gravatar to the database (as a before hook), you'll need to add whatever fields in the database.  If you're just adding the result to the response, there's no difference between the two databases, whatsoever.

Btw, for a find hook, I need to add the field to every item in the result set, right?
Yes.

If you are looking for a complete Sequelize example application, check out https://github.com/BestBuy/api-playground

authors: PanMan daffl marshallswain

repo: feathersjs/feathers-hooks


text:
CMS静态块添加时，提示MongoId类不存在，好多地方都有这个问题，怎么解决，谢谢回答。

What steps will reproduce the problem?
What is the expected result?
What do you get instead?
Additional info

Q
A

Fecshop version
1.1.3.?

PHP version

Operating system

请安装 php-mongodb 扩展。

谢谢老师，插件已经安装了，并且数据库连接成功，查询数据也都OK，就是在添加的时候提醒没有MongoId
php-mongodb is already the newest version (1.1.5-1~build1).

authors: fancyecommerce hanxm


text:
feat: add federation_id filter and details on gateway-cli info

Description
The gatewayd info currently returns only high-level information related to the gateway and all federations, as discussed in #1725 it would be useful to have a way to get the information related to a specific federation, therefore filtering the information by a federation_id.
That said, this PR aims to add this feature by making it possible to get gatewayd info filtered for a federation, when passing a federation_id.
How
This PR adds:

gateway-cli: adds a new FederationId optional parameter for the Info command.
rpc-client: updates the get_info to expect an optional FederationId parameter, and calls the rpc-server with a QueryParam as ?federation_id= when it has been passed, with no query param otherwise.
rpc-server: updates the /info route handler to use the QueryParam axum extractor, it handles both when param, empty or none param is passed as guided here: https://github.com/tokio-rs/axum/blob/main/examples/query-params-with-empty-strings/src/main.rs
ln-gateway: updates the handle_info to expect a FederationId field on the InfoPayload parameter, filters the selected actor, and use a new get_detailed_info `GatewayActor method if a federation_id is passed, old behavior otherwise.
wip(integration-test): adds a new test for getting detailed info, when passing a federation_id.

fixes #1725

Note: if you rebase this, all those code coverage comments https://github.com/fedimint/fedimint/pull/2046/files should go away.

@oleonardolima, let's collab on this item? Give me a ping when free

@oleonardolima some changes were recently merged to make gateway-cli info more readable. Can you evaluate if this change is still necessary?

@m1sterc001guy @oleonardolima Is this PR still relevant?

@m1sterc001guy @oleonardolima Is this PR still relevant?

I don't think so w.r.t having the balance info on the gateway-cli info command.
It's still useful if we'd like to add the filter by federation-id feature and not fetch all, but we discussed closing this one in a past dev call.
What do you think @okjodom ? (as you're the original reporter on #1725)

Closing as per the discussion above.

authors: elsirion justinmoon m1sterc001guy okjodom oleonardolima

repo: fedimint/fedimint


text:
Add Gateway Mnemonic support to UI

need to add support for new gateway mnemonic coming in fedimint 0.5, @m1sterc001guy is this just adding that "/mnemonic" authed route to fetch and display it? Is there a setup state we can put the gateway into where it doesn't have it set yet then the user passes it in? kinda like we do pre setup ceremony for the guardians?

is this just adding that "/mnemonic" authed route to fetch and display it?

Yes

Is there a setup state we can put the gateway into where it doesn't have it set yet then the user passes it in? kinda like we do pre setup ceremony for the guardians?

Not currently. If it is not set, a new mnemonic is generated. The user can pass it into the gateway via an environment variable. If you want an explicit setup state, we can add that, but would require a little re-working.
Do you also want to add a "migrate" function to that UI to migrate old connected federations to the new mnemonic way? We don't currently have that feature either but we could add it if it would be helpful.

I think for people setting gateways up using a service it'd be good to not have them input the mnemonic anywhere else besides our UI

and on migrating I don't want that in the UI, lets keep that server side / manual

repo: fedimint/ui


text:
Annotate the webfinger tests with descriptions

... so the descriptions show up in the reports, not just the test identifiers.

Do you thinking of something along the lines of using __doc__ strings?
@test
def test_something():
    """This is a description of a test of something."""
   # The test

That's already working in the sandbox, e.g. the docstrings from https://github.com/fediverse-devnet/feditest-tests-sandbox/blob/develop/tests/sandbox/example_test_with_functions.py show up in the report.

Great!

authors: jernst steve-bate

repo: fediverse-devnet/feditest


text:
Updated --template name and help.

Added diagnostics for missing HTML templates.
Closes #217.

I'm going to hold off in this one because I want to hear your thoughts on what I just wrote there: https://github.com/fediverse-devnet/feditest/issues/217#issuecomment-2248485292


text:
🛑 넷스피어 원 is down

In 0349438, 넷스피어 원 (https://netsphere.one/api/v1/instance/activity) was down:

HTTP code: 403
Response time: 772 ms

Resolved: 넷스피어 원 is back up in 00534c0 after 9 minutes.

repo: fediverses-kr/upptime-api


text:
Create the base layer container using config from https://github.com/CentOS/centos-bootc as starting point

Outcomes

definition of base packages that go into the bootc base image layer
changes made to Fedora build infrastructure/tooling/configuration to produce base image layer
base image layer pushed to publicly available image registry

Depends on the completion of #16

We now build this as a part of the Fedora IoT compose as of F40, and it is automatically pushed to Quay.io and fedoraproject.org.

authors: miabbott pcdubs

repo: fedora-iot/iot-distro


text:
How to submit user stories

First - great update to the website today!
I see that you have 4 personas.  I would suggest that there may be a 5th for academia/researchers or perhaps that group could be included with watchdogs.  But my big question is - how do we submit user stories?  Who is coming with the requirements/stories for these personas? How do we get involved?

Hi @HerschelC. That's a good question. For obvious reasons, we can't make our backlog editable by the general public, but why don't we use this issue tracker? For each user story, file an issue and prefix the title with "User Story: As a watchdog, I need ... so that I can ....  ". If you want, you can mention my handle and I will add a user story label. Then we can migrate them into our backlog.
Fair warning, since we're building out a fair amount of data submission infrastructure right now you might not see user stories acted upon for a while but I think it's still good to capture them.

Totally understand and agree that it may take time.  But I think it's a great idea for citizens with an interest to make suggestions.  I see from today's issue cleanup that they'll be reviewed eventually. :)
I think that these may actually inform some of the data infrastructure/architectural decisions and what functions could be api-enabled (more analytical/aggregate functions).  I'm working (well, thinking about) on pet projects but it seems like most of what I'd like to do requires more analytical capability than is available in current methods.  Analytics usually requires working with larger data sets (aka full table scans to aggregate) - this isn't doable with API limitations (nor would want to regularly pull that much data).  Ideally, I'd like to perform longitudinal analysis without having to download the full data set.
These stories are also in support of research in my MS degree program so many will take the "watchdog" flavor but really it's more about general analysis.

authors: HerschelC kaitlin


text:
Error when starting up an image that was saved with an active PBApplication

Steps to reproduce:

PBApplication start
save image
quit GT
restart GT

What you get:

Yes! I get this all the time. Maybe related to #3546?

The errorBlock was changed in PBPharoPipenvProcess>>#newProcess in https://github.com/feenkcom/PythonBridge/commit/15348ae669e59ca55ca8a69f883eeb51d459ac11
Please test

I can't test that feature because I don't get that far. PBApplication start fails in the Python startup script:
Traceback (most recent call last):
  File "/home/hinsen/GToolkit/GToolkit-v1.0.436/PythonBridgeRuntime/start_bridge.py", line 1, in <module>
    from PythonBridge import python_bridge
  File "/home/hinsen/GToolkit/GToolkit-v1.0.436/PythonBridgeRuntime/PythonBridge/python_bridge.py", line 4, in <module>
    from PythonBridge import bridge_globals, bridge_hooks, flask_platform, msgpack_socket_platform
  File "/home/hinsen/GToolkit/GToolkit-v1.0.436/PythonBridgeRuntime/PythonBridge/bridge_hooks.py", line 1, in <module>
    from flask import Flask, request
ModuleNotFoundError: No module named 'flask'

That's with GT 1.0.436 under Linux.

The newly extended PythonBridge page in the GT book has a Troubleshooting section.
When the PythonBridgeRuntime directory is created, an initial invocation of pipenv install should install the needed dependencies like flask. I might have done this manually, I can't remember.

I just did a fresh install of GT in my Ubuntu 22.04.02 ARM in Parallels and although a number of related patches are not yet in the released image (but those are not related to getting started), the bridge ran the first time I tried.
Now, of course, this is in a account where pipenv works as expected. Flask and msgpack are not installed as user site packages, only in the .venv inside the PythonBridgeRuntime, automatically.
YMMV.

Thanks for the details! Under Linux, I do indeed have to do pipenv install by hand. Under macOS, it happens automatically.
The good news is that saving and restarting no longer raises an exception!

Thanks for testing and for the feedback.
When you start from a blank slate with no PythonBridge directory next to your image, but with python and pipenv working, the install and usage should be frictionless. At it does for me on Ubuntu 22.04.
I guess in your case you got an initial error which prevented the install from completing successfully.
But it is good that it now works (again) for you.
We are hard at work on many different aspect of the PharoBridge and how to use Python from/with GT, many exciting things are happening.

authors: khinsen seandenigris svenvc

repo: feenkcom/gtoolkit


text:
'ManyToManyRel' object has no attribute 'parent_model'

In utils.py at following line its hard to understand its like "tuple + tuple + list".
fields = Model._meta.fields + Model._meta.many_to_many + Model._meta.get_all_related_objects()
This is caused me error so I converted it to tuple(Model._meta.get_all_related_objects()).
However now I am getting error with following traceback:
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\django\core\handlers\base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\django\contrib\admin\options.py" in wrapper
  616.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\django\utils\decorators.py" in _wrapped_view
  110.                     response = view_func(request, *args, **kwargs)
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
  57.         response = view_func(request, *args, **kwargs)
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\django\contrib\admin\sites.py" in inner
  233.             return view(request, *args, **kwargs)
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\drip\admin.py" in add_view
  83.             request, extra_context=self.build_extra_context(extra_context))
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\drip\admin.py" in build_extra_context
  78.         extra_context['field_data'] = json.dumps(get_simple_fields(User))
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\drip\utils.py" in get_simple_fields
  121.     return [[f[0], f[3].__name__] for f in get_fields(Model, **kwargs)]
File "C:\Users\Mudassar\dressikarepo\lib\site-packages\drip\utils.py" in get_fields
  98.                 RelModel = field.related.parent_model

Exception Type: AttributeError at /admin/drip/drip/add/
Exception Value: 'ManyToManyRel' object has no attribute 'parent_model'

Please advise.

Posted by mistake. Apologies.

repo: feincms/feincms


text:
How can I make a donation to support your work?

As the title says :)

I had to go create one, but here: https://ko-fi.com/felikcat

authors: MrEngineerMind felikcat

repo: felikcat/unlimited-hotspot

license: WTFPL


text:
Allow resizing the sidebar

Add the ability to drag the sidebar edge to expand it to have a bigger preview area.

Just updated two files for adjustable sidebar.
adjustable_20240221.zip

repo: felixfbecker/link-preview-sidebar


text:
Autocomplete member selectivity

This removes completions for TestClass::SOMETHING_ELSE when completing for TestClass::NOT_SOMETHING_ELS|. Same for -> completions.
This is based on #599 so this cannot be merged before that, and only the last commit contains any meaningful changes.

Is this still relevant?

authors: Declspeck felixfbecker

repo: felixfbecker/php-language-server

license: isc


text:
ETIMEOUT when doing zillions of sequential inserts

Hi,
Thanks for making a great plugin!  I've got an error though that seems out of place.
I'm looping through a big text file and inserting the rows into mysql with a REPLACE query.  Everything works fine when I do it for a limited number of lines, but when I just let it run, I think it uses all it's processing power queuing inserts, and doesn't actually run them against the DB.  I have a counter that increments when the query insert callback is run.  It accurately says the number of items inserted if I do a small number, but when I just let it run, I get the timeout error:
number of items inserted = 1
Error: connect ETIMEDOUT
This indicates that this error is the first time the callback function was executed.  It seems like what is happening is that nodemysql is getting overloaded with queuing insert queries, and hasn't even executed one.  Or maybe mysql might be getting overloaded.  Either way, something is wrong, and I would appreciate the help in fixing it.

Hi! What you describe is a common mistake in the Node.js event loop world. Your code is doing too much sync work is the problem. I can help you, but as it involves rewriting your code, we would need you to provide your code to proceed :)

Hi Doug,
I realize that my code does too much sync work.  However this is not for a public facing process, so I thought I could get by ;)  I'm just going through a file I grab and translating it to a db.  This happens once a month on a cron job, so I don't really care if it blocks the IO because there's only one thing I need to run.  It would be nice if there was some way that this accommodated that possibility.  However, I do need it to run, and I appreciate your willingness to help.
My code goes like this
connection = mysql.createConnection({...});
fs.open('filename', 'r', function(status, fd) {
var totalNumBytesRead = 0;
var buffer = new Buffer(100);
//go through file one line at a time - each line in file represents a row in mySQL
while(totalNumBytesRead < fileSizeInBytes){
//read bytes into a buffer
//then create query using it
query = "...";
//then insert into database
connection.query(query, function(err,result) {
if (err){   throw err; }
++numRecordsInserted;
console.log("number of records inserted = " + numRecordsInserted)
});
}
}

Gotcha, and that's OK. Unfortunately I cannot help you very much, but the gist is that you have to use Node.js property if you want it to work. If you desire to do sync, you cannot use Node.js, since Node.js does not have sync networking (use the right tools for the right job, as they say).
Otherwise, you have to rewrite your sync while to be async. The most popular option is to use https://github.com/caolan/async#whilst
connection = mysql.createConnection({...});
fs.open('filename', 'r', function(status, fd) {
  var totalNumBytesRead = 0;
  var buffer = new Buffer(100);
  //go through file one line at a time - each line in file represents a row in mySQL
  async.whilst(
    function () { return totalNumBytesRead < fileSizeInBytes; },
    function (next) {
      //read bytes into a buffer
      //then create query using it
      query = "...";
      //then insert into database
      connection.query(query, function(err,result) {
                if (err){   return next(err); }
                ++numRecordsInserted;
                console.log("number of records inserted = " + numRecordsInserted)
                next();
            });
      },
      function (err) {
        if (err) throw err;
        console.log('done!');
      }
}

Hi Doug, why would doing an async while loop fix this?  It seems like it would feed queries into node mysql as a synchronous loop would, and thus would still break it.  Why is this not the case?  My best guess would be that keeping the main thread running somehow blocks the event loop and thus prevents it anything else from going.  But even in that case, could I just spawn another process to handle the inserts?

I'm not able to provide any real answers, unfortunately, without code. If you feel like you are experiencing a bug in this library, please, by all means open a PR with a fix :) I wouldn't be able to do anything without the ability to reproduce the issue, of course.
If you also don't even want to try out my suggestion, then I'm out of ideas.

Hi Doug, I implemented what you said, but the process just stopped after a second or so.  I couldn't get any output to the console because the main process terminates quickly due to the async function, I believe.  I will take some time to try and figure this out, and if I can't I may just start snooping through the source code.  Thanks!

Fixed!  I was not familiar with how async.whilst works, and failed to include or call the next() callback.  Thanks for the help, that was the right way to solve it.

authors: dougwilson dtruel

repo: felixge/node-mysql


text:
Error: Dynamic require of "path" is not supported

Hi, I'm getting the following error Error: Dynamic require of "path" is not supported  when type: module in package.json. Does the library supports esm ?

How does ot related? From what I know, if your project uses esm, it can consume cjs, am I right?

Yeah, that's what I thought, but I'm getting that error for some reason. Here's the stack trace:
Error: Dynamic require of "path" is not supported     at file:///Users/pedropmedina/code/ricoma/ricoma/dist/apps/netsuite/api/main.js:12:9     at node_modules/@bull-board/api/dist/src/index.js (file:///Users/pedropmedina/code/ricoma/ricoma/node_modules/@bull-board/api/src/index.ts:1:1)     at __require2 (file:///Users/pedropmedina/code/ricoma/ricoma/dist/apps/netsuite/api/main.js:15:50)     at file:///Users/pedropmedina/code/ricoma/ricoma/apps/netsuite/api/src/main.ts:11:33     at ModuleJob.run (node:internal/modules/esm/module_job:194:25)

What is the line that it complains on?

This one @felixmosh  import { BullMQAdapter } from '@bull-board/api/bullMQAdapter.js';

Not sure what is the issue, but where is the usage of path?

I don't use 'path' anywhere in my code @felixmosh . The errors shows when calling this function createBullBoard. Here's a the full block
// Queues monitoring UI
const serverAdapter = new ExpressAdapter();
serverAdapter.setBasePath('/queues/monitor');
createBullBoard({
  queues: [
    new BullMQAdapter(netsuiteQueueSync),
    new BullMQAdapter(netsuiteQueueCore),
  ],
  serverAdapter,
});

Maybe it is related to this line, https://github.com/felixmosh/bull-board/blob/master/packages/api/src/index.ts#L18
Which makes several issues... I need to think how to solve it.

hmm, I'll try to take a look

Hey @felixmosh, can you explain what the purpose of that line there is? Which path are you trying to resolve and why?

It is the path for static ui files.
It uses eval in order to allow bundling of the server code.

I see. You want to place those .css, .js, and assets at the same level as the UI package e.g node_modules/@bull-board/ui/dist/static? If so, can't you just hard code this location relative to the lib instead of doing so dynamically @felixmosh ?

It was relative, and we had some bug related to it... :)
I think that a better solution would be to allow users to provide that value for cases that default resolving is not working out of the box.

Yeah, that's what I was getting to. In such cases it's better to have the users provide the patch explicitly.

Can you try v5.2.0 which allows you to pass the uiBasePath?
createBullBoard({
    queues: [new BullMQAdapter(exampleBullMq)],
    serverAdapter,
    options: { uiBasePath: 'YOUR_PATH_TO_@bull-board/ui' } // <--------
  });

Hey @felixmosh that seems to do trick. Thanks a lot!

authors: felixmosh pedropmedina

repo: felixmosh/bull-board


text:
Session crash?

Hi I tried to clear the session, since I have no idea how to clear all session once logout, but after I did session.clear() I got this error
File "../env/lib/python2.7/site-packages/flask/app.py", line 2000, in __call__ return self.wsgi_app(environ, start_response) File "../env/lib/python2.7/site-packages/flask/app.py", line 1984, in wsgi_app ctx.push() File "../env/lib/python2.7/site-packages/flask/ctx.py", line 332, in push self.session = self.app.open_session(self.request) File "../env/lib/python2.7/site-packages/flask/app.py", line 914, in open_session return self.session_interface.open_session(self, request) File "../env/lib/python2.7/site-packages/flask_session/sessions.py", line 516, in open_session if saved_session and saved_session.expiry <= datetime.utcnow(): TypeError: can't compare datetime.datetime to NoneType
I tried to drop my session db table but still doesnt work
any idea @fengsp ?
Thanks

I got it working now, just changing the prefix

repo: fengsp/flask-session


text:
[Bug]: WhatsApp modals broken by Ferdium theme warning

Preflight Checklist

[X] I have read the Contributing Guidelines for this project.
[X] I agree to follow the Code of Conduct that this project adheres to.
[X] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Ferdium Version
6.2.0
Recipe Name
WhatsApp
Recipe Version
3.4.5
Last Known working version of the recipe
No response
Steps to reproduce
Right-click to delete a message.
Expected Behavior
The modal not being modified.
Actual Behavior
Ferdium replaces a large part (and the first button of "Delete for Me") with a warning about dark theme.
Screenshots

Additional Information
No response

This is already fixed on the latest nightlies/beta

authors: SpecialAro grigi

repo: ferdium/ferdium-recipes