Consistent .gitignore for Dart and Flutter projects

We should have a standard and consistent .gitignore file common to Dart and Flutter that combines the recommendations currently on GitHub with those generated by flutter create (which are different).
From https://github.com/github/gitignore/blob/master/Dart.gitignore:
# See https://www.dartlang.org/tools/private-files.html

# Files and directories created by pub
.packages
.pub/
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock

# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/

From flutter create:
.DS_Store
.atom/
.idea
.packages
.pub/
build/
ios/.generated/
packages
pubspec.lock
.flutter-plugins

Other relevant fodder:
https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore
https://github.com/github/gitignore/blob/master/Global/VisualStudioCode.gitignore
https://github.com/github/gitignore/blob/master/Global/Xcode.gitignore

+1
What gitignore do you recomend to use atm with flutter projects, also with IntelliJ

See also https://github.com/dart-lang/sdk/issues/32030 which replaces .pub/ with .dart_tool/ in the ignore.

You can use https://www.gitignore.io to generate dynamic gitignore files based on different editors/languages.

I'm still unsure if we should commit .iml files, specially after reading https://github.com/flutter/flutter/blob/master/CONTRIBUTING.md

If you plan on using IntelliJ as your IDE, then also run flutter ide-config --overwrite to create all of the IntelliJ configuration files so you can open the main flutter directory as a project and run examples from within the IDE.

That's specifically for contributing to flutter sdk, but in my experience that's not necessary for either sdk, packages or app development.

https://github.com/github/gitignore/pull/2692 for adding Flutter rules to gitignore going forward.
I suggest using https://github.com/simonwhitaker/gibo for generating .gitignore files in your projects. With the above pull-request, getting proper rules boils down to
bash gibo Android Dart Flutter Linux JetBrains macOS Vim Xcode > .gitignore

Maybe it's a good idea to add GoogleService-Info.plist to the eventual Flutter gitignore as well.

.pub is now .dart_tool

@jeroen-meijer: To keep it aligned with Android it would include android/*/google-services.json as well. I can adjust the patch accordingly

Is using https://github.com/simonwhitaker/gibo still a reasonable way to go? Using the example from @saschpe above, gibo does not currently appear to have Flutter as one of it's boilerplates.
➜  ~ gibo dump Android Dart Flutter JetBrains macOS Xcode >> .gitignore
Unknown argument: Flutter

Also, would adding any of the following be recommended: Archives, Backup, DartEditor, Java, JEnv, Kotlin, Maven, Objective-C, or any others from the list below:
➜  ~ gibo list
=== Languages ===

Actionscript		Go			Processing
Ada			Godot			PureScript
Agda			Gradle			Python
Android			Grails			Qooxdoo
AppceleratorTitanium	GWT			Qt
AppEngine		Haskell			R
ArchLinuxPackages	Idris			Rails
Autotools		IGORPro			RhodesRhomobile
C++			Java			ROS
C			Jboss			Ruby
CakePHP			Jekyll			Rust
CFWheels		Joomla			Sass
ChefCookbook		Julia			Scala
Clojure			KiCad			Scheme
CMake			Kohana			SCons
CodeIgniter		Kotlin			Scrivener
CommonLisp		LabVIEW			Sdcc
Composer		Laravel			SeamGen
Concrete5		Leiningen		SketchUp
Coq			LemonStand		Smalltalk
CraftCMS		Lilypond		Stella
CUDA			Lithium			SugarCRM
D			Lua			Swift
Dart			Magento			Symfony
Delphi			Maven			SymphonyCMS
DM			Mercury			Terraform
Drupal			MetaProgrammingSystem	TeX
Eagle			Nanoc			Textpattern
Elisp			Nim			TurboGears2
Elixir			Node			Typo3
Elm			Objective-C		Umbraco
EPiServer		OCaml			Unity
Erlang			Opa			UnrealEngine
ExpressionEngine	OpenCart		VisualStudio
ExtJs			OracleForms		VVVV
Fancy			Packer			Waf
Finale			Perl			WordPress
ForceDotCom		Perl6			Xojo
Fortran			Phalcon			Yeoman
FuelPHP			PlayFramework		Yii
Gcov			Plone			ZendFramework
GitBook			Prestashop		Zephir

=== Global ===

Anjuta			JDeveloper		Redcar
Ansible			JEnv			Redis
Archives		JetBrains		SBT
Backup			Kate			SlickEdit
Bazaar			KDevelop4		Stata
BricxCC			Lazarus			SublimeText
Calabash		LibreOffice		SVN
Cloud9			Linux			SynopsysVCS
CodeKit			LyX			Tags
CVS			macOS			TextMate
DartEditor		Matlab			TortoiseGit
Diff			Mercurial		Vagrant
Dreamweaver		MicrosoftOffice		Vim
Dropbox			ModelSim		VirtualEnv
Eclipse			Momentics		VisualStudioCode
EiffelStudio		MonoDevelop		WebMethods
Emacs			NetBeans		Windows
Ensime			Ninja			Xcode
Espresso		NotepadPP		XilinxISE
FlexBuilder		Otto
GPG			Patch
➜  ~

We've updated the .gitignore file created by flutter create to be much more inclusive (PR #21192). Flutter projects moving forward should get a better default, but we should integrate this back into the GitHub gitignore repo.
@secondstreetmedia didn't know about this utility - cool idea. Adds to the value of fixing this issue.

Thanks! FWIW, I ran this:
➜  ~ gibo dump Archives Backup Android Dart DartEditor Emacs Gradle Java JetBrains Jenv Kotlin Linux  macOS Maven Objective-C SublimeText Vim VisualStudioCode Windows Xcode >> .gitignore
I then added the current Flutter default generated .gitignore entries, moving the exceptions to the bottom (didn't know if they were position dependent). I left duplicates as is.
I know this is probably massive overkill, but I'm still learning. Any reason not to use it as it appears here? Is it a good idea to add these additional editors/IDEs/OSes that I'm not using in the event the code is at some point checked out by other developers with different configurations? Currently this is not an issue for me.
### Flutter Generated

# Miscellaneous
*.class
*.lock
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# Visual Studio Code related
.vscode/

# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.packages
.pub-cache/
.pub/
build/

# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java

# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*

### https://raw.github.com/github/gitignore//Android.gitignore

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches

# Keystore files
# Uncomment the following line if you do not want to check your keystore files in.
#*.jks

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

### https://raw.github.com/github/gitignore//Dart.gitignore

# See https://www.dartlang.org/guides/libraries/private-files

# Files and directories created by pub
.dart_tool/
.packages
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock

# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/

# Avoid committing generated Javascript files:
*.dart.js
*.info.json      # Produced by the --dump-info flag.
*.js             # When generated by dart2js. Don't specify *.js if your
                 # project includes source files written in JavaScript.
*.js_
*.js.deps
*.js.map

### https://raw.github.com/github/gitignore//Global/JetBrains.gitignore

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn.  Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### https://raw.github.com/github/gitignore//Global/macOS.gitignore

# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### https://raw.github.com/github/gitignore//Global/Xcode.gitignore

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/Archives.gitignore

# It's better to unpack these files and commit the raw source because
# git has its own built in compression methods.
*.7z
*.jar
*.rar
*.zip
*.gz
*.tgz
*.bzip
*.bz2
*.xz
*.lzma
*.cab

# Packing-only formats
*.iso
*.tar

# Package management formats
*.dmg
*.xpi
*.gem
*.egg
*.deb
*.rpm
*.msi
*.msm
*.msp

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/Backup.gitignore

*.bak
*.gho
*.ori
*.orig
*.tmp

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Android.gitignore

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches

# Keystore files
# Uncomment the following line if you do not want to check your keystore files in.
#*.jks

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Dart.gitignore

# See https://www.dartlang.org/guides/libraries/private-files

# Files and directories created by pub
.dart_tool/
.packages
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock

# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/

# Avoid committing generated Javascript files:
*.dart.js
*.info.json      # Produced by the --dump-info flag.
*.js             # When generated by dart2js. Don't specify *.js if your
                 # project includes source files written in JavaScript.
*.js_
*.js.deps
*.js.map

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/DartEditor.gitignore

.project
.buildlog

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/Emacs.gitignore

# -*- mode: gitignore; -*-
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*

# Org-mode
.org-id-locations
*_archive

# flymake-mode
*_flymake.*

# eshell files
/eshell/history
/eshell/lastdir

# elpa packages
/elpa/

# reftex files
*.rel

# AUCTeX auto folder
/auto/

# cask packages
.cask/
dist/

# Flycheck
flycheck_*.el

# server auth directory
/server/

# projectiles files
.projectile

# directory configuration
.dir-locals.el

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Gradle.gitignore

.gradle
/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Java.gitignore

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/JetBrains.gitignore

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn.  Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/JEnv.gitignore

# JEnv local Java version configuration file
.java-version

# Used by previous versions of JEnv
.jenv-version

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Kotlin.gitignore

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/Linux.gitignore

*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/macOS.gitignore

# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Maven.gitignore

target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Objective-C.gitignore

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/SublimeText.gitignore

# Cache files for Sublime Text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache

# Workspace files are user-specific
*.sublime-workspace

# Project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using Sublime Text
# *.sublime-project

# SFTP configuration file
sftp-config.json

# Package control specific files
Package Control.last-run
Package Control.ca-list
Package Control.ca-bundle
Package Control.system-ca-bundle
Package Control.cache/
Package Control.ca-certs/
Package Control.merged-ca-bundle
Package Control.user-ca-bundle
oscrypto-ca-bundle.crt
bh_unicode_properties.cache

# Sublime-github package stores a github token in this file
# https://packagecontrol.io/packages/sublime-github
GitHub.sublime-settings

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/Vim.gitignore

# Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]

# Session
Session.vim

# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/VisualStudioCode.gitignore

.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/Windows.gitignore

# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

### https://raw.github.com/github/gitignore/340e2fe08a2356c2e3760ff58c3a9e1fddf08060/Global/Xcode.gitignore

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

### Flutter Generated Exceptions

# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages

@secondstreetmedia Flutter bits could be added to https://github.com/github/gitignore/pull/2692

To the great @secondstreetmedia's file, I would add this
# files, generated by build_runner
*.g.dart

I disagree.
Talking from experience on multiple projects, files generated by tools such as build_runner should be uploaded to version control/git. If people want to omit them, it should be optional, and not the default.

Any reason not to use it as it appears here? Is it a good idea to add these additional editors/IDEs/OSes that I'm not using in the event the code is at some point checked out by other developers with different configurations?

A better separation of concerns would be for individuals using particular editors/IDEs/OSes to manage their own global .gitignore for those files. Users of those tools don't need to worry about duplicating the same ignores to every project they work on, and projects don't need to worry about every tool any developer may use.

Does it make sense not to include the native runner projects in git?

Hi, despite listing ios/Flutter folder to be ignored, git still tracks two files, the Release.xcconfig and Debug.xcconfig and that's fine. The reason I'm asking is because I added my custom config file apa.xcconfig in the same ios/Flutter folder, the correct way via Xcode and it's ignored by git despite me explicitly whitelisting it.
my .gitignore file
/ios/Flutter

# Exceptions to above rules.
!ios/Flutter/sil.xcconfig
!ios/Flutter/apa.xcconfig

/ios/Flutter is from the root. You want ios/Flutter.
On Wed, May 20, 2020 at 1:03 AM 6thsage<EMAIL_ADDRESS>wrote:

Hi, despite listing ios/Flutter folder to be ignored, git still tracks
two files, the Release.xcconfig and Debug.xcconfig and that's fine. The
reason I'm asking is because I added my custom config file apa.xcconfig in
the same ios/Flutter folder, the correct way via Xcode and it's ignored
by git despite me explicitly whitelisting it.
my .gitignore file
/ios/Flutter
Exceptions to above rules.
!ios/Flutter/sil.xcconfig
!ios/Flutter/apa.xcconfig
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/13892#issuecomment-631309238,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARWL6YXSHDBMWJFH2ZJIRLRSOFEFANCNFSM4EKJTQTA
.

Thanks Tim. I tried that but it still did not work, I'm not sure why. I committed the file using Xcode.

At this point, your files are probably committed. gitignore only ignores
files that don't exist in the repo. You'll need to do git rm to remove
them.
On Wed, May 20, 2020 at 10:37 PM 6thsage<EMAIL_ADDRESS>wrote:

Thanks Tim. I tried that but it still did not work, I'm not sure why. I
committed the file using Xcode.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/13892#issuecomment-631891679,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARWL6YULZC3WZI4K7J2I2DRSS42JANCNFSM4EKJTQTA
.

Also .flutter-plugins-dependencies  should be included in the standard .gitignore file.

I tend to agree with @airon-tark . Why would you upload a file that is generated, @jeroen-meijer ? "Talking from experience on multiple projects" isn't a valid argument, sorry :)

Please also add *.dmp files (memory dumps)

VS Code settings, launch, and other similar json files should be optional considering that if you work in a team where everyone uses VS Code, you may want to share the same debug and settings files, or if you simply want to check out your project to another computer.

Since this issue and thread from Jan 2018, is still open I assume there is no consensus of what a "complete", "standard", or at the very least a common "best practice" starting point  .gitignore for Flutter projects should look like? Or is there?
Sure needs varies from project and there is a default one created by Flutter create. Is that the current recommended setup? I found the gibo dump above, while probably overkill for a lot, still quite useful for improving our .gitignore when sharing repos to different dev env useful. A search on best practice for that is what lead me to this issue btw.
I also noticed there is still no "Flutter" .gitignore template choice available on Github if you start a new repo there, there is one for Dart so that will get you started. Would be nice if there was a "Flutter" choice as well.

I tend to agree with @airon-tark . Why would you put files that are
generated under version control, @jeroen-meijer ? "Talking from experience on multiple projects" isn't a valid argument, sorry :)

I tried to add it to gitignore, but I don't know how to config my third package to generate g.dart files when I add it as a dependency in another project. When I try to run my project, it fails because of missing g.dart files in my third package.
Do you know how to work with this kind of cases ?
By other hand, build_runner is said:
"In general generated files should be published with your package, but this may not always be the case. Some Builders may provide a recommendation for this as well."
I understand by that it will depend of the case and both of the ways is acceptable.

why doesn't current gitignore include **/ios/**/build?
shouldn't this be ignored?

why doesn't current gitignore include **/ios/**/build?
shouldn't this be ignored?

So what is the example of a consistent .gitignore for Flutter apps ?

Miscellaneous
--
  | .class
  | .lock
  | .log
  | .pyc
  | .swp
  | .DS_Store
  | .atom/
  | .buildlog/
  | .history
  | .svn/
  |
  | # IntelliJ related
  | .iml
  | .ipr
  | .iws
  | .idea/
  |
  | # Visual Studio Code related
  | .classpath
  | .project
  | .settings/
  | .vscode/
  |
  | # Flutter repo-specific
  | /bin/cache/
  | /bin/internal/bootstrap.bat
  | /bin/internal/bootstrap.sh
  | /bin/mingit/
  | /dev/benchmarks/mega_gallery/
  | /dev/bots/.recipe_deps
  | /dev/bots/android_tools/
  | /dev/devicelab/ABresults.json
  | /dev/docs/doc/
  | /dev/docs/flutter.docs.zip
  | /dev/docs/lib/
  | /dev/docs/pubspec.yaml
  | /dev/integration_tests//xcuserdata
  | /dev/integration_tests//Pods
  | /packages/flutter/coverage/
  | version
  | analysis_benchmark.json
  |
  | # packages file containing multi-root paths
  | .packages.generated
  |
  | # Flutter/Dart/Pub related
  | **/doc/api/
  | .dart_tool/
  | .flutter-plugins
  | .flutter-plugins-dependencies
  | **/generated_plugin_registrant.dart
  | .packages
  | .pub-cache/
  | .pub/
  | build/
  | flutter_.png
  | linked_.ds
  | unlinked.ds
  | unlinked_spec.ds
  |
  | # Android related
  | /android//gradle-wrapper.jar
  | **/android/.gradle
  | **/android/captures/
  | **/android/gradlew
  | **/android/gradlew.bat
  | **/android/local.properties
  | /android//GeneratedPluginRegistrant.java
  | **/android/key.properties
  | .jks
  |
  | # iOS/XCode related
  | /ios//.mode1v3
  | /ios//.mode2v3
  | /ios//.moved-aside
  | /ios//.pbxuser
  | /ios//.perspectivev3
  | /ios//sync/
  | /ios//.sconsign.dblite
  | /ios//.tags
  | /ios//.vagrant/
  | /ios//DerivedData/
  | /ios//Icon?
  | /ios//Pods/
  | /ios//.symlinks/
  | /ios//profile
  | /ios//xcuserdata
  | **/ios/.generated/
  | **/ios/Flutter/.last_build_id
  | **/ios/Flutter/App.framework
  | **/ios/Flutter/Flutter.framework
  | **/ios/Flutter/Flutter.podspec
  | **/ios/Flutter/Generated.xcconfig
  | **/ios/Flutter/ephemeral
  | **/ios/Flutter/app.flx
  | **/ios/Flutter/app.zip
  | **/ios/Flutter/flutter_assets/
  | **/ios/Flutter/flutter_export_environment.sh
  | **/ios/ServiceDefinitions.json
  | */ios/Runner/GeneratedPluginRegistrant.
  |
  | # macOS
  | **/macos/Flutter/GeneratedPluginRegistrant.swift
  |
  | # Coverage
  | coverage/
  |
  | # Symbols
  | app..symbols
  |
  | # Exceptions to above rules.
  | !/ios//default.mode1v3
  | !/ios//default.mode2v3
  | !/ios//default.pbxuser
  | !/ios//default.perspectivev3
  | !/packages/flutter_tools/test/data/dart_dependencies_test//.packages
  | !/dev/ci//Gemfile.lock

Here is a legit .gitignore for Flutter 2.2 take from Very Good Core
    # Miscellaneous
    *.class
    *.lock
    *.log
    *.pyc
    *.swp
    .DS_Store
    .atom/
    .buildlog/
    .history
    .svn/

    # IntelliJ related
    *.iml
    *.ipr
    *.iws
    .idea/*

    # Visual Studio Code related
    .classpath
    .project
    .settings/
    .vscode/*

    # Flutter repo-specific
    /bin/cache/
    /bin/mingit/
    /dev/benchmarks/mega_gallery/
    /dev/bots/.recipe_deps
    /dev/bots/android_tools/
    /dev/docs/doc/
    /dev/docs/flutter.docs.zip
    /dev/docs/lib/
    /dev/docs/pubspec.yaml
    /dev/integration_tests/**/xcuserdata
    /dev/integration_tests/**/Pods
    /packages/flutter/coverage/
    version

    # packages file containing multi-root paths
    .packages.generated

    # Flutter/Dart/Pub related
    **/doc/api/
    **/ios/Flutter/.last_build_id
    .dart_tool/
    .flutter-plugins
    .flutter-plugins-dependencies
    .packages
    .pub-cache/
    .pub/
    build/
    flutter_*.png
    linked_*.ds
    unlinked.ds
    unlinked_spec.ds
    .fvm/

    # Android related
    **/android/**/gradle-wrapper.jar
    **/android/.gradle
    **/android/captures/
    **/android/gradlew
    **/android/gradlew.bat
    **/android/local.properties
    **/android/**/GeneratedPluginRegistrant.java
    **/android/key.properties
    **/android/.idea/
    *.jks

    # iOS/XCode related
    **/ios/**/*.mode1v3
    **/ios/**/*.mode2v3
    **/ios/**/*.moved-aside
    **/ios/**/*.pbxuser
    **/ios/**/*.perspectivev3
    **/ios/**/*sync/
    **/ios/**/.sconsign.dblite
    **/ios/**/.tags*
    **/ios/**/.vagrant/
    **/ios/**/DerivedData/
    **/ios/**/Icon?
    **/ios/**/Pods/
    **/ios/**/.symlinks/
    **/ios/**/profile
    **/ios/**/xcuserdata
    **/ios/.generated/
    **/ios/Flutter/App.framework
    **/ios/Flutter/Flutter.framework
    **/ios/Flutter/Flutter.podspec
    **/ios/Flutter/Generated.xcconfig
    **/ios/Flutter/app.flx
    **/ios/Flutter/app.zip
    **/ios/Flutter/.last_build_id
    **/ios/Flutter/flutter_assets/
    **/ios/Flutter/flutter_export_environment.sh
    **/ios/ServiceDefinitions.json
    **/ios/Runner/GeneratedPluginRegistrant.*

    # Coverage
    coverage/

    # Submodules
    !pubspec.lock
    packages/**/pubspec.lock

    # Web related
    lib/generated_plugin_registrant.dart

    # Symbolication related
    app.*.symbols

    # Obfuscation related
    app.*.map.json

    # Exceptions to the above rules.
    !**/ios/**/default.mode1v3
    !**/ios/**/default.mode2v3
    !**/ios/**/default.pbxuser
    !**/ios/**/default.perspectivev3
    !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
    !/dev/ci/**/Gemfile.lock
    !.vscode/launch.json
    !.idea/codeStyles/
    !.idea/dictionaries/
    !.idea/runConfigurations/

What a mess this .gitignore file is. I'm specifically looking whether to ignore or not ios/build directory. And somewhere is (under Flutter/Dart/Pub related) set as /build/ (not ignored) and somewhere is set as build/ (ignored).
So, experts, should it be ignored or not. My not-so-expert opinion is yes, it should be, but I'm not 100%.

What about /ios/build/.last_build_id ?

As far as I can tell, a non-Flutter Dart project should be able to use (including use of optional tools dartdoc and build_runner with a conventional output name)
**/doc/api/
.dart_tool/
build/
pubspec.lock

From the examples in this thread it looks like we're still copy/pasting patterns from legacy Dart project ignores like .pub/, .packages/... these won't exist with Dart SDK versions in use today.
I'm not sure what would need to be added for a minimal ignore in a Flutter project.
The not-user-specific entries seem like they might be limited to
.flutter-plugins
.flutter-plugins-dependencies

In addition, there is complexity in ignoring build outputs for android/ios that I won't try to pick through to see what is required vs cargo-culted.


Add pyhf example

We should add an example to show how to plot post-fit yields after a pyhf fit.
Here is a short code example:
import pyhf
import numpy as np
from plothist import make_hist, plot_data_model_comparison

pyhf.set_backend("numpy")

# Define model
data_yield = [100, 50]
model = pyhf.simplemodels.uncorrelated_background(
    signal=[20, 0.0], bkg=[75.0, 50.0], bkg_uncertainty=[np.sqrt(75.0), np.sqrt(50.0)]
)
data = data_yield + model.config.auxdata
# Maximum likelihood fit
bestfit_pars = pyhf.infer.mle.fit(data, model)
# Extract fit results
model_yields = model.main_model.expected_data(bestfit_pars, return_by_sample=True)

bins = [0, 0.5, 1.0]
data_hist = make_hist(data=[], bins=bins)
signal_hist = make_hist(data=[], bins=bins)
background_hist = make_hist(data=[], bins=bins)

# Set explicitly the content and variance of each bin. For the signal and background histograms, we assume no variance.
data_hist[:] = np.c_[data_yield, data_yield]
background_hist[:] = np.c_[model_yields[0], [0.0, 0.0]]
signal_hist[:] = np.c_[model_yields[1], [0.0, 0.0]]

fig, ax_main, ax_comparison = plot_data_model_comparison(
    data_hist=data_hist,
    stacked_components=[background_hist, signal_hist],
    stacked_labels=["Background", "Signal"],
    model_uncertainty=False,
    xlabel="Variable",
    ylabel="Entries",
)
ax_main.set_xticks([0, 0.5, 1.0])
ax_main.tick_params(axis="x", which="minor", bottom=False, top=False)
ax_comparison.set_xticks([0, 0.5, 1.0])
ax_comparison.tick_params(axis="x", which="minor", bottom=False, top=False)

fig.savefig("pyhf.svg", bbox_inches="tight")

Fixed in Release 1.0.4,


Feature request: legality filter

Would be real handy to be able to filter cards by set legality, e.g.:
t:asset l:standard

to return all standard-legal assets

Presumably you'd expect this to filter based on the most recent legal MWL?

Yep! Supporting versions like
t:asset l:standard-mwl-3.4
would be nice too I guess, but I imagine the most common use-case is latest version of whatever the format is.

Oh man, is this feature ever going to get prioritized?
This would be super helpful to get back into deck building!
I've come back to the game after a 3 year hiatus,
and it's really hard for me to know what are the legal cards off the top of my head.
Happy to become a Patreon of Nisei if that'll move this feature forward.
Let me know!

@jaimefps for the meantime there's a z filter for rotation that might help somewhat!

i took a swing at this last week and there is a bit of a wrinkle.  The mwls and banlist info is only stored as a json blob in the database.  The card search works on SQL statements and we can't easily use a SQL query to eliminate banned cards.
We'll need to make a new table to fully filter those cards out.  One other thing we can do is add banned/rotated icons for card search results.
I'm digging in on this this week, so i'll have another update soon.


Optimization level 3 in transpile gives the wrong circuit when increasing the depth

Environment

Qiskit Terra version: 0.19.0
Python version: 3.9.4
Operating system: Windows 10 Enterprise 64-bit

What is happening?
Using optimization_level=3 within the transpile method yields a circuit with different outcomes that the one produced either from setting optimization_level=2 or evaluating the non transpiled circuit with Statevector.
The wrong behaviour was observed while increasing the number of trotter steps in a Trotterization time evolution, and the circuits obtained from optimization_level=3 perform as expected as long as the original circuit remains relatively shallow (see plots below).
How can we reproduce the issue?
import numpy as np
from qiskit import QuantumCircuit, transpile, IBMQ, execute, Aer
from qiskit.quantum_info import Pauli, Operator, Statevector
from qiskit.opflow import PauliOp
from qiskit.circuit.library import PauliEvolutionGate
from qiskit.synthesis import SuzukiTrotter
import matplotlib.pyplot as plt
from scipy.linalg import expm

# input parameters
provider = IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q-internal', group='deployed')
backend = provider.get_backend('ibmq_mumbai')
simulator = Aer.get_backend('aer_simulator')
shots = 100000
layout =  [0,1,4]
num_qubits = len(layout)
evo_time = 1

def heisenberg_EO(n_qubits):
    """Construct Hamiltonian of 1-D Heisenberg chain with n_qubits sites.
    Return a list of matrices corresponding to the even-odd-splitting (154) in
    Childs2021.
    """
    # Three qubits because for 2 we get H_O = 0
    assert n_qubits >= 3
    def OPauli(s):
        return PauliOp(Pauli(s))
    def two_qubit_interaction(i, coeff):
        assert i < n_qubits - 1
        return (OPauli("I" * i + "XX" + "I" * (n_qubits - 2 - i)) +
                OPauli("I" * i + "YY" + "I" * (n_qubits - 2 - i)) +
                OPauli("I" * i + "ZZ" + "I" * (n_qubits - 2 - i)) +
                OPauli("I" * i + "Z" + "I" * (n_qubits - 1 - i)) *
                coeff)

    H_E = sum((two_qubit_interaction(i, 1)
               for i in range(0, n_qubits - 1, 2)))
    H_O = sum((two_qubit_interaction(i, 1)
               for i in range(1, n_qubits - 1, 2)))
    return [H_E, H_O]

def get_circuit(qubits, evo_time, trotter_steps):
    num_qubits = qubits

    # Obtain the matrices for Trotter
    paulis = heisenberg_EO(num_qubits)

    evo_op = PauliEvolutionGate(paulis, evo_time, synthesis=SuzukiTrotter(order=2, reps=trotter_steps))
    return evo_op.definition

# Calculate the local magnetization observable of a qubit
def local_magnetization(qubit, counts, shots):
    zeros, ones = 0, 0
    for c, v in counts.items():
        if c[qubit] == '0':
            zeros += v
        else:
            ones += v
    return (zeros - ones) / shots

# Calculate the local magnetization observable from a statevector
def local_magnetization_vec(qubit, statevector, num_qubits):
    'calculate the prob of seing 0 and 1 in the given qubit'
    zero, one = 0, 0
    for i,amplitude in enumerate(statevector):
        prob = np.real(amplitude * np.conj(amplitude))
        if bin(i)[2:].zfill(num_qubits)[qubit] == '0':
            zero += prob
        else:
            one += prob
    return zero - one

def get_plot(ax, local_qubit):
    # arrays for the magnetization value for different number of Trotter steps
    magn_opt2, magn_opt3, magn_sv = [], [], []

    for i in range(len(trotter_steps)):
        magn_opt2.append(local_magnetization(local_qubit, counts_opt2[i], shots))
        magn_opt3.append(local_magnetization(local_qubit, counts_opt3[i], shots))
        magn_sv.append(local_magnetization_vec(local_qubit, statevectors[i], num_qubits))
    magn_exact = local_magnetization_vec(local_qubit, sol_vec, num_qubits)
    ax.plot(trotter_steps, magn_opt2, label='opt_lvl=2')
    ax.plot(trotter_steps, magn_opt3, label='opt_lvl=3')
    ax.plot(trotter_steps, magn_sv, label='statevector')
    ax.plot(trotter_steps, [magn_exact]*len(trotter_steps),'--', label='exact')
    ax.set(xlabel='trotter steps', ylabel=r'<$\sigma_{%s}^z$>'%(local_qubit))
    ax.legend()

# Aer simulator circuits
trotter_steps = range(1, 31)
jobs_sim_opt2, jobs_sim_opt3 = [], []

for m in trotter_steps:
    qc = QuantumCircuit(num_qubits, num_qubits)
    qc.h(list(range(num_qubits))) # dummy initial state
    qc.append(get_circuit(num_qubits, evo_time, m), list(range(num_qubits)))
    qc.measure(range(num_qubits), range(num_qubits))
    # transpiled circuit with optimization level 2 and 3
    qct2 = transpile(qc, backend, initial_layout=layout, optimization_level=2)
    qct3 = transpile(qc, backend, initial_layout=layout, optimization_level=3)
    # simulated job
    jobs_sim_opt2.append(execute(qct2, simulator, shots=shots))
    jobs_sim_opt3.append(execute(qct3, simulator, shots=shots))

# Get Aer simulator results
counts_opt2, counts_opt3 = [], []

for i in range(len(trotter_steps)):
    counts_opt2.append(jobs_sim_opt2[i].result().get_counts())
    counts_opt3.append(jobs_sim_opt3[i].result().get_counts())

# Statevector
statevectors = []
for m in trotter_steps:
    qc = QuantumCircuit(num_qubits)
    qc.h(list(range(num_qubits))) # dummy initial state
    qc.append(get_circuit(num_qubits, evo_time, m), list(range(num_qubits)))
    statevectors.append(Statevector(qc).data)

# Exact vector
H1, H2 = heisenberg_EO(num_qubits)
exactH = H1.to_matrix(massive=True) + H2.to_matrix(massive=True)
ham_H = expm(1j * exactH * evo_time)
sol_vec = ham_H @ np.array([1]*(2**num_qubits))*(1/np.sqrt(2)**num_qubits)

# Plot local measurements
fig, axes = plt.subplots(1, num_qubits, figsize=(17,5))
fig.suptitle(r'$<\sigma^z>$ local measurement')
for i in range(num_qubits):
    get_plot(axes[i], i)

Output:

What should happen?
In the output plots the line for optimization_level=3 should coincide with the statevector and optimization_level=2 lines.
Any suggestions?
No response

Yes.  Optimization level 3 gives (for 15 steps):
global phase: 2π

        q_0 -> 0 ─────────
                 ┌───────┐
        q_1 -> 1 ┤ Rz(2) ├
                 ├───────┤
        q_2 -> 2 ┤ Rz(2) ├
                 └───────┘
  ancilla_0 -> 3 ─────────

  ancilla_1 -> 4 ─────────

  ancilla_2 -> 5 ─────────

where as 2 gives something much longer, a small snippet of which is:
global phase: π/2
                  ┌─────────┐  ┌────┐┌─────────┐                               »
        q_0 -> 0 ─┤ Rz(π/2) ├──┤ √X ├┤ Rz(π/2) ├──■────────────────────────────»
                  ├─────────┤  ├────┤├─────────┤┌─┴─┐┌────────────────────────┐»
        q_1 -> 1 ─┤ Rz(π/2) ├──┤ √X ├┤ Rz(π/2) ├┤ X ├┤ Rz(0.0666666666666667) ├»
                 ┌┴─────────┴─┐├────┤├─────────┤└───┘└────────────────────────┘»
        q_2 -> 2 ┤ Rz(1.6375) ├┤ √X ├┤ Rz(π/2) ├───────────────────────────────»
                 └────────────┘└────┘└─────────┘                               »

It is independent of the routing method, so something else is breaking.

Do we know yet if this is due to changes in optimization_level=3 after 0.18.3? I wasn't able to directly replicate the example on 0.18.3 because it use e.g. PauliEvolutionGate which is new with 0.19.

Here is the raw circuit:
circ.qpy.zip

Collect2qBlocks/ConsolidateBlocks/UnitarySynthesis is greatly simplifying these circuits here.

def cb(pass_, dag, **kwargs):
    print(type(pass_).__name__, dag.count_ops())

qct3 = transpile(qc, backend, initial_layout=layout, optimization_level=3, callback=cb)

Going from 268 cx  to 31 unitary to 0 entangling gates....
UnitarySynthesis {'h': 3, 'circuit-2402': 1, 'measure': 3}
Unroll3qOrMore {'h': 3, 'measure': 3, 'rzz': 45, 'rxx': 45, 'rz': 45, 'ryy': 45}
RemoveResetInZeroState {'h': 3, 'measure': 3, 'rzz': 45, 'rxx': 45, 'rz': 45, 'ryy': 45}
OptimizeSwapBeforeMeasure {'h': 3, 'measure': 3, 'rzz': 45, 'rxx': 45, 'rz': 45, 'ryy': 45}
RemoveDiagonalGatesBeforeMeasure {'h': 3, 'measure': 3, 'rzz': 44, 'rxx': 45, 'rz': 44, 'ryy': 45}
SetLayout {'h': 3, 'measure': 3, 'rzz': 44, 'rxx': 45, 'rz': 44, 'ryy': 45}
FullAncillaAllocation {'h': 3, 'measure': 3, 'rzz': 44, 'rxx': 45, 'rz': 44, 'ryy': 45}
EnlargeWithAncilla {'h': 3, 'measure': 3, 'rzz': 44, 'rxx': 45, 'rz': 44, 'ryy': 45}
ApplyLayout {'h': 3, 'rxx': 45, 'ryy': 45, 'rzz': 44, 'rz': 44, 'measure': 3}
CheckMap {'h': 3, 'rxx': 45, 'ryy': 45, 'rzz': 44, 'rz': 44, 'measure': 3}
UnitarySynthesis {'h': 3, 'rxx': 45, 'ryy': 45, 'rzz': 44, 'rz': 44, 'measure': 3}
UnrollCustomDefinitions {'h': 3, 'rxx': 45, 'ryy': 45, 'rzz': 44, 'rz': 44, 'measure': 3}
BasisTranslator {'rz': 1084, 'measure': 3, 'sx': 543, 'cx': 268}
RemoveResetInZeroState {'rz': 1084, 'measure': 3, 'sx': 543, 'cx': 268}
Depth {'rz': 1084, 'measure': 3, 'sx': 543, 'cx': 268}
FixedPoint {'rz': 1084, 'measure': 3, 'sx': 543, 'cx': 268}
Collect2qBlocks {'rz': 1084, 'measure': 3, 'sx': 543, 'cx': 268}
ConsolidateBlocks {'measure': 3, 'unitary': 31}
UnitarySynthesis {'measure': 3, 'rz': 93, 'sx': 61}
Optimize1qGatesDecomposition {'measure': 3, 'rz': 6, 'sx': 3}
CommutationAnalysis {'measure': 3, 'rz': 6, 'sx': 3}
CommutativeCancellation {'measure': 3, 'rz': 6, 'sx': 3}
UnitarySynthesis {'measure': 3, 'rz': 6, 'sx': 3}
UnrollCustomDefinitions {'measure': 3, 'rz': 6, 'sx': 3}
BasisTranslator {'measure': 3, 'rz': 6, 'sx': 3}
Depth {'measure': 3, 'rz': 6, 'sx': 3}
FixedPoint {'measure': 3, 'rz': 6, 'sx': 3}
Collect2qBlocks {'measure': 3, 'rz': 6, 'sx': 3}
ConsolidateBlocks {'measure': 3, 'rz': 6, 'sx': 3}
UnitarySynthesis {'measure': 3, 'rz': 6, 'sx': 3}
Optimize1qGatesDecomposition {'measure': 3, 'rz': 6, 'sx': 3}
CommutationAnalysis {'measure': 3, 'rz': 6, 'sx': 3}
CommutativeCancellation {'measure': 3, 'rz': 6, 'sx': 3}
UnitarySynthesis {'measure': 3, 'rz': 6, 'sx': 3}
UnrollCustomDefinitions {'measure': 3, 'rz': 6, 'sx': 3}
BasisTranslator {'measure': 3, 'rz': 6, 'sx': 3}
Depth {'measure': 3, 'rz': 6, 'sx': 3}
FixedPoint {'measure': 3, 'rz': 6, 'sx': 3}
Collect2qBlocks {'measure': 3, 'rz': 6, 'sx': 3}
ConsolidateBlocks {'measure': 3, 'rz': 6, 'sx': 3}
UnitarySynthesis {'measure': 3, 'rz': 6, 'sx': 3}
Optimize1qGatesDecomposition {'measure': 3, 'rz': 6, 'sx': 3}
CommutationAnalysis {'measure': 3, 'rz': 6, 'sx': 3}
CommutativeCancellation {'measure': 3, 'rz': 6, 'sx': 3}
UnitarySynthesis {'measure': 3, 'rz': 6, 'sx': 3}
UnrollCustomDefinitions {'measure': 3, 'rz': 6, 'sx': 3}
BasisTranslator {'measure': 3, 'rz': 6, 'sx': 3}
ContainsInstruction {'measure': 3, 'rz': 6, 'sx': 3}

I think the problem here is the basic interaction of small-step Trotterization (which makes the interaction-per-step become small) with approximate unitary synthesis (which avoids emitting 2q gates when the interaction becomes small enough). The solution is to use fewer Trotter steps or to turn off approximate synthesis.

It appears that this happens only with the default approximation_degree=None.  Setting 1 (min approx) or 0 (max approx) both yield the same circuit.

#7348 takes the approach of disabling approximate synthesis entirely (since this is more or less a rollback to the behavior of 0.18.3).

Thinking about this a bit more though, could it be the case that this is a sound optimization to make (in the interest of best approximating the given unitary with the available device gate fidelities), even though when simulating (on an ideal simulator) you'll end up quite far from the intended operation?

Thinking about this a bit more though, could it be the case that this is a sound optimization to make (in the interest of best approximating the given unitary with the available device gate fidelities), even though when simulating (on an ideal simulator) you'll end up quite far from the intended operation?

This is the intention, that you do the best you can given available gate fidelities. It may end up far from the intended, but better than not approximating. Of course the decision is heuristic and local, so may not always succeed - something like trotterization where the repeated trotter steps are intended to add coherently would be an example where the heuristic based on assuming a depolarizing channel of equivalent infidelity might choose poorly.

In that case, I'd lean toward the transpiler behavior being not a bug. It may be a bug though that users can compile based on a set of backend_properties and simulate without them without seeing a warning. Does that make sense to you @anedumla @nonhermitian @levbishop ?

As an user I am actually surprised that this was enabled by default.  To me at least, it seems to be implicitly breaking the idea that the transpiler faithfully performs the unitary in question (up to certain permutations, transformations etc.).  To me this feels akin to the fast-math compiler option that breaks IEEE 754 floating-point rules to gain performance, but occasionally really messes things up, eg see https://github.com/JuliaLang/julia/issues/30073#issuecomment-439707503
I think approximations like this should be explicit, and turned on by the user with knowledge that bad things can some times happen.

I agree with @nonhermitian. Personally, I would not expect that the circuit returned is an approximation and would prefer to explicitly activate an option to approximate the unitary given the hardware characteristics.

Since #8595 has merged I think this has been implemented so I'm going to close this. If I'm missing something here though or misinterpreting what was needed for this issue please feel free to reopen this.


Codeblock will cover the custom background image even background set to none

Looks like this:

My settings:
{
  "blockman.n21BorderRadius": 4,
  "blockman.n23AnalyzeSquareBrackets": true,
  "blockman.n24AnalyzeRoundBrackets": true,
  "blockman.n33A01B1FromDepth0ToInwardForAllBorders": "90,1,0,3; rgba(255, 255, 255, 0.05) > rgba(194, 59, 35, 0.35) > rgba(243, 154, 39, 0.35) > rgba(234, 218, 82, 0.35) > rgba(3, 192, 60, 0.35) > rgba(87, 154, 190, 0.35) > rgba(151, 110, 215, 0.35)",
  "blockman.n33A01B2FromDepth0ToInwardForAllBackgrounds": "90,0,0,3; none",
  "blockman.n33A05B1FromFocusToInwardForAllBorders": "100,0,0,0; rgba(255, 165, 0, 0.8)",
  "blockman.n34A01BorderThicknessOfNonFocusedBlock": 2,
  "blockman.n36A01MaxCharCountInAnyLine": 500,
}

I am using Doki Theme to customize my background image

Unfortunately this is due to the limitations of HTML div box and CSS and also the VS Code itself. The thing is that in order to support gradient background, I had to implement rendering engine (of Blockman) in such a way that the borders are also div boxes, and they have inner box, so the edges (paddings) appear as borders.
So, when you set the background to "none", Blockman will make it exactly the same color as VS Code editor background color, otherwise the border color will become the entire box.
For the future, I am going to try to implement SVG rendering instead of div rendering. SVG is very flexible, but I'm not sure that VS Code extension environment supports it without a huge headache.


Mynw 62 fixes for rebased branch

Fix comment from closed PR for branch with Transfer Accounts functionalities

@esaminu Done!

how is this different from #2780 ?  cc @esaminu

Thanks @loosefer! I merged them please review #2780 and resolve any relevant feedback by sending PRs to #2780 . @gutsyphilip please do the same


Modify Face Detection

I want to add a few lines of code in face detection which will count the number of faces
please assign me for this issue
I am a gssoc'21 participant and wants to contribute on this issue

@Avishake007 assigned to you


CLI for downloading extras

Description
This PR implements the capability to download extra files that are useful for ISOFIT. This functionality will re-enable support for testing our examples in the new workflows (#421) as well as resolve #393.
Changes

Adds the subcommand isofit download which houses other subcommands:

data to download data files from https://github.com/isofit/isofit-data
examples to download from https://github.com/isofit/isofit-tutorials

todo

Expand commands to include installation of:

[ ] sRTMnet
[ ] 6S

This is a very important first step to address #393.

This is a great and very useful utility, thanks @jammont! We don't expect all checks to pass since #449 is still open, so I'll go ahead and merge this in. @pl-kevinwurster Would you mind considering these updates in #422 as well?

I think there are some problems with this implementation:

Primarily: isofit.root is not guaranteed to be writeable.
There is a real cost to both maintainers and users around introducing dependencies. It increases the surface area of things that can be incompatible during installation and/or development. GitHub offers an HTTP endpoint that anyone can interact with. I have provided code below to interact with this endpoint directly without any new dependencies.
setup.cfg does not reflect the new requests dependency.
The zipfile is currently quite small, but if you start distributing sRTMnet through this method it will be large. The code below chunks the download.
I suspect you need to version both of these new repositories alongside ISOFIT. Let's say I'm running an old version of ISOFIT. Is it always appropriate to pull the latest data release? Probably not. Additionally, how does GitHub manage the "latest" release? If ISOFIT tags a 3.0 release today, and a patch for 2.x tomorrow, is the 2.x release the "latest" release?

import io
import os.path
from email.message import EmailMessage
import json

import urllib.request

def release_metadata(organization, repository, tag="latest"):

    """Fetch GitHub metadata for the latest tagged release."""

    url = f"https://api.github.com/repos/{organization}/{repository}/releases/{tag}"
    response = urllib.request.urlopen(url)

    encoding = response.headers.get_content_charset()
    payload = response.read()

    return json.loads(payload.decode(encoding))

def download_file(url, dstname=None, overwrite=True):

    """Download a file."""

    response = urllib.request.urlopen(url)

    # Using Python's 'email' module for this is certainly odd, but due to an
    # upcoming deprecation, this is actually the officially recommended way
    # to do this: https://docs.python.org/3/library/cgi.html#cgi.parse_header
    msg = EmailMessage()
    msg['Content-Disposition'] = response.headers['Content-Disposition']

    filename = msg['Content-Disposition'].params['filename']

    if dstname is not None:
        outfile = dstname
    else:
        outfile = filename

    if os.path.exists(outfile) and not overwrite:
        raise FileExistsError(outfile)

    with open(outfile, 'wb') as f:
        while chunk := response.read(io.DEFAULT_BUFFER_SIZE):
            f.write(chunk)

    return outfile

You can test this with:
metadata = release_metadata('isofit', 'isofit-data')

print(json.dumps(metadata, indent=2, sort_keys=True))

# Download file
local_zip = download_file(metadata['zipball_url'])
print(local_zip)

Thanks for the review, @pl-kevinwurster. Hopefully I can address your comments sufficiently:

Primarily: isofit.root is not guaranteed to be writeable.

The default output location is isofit.root as that's the typical location for them, but a user can specify -o, --output to change the location. Suppose it would be a good check to make sure the output location is writeable before proceeding, though.

There is a real cost to both maintainers and users around introducing dependencies. It increases the surface area of things that can be incompatible during installation and/or development. GitHub offers an HTTP endpoint that anyone can interact with. I have provided code below to interact with this endpoint directly without any new dependencies.

Thanks for the code! We initially considered writing our own to avoid using a package for similar reasons, but the desired capability outweighed the time to research and develop methods like you provided. Now that we have it, this would be a great addition and can replace the present implementation in a new PR.

setup.cfg does not reflect the new requests dependency.

I'm not sure why I thought requests was a built-in package, but that's good to know. We'll be sure to get that in.

The zipfile is currently quite small, but if you start distributing sRTMnet through this method it will be large. The code below chunks the download.

Perfect!

I suspect you need to version both of these new repositories alongside ISOFIT. Let's say I'm running an old version of ISOFIT. Is it always appropriate to pull the latest data release? Probably not. Additionally, how does GitHub manage the "latest" release? If ISOFIT tags a 3.0 release today, and a patch for 2.x tomorrow, is the 2.x release the "latest" release?

@unbohn and I agreed just using the latest tag for now was sufficient. Consider the downloads.py to be an experimental feature at the moment that we'll hope to improve with things like adding tag support. Looks like the provided code can handle that already, so even better.

With the above said, we additionally plan to include documentation explaining how to use this feature and best practices. It will include things like if isofit.root not being writeable. We pushed this through so that #449 could leverage it to download the extra files as well as start the process of maturing the interface as it is an oft-requested feature by users.


cdxgen plugins was not found

Whatever I do, I cannot install cdxgen plugins so that there is no error in console log.
cdxgen plugins was not found. Please install with npm install -g @cyclonedx/cdxgen-plugins-bin
Is there a way I can resolve this ot this is know bug?
I am using extracted appimage as a binary and locally installed nodejs.
Tried running npm from extracted image but with no luck.

@vveider The plugins are available with default npm install and in the container image. It is currently not bundled with the AppImage since this line only installs production dependencies.
https://github.com/CycloneDX/cdxgen/blob/17b83f9082a65da5f308df978cd0293c6a58627a/appimage-builder.yml#L11
Could you send a pull request by removing the --only argument and testing the resulting appimage locally?

I meant that I've done npm install -g @cyclonedx/cdxgen-plugins-bin before running cdxgen but this did not help. As did not running npm from AppImage and running local npm wiht --prefix to squashfs-root/usr/bin/nodejs/lib/node_modules/npm/node_modules/
Possibly I am installing requred npm module wrong?

@vveider may be you need to set the environment variable CDXGEN_PLUGINS_DIR to the global install directory pointing to plugins. I think the issue is that we are mixing node within the appimage with a global installed one.

FWIW, I am experiencing the same issue with volta in the mix.

WRT volta, I've been trying to debug the same problem here and cannot figure out what's going on.  Even using volta install @cyclonedx/cdxgen-plugins-bin doesn't work.  There are no errors, but neither volta nor npm shows the package as installed after supposedly completing the installation.
> npm ls -g
/home/me/.volta/tools/image/node/18.20.4/lib
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>-> ./../../../../../../../../mnt/c/Code/public/release-it

>  volta list
⚡ Currently active tools:

    Node: v18.20.4 (current @ /mnt/c/Code/mock/mock-node-backend-service/package.json)
    Yarn: v4.5.1 (default)
    Tool binaries available:
        cdxgen, obom, cdxi, evinse, cdx-verify (default)
         (default)
        gb, gitbeaker (default)
        clinic (default)
        release-it (default)
         (default)

See options for more detailed reports by running `volta list --help`.

> npm install -g @cyclonedx/cdxgen-plugins-bin

added 1 package in 2s
> npm install -g @cyclonedx/cdxgen-plugins-bin

added 1 package in 1s

>  volta list
⚡ Currently active tools:

    Node: v18.20.4 (current @ /mnt/c/Code/mock/mock-node-backend-service/package.json)
    Yarn: v4.5.1 (default)
    Tool binaries available:
        cdxgen, obom, cdxi, evinse, cdx-verify (default)
         (default)
        gb, gitbeaker (default)
        clinic (default)
        release-it (default)
         (default)

Note how, no matter how many times I run npm install it still says "added 1 package".  Subsequent volta list shows it as not installed.  Running npm -verbose also doesn't show anything useful.
 bob   master  …  Code  mock  mock-node-backend-service  npm --verbose install -g @cyclonedx/cdxgen-plugins-bin
npm verbose cli /home/me/.volta/tools/image/node/18.20.5/bin/node /home/me/.volta/tools/image/node/18.20.5/bin/npm
npm info using<EMAIL_ADDRESS>npm info using<EMAIL_ADDRESS>npm verbose title npm install @cyclonedx/cdxgen-plugins-bin
npm verbose argv "install" "--loglevel" "verbose" "--global" "@cyclonedx/cdxgen-plugins-bin"
npm verbose logfile logs-max:10 dir:/home/me/.npm/_logs/2024-12-16T13_51_38_218Z-
npm verbose logfile /home/me/.npm/_logs/2024-12-16T13_51_38_218Z-debug-0.log
npm http fetch GET 200 https://registry.npmjs.org/@cyclonedx%2fcdxgen-plugins-bin 1061ms (cache revalidated)

added 1 package in 2s
npm verbose cwd /mnt/c/Code/mock/mock-node-backend-service
npm verbose os Linux <IP_ADDRESS>-microsoft-standard-WSL2
npm verbose node v18.20.5
npm verbose npm  v10.8.2
npm verbose exit 0
npm info ok

Same with using volta install:
> volta --verbose install @cyclonedx/cdxgen-plugins-bin
[verbose] Acquiring lock on Volta directory: /home/me/.volta/volta.lock
[verbose] Found default configuration at '/home/me/.volta/tools/user/platform.json'
[verbose]<EMAIL_ADDRESS>has already been fetched, skipping download
[verbose]<EMAIL_ADDRESS>has already been fetched, skipping download
[verbose] Installing @cyclonedx/cdxgen-plugins-bin with command: "npm" "install" "--global" "--loglevel=warn" "--no-update-notifier" "--no-audit" "@cyclonedx/cdxgen-plugins-bin"
[verbose] [install stderr]

[verbose] [install stdout]

added 1 package in 3s

success: installed<EMAIL_ADDRESS>[verbose] Unlocking Volta Directory
[verbose] No custom hooks found

No errors but no success either.  I have no idea where the files are even being installed (if anywhere).  I have no problem installing cdxgen itself, but I simply cannot install the plugins.


Enable issues on the maintained fork

@oswynb Is it possible to enable issues on your fork?

sorry for slow reply, issues now enabled

Great, thanks!
You might be interested in this tool to transfer the existing issues on this repo to yours: https://github.com/IQAndreas/github-issues-import


AttachmentDisplay won't display PDFs

User Driven: https://discord.com/channels/905144809105260605/1197551236484964412/1197551236484964412
CSP is blocking PDF iframe display on websites outside the medpum.com domain.
Repro: https://cody.ebberson.com/medplum-test/pdftest.html

Fixed in https://github.com/medplum/medplum/pull/3756
AWS changes deployed to prod


Add/aboutus

Issue Title : CREATE AN ABOUTUS PAGE

Info about the related issue (Aim of the project) :
Name: Appledora
GitHub ID: Appledora
Idenitfy yourself: Hacktoberfest Participant

Closes: #6
Describe the add-ons or changes you've made 📃

Created about_us folder inside the PROJECT directory with html files and related assets
The AboutUs contains the details about FIFA WORLD CUP 2022.
Design of the page matches with index page.

@Nirvik07 please check

@appledora please follow this file https://github.com/Nirvik07/FIFA_WORLD_CUP_2022/blob/main/.github/PULL_REQEUST_TEMPLATE/pull_request_template.md for creating PR Template

@appledora please pr the file in Project Folder.

@Nirvik07 I will modify the pr according the https://github.com/Nirvik07/FIFA_WORLD_CUP_2022/blob/main/.github/PULL_REQEUST_TEMPLATE/pull_request_template.md.
But i am confused about what you meant by PR the file in the project folder. I created a folder inside the Project folder and kept my asssts and code inside it

@appledora I want to tell you that did you uploaded your project in Projects Folder?

Yes,you can check the commit changes.

@appledora if possible keep the Screenshot in description of PR details.

oh, i removed it because it wasn't in the PR template. adding

@appledora don't edit the index.html. if possible, create a new index.html and put it inside your folder in the project folder, otherwise leave to me and delete the index.html in your PR.

@appledora delete your index.html

@Nirvik07 check now

@appledora check everything and if you face  any problem, ping me in discord. Discord Id : babe07#7187


perlPackages.DBDOracle: 1.76 -> 1.80

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @volth - would this update automatically, or is that just packages in top-level/perl-packages.nix?

cc @volth - would this update automatically, or is that just packages in top-level/perl-packages.nix?

Only top-level/perl-packages.nix
I think those 4-5 CPAN packages have to be moved into top-level/perl-packages.nix to simplify update

This also should be rebased once https://github.com/NixOS/nixpkgs/pull/67206 is merged (which changed the oracle-instantclient derivation to be have multiple outputs.

Closing in favor of #67206 :heart: @flokli


Fix generate_func to pass-by-value

Seems that generate_func lambda function is being passed into the kernel function by reference. The signature is wrong and this is out of the spec, so generate_func should be passed by value. This is CUDA compliant.

Closing here, testing this on my fork with internal builds


total_loss_cll with nil value

When training with shards and guided alignment I get this error:
train.lua:737: attempt to perform arithmetic on local 'total_loss_cll' (a nil value)
Perhaps an initial assignment  of "total_loss_cll = 0" is missing
(which is there for total_loss and total_nonzeros).

you are right. just fixed, thanks!


Stop to use invalid XML attribute name

I can't merge REXML 3.1.8 to the Ruby's repository without this change.
I want to merge REXML 3.1.8 into Ruby 2.6.0.

Hello,
It's enough to modify the synchronized copy of the specs under spec/ruby in ruby/ruby, as you did in https://github.com/ruby/ruby/commit/0d1abb904e9eda11dfed19181553725764a3d950#diff-c0cb2ff282611da247a0e8daf0654fcd
I will then propagate the change here when I synchronize repositories monthly (around New Year).
I will merge this PR since it's same change and you opened the PR, but there is no need to make a PR here (unless you want to discuss changes), it's enough to change in ruby/ruby :smiley:

Oh, I got it. Sorry for bothering you.

No worry :smiley:


Bump OpenTracing to 0.22.0

Codecov Report

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

@@             Coverage Diff             @@
##             master     #164     +/-   ##
===========================================
+ Coverage     79.61%   79.72%   +0.1%
- Complexity      447      448      +1
===========================================
  Files            76       76
  Lines          1727     1726      -1
  Branches        192      192
===========================================
+ Hits           1375     1376      +1
+ Misses          265      264      -1
+ Partials         87       86      -1

Impacted Files
Coverage Δ
Complexity Δ

...ger-core/src/main/java/com/uber/jaeger/Tracer.java
85.63% <ø> (+0.47%)
16 <0> (ø)
:arrow_down:

.../uber/jaeger/samplers/RemoteControlledSampler.java
92.95% <0%> (+1.4%)
19% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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


feat: handle application not found

Signed-off-by: Gaius<EMAIL_ADDRESS>
Description

Handle application not found.

Related Issue

Motivation and Context

Screenshots (if appropriate)
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.

Codecov Report

Merging #1913 (9301b83) into main (749eb6a) will decrease coverage by 0.09%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1913      +/-   ##
==========================================
- Coverage   43.15%   43.05%   -0.10%
==========================================
  Files         132      132
  Lines       16982    16991       +9
==========================================
- Hits         7329     7316      -13
- Misses       9099     9120      +21
- Partials      554      555       +1

Flag
Coverage Δ

Object-compatibility-e2etests
?

e2etests
?

unittests
43.05% <0.00%> (-0.10%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

manager/rpcserver/rpcserver.go
2.93% <0.00%> (-0.01%)
:arrow_down:

scheduler/config/dynconfig.go
25.24% <0.00%> (-1.42%)
:arrow_down:

client/daemon/peer/peertask_conductor.go
56.99% <0.00%> (-0.65%)
:arrow_down:

client/daemon/peer/piece_manager.go
52.99% <0.00%> (-0.41%)
:arrow_down:

scheduler/resource/peer.go
69.26% <0.00%> (ø)

scheduler/service/service.go
72.36% <0.00%> (ø)


[Feature request] Automatic interact_angle

I spent about an hour on something like this, but couldn't get it to work.
The idea is that -1 would no longer be "whatever" but an indicator that Escoria should calculate the proper angle.
This makes the most sense when you have an NPC that moves to a position where the angle doesn't make sense anymore, like the other edge of the viewport.
Any help would be much appreciated!
PS.
It would also be useful to implement a turn_toward object1 object2 ESC command, especially so that NPCs can be made to face the player when talking to them, like in the case of walking up from behind.
diff --git a/device/globals/player.gd b/device/globals/player.gd
index cd67dc3..ec48386 100644
--- a/device/globals/player.gd
+++ b/device/globals/player.gd
@@ -158,8 +158,15 @@ func interact(p_params):
                params_queue = p_params
                walk_to(pos)
        else:
-               if animations.dir_angles.size() > 0 && p_params[0].interact_angle != -1:
-                       last_dir = _get_dir_deg(p_params[0].interact_angle)
+               if animations.dir_angles.size() > 0:
+                       if p_params[0].interact_angle != -1:
+                               last_dir = _get_dir_deg(p_params[0].interact_angle)
+                       else:
+                               # var angle = self.get_angle_to(p_params[0].position)
+                               var angle = p_params[0].get_angle_to(self.position)
+                               printt("INTERACT ANGLE", angle, rad2deg(angle) + 180)
+                               last_dir = _get_dir(angle)
+                               printt("INTERACT DIR", last_dir)
                        animation.play(animations.idles[last_dir])
                        pose_scale = animations.idles[last_dir + 1]
                        _update_terrain()
@@ -174,8 +181,14 @@ func walk_stop(pos):
        task = null
        set_process(false)
        if params_queue != null:
-               if animations.dir_angles.size() > 0 && params_queue[0].interact_angle != -1:
-                       last_dir = _get_dir_deg(params_queue[0].interact_angle)
+               if animations.dir_angles.size() > 0:
+                       if params_queue[0].interact_angle != -1:
+                               last_dir = _get_dir_deg(params_queue[0].interact_angle)
+                       else:
+                               var angle = params_queue[0].get_angle_to(self.position)
+                               printt("WALK_STOP ANGLE", angle, rad2deg(angle) + 180, params_queue[0].name)
+                               last_dir = _get_dir(angle)
+                               printt("WALK_STOP DIR", last_dir)
                        animation.play(animations.idles[last_dir])
                        pose_scale = animations.idles[last_dir + 1]
                        _update_terrain()
@@ -201,7 +214,9 @@ func _get_dir_deg(deg):
        var dir = 0
        var i = 0
        for ang in animations.dir_angles:
+               printt("\tLF", deg, ang)
                if deg <= ang:
+                       printt("\t\tFOUND", i)
                        dir = i
                        break
                i+=2

I agree on the idea of a turn_towards ESC command. IIRC, SCUMM does have such functionality.
ESC is supposed to be used by scripters, not by programmers, so one shouldn't have to deal with orientation angles of characters or items whatsoever. Any functionality that drives the game execution in a scenaristic way instead of technical way, is good to have (ie. "turn player so he faces NPC1" is better than "get NPC1 position, determine necessary rotation so player faces this position, and rotate player of this angle".

The angle code has changed a bit since the above diff, and I should give this another shot at some point (unless someone beats me to it!) but I don't think we have any actual use case for automatic angle calculation.
In A Lunar Adventure the female NPC moves from her initial position and that causes the interact_angle to look weird. It would be best to always calculate automatically.
So let's see when this thing moves forward, but glad to hear we agree on this! :)

This has been done since around 81e87cd0 - closing


Large margin top even if already set margin to 1

Hello,
Good day.
I am currently facing issue when printing the my list of QRS using html2pdf. Below are my code snippet.
function printContentToPDF(rowCount, count, z) {
var source = document.getElementById('qrWrapperMain').innerHTML;
var fileName = 'NurserySeedlings - ' + getFormattedTime() + '.pdf';
var opt = {
filename: fileName,
margin: [1, 20, 50, 0]
image: { type: 'png', quality: 0.98 },
html2canvas: { scale: 2, dpi: 192 },
pagebreak: { mode: ['legacy', 'css'] },
jsPDF: { unit: 'pt', format: 'a4', orientation: 'portrait' }
};
html2pdf().from(source).set(opt).toPdf().save();
}
however, when it was printed in the PDF, the top margin is so big that almost the PDF doesn't have data. I am attaching here the generated PDF as well as the inner HTML content for perusal. Thank you so much.
Content.zip

I had the same issue. My problem was that I had to scroll down to reach my html2pdf-button. When the button was on top of the page there was no problem.
I solved it with this: https://github.com/eKoopmans/html2pdf.js/issues/420
Does this fix your problem too?


Support for other Elite arms

Currently we have only EC-66

Up next:

[ ] EC63
[ ] EC64
[ ] EC68
[ ] EC612


Binary 1.0 impl for new writer API

Provides a binary 1.0 implementation of the LazyEncoder family of traits. The second commit is entirely refactoring moves, so reviewers should focus on the first commit's diff. A future PR will add a managed writer wrapper and ion-tests integration.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

So, I started by reviewing just the first commit, and now that I'm reading the next commits, I see you have already addressed some of the comments I left.


Fix bug 2pc is false Label has already been used

修复高并发情况下，当2pc是关闭状态时，Label 报重复的bug

pr #133  is fixed，so close


extract Mailer as a standalone umbrella app and use Bamboo.SentEmailViewerPlug in Web app

Hello
I would like to extract the mailer to a separate umbrella app
So it would be:

main_app
mailer
web (phoenix)
...

But I stuck trying to expose Bamboo.SentEmailViewerPlug to web
Is there an easy way to see the emails in development for this kind of setup?

@mpugach in an umbrella app, are the different apps fully isolated? If so, you would need to cross the isolation boundary explicitly.
One option could be for your mailer app to expose the development viewer on a dedicated port.

@sb8244 do you mean my mailer app includes a web layer, so I have two web apps in my umbrella?

That is how I would handle it, mainly because it's Dev only (can be configured at compile time) and avoids sending data across the boundary

I haven't tried to separate the mailer in a separate umbrella app, so unfortunately cannot leave a helpful comment here.
I know it's been a while since this issue was opened, and it seems like not many others have thoughts on this. I wonder if the question would get more traction in the Elixir slack or Elixir forum?
For now, I think I will close this. If others have thoughts and want to reopen this. Please let me know. I'd be happy to do so!


Severe memory usage

Issue:
I have a really big project with mixed Swift, SwiftUI. There are ~9k unit tests. When I run unit testing, the memory usage of xcbeautify grows up to 7GBs...
Test are ran with fastlane, with invocation fastlane scan --workspace mobileApp.xcworkspace --scheme UnitTests --derived_data_path "./DerivedData" --device "iPhone 15 Pro" -c true --output_files "mobileapp.unit.test.report.html,mobileapp.unit.test.report.junit"
Here's screenshot

fastlane env output below, however, the issue is there for macOS Sonoma 14.1.1/Xcode 15.0.1 and for good, old, stable macOS Ventura 13.6/Xcode 14.2 as well.
🚫 fastlane environment 🚫
Stack

Key
Value

OS
14.1.1

Ruby
3.1.4

Bundler?
false

Git
git version 2.39.3 (Apple Git-145)

Installation Source
~/.local/share/rtx/installs/ruby/3.1.4/bin/fastlane

Host
macOS 14.1.1 (23B81)

Ruby Lib Dir
~/.local/share/rtx/installs/ruby/3.1.4/lib

OpenSSL Version
OpenSSL 3.1.4 24 Oct 2023

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

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

Xcode Version
15.1

Swift Version
5.9.2

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
No Fastfile found
No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.217.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

error_highlight
0.3.0

did_you_mean
1.6.1

public_suffix
5.0.4

addressable
2.8.5

artifactory
3.0.15

jmespath
1.6.2

aws-partitions
1.855.0

aws-eventstream
1.3.0

aws-sigv4
1.7.0

aws-sdk-core
3.188.0

aws-sdk-kms
1.73.0

aws-sdk-s3
1.139.0

babosa
1.0.4

bundler
2.3.26

rexml
3.2.5

CFPropertyList
3.0.6

colored
1.2

highline
2.0.3

commander
4.6.0

dotenv
2.8.1

emoji_regex
3.2.3

excon
0.104.0

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

multipart-post
2.3.0

faraday-multipart
1.0.4

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.10.3

faraday_middleware
1.2.0

domain_name
0.6.20231109

http-cookie
1.0.5

faraday-cookie_jar
0.0.7

fastimage
2.2.7

gh_inspector
1.1.3

uber
0.1.0

declarative
0.0.20

trailblazer-option
0.1.2

representable
3.2.0

retriable
3.1.2

mini_mime
1.1.5

jwt
2.7.1

multi_json
1.15.0

os
1.1.4

signet
0.18.0

googleauth
1.8.1

httpclient
2.8.3

webrick
1.8.1

google-apis-core
0.11.2

google-apis-androidpublisher_v3
0.53.0

google-apis-playcustomapp_v1
0.13.0

google-cloud-env
1.6.0

google-cloud-errors
1.3.1

google-cloud-core
1.6.0

google-apis-iamcredentials_v1
0.17.0

google-apis-storage_v1
0.29.0

rake
13.0.6

digest-crc
0.6.5

google-cloud-storage
1.45.0

json
2.6.1

mini_magick
4.12.0

naturally
2.2.1

optparse
0.1.1

plist
3.7.0

rubyzip
2.3.2

security
0.1.3

simctl
1.6.10

terminal-notifier
2.0.0

unicode-display_width
2.5.0

terminal-table
3.0.2

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

atomos
0.1.3

claide
1.1.0

colored2
3.1.2

nanaimo
0.3.0

xcodeproj
1.23.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

set
1.0.2

forwardable
1.3.2

logger
1.5.0

pathname
0.2.0

shellwords
0.1.0

cgi
0.3.6

date
3.2.2

timeout
0.2.0

stringio
3.0.1

securerandom
0.2.0

uri
0.12.1

openssl
3.0.1

digest
3.1.0

io-nonblock
0.1.0

ipaddr
1.2.4

io-wait
0.2.1

zlib
2.1.1

resolv
0.2.1

time
0.2.2

open-uri
0.2.0

mutex_m
0.1.1

net-http
0.3.0

net-protocol
0.1.2

ostruct
0.5.2

english
0.7.1

erb
2.2.3

strscan
3.0.1

abbrev
0.1.0

io-console
0.5.11

tempfile
0.1.2

delegate
0.2.0

fileutils
1.6.0

tmpdir
0.1.2

base64
0.1.1

singleton
0.1.1

open3
0.1.1

nkf
0.1.1

prettyprint
0.1.1

pp
0.3.0

find
0.1.1

yaml
0.2.0

psych
4.0.4

generated on: 2023-11-27

Hi @gutaker and @victor-sarda! Thank you for filing this issue, and I'm sorry for the delayed response. I do have some follow-up questions, so I can better understand the potential root cause.
As a general note, I expect gradual performance improvements over time. As we introduce missing regexes, we'll reduce the amount of searches. Similarly, as we improve the regexes themselves, we'll reduce their associated search complexity.

@gutaker Can you share the generated xcodebuild/xcbeautify command? More specifically, can you share what flags - if any - you're passing to xcbeautify?
I see you're using JUnit in your fastlane invitation. I'd like to see if you're using xcbeautify's JunitReporter too.

Hi @victor-sarda. Thanks for the follow-up. Can you share your xcodebuild/xcbeautify command? I'd specifically like to see what flags - if any - you're passing to xcbeautify.

Hey @cpisciotta sure!
Here's the xcodebuild command I use (from Fastlane):
set -o pipefail && env NSUnbufferedIO=YES xcodebuild -workspace <redacted>.xcworkspace -scheme UnitTests -derivedDataPath /Users/victor.sarda/Library/Developer/Xcode/DerivedData/<redacted>-dvyxozgptgpxumegogztmewovxws -destination 'platform=iOS Simulator,name=iPhone 14 Pro,OS=17.2' -resultBundlePath './fastlane/test_output/UnitTests.xcresult' -parallel-testing-worker-count 1 -enableCodeCoverage YES -testPlan 'UnitTests' COMPILER_INDEX_STORE_ENABLE='NO' -skipPackagePluginValidation build test | tee '/Users/victor.sarda/Library/Logs/scan/UnitTests-UnitTests.log' | xcbeautify

This ran on an M1 Pro Macbook Pro on Sonoma (14.3.1) with Xcode 15.2.
The project has around 1700 unit tests.
When running, I can see that xcbeautify gradually consumes RAM, usually up to 4GB.
Let me know if you need more details!

Thanks @victor-sarda! I don't have an immediate fix, but I'll continue to investigate this and address overall performance. Please let me know if its performance gets noticeably worse (or better) with future releases.
As a note, I intend to release v2 this weekend, so I expect the upcoming architectural changes (and the ability to refactor more quickly) will help address performance-related concerns.

Great news @gutaker and @victor-sarda! After investigation, I've narrowed down a huge bottleneck in xcbeautify's performance. You can track the upcoming changes in https://github.com/cpisciotta/xcbeautify/pull/253.
The improvements are... drastic. From my testing on my machines, on average, I'm seeing a 90% time savings and a 99% memory savings.
Thanks for your patience and your help flagging this issue! Huge improvements coming coon!

Hey @cpisciotta that's awesome news, thanks for having a look!
Can't wait to try it out 🎉

This issue should be fixed starting with the recently released version, 1.5.0. If you continue to see this issue, please let me know.

Thank you! I'll try first thing tomorrow and will let you know 👍

Sorry guys for such late reply - I was totally off-grid. I can see however you've already solved the issue. Thanks a bunch!

Hey @cpisciotta, I can confirm the issue is fixed on our runners with v1.6.0!
Much better, thanks again for fixing 🙌


Parent LAG interface assumed to be Virtual - option to allow physical

Issue type
[X] Feature request
[ ] Bug report
[ ] Documentation

Environment

Python version:  2.7.12
NetBox version:  2.3.3

Description
At the moment, LAG parent interfaces are assumed to be virtual interfaces. Extreme Networks takes a different approach and assigns one of the members of the LAG as the "master". This member then becomes the "Parent" interface. The current work around is to duplicate a given interface as both a physical and a virtual interface to support documenting LAG groups.
Proposed functionality:
Allow a given physical interface to be the parent for other physical (or virtual in the case of VLAN sub-interfaces or tagged interfaces)

This seems like a pretty stark departure from the industry norm and would require fairly complex logic to implement reliably. It's not going to be worth the time and effort to get right if this is only a nuance of the Extreme platform.

This is a fair point.
In which case, from a modelling perspective, how do you suggest this best be achieved with the current method other than duplicating port numbers (if possible)?
Regards,
Tim Raphael

On 11 May 2018, at 11:45 pm, Jeremy Stretch<EMAIL_ADDRESS>wrote:
This seems like a pretty stark departure from the industry norm and would require fairly complex logic to implement reliably. It's not going to be worth the time and effort to get right if this is only a nuance of the Extreme platform.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I created a virtual interface in netbox and added a "g" for grouping, e.g. 1:49g; and a physical port "1:49". EXOS also does this notation when showing the output of sh vlan <name>.

Thanks Jo,
That’s a great idea!

Tim

On 14 May 2018, at 8:35 pm, jo<EMAIL_ADDRESS>wrote:
I created a virtual interface in netbox and added a "g" for grouping, e.g. 1:49g; and a physical port "1:49". EXOS also does this notation when showing the output of sh vlan .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/digitalocean/netbox/issues/2088#issuecomment-388772425, or mute the thread https://github.com/notifications/unsubscribe-auth/AFFaS6M_yO2KTtDifkMAB7jcrvEXkiN1ks5tyV3sgaJpZM4T7CJo.


ctrl-f search friendly compiler output

When the compiler output is longer than a few pages, a ctrl-f search is not able to parse it all on google chrome nor on firefox, meaning there is no way to jump to the interesting portions of the assembly code.
I would help out but I really wouldn't know where to start :)

This is a "feature" of CodeMirror, the editor I use. I'm moving towards using a different editor (Monaco), so this may become a moot point.
If you still fancy a look yourself, the CodeMirror object is initialised with some config (see https://codemirror.net/doc/manual.html#config ) - one of the config options might control this. I recall seeing something once but now for the life of me can't find it!

got it:

viewportMargin: integer
Specifies the amount of lines that are rendered above and below the part of the document that's currently scrolled into view. This affects the amount of updates needed when scrolling, and the amount of work that such an update does. You should usually leave it at its default, 10. Can be set to Infinity to make sure the whole document is always rendered, and thus the browser's text search works on it. This will have bad effects on performance of big documents.

where should I look for changing the configuration of the CodeMirror object? Could I do it from chrome's debugging console?

I don't think you can change things from the debug console, but editing: https://github.com/mattgodbolt/compiler-explorer/blob/master/static/compiler.js#L96 gives you some scope to do this :)

It could also be that I'm not using CodeMirror properly: perhaps it provides its own "find" dialog (I know Monaco does)...
You could also try checking out the "monaco" branch and see if that works better for you :)

to add some context, my output is about 18k lines even with unused labels and assembly directives hidden (input is ~1k lines, c++ templates ftw).

setting the viewportMargin option high enough (i.e. equal to Infinity) actually solves the ctrl-f search problem with CodeMirror: I can search the whole output, at the cost of an unbearably slow scrolling
it seems CodeMirror would provide proper search and replace as an addon (here)
trying out the monaco branch now, ctrl-f works out of the box, smooth experience so far

I'm now decided on going the Monaco route: I think this is closed. Feel free to reopen if you feel the master branch doesn't appropriately fix this issue.


[NL Interface] Fine tuned Model + embeddings update

In this PR, we have several things:

Updates the sentence pairs with scores based on several iterations. This is used in the final finetuning step.
A finetuned model which skips the intermediate finetuning and goes directly from base -> final finetuning (using the sentence pairs with scores)
Refreshing the embeddings (medium) using the finetuned model (from above). Note that the were several minor updates to StatVars and descriptions etc which are also part of this (see the changes in the various csv files).
Linked is the differ report (html) and spreadsheet (link) which show the comparison vs the currently deployed "small" index and also makes several comments to the differences compared to a "medium" index which did not use the finetuned model.

Thanks!


backend/x11: pause rendering loop when completely hidden

We could stop sending frame events to the compositor when the X11 window is completely hidden.
I'm not sure how we can detect that. Maybe we can detect when we are minimized with Map/Unmap?
glfw seems to be getting the width/height from XGetWindowAttributes, and glfw apps can stop rendering if the size is zero.

There's UnmapNotify events, as well as VisibilityNotify which can indicate that a window is fully obscured.

There's UnmapNotify events, as well as VisibilityNotify which can indicate that a window is fully obscured.

Ah right, VisibilityNotify sounds like the thing one would want to use for pausing rendering loops.

Ah right, VisibilityNotify sounds like the thing one would want to use for pausing rendering loops.

Well, at least with WindowMaker, I get a UnmapNotify when switching to another workspace.
When I roll up the window, i.e. only the window decoration is visible, I get:
000:>:00f9: Event ConfigureNotify(22) event=0x05c00006 window=0x05c00006 above-sibling=None(0x00000000) x=0 y=-56 width=1024 height=768 border-width=0 override-redirect=false(0x00)
000:>:00f9: Event VisibilityNotify(15) window=0x05c00006 state=PartiallyObscured(0x01)
... whole bunch more ConfigureNotify's with increasingly negative y's ...
000:>:0066: Event UnmapNotify(18) event=0x05c00006 window=0x05c00006 from-configure=false(0x00)

And when I minimize the window, I get an UnmapNotify. So I think it's reasonable to keep track of a "hidden" state with UnmapNotify. Other WM's may behave differently (ultimately this level of control is completely up to the window manager...), but I think such a strategy should be safe. We can add additional cleverness if other WM's follow a different strategy.
FWIW I haven't managed to get WindowMaker to cause a VisibilityNotify = FullyObscured to be generated. Only the partially obscured as it's rolling up the window (which is somewhat of an animation), and unobscured when e.g. mapping the window back in.

Well, at least with WindowMaker, I get a UnmapNotify when switching to another workspace.
When I roll up the window, i.e. only the window decoration is visible, I get:
000:>:00f9: Event ConfigureNotify(22) event=0x05c00006 window=0x05c00006 above-sibling=None(0x00000000) x=0 y=-56 width=1024 height=768 border-width=0 override-redirect=false(0x00)
000:>:00f9: Event VisibilityNotify(15) window=0x05c00006 state=PartiallyObscured(0x01)
... whole bunch more ConfigureNotify's with increasingly negative y's ...
000:>:0066: Event UnmapNotify(18) event=0x05c00006 window=0x05c00006 from-configure=false(0x00)

And when I minimize the window, I get an UnmapNotify. So I think it's reasonable to keep track of a "hidden" state with UnmapNotify. Other WM's may behave differently (ultimately this level of control is completely up to the window manager...), but I think such a strategy should be safe. We can add additional cleverness if other WM's follow a different strategy.
FWIW I haven't managed to get WindowMaker to cause a VisibilityNotify = FullyObscured to be generated. Only the partially obscured as it's rolling up the window (which is somewhat of an animation), and unobscured when e.g. mapping the window back in.


[Visual Studio Code - Project Manager] Add support for Remote SSH

Extension – Visual Studio Code - Project Manager
Author: @MarkusLanger
I'm using VSCode with a remote host. So during the daily development, I'm using the Project Manager extension which is installed in the VSCode Remote Server of the remote server.
So, could this extension to support loading the project.json from the remote host by SSH?
Describe the feature and the current behavior/state.
So I propose to add another new command "Search Remote Project", and add related settings in preferences like the path of projects.json in the remote machine and the SSH host of the remote machine.
Who will benefit with this feature?
People who're developing on remote machines using SSH and Visual Studio Code and Project Manager
Any Other info.
Reference

Developing on Remote Machines using SSH and Visual Studio Code

@MarkusLanger BTW, I already implemented this feature locally. Can I submit it and raise a pull request for you to review, if you don't mind?

@chengjianhua What about your PR?

@MarkusLanger BTW, I already implemented this feature locally. Can I submit it and raise a pull request for you to review, if you don't mind?

Look forward to your PR, PLEASE!

@BinChenn Sorry for the delay, I was busy with my work recently. I'll do this ASAP, but I can't have an exact plan.


swift tools version, Package.swift

Would be great to be able to override or otherwise adjust the contents of the generated package. For example I need to use a different version of swift tool.
https://github.com/redbadger/crux/blob/ebfe6affb8aa3d588a75b6f496590a60733cacf4/crux_core/src/typegen.rs#L333
I'd be happy to work on a PR for this

Hey, apologies for slow response. You would be more than welcome to submit a PR :-) Thank you

Thanks!
What approach should I take?
I thought it could use a template file. Or use a custom path provided by the user.
Op do 9 nov. , Stuart Harris @.***(mailto:Op do 9 nov.  , Stuart Harris < schreef:

Hey, apologies for slow response. You would be more than welcome to submit a PR :-) Thank you
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Not having thought about this very deeply, I'd go the way of attempting to allow custom code to be prepended/injected in the generated code, via an API call from the build.rs script in the types crate.
Not sure it covers all the necessary options. Do let us know what you find if you attempt it!

Hi Victor,
Please see my related PR. https://github.com/redbadger/crux/pull/157
Please let me know if I should change it to make an API call instead
Op wo 27 dec , Viktor Charypar @.***(mailto:Op wo 27 dec  , Viktor Charypar < schreef:

Not having thought about this very deeply, I'd go the way of attempting to allow custom code to be prepended/injected in the generated code, via an API call from the build.rs script in the types crate.
Not sure it covers all the necessary options. Do let us know what you find if you attempt it!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Change iOS plugin simulator archs from allow list to deny list

Description
The intention of adding VALID_ARCHS allow list was to exclude i386 simulators.  However, at some point Flutter will need to run on the new ARM simulators.  Change the allow list to a deny list and just exclude i386.
Related Issues
VALID_ARCHS added in https://github.com/flutter/flutter/pull/41828
Discovered with https://github.com/flutter/flutter/pull/63252.
Tests
This is already tested in plugin_lint_mac.
Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

Actually it might be better to declare this in the Flutter.podspec instead of the plugins.  Let me try that...

Actually it might be better to declare this in the Flutter.podspec instead of the plugins. Let me try that...

Nope it's needed on the plugin, too.

#41828 didn't migrate existing plugins, this one doesn't either.  I don't think we have any tooling for migrating this file for existing plugins...

LGTM.