refactor endpoint ofport update logic

Codecov Report

Merging #247 (b94a9c2) into main (b4c2f9b) will decrease coverage by 0.22%.
The diff coverage is 44.68%.

@@            Coverage Diff             @@
##             main     #247      +/-   ##
==========================================
- Coverage   64.26%   64.03%   -0.23%
==========================================
  Files          41       41
  Lines        6837     6874      +37
==========================================
+ Hits         4394     4402       +8
- Misses       2073     2094      +21
- Partials      370      378       +8

Impacted Files
Coverage Δ

pkg/monitor/agent.go
68.69% <31.57%> (-4.90%)
:arrow_down:

pkg/agent/datapath/multiBridgeDatapath.go
60.50% <63.63%> (+0.33%)
:arrow_up:

pkg/agent/datapath/localBridge.go
39.96% <75.00%> (+1.45%)
:arrow_up:

plugin/tower/pkg/controller/policy/controller.go
82.37% <0.00%> (-0.92%)
:arrow_down:

pkg/controller/policy/policy_controller.go
75.58% <0.00%> (-0.51%)
:arrow_down:

pkg/controller/group/group_controller.go
74.62% <0.00%> (ø)


[main] Upgrade to latest dependencies

release -dprotaso
/cc knative-sandbox/source-wg-leads
/assign knative-sandbox/source-wg-leads
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/serving 4aeada7...c75484e:
  > c75484e Update net-istio nightly (# 11610)

/lgtm
/approve


incorrect bower package name in readme file

your package name is date_format in bower, but you mentioned date-format in readme file which is related to another bower package.

Thank you! I have updated it.


NullPointerException when declare/initialize JPTabbar in Lollipop 5.1.0

Thanks for your awesome library, it's works in almost all device. but i have a problem when it run on Asus Fonepad 8 (Lollipop 5.1.0) it's crash and said NullPointerException at all of tabbar initialize

Can you show me some logs about the crash?

I set onTabListener after declared the jptabbar as mTabbar.
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jpeng.jptabbar.JPTabBar.setTabListener(com.jpeng.jptabbar.OnTabSelectListener)' on a null object reference                                                                                at com.dios.idolinkz.MainPageActivity.onCreate(MainPageActivity.java:135)                                                                                at android.app.Activity.performCreate(Activity.java:5990)                                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)                                                                                at android.app.ActivityThread.access$800(ActivityThread.java:151)                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)                                                                                at android.os.Handler.dispatchMessage(Handler.java:102)                                                                                at android.os.Looper.loop(Looper.java:135)                                                                                at android.app.ActivityThread.main(ActivityThread.java:5254)                                                                                at java.lang.reflect.Method.invoke(Native Method)                                                                                at java.lang.reflect.Method.invoke(Method.java:372)                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

It seems that the mTabBar you declare is null.The problem about some devices crashed by NullPointer I haven't met before.and I don't have the device that you said now.But if you find the same problem in genymotion,you can tell the genymotion id and I will test it!!

Yes It's also happen in genymotion, I use emulator "Custom Phone Tablet 5.1.0"

Oh!I find the bug,The problem is not the device,I forgot to check annotation initialize methods with middle button, Another init method is not problem,I will fix it .Thanks!

Thanks for your update, but I still get this crash


Multi-policies support

Unit test are not fixed

Testing is not yet done

@larkinscarvalho please let us know when it is ready for review. It seems the travis build is failing.

@emanoelxavier Travis build is failing because of the security manager api. The updated SDK changes are not yet checked in. Also,the testing is not yet complete as we have to update the sample manager plugin to support thee updated api.

@arvindn05 @emanoelxavier
Updated the pull request after the approval. Please review the recent commit.


What does the Zest stats coverage "percentage of map" actually mean?

Hi there,
I have been using JQF+Zest in a recent project, working out fine so far. You did a great Job on it! However I have a hard time understanding what the "percentage of map" in the Zest stats actually stands for.
Given the following Zest stats output:
...
Queue size:           12 (2 favored last cycle)
Current parent input: 0 (favored) {665/980 mutations}
Execution speed:      35/sec now | 112/sec overall
Total coverage:       1.316 branches (2,01% of map)
Valid coverage:       1.308 branches (2,00% of map)

Up to now I've assumed, the coverage counts distinct visited branches - usually referred to as branch coverage. However when using randomly selected inputs generated during the fuzzing and applying them to check the coverage with Intellij, neither the statement-coverage nor the branch-coverage are even close to the 2%. Apparently both values are way higher in Intellij.
This observation is surprising for me and I guess, I got something wrong. Could you please clarify, what the percentage actually means?

Thanks for your question! I guess this should be documented somewhere, or removed completely.
Internally, Zest uses a fixed-size hashtable as an int[] instead of java.util.HashMap to collect coverage during test execution. This is because HashMap is incredibly slow compared to array accesses, and coverage information is collected at every branch in test execution, so performance matters a lot. With that said, the fixed sized array doesn't automatically resize to increase capacity the way HashMap does. The % of map in the status screen above shows the percentage of the array that is filled with entries.  If this value goes above say 60-70%, then there are likely many hash collisions and the size of this array should be increased and a new fuzzing session should be started (although this feature has not yet been added; another todo). By default, the array size is about 2^16 entries, which is small enough to fit within L3 cache of most modern processors throughout test execution, while being large enough to keep hash collisions low for most targets we have fuzzed so far. This design choice is largely inherited from AFL.
Zest cannot compute the % coverage the way IntelliJ does, because it does not know the total sum of all your application classes. So Zest does not know what 100% would mean. Further, 100% code coverage is almost impossible from a single fuzzing entry point for most applications, so Zest just reports the absolute number of branches rather than % coverage.
Hope this helps. I'll keep this issue open as a reminder to me to either document this information, remove the confusing detail, and/or allow users to customize the size of the array map.


cannot make capital letter extension file name

->store('CSV', storage_path('/myDirectory); // i put capital letter extension name 'CSV' but the generated file is '.csv'  in small letter
I tried this and all the file generated are all in lowercase extension name,
i really need to turn the filename extension to capital letter because the requirement of the integration with another system need it to be capital letter

We are closing all old tickets, because version 2.* is reaching the End-of-Life stage. Our full attention is now allocated to version 3.0. It's still possible to use 2.*, but there will be no active support anymore.


Support additional ES index settings

When elasticsearch (either metadata or suggest) is enabled with configure: true, Heroic will write the expected mappings to as an index template. Ideally, using the built-in configure should provide all the configuration needed for a dedicated ES cluster. At a minimum this means adding replica/shard settings to the template.

should piggy back on this for delayed shard allocation as well, providing reasonable defaults in the template is 👍


parse cert to get expire time

https://github.com/istio/istio/issues/12674

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: quanjielin
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS [quanjielin]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@quanjielin: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
fd7a44913ea0de1cfd1fb33196bcbde40a901ec1
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
fd7a44913ea0de1cfd1fb33196bcbde40a901ec1
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
fd7a44913ea0de1cfd1fb33196bcbde40a901ec1
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/assign @wattli

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
fd7a44913ea0de1cfd1fb33196bcbde40a901ec1
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Add some description of the relevant context/issue?

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@quanjielin: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-integ-k8s-tests

prow/istio-integ-local-tests.sh
17cb42e6dcfd2199820eb2c36cf404bcdac1fa04
link
/test istio-integ-local-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-integ-k8s-tests

prow/istio-integ-local-tests.sh
17cb42e6dcfd2199820eb2c36cf404bcdac1fa04
link
/test istio-integ-local-tests

prow/istio-presubmit.sh
17cb42e6dcfd2199820eb2c36cf404bcdac1fa04
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-integ-k8s-tests

prow/istio-integ-local-tests.sh
17cb42e6dcfd2199820eb2c36cf404bcdac1fa04
link
/test istio-integ-local-tests

prow/istio-presubmit.sh
17cb42e6dcfd2199820eb2c36cf404bcdac1fa04
link
/test istio-presubmit

prow/istio-unit-tests.sh
17cb42e6dcfd2199820eb2c36cf404bcdac1fa04
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
8faecd08d86fd9572ed32a30c07a74a4b4e3ed97
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
b8f898b47a18d46f40953bc8a424e92fc558de2c
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
b8f898b47a18d46f40953bc8a424e92fc558de2c
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
b8f898b47a18d46f40953bc8a424e92fc558de2c
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: quanjielin, wattli
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS [quanjielin,wattli]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Plagiarism

Hi,
It happens that you just copy-pasted your first commit from here https://github.com/davidguttman/dynamodown
And then put your name in the copyright
Feel free to close this issue when added right attribution in the readme :kissing:

Thanks.
My first commit was definitely not “just copy-pasted” from David Guttman's DynamoDOWN. But you're right that it's based on their work, and therefore needs attribution.
I've fixed that in 5ed1ea3. Let me know if you think there's still an issue!


[pilot] App Upload via altool Can Sometimes Exit Early With No Exit Code Or Stdout

New Issue Checklist

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

Issue Description

I've only noticed this occurring since upgrading to Xcode 15 - it would appear that when pilot runs altool to upload an app to Testflight, it's possible for altool to exit prematurely, without an exit code or stdout to even begin to diagnose what might have gone wrong.
/Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane_core/lib/fastlane_core/itunes_transporter.rb:246:in `execute': \e[31m[!] undefined method `zero?' for nil:NilClass (NoMethodError)

      @errors << "The call to the altool completed with a non-zero exit status: #{exit_status}. This indicates a failure." unless exit_status.zero?

Command executed

bundle exec fastlane publish_testflight - see fastlane env output, this is the action in which I wrap the call to pilot.
Complete output when running fastlane, including the stack trace and command used

[✔] 🚀
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                Used plugins                                                                                |
+-------------------------------------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Plugin                                    | Version | Action                                                                                |
+-------------------------------------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastlane-plugin-doximity_xcode_installer  | 0.2.0   | install_and_select_xcode, install_runtimes, select_supported_runtime                                                                                |
| fastlane-plugin-firebase_app_distribution | 0.7.3   | firebase_app_distribution, firebase_app_distribution_add_testers, firebase_app_distribution_create_group, firebase_app_distribution_delete_group, firebase_app_distribution_get_latest_release, firebase_app_distribution_get_udids, firebase_app_distribution_remove_testers |
| fastlane-plugin-bugsnag                   | 2.3.0   | find_info_plist_path, send_build_to_bugsnag, upload_symbols_to_bugsnag                                                                                |
+-------------------------------------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: ----------------------------------------
[16:32:46]: --- Step: Verifying fastlane version ---
[16:32:46]: ----------------------------------------
[16:32:46]: Your fastlane version 2.216.0 matches the minimum requirement of 2.121.1  ✅
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: ------------------------------
[16:32:46]: --- Step: default_platform ---
[16:32:46]: ------------------------------
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: --------------------
[16:32:46]: --- Step: whoami ---
[16:32:46]: --------------------
[16:32:46]: $ whoami
[16:32:46]: ▸ ec2-user
[16:32:46]: Driving the lane 'ios publish_testflight' 🚀
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: -------------------------------------------------------------
[16:32:46]: --- Step: Switch to ios set_appstore_connect_api_key lane ---
[16:32:46]: -------------------------------------------------------------
[16:32:46]: Cruising over to lane 'ios set_appstore_connect_api_key' 🚖
[16:32:46]: Cruising back to lane 'ios publish_testflight' 🚘
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: -----------------------------------------------------------------
[16:32:46]: --- Step: Switch to ios generate_release_build_changelog lane ---
[16:32:46]: -----------------------------------------------------------------
[16:32:46]: Cruising over to lane 'ios generate_release_build_changelog' 🚖
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: ----------------------------------------
[16:32:46]: --- Step: changelog_from_git_commits ---
[16:32:46]: ----------------------------------------
[16:32:46]: Collecting the last 1 Git commits
REDACTED
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: ------------------------
[16:32:46]: --- Step: git_branch ---
[16:32:46]: ------------------------
[16:32:46]: Cruising back to lane 'ios publish_testflight' 🚘
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:32:46]: -------------------
[16:32:46]: --- Step: pilot ---
[16:32:46]: -------------------
[16:32:46]: Creating authorization token for App Store Connect API
[16:32:46]: Ready to upload new build to TestFlight (App: REDACTED)...
[16:32:48]: Going to upload updated app to App Store Connect
[16:32:48]: This might take a few minutes. Please don't interrupt the script.
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
[16:35:47]: -------------------
[16:35:47]: --- Step: is_ci ---
[16:35:47]: -------------------
+----------------------------------------------------------------+
|                          Lane Context                          |
+------------------+---------------------------------------------+
| DEFAULT_PLATFORM | ios                                         |
| PLATFORM_NAME    | ios                                         |
| LANE_NAME        | ios publish_testflight                      |
| FL_CHANGELOG     | REDACTED |
+------------------+---------------------------------------------+
+--------------------------------------------------------------------------+
|                             fastlane summary                             |
+------+-----------------------------------------------------+-------------+
| Step | Action                                              | Time (in s) |
+------+-----------------------------------------------------+-------------+
| 1    | Verifying fastlane version                          | 0           |
| 2    | default_platform                                    | 0           |
| 3    | whoami                                              | 0           |
| 4    | Switch to ios set_appstore_connect_api_key lane     | 0           |
| 5    | Switch to ios generate_release_build_changelog lane | 0           |
| 6    | changelog_from_git_commits                          | 0           |
| 7    | git_branch                                          | 0           |
| 💥   | pilot                                               | 181         |
| 9    | is_ci                                               | 0           |
+------+-----------------------------------------------------+-------------+
[16:35:47]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
bundler: failed to load command: fastlane (/Users/ec2-user/project/vendor/bundle/ruby/3.1.0/bin/fastlane)
/Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane_core/lib/fastlane_core/itunes_transporter.rb:246:in execute': \e[31m[!] undefined method zero?' for nil:NilClass (NoMethodError)
  @errors << "The call to the altool completed with a non-zero exit status: #{exit_status}. This indicates a failure." unless exit_status.zero?
                                                                                ^^^^^^\e[0m
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane_core/lib/fastlane_core/itunes_transporter.rb:791:in `upload'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/pilot/lib/pilot/build_manager.rb:50:in `upload'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/actions/upload_to_testflight.rb:34:in `run'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
    from Fastfile:281:in `block (2 levels) in parsing_binding'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/lane.rb:33:in `call'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/commands_generator.rb:110:in `block (2 levels) in run'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/commander-4.6.0/lib/commander/command.rb:187:in `call'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/commander-4.6.0/lib/commander/command.rb:157:in `run'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/commander-4.6.0/lib/commander/runner.rb:444:in `run_active_command'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in `run!'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/commander-4.6.0/lib/commander/delegates.rb:18:in `run!'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/commands_generator.rb:354:in `run'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/commands_generator.rb:43:in `start'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in `take_off'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/gems/fastlane-2.216.0/bin/fastlane:23:in `<top (required)>'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/bin/fastlane:25:in `load'
    from /Users/ec2-user/project/vendor/bundle/ruby/3.1.0/bin/fastlane:25:in `<top (required)>'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/cli/exec.rb:58:in `load'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/cli/exec.rb:58:in `kernel_load'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/cli/exec.rb:23:in `run'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/cli.rb:492:in `exec'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/cli.rb:34:in `dispatch'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/cli.rb:28:in `start'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/exe/bundle:37:in `block in <top (required)>'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
    from /Users/ec2-user/.rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/exe/bundle:29:in `<top (required)>'
    from /Users/ec2-user/.rbenv/versions/3.1.4/bin/bundle:25:in `load'
    from /Users/ec2-user/.rbenv/versions/3.1.4/bin/bundle:25:in `<main>'

Exited with code exit status 1

Environment

✅ fastlane environment ✅
Stack

Key
Value

OS
13.5.2

Ruby
3.1.4

Bundler?
true

Git
git version 2.42.0

Installation Source
~/project/vendor/bundle/ruby/3.1.0/bin/fastlane

Host
macOS 13.5.2 (22G91)

Ruby Lib Dir
~/.rbenv/versions/3.1.4/lib

OpenSSL Version
OpenSSL 3.1.2 1 Aug 2023

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

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

Xcode Version
15.0

Swift Version
5.9

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.121.1"

default_platform :ios

[REDACTED]

platform :ios do
  [REDACTED]

  desc "Submit a new Release Build to Apple TestFlight"
  desc "- Upload and distribute to Apple iTunes Connect TestFlight for one-click submission to AppStore"
  lane :publish_testflight do
    set_appstore_connect_api_key

    pilot(
      api_key_path: "/tmp/appstore_connect/doximity_appstore_connect.json",
      skip_submission: false,
      distribute_external: false,
      skip_waiting_for_build_processing: true,
      apple_id: ENV.fetch("FASTLANE_APPLE_ID"),
      ipa: "build/REDACTED.ipa",
      reject_build_waiting_for_review: true,
      changelog: generate_release_build_changelog
    )
  end

  [REDACTED]
end

# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md

# fastlane reports which actions are used
# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer

`./fastlane/Appfile`
app_identifier "REDACTED" # The bundle identifier of your app

team_id "REDACTED"  # Developer Portal Team ID

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

fastlane gems

Gem
Version
Update-Status

fastlane
2.216.0
✅ Up-To-Date

Loaded fastlane plugins:

Plugin
Version
Update-Status

fastlane-plugin-doximity_xcode_installer
0.2.0
💥 Check failed

fastlane-plugin-firebase_app_distribution
0.7.3
✅ Up-To-Date

fastlane-plugin-bugsnag
2.3.0
✅ Up-To-Date

Loaded gems

Gem
Version

error_highlight
0.3.0

did_you_mean
1.6.1

bundler
2.4.19

pathname
0.2.0

rake
13.0.6

rexml
3.2.6

CFPropertyList
3.0.6

public_suffix
5.0.3

addressable
2.8.5

artifactory
3.0.15

atomos
0.1.3

aws-eventstream
1.2.0

aws-partitions
1.828.0

aws-sigv4
1.6.0

jmespath
1.6.2

aws-sdk-core
3.183.1

aws-sdk-kms
1.71.0

aws-sdk-s3
1.136.0

babosa
1.0.4

claide
1.1.0

climate_control
0.2.0

colored
1.2

colored2
3.1.2

highline
2.0.3

commander
4.6.0

declarative
0.0.20

digest-crc
0.6.5

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

dotenv
2.8.1

emoji_regex
3.2.3

excon
0.103.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

http-cookie
1.0.5

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.7

gh_inspector
1.1.3

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

mini_mime
1.1.5

trailblazer-option
0.1.2

uber
0.1.0

representable
3.2.0

retriable
3.1.2

webrick
1.8.1

google-apis-core
0.11.1

google-apis-androidpublisher_v3
0.50.0

google-apis-playcustomapp_v1
0.13.0

google-apis-iamcredentials_v1
0.17.0

google-apis-storage_v1
0.19.0

google-cloud-env
1.6.0

google-cloud-errors
1.3.1

google-cloud-core
1.6.0

google-cloud-storage
1.44.0

json
2.6.3

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.4.2

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

nanaimo
0.3.0

xcodeproj
1.23.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

rchardet
1.8.0

git
1.18.0

xml-simple
1.1.9

fastlane-plugin-bugsnag
2.3.0

options
2.3.2

progress_bar
1.3.3

terrapin
0.6.0

fastlane-plugin-doximity_xcode_installer
0.2.0

google-apis-firebaseappdistribution_v1
0.3.0

fastlane-plugin-firebase_app_distribution
0.7.3

table_print
1.5.7

generated on: 2023-09-26

In case this helps anybody else: given the changes in #21536 to force an error when altool exits prematurely, I'm able to implement an automatic retry in my CI configuration, which so far has always succeeded.
export DELIVER_ALTOOL_ADDITIONAL_UPLOAD_PARAMETERS="--verbose"
EXIT_CODE=0
bundle exec fastlane publish_testflight | tee build_logs/testflight_upload_output.log || EXIT_CODE=$?
ALTOOL_RETRY=$(grep "The call to the altool completed with a non-zero exit status: -1. This indicates a failure." build_logs/testflight_upload_output.log)
if [[ -n "$ALTOOL_RETRY" ]]; then
  EXIT_CODE=0
  bundle exec fastlane publish_testflight | tee build_logs/testflight_upload_output-retry.log || EXIT_CODE=$?
fi
exit $EXIT_CODE

Addendum: here's what the failure looks like when --verbose flag is added to altool command via DELIVER_ALTOOL_ADDITIONAL_UPLOAD_PARAMETERS:

[14:39:12]: -------------------
[14:39:12]: --- Step: pilot ---
[14:39:12]: -------------------
[14:39:12]: Creating authorization token for App Store Connect API
[14:39:12]: Ready to upload new build to TestFlight (App: REDACTED)...
[14:39:15]: Going to upload updated app to App Store Connect
[14:39:15]: This might take a few minutes. Please don't interrupt the script.
[14:40:38]: [altool] 2023-09-27 14:40:38.521 DEBUG: [ContentDelivery.Uploader] COMPLETED - PART 4 - 064d7cd6-0f87-41d3-b5ab-1c9be3c7f14c.ipa - eTag: "1CB469EC474939C3011FC7457809463F"

[14:40:38]: [altool] 2023-09-27 14:40:38.522 DEBUG: [ContentDelivery.Uploader] Removed temporary part file '/private/var/folders/6j/z_jm_fbd1rb44rx_9513tbk40000gn/T/com.apple.cds.vbtx/com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5/Part-4.tmp'.

[14:40:38]: [altool] 2023-09-27 14:40:38.523 DEBUG: [ContentDelivery.Uploader] Saving uploader state (CDUploaderStateCreateAssetChunksForUpload) for identifier 'com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5'.

[14:40:38]: [altool] 2023-09-27 14:40:38.527 DEBUG: [ContentDelivery.Uploader] There are 30 parts remaining to upload.

[14:40:38]: [altool] 2023-09-27 14:40:38.528 DEBUG: [ContentDelivery.Uploader] Uploading part 5 COMPLETE.

[14:40:38]: [altool] 2023-09-27 14:40:38.529 DEBUG: [ContentDelivery.Uploader] COMPLETED - PART 5 - 064d7cd6-0f87-41d3-b5ab-1c9be3c7f14c.ipa - eTag: "C04838C4F7F8938002CC1F499C652E69"

[14:40:38]: [altool] 2023-09-27 14:40:38.530 DEBUG: [ContentDelivery.Uploader] Removed temporary part file '/private/var/folders/6j/z_jm_fbd1rb44rx_9513tbk40000gn/T/com.apple.cds.vbtx/com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5/Part-5.tmp'.

[14:40:38]: [altool] 2023-09-27 14:40:38.531 DEBUG: [ContentDelivery.Uploader] Adding upload task 23 for part 18.

[14:40:38]: [altool] 2023-09-27 14:40:38.532 DEBUG: [ContentDelivery.Uploader] Saving uploader state (CDUploaderStateCreateAssetChunksForUpload) for identifier 'com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5'.

[14:40:38]: [altool] 2023-09-27 14:40:38.533 DEBUG: [ContentDelivery.Uploader] Saving uploader state (CDUploaderStateCreateAssetChunksForUpload) for identifier 'com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5'.

[14:40:38]: [altool] 2023-09-27 14:40:38.544 DEBUG: [ContentDelivery.Uploader] There are 29 parts remaining to upload.

[14:40:38]: [altool] 2023-09-27 14:40:38.548 DEBUG: [ContentDelivery.Uploader] PROGRESS - PART 10 (5242880) - '064d7cd6-0f87-41d3-b5ab-1c9be3c7f14c.ipa' 100.00% (5242880/5242880)

[14:40:38]: [altool] 2023-09-27 14:40:38.551 DEBUG: [ContentDelivery.Uploader] PROGRESS - PART 11 (5242880) - '064d7cd6-0f87-41d3-b5ab-1c9be3c7f14c.ipa' 100.00% (5242880/5242880)

[14:40:38]: [altool] 2023-09-27 14:40:38.552 DEBUG: [ContentDelivery.Uploader] Wrote part 19 to a temp file '/private/var/folders/6j/z_jm_fbd1rb44rx_9513tbk40000gn/T/com.apple.cds.vbtx/com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5/Part-19.tmp'.

[14:40:38]: [altool] 2023-09-27 14:40:38.563 DEBUG: [ContentDelivery.Uploader] Adding upload task 24 for part 19.

[14:40:38]: [altool] 2023-09-27 14:40:38.564 DEBUG: [ContentDelivery.Uploader] Uploading part 6 COMPLETE.

[14:40:38]: [altool] 2023-09-27 14:40:38.565 DEBUG: [ContentDelivery.Uploader] COMPLETED - PART 6 - 064d7cd6-0f87-41d3-b5ab-1c9be3c7f14c.ipa - eTag: "DCA3EDF7341A8534E582AAB981C76952"

[14:40:38]: [altool] 2023-09-27 14:40:38.566 DEBUG: [ContentDelivery.Uploader] Saving uploader state (CDUploaderStateCreateAssetChunksForUpload) for identifier 'com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5'.

[14:40:38]: [altool] 2023-09-27 14:40:38.567 DEBUG: [ContentDelivery.Uploader] Removed temporary part file '/private/var/folders/6j/z_jm_fbd1rb44rx_9513tbk40000gn/T/com.apple.cds.vbtx/com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5/Part-6.tmp'.

[14:40:38]: [altool] 2023-09-27 14:40:38.568 DEBUG: [ContentDelivery.Uploader] Saving uploader state (CDUploaderStateCreateAssetChunksForUpload) for identifier 'com.apple.cds_795CE584-24D6-4C25-974B-5FEB5E4E5AB5'.

[14:40:38]: Application Loader output above ^
[14:40:38]: The call to the altool completed with a non-zero exit status: -1. This indicates a failure.
[14:40:38]: Could not download/upload from App Store Connect!

It appears to...just quit, with no obvious error messaging, in the middle of the upload process. 😕
This makes me think about some kind of timeout threshold being exceeded on the command, but it's not obvious to me how to configure any sort of timeout via Fastlane.Pty so I'm not quite sure how to test this theory.
I notice there is a hardcoded value of 100000 being passed as an upload speed throttle to the altool upload command: https://github.com/fastlane/fastlane/blob/master/fastlane_core/lib/fastlane_core/itunes_transporter.rb#L288
I'm not sure what removing or altering that arg would do, but 100000 Kbps / 100 Mbps as a throttle doesn't seem like it should seriously impede the upload progress of a (in my case) 178 MB .ipa.

In case this helps anybody else: given the changes in #21536 to force an error when altool exits prematurely, I'm able to implement an automatic retry in my CI configuration, which so far has always succeeded.
export DELIVER_ALTOOL_ADDITIONAL_UPLOAD_PARAMETERS="--verbose"
EXIT_CODE=0
bundle exec fastlane publish_testflight | tee build_logs/testflight_upload_output.log || EXIT_CODE=$?
ALTOOL_RETRY=$(grep "The call to the altool completed with a non-zero exit status: -1. This indicates a failure." build_logs/testflight_upload_output.log)
if [[ -n "$ALTOOL_RETRY" ]]; then
  EXIT_CODE=0
  bundle exec fastlane publish_testflight | tee build_logs/testflight_upload_output-retry.log || EXIT_CODE=$?
fi
exit $EXIT_CODE

@TheMetalCode Unfortunately, it doesn't help me. After the retry I still get the same error " The call to the altool completed with a non-zero exit status: -1. This indicates a failure" .

Hello, I have the same problem on 2.216.0.

In case this helps anybody else: given the changes in #21536 to force an error when altool exits prematurely, I'm able to implement an automatic retry in my CI configuration, which so far has always succeeded.
export DELIVER_ALTOOL_ADDITIONAL_UPLOAD_PARAMETERS="--verbose"
EXIT_CODE=0
bundle exec fastlane publish_testflight | tee build_logs/testflight_upload_output.log || EXIT_CODE=$?
ALTOOL_RETRY=$(grep "The call to the altool completed with a non-zero exit status: -1. This indicates a failure." build_logs/testflight_upload_output.log)
if [[ -n "$ALTOOL_RETRY" ]]; then
  EXIT_CODE=0
  bundle exec fastlane publish_testflight | tee build_logs/testflight_upload_output-retry.log || EXIT_CODE=$?
fi
exit $EXIT_CODE

@TheMetalCode Unfortunately, it doesn't help me. After the retry I still get the same error " The call to the altool completed with a non-zero exit status: -1. This indicates a failure" .

This occurred on one of my builds this morning where even with an automatic retry it still failed with two -1 exit codes. I was able to rerun the CI job itself and it succeeded then. So whatever is going on with this altool failure, it does seem to eventually succeed if you retry enough times.

I've started seeing this on IPA just ~180MB. Seems to have started either last Friday (13th 🙈) and/or after moving to Xcode 15. Anyone have any ideas on what is causing this? Because it sounds like the fix here would mean it still errors, but just doesn't crash. 🤔

Update: while I don't see anything in the release notes that would implicate this issue, I've stopped seeing altool uploads crash since upgrading to Xcode 15.0.1.
https://github.com/fastlane/fastlane/pull/21618 includes enhancements to the underlying FastlanePty code and should ensure that a nil exit status is never returned.
https://github.com/fastlane/fastlane/pull/21536 has been adjusted as a result, but still implements a specific error message when an altool crash is suspected.

We've seen it a few times in Xcode 15.0.1 still but it seems to lend to the argument it was a bad response from the server which was fixed around the same time.
Really nice to see these fixes though, thanks for sharing the links. 🙂


Nice work! Any plans to support Azure CosmosDB (DocumentDB)?

Nice work! Any plans to support Azure CosmosDB?

We'd love help from an interested party on this. I'll change the title of this issue so we can track progress here.


Support configuration file for #213

As written, #213 has a few ideas in it:

Support reading from an optional config file (the example provided is in YAML) to supplement command line arguments
Support locking/ignoring the version of specific dependencies
Supporting reading optional config files in nested directories

Optional Config file
I think I've supported the first point here with a JSON file named .dotnet-outdated.json in the current directory.
Supporting other formats could be done, but this was the easiest way I could find to approach it -- more discussion on that below.
The config file supports all command line options (not Path, which is not an option) using camel/Pascal cased names to the kebab-case long forms of the command line arguments, e.g. here's one specifying all of them:
{
  "includeAutoReferences": true,
  "prerelease": "always",
  "VersionLock": "Minor",
  "transitive": true,
  "transitiveDepth": 3,
  "upgrade": "prompt",
  "failOnUpdates": true,
  "include": ["aaa", "bbb"],
  "exclude": ["ccc", "ddd"],
  "outputFilename": "output.txt",
  "outputFileFormat": "MARKDOWN",
  "olderThanDays": 5,
  "noRestore": true,
  "recursive": true,
  "ignoreFailedSources": true
}

The file is read in, and arguments are generated and prepended to the arguments coming from the command line, similar to how it is done in npm-check-updates.
If there is a problem with reading the file, it writes it to output along with a message that the config file will be ignored.
If the file does not exist, nothing happens and the program executes as normal.
Known issue: Console output
Since reading the configuration file needs to occur before the OnExecute is run to play nice with the McMaster CommandLineUtils argument/option handling, I couldn't find a way to use the same console writing methods that appear to dynamically change the current line's output as various steps are completed. Instead, the output is written, and remains there.
Known issue: Option conflicts
Specifying an option that is only allowed to have one value (--pre-release, --version-lock, --transitive-depth, --output, --output-format, --older-than are marked with CommandOptionType.SingleValue) will throw an exception during argument parsing if it specified in both the config file and via the command line.
This is a pre-existing issue on the command line too, and it is reproducible by passing one of these options twice, e.g. dotnet outdated --pre-release:always --pre-release:always.
It might be possible to detect this in the configuration vs command line conflict case and choose one over the other, but I think failing in this scenario is actually better since it means there is an inconsistency that should be addressed before continuing.
Of course, I'm open to other thoughts on the topic too.
Other formats
Obviously, supporting a YAML file (or another format) would require more work.
I looked into supporting the config file via the .NET Configuration providers, but I found it somewhat difficult to get it to play nicely with the existing McMaster CommandLineUtils. Of course, I'd be happy to hear suggestions on how to do it.
If we could use that instead, it's likely that we could fairly easily support JSON, YAML, XML, and INI, if that is of interest.
Locking/ignoring versions for specific dependencies
This is a separate issue that I have not addressed. It might be possible to extend the existing --version-lock option to specify it at a package/string-match level (akin to the --include and --exclude options), but I have not looked into what would need to change to do this.
EDIT: Actually, it looks like this is also discussed in #106.
Config files in nested directories
This could likely be addressed without too much more effort once the config file is supported.

Rebased to fix conflicts

I think we need something more comprehensive than this. In my own usage of this tool for the CoreWCF project, I have to run dotnet-outdated multiple times for different version lock rules based on the packages. Ideally a single config file could specify a list of includes and excludes for each version lock level. I'd like to just run dotnet outdated once providing using the config file rather than multiple times.


Richt text in json

Hello,
I am trying to get richt text back from XLSX.utils.sheet_to_json
This works and shows words bold etc.

          var htmlstr = XLSX.write(workbook, {
            sheet: sheet,
            type: 'string',
            bookType: 'html',
          });

          vm.$refs.spreadsheet.innerHTML += htmlstr;

This doesn't work and returns just the text without bold elements, playing with raw settings does not seem to help either.

        var result = {};
        workbook.SheetNames.forEach(function(sheetName) {
          result = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {
            header: 1,
            raw: true,
          });

        });

        console.log(result);

This is part of our Pro offering, see https://sheetjs.com/pro for more info


[Feature]: ODC support display JSON type

Is your feature request related to a problem?
When selecting a field type for a new table, the json type cannot be selected

It is hoped that ODC can provide comprehensive support for the json type.
Describe the solution you'd like
When creating a table, you can choose the json type, and the json type will display normally when querying/editing/exporting data
Additional context
No response

this issue has been fixed now


fix: stricter linting across repo

What it solves
Lax linting/prettier
How this PR fixes it
The whole project is now checked for lint and automatically prettified. The linting rules were made stricter.
We should ideally remove '@typescript-eslint/no-explicit-any' as well as enable the default React linter but this resurrected >100 warnings of non/false-typed code and typing this manually started to get out of hand. I have a local stash of this locally but it became quickly apparent that this would like cause bugs/require a full regression.
For now, the added rules and project-wide scanning should improve our committed code.
How to test it

Commit unformatted code and see it get automatically 'prettified'
Attempt to commit code that goes against our rules and observe a warning that prevents pushing

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 35.575%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3541

Relevant Lines:
9005

💛  - Coveralls

I'm going to directly merge this as it's purely dev relevant.


How can I use the MultipleRangeSlider as an Angular Directive

Thanks for providing the project .  Recently, I have had success using the jQuery Slider within Angular using the Directive,  as such using a resource found here  http://stackoverflow.com/questions/25550379/convert-jquery-ui-slider-widget-to-angularjs-directive
Do you have any implementation for AngularJs?
Cheers,

Hi. Sorry, I do not have any plugin for angular nor for react/ember/etc.
I would be glad, if you make some :)


Freeze pyspark to 3.0.2

Tests fail with pumped up pyspark version (3.1.1).
Failed build: https://app.circleci.com/pipelines/github/georgia-tech-db/eva/63/workflows/6772c302-75e8-49d7-a799-054030414d93/jobs/64
Successful build: https://app.circleci.com/pipelines/github/georgia-tech-db/eva/61/workflows/760c47f8-f793-4308-b063-5decb17e6435/jobs/61

I ended up making the change on my branch #138, do you think we would still need this?


[AutoDiff] Fix subset parameters thunk linkage.

Use shared linkage to prevent duplicate symbol error for thunks.

Todo: add a test involving multiple Swift source files (i.e. SIL modules).
Patching ASAP to unblock swift test for swift-apis, which fails with a duplicate symbol linker error as of https://github.com/tensorflow/swift-apis/commit/76f5ee6e520dc6cc973119efbf676cda1b801a13:
duplicate symbol _AD__orig_$s10TensorFlow0A0VAASjRzrlE1moiyACyxGAE_AEtFZ_$s10TensorFlow0A0VyxGA2DXMtA4DIegggo_Iegggyoo_A3DXMtA3DIeggo_Iegggyoo_AA0aB13FloatingPointRzlTR_src_0_wrt_0_jvp_thunk in:
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Layer.swift.o
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Loss.swift.o
duplicate symbol _AD__orig_$s10TensorFlow0A0VAASjRzrlE1moiyACyxGAE_AEtFZ_$s10TensorFlow0A0VyxGA2DXMtA4DIeggoo_Iegggyoo_A3DXMtA3DIeggo_Iegggyoo_AA0aB13FloatingPointRzlTR_src_0_wrt_0_vjp_thunk in:
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Layer.swift.o
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Loss.swift.o
ld: 2 duplicate symbols for architecture x86_64
error: link command failed with exit code 1 (use -v to see invocation)
[0/1] Linking DeepLearningPackageTests

cc @Shashi456: this patch should fix the duplicate symbol linker error when running swift test on swift-apis.
Building a toolchain to test locally now. I plan to add a test/AutoDiff test later.

@swift-ci Please test tensorflow

Thanks for letting me know! @dan-zheng on some completely different note, why do we not have swift-ci on swift-apis? I don't mind the workflow we have now, but it would definitely be convenient to have one on the repo.

@dan-zheng on some completely different note, why do we not have swift-ci on swift-apis? I don't mind the workflow we have now, but it would definitely be convenient to have one on the repo.

The team hasn't prioritized setting up CI on swift-apis yet, but CI is increasingly important as we continue to move TensorFlow library code from apple/swift to swift-apis. I imagine we'll add swift-apis CI within a month.

Merging. The only test failure (IDE/complete_tf_195.swift) is unrelated and known.

It turns out this patch did not fix the linker issue:
duplicate symbol _AD__orig_$s10TensorFlow0A0VAASjRzrlE1moiyACyxGAE_AEtFZ_$s10TensorFlow0A0VyxGA2DXMtA4DIegggo_Iegggyoo_A3DXMtA3DIeggo_Iegggyoo_AA0aB13FloatingPointRzlTR_src_0_wrt_0_jvp_thunk in:
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Layer.swift.o
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Loss.swift.o
duplicate symbol _AD__orig_$s10TensorFlow0A0VAASjRzrlE1moiyACyxGAE_AEtFZ_$s10TensorFlow0A0VyxGA2DXMtA4DIeggoo_Iegggyoo_A3DXMtA3DIeggo_Iegggyoo_AA0aB13FloatingPointRzlTR_src_0_wrt_0_vjp_thunk in:
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Layer.swift.o
    /Users/danielzheng/swift-apis/.build/x86_64-apple-macosx/debug/DeepLearning.build/Loss.swift.o
ld: 2 duplicate symbols for architecture x86_64

I'll continue debugging soon.


add keepalived resources, specs, tests, and docs, and modularize recipes

[x] add resources
[x] add provider
[x] modularize recipes
[x] add attribute-or-resource-driven-configuration-switch attribute
[x] changelog update
[x] version bump
[x] specs for new resources
[x] specs for new recipes
[x] test suite(s) for new resources
[x] test suites for attr-driven config
[x] documentation update

Alright, this is ready for review. Apologies for the monstrous PR, it all just kinda hung together once the groundwork was in place...
This should be 100% backwards-compatible, though :cake:. It's set up to let users opt into the new configuration via the node['keepalived']['use_attributes'] attribute, which defaults to current functionality, but, if disabled, the configure recipe will set up an include in keepalive.conf to load resource-generated configs.

@nathwill Thanks for taking this one on. I'm looking forward to the review and seeing this move to a nice composable resource driven design.

@tas50 :+1: me too! i just updated the docs to reference the upstream source doc directory, since it seems to be a good deal more complete than the man pages or docs on the official site, and added in the vrrp_script resource (super important!), which for some reason is missing from all of the man pages i read, but was included in the upstream synopsis doc. i also backfilled the specs and property documentation for the directives that were in the upstream docs, so i'm like 95% sure at this point that we've got good, complete coverage.

test failure looks like a stalled build on travis, this passed locally

@tas50 anything else you need here before it's ready for review?

Property is the new hotness, but it might give you some namespacing issues so be careful.

it might give you some namespacing issues so be careful.

i'm dying laughing over here... i was told to avoid LWRPBase due to namespacing issues at the same time i was told property's the new preference for this stuff... apparently there is no solution that isn't fraught with peril? >__<. Chef, what hast thou wrought!?!?

I moved over to the sweet new 12.5 resources and everything was great until the namespace stuff caused me grief.  Namespacing is hard apparently.  BTW: I will have a real review for you soon.  I've been buried in AWS land for a while.

okey doke, sounds good; this is obviously a fairly significant change, so i wasn't expecting overnight sign-off,and the pause has given me enough time to look back over it and make a few minor improvements :smile:.
btw, i didn't know what to do about the keepalived_test cookbook. it looks like at some point in the past it was intended to exercise the attribute-driven config, but was unused on master when i started on the resource stuff. i added some integration tests for the keepalived cookbook's default behavior, since there weren't any, but if we want to exercise more of the attr-driven behavior via that cookbook, i'm happy to help tackle that (maybe via a second PR once this is merged).

any update @tas50 ?

So in general I'm trusting your knowledge of keepalived since I've never used it.  I'm sure that part is all fantastic.  The only real feedback is I have is more of a question.  Is there a reason to use the use_attributes attribute?  It seems like the previous attribute only implementation was limiting to the point that most people would probably fork this cookbook. We should just break compatibility with a major version number and make it a resource only cookbook.  It gives a consistent interface that is inline with our other resource only cookbooks. Setting an attribute to use resources is a bit odd.

@tas50 sure, i'm 100% OK with that (and agree attributes are extremely limiting), I just wanted to provide backwards compatibility by default since this isn't my cookbook and it was pretty easy to do. If you prefer to flip 100% to resource-driven, I can update this accordingly.

Break the world.  It's worth it for the proper design

:+1: sounds great, i'll tear out the old code and make sure this is still in shape then.

I'm trusting your knowledge of keepalived since I've never used it

i've no idea what the policies are around this kind of thing, but fwiw, i'd be happy to help maintain this cookbook going forward; we use keepalived extensively, so i've no intention of this being a drive-by overhaul and then forgetting about it :D

@nathwill I was going to ask you if you wanted to be a maintainer on this. I'll get that setup.

@tas50 great, thanks! i did a bunch of cleanup on the code to pull out the old attribute-driven stuff; i want to make another sweep through the readme and add some more verbose documentation, but after that i think this is ready to go!


[BUG] Import-PnPTermGroupFromXml generating the error "Import-PnPTermGroupFromXml Template is not valid"

Reporting an Issue or Missing Feature
Reporting an Issue
Expected behavior
Term Store term group being updated/imported by Import-PnPTermGroupFromXml.
Actual behavior
Import-PnPTermGroupFromXml generating the error "Import-PnPTermGroupFromXml Template is not valid" to every Provisioning Schema before 2022-09.
<pnp:TermGroups xmlns:pnp="http://schemas.dev.office.com/PnP/2022/09/ProvisioningSchema">
It does not matter if you use the provisioning full line or not.
Steps to reproduce behavior
Just try to import a term store XML with Import-PnPTermGroupFromXml with any Provisioning Schema prior to 2022-09
<pnp:TermGroups xmlns:pnp="http://schemas.dev.office.com/PnP/2022/09/ProvisioningSchema">
The line above is the only one that works.
What is the version of the Cmdlet module you are running?
PnP.PowerShell 1.12.0
Which operating system/environment are you running PnP PowerShell on?

[X] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[X] Other : PowerShell 7.3.2

@rtorres-br - this is by design. It is not a bug. The cmdlet always require you to use the latest schema to update the terms.


Hello, is wow.js free to use for  sites witch i make for my clients

Commercial license
If you want to use WOW.js to develop commercial sites, themes, projects, and applications, the Commercial license is the appropriate license. With this option, your source code is kept proprietary. Purchase a WOW.js Commercial License at uplabs.com/posts/wow-js-commercial
Open source license
If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use this project under the terms of the GPLv3.

@Codingba No.


Xamarin mac support + refactoring

This PR brings the following features to xamarin-builder step:

Xamarin.Mac projects support
F# projects support
New approach of project type detection: use project type guids instead of referenced libraries

Thanks, looks fantastic - @birmacher will review & test this after Evolve! ;)

I'll try to do the review now, wish me luck! I'm fighting with the WIFI on the plane 🤓

@olegoid Thanks for the PR! 🎉
I've added two comments above, please check them if you have time.
I'll do a couple of local testing a bit later and after everything looks cool we can move the PR to this repository: https://github.com/bitrise-io/xamarin-builder
This is the common repo for the xamarin projects.

Hi @olegoid !
Thanks for the contribution!
Xamarin.Mac projects support solved in v1.3.0


df: memory: Dispatch operations without inputs as soon as DataFlow begins

We may have operations which need to be kicked off as soon as a dataflow starts, a good example would be something which is waiting for a message in a gitter channel, and the output it the message. This operation likely has no need for an input, it just returns the first message it sees. We'd want it to start waiting as soon as the dataflow started.

what types of operations need ?

@us Check out https://intel.github.io/dffml/master/tutorials/operations.html, an "operation" is a  DFFML term for anything that does work within a DataFlow. The purpose of this issues is to modify dffml/df/memory.py to make it so that if an operation takes no inputs, then it gets started when the dataflow starts.
This is where the orchestrator dispatches operations for running (they run whenever the event loop is free)
https://github.com/intel/dffml/blob/ad18dcc35c2b709d811cea6bd897e7868fec664d/dffml/df/memory.py#L1366-L1393
To fix this issue, it probably makes sense to add code around here
https://github.com/intel/dffml/blob/ad18dcc35c2b709d811cea6bd897e7868fec664d/dffml/df/memory.py#L1313-L1323
which does similar dispatching, but only for operations which have no inputs.
A test will also be necessary. tests/test_df.py for the Orchestrator might be a good place to copy from.


Consider using traits instead of NumericSexp and NumericScalar

I saw you added these 2 types which are structs that hold other Sexp types. This issue is just a suggestion of what I think would be a cleaner and more mantainable code.
So instead of using for example NumericScalar struct, I think you could use a Scalar trait.
trait Scalar<T> {
    fn as_scalar(self) -> savvy::Result<T>;
}

impl Scalar<i32> for Sexp {
    fn as_scalar(self) -> savvy::Result<i32> {
        match self.into_typed() {
            TypedSexp::Integer(integer_sexp) if integer_sexp.len() == 1 => {
                Ok(integer_sexp.as_slice()[0])
            }
            _ => {
                let err = "Argument must be an integer of length 1.".to_string();
                Err(err.into())
            }
        }
    }
}

impl Scalar<f64> for Sexp {
    fn as_scalar(self) -> savvy::Result<f64> {
        match self.into_typed() {
            TypedSexp::Real(real_sexp) if real_sexp.len() == 1 => Ok(real_sexp.as_slice()[0]),
            _ => {
                let err = "Argument must be a double of length 1.".to_string();
                Err(err.into())
            }
        }
    }
}

impl Scalar<bool> for Sexp {
    fn as_scalar(self) -> savvy::Result<bool> {
        match self.into_typed() {
            TypedSexp::Logical(logical_sexp) if logical_sexp.len() == 1 => {
                Ok(logical_sexp.as_slice_raw()[0] == 1)
            }
            _ => {
                let err = "Argument must be a logical of length 1.".to_string();
                Err(err.into())
            }
        }
    }
}

And I think the same could be done for NumericSexp.
So instead of making the user use these structs as types in the code, they would do the following when needed to retrieve a scalar from R:
   fn fff(a: Sexp) -> savvy::Result<()> {
        let a: i32 = a.as_scalar()?;
        ...
   }

This is just a suggestion. Let me know if you like it so I can make a draft to show you.

Yeah, I know it's a choice and what the majority of people think the Rusty way. But, on the other hand, it makes it extremely difficult to do static analysis and proc macro, which are the core parts of Savvy. So, I think I will never implement this unless some feature is provided by Rust.

Could you elaborate a little further on this static analysis and proc macro stuff? I am having a hard time understanding how having a static type is advantageous here since you implement for these new types basically the same functions that you already have in Sexp.


useList actions should have access to prevItem and possibly prevList

Is your feature request related to a problem? Please describe.
update action from useList doesn't have explicit access to previous item or previous list.
const [list, actions] = useList<number>([1, 2, 3])

<button onClick={() => actions.update(
    (a) => a % 2 === 1,
    42 // What to do here?
)}>Double The Odds</button>

Current signature of update leaves no choice but to access original list directly which might cause a problem with update batching.
Describe the solution you'd like
update should have access to prevItem and possibly prevItemIndex and prevList.
<button onClick={() => actions.update(
    (a) => a % 2 === 1,
    (prevItem, prevItemIndex, prevList) => prevItem * 2
)}>Double The Odds</button>

Describe alternatives you've considered
actions.set has access to prevList so it's an alternative. It requires nested map and possibly defeats the purpose of having update action in the first place. actions.set combined with Array.map covers the same use cases (and maybe even looks nicer?)
<button onClick={() => actions.set(prevList => prevList.map(v =>
    v % 2 === 1 ? v * 2 : v
))}>Double The Odds</button>

if each element of list is a function,how to distinguish the second param of update is it's new value or a callback function which will return new value? useList hook doesn't limit T, so this is not impossible.


Issue-16

Bugfix for error message 'Modifying state during view update, this will cause undefined behavior'.

Hey @svetzhelevm, thank you or your work. However, are you sure this fix won't change the behaviour? configure function not only sets uiScrollView's value but also sets up some callbacks. Could you please see if there's a way to narrow down the cause of the error message and only limit that, not the whole configure call? Or I can see to that once I have time

Hey @svetzhelevm, thank you for your work. However, are you sure this fix won't change the behaviour? configure function not only sets uiScrollView's value but also sets up some callbacks. Could you please see if there's a way to narrow down the cause of the error message and only limit that, not the whole configure call? Or I can see to that once I have time

I do not think it will as you only set the scrollview once and configure it once per instance. Or I am wrong?

Can someone approve this fix please? I see this run time error all the time.

@ahbou Please check out version 0.1.0, should be fixed there, have a great day!


Eliminate HttpServletRequest#getContentLength

to allow correct progress report for 2Gb+ files
FIXME: PortletRequestContext needs fixing (it is unchanged, so 2Gb+ uplaod in portlet is not yet correctly reported)

Notice that it will break binary compatibility that not always acceptable


Add SkyWalking.NetworkProtocol project

Required : .NET Core SDK

@wu-sheng This is my first pr, it just adds protos and agenerate csharp files. I will continue to design the structure of APMCore.

Others look good to me.

Another suggestion is: Update README.md to guide interested prople to join our gitter? and License, related project, etc.
All these to help people know that, we are actually building SkyWalking-C# agent.


[Feature] Expose function determine node should not move to marked disable node

It's nice to have a function like this
shouldMoveNode = (nextNode, prevNode) => {
    return nextNode.node.is_enable ? true : false;
};

What information is inside prevNode?
Does this get called while dragging?
Does this get called right before dropping?

Making some assumptions here, but:
The node itself should remain unchanged, but its parents (and path) will change. I'm pretty confident I could give info on this stuff for a shouldMoveNode API:
draggedNode // The node being moved

prevPath // the previous (current) location in the tree of the node
prevParentNode // the previous (current) parent node

nextPath // The potential next location in the tree of the node
nextParentNode // The potential next parent of the node

The behaviour of this API is the same as prevent the node being moved into deeper in the tree provide by the maxDepth options. I have found that involved with canDrop inside drag-and-drop-utils.js.
The shouldMoveNode being invoked during the node move should provide helpful information and we could have more flexible option moving nodes around.
Thank you for excellent tree component that hard to be found on the internet.

I like the idea with prevPath / nextPath. May be useful.

This would be critical for my (probably unusual) application, I actually need to make an ajax call to the server to ensure the move doesn't violate a myriad of business rules before it's allowed to proceed.
One basic example of a rule is to make sure no "siblings" will have duplicate titles after the move proceeds.  Others would be based on the business data associated with each node, spanning multiple tables in the DB, which explains the need for an ajax call.
So for us this would need to be called right after dropping as the check depends both on what node is being moved and where it's being moved to.  Wouldn't want it to be disabled afterwards either as the user often will update their data to allow it to work the next time.

I just released the canDrop API with version 0.1.13. I think this should help you do what you're trying to do.


Ensure consistent formatting and commenting

Ensure all code has consistent formatting (front-end and back-end) and that all methods/classes are documented.

the html, css, and javascript files have been commented

Realized some of our Scala classes are not properly documented yet (I'm looking at you, ResumeSummarizer)


Remove DataObject default sort

After discussion on StackOverflow Dan suggested I raise this on github...
I there is a default_sort for MyDataObject, I would expect MyDataObject::get()->sort(null) to clear it for this "get" - but it doesn't.  Instead messing with the underlying DataQuery is required...
$dq = MyDataObject::get()->dataQuery();
$dq->sort(null, null, true);
... = MyDataObject::get()->setDataQuery($dq);

Full discussion at http://stackoverflow.com/questions/38993709/remove-dataobject-default-sort

Marking this as change/minor as this fix wouldn't be able to be dropped into an app to get improved functionality — it's best presented as a new feature on a minor branch.

I propose that $list->sort(null) un-sets the sort for the list at the moment it does nothing (I think)

If we consider sort() as a setter, then that makes sense. But if we consider sort() as a verb, then I'm not sure it does. It feels counter-intuitive to me, what's the use case for not declaring what to sort by?
If it's for users who don't know the default behaviour; does it make sense to support users that don't know what the unaltered sort values would be?

This appears to have been done at some point?
https://github.com/silverstripe/silverstripe-framework/blob/5/src/ORM/DataList.php#L358


Phase out icon font and use SVG everywhere

In https://github.com/wagtail/wagtail/pull/4821 the menu font icons are replaced with SVG icons. It is a nice start. In this issue an overview of work to be done to have SVG icons everywhere.
We choose to switch to SVG icons for accessibility (title attr and aria labels). But SVG icons are also easier to maintain, customise and extend. All icons are all-ready converted to SVG. We need to dorp the icon font reference (CSS) and use the SVG icon like this:
{% load wagtailadmin_tags %}
{% icon name="rocket" classname="..." title="Launch" %}

The intention is to drop Wagtail font icon and CSS from future Wagtail releases. We need to decide what is needed for a proper deprecation process.
Priority

[x] Images in rich text have oversized image icon (SVG regression) #6142
[x] Menu icon positioning https://github.com/wagtail/wagtail/issues/6297 Will be solved by switching to SVG.
[ ] #7511

Icon font usage that needs to be refactored

[x] Header icons
Images
 https://github.com/wagtail/wagtail/pull/6121
[x] Messages framework messages messages success https://github.com/wagtail/wagtail/pull/6124
[x] Button plus button bicolor icon icon-plus #6151
[x] Dropdown buttons dropdown-toggle icon icon-arrow-down  #6151
[x] More buttons o-icon  c-dropdown__toggle  [ icon icon-arrow-down  #6151
[x] Wagtail user bar and menu items wagtail-icon wagtail-icon-wagtail https://github.com/wagtail/wagtail/pull/6125
[x] MenuItems (including ModelAdminMenuItem and GroupMenuItem) #6402
[x] Help text help-block help-critical @Scotchester #6457
[x] Breadcrumb (home icon) #6438 @allcaps
[x] Pagination, previous and next chevrons @Scotchester #6573
[x] SearchAreas API @thibaudcolas #6493
[x] Settings menu item @thibaudcolas #6649
[x] All choosers .page-chooser .unchosen:before @Stormheg
[x] StreamField buttons #7565
[x] Spinner @stevedya
[ ] Error messages (cross)
[ ] ModelAdmin ButtonHelper

Implementation idea: Add icon property to ButtonHelper that, if present, will output the SVG in the ModelAdmin button template.

[ ] ModelAdmin PageChoiceField hierarchy arrows

Implementation idea: Replace hard-coded icon font span with imported SVG icon.

[x] page_listing_buttons, Add child page

Implementation idea: Looks like this will require adding an icon property to the Button widget that, if present, will output the SVG in the rendered HTML.

Listings’ up and down ordering arrows

[ ] wagtailadmin_tags.py#L419
[ ] documents/list.html
[ ] wagtailsearchpromotions/list.html
[ ] wagtailredirects/list.html
[ ] tables/column_header.html
[ ] users/list.html
[ ] includes/result_list.html

[x] Login page user and password field icons
[ ] add_subpage.html Add subpage icons
[ ] history.html Edit this page link icon
[ ] Page reordering icon-grip for drag indicator
Page listings "Explore subpage" icons

[ ] _navigation_choose.html
[ ] _navigation_explore.html
[ ] _navigation_move.html

[ ] _page_title_explore.html Sites menu icon
[ ] workflows/index.html add
[ ] workflows/select_task_type.html add
[ ] workflows/task_index.html add
[ ] workflows/includes/workflow_pages_formset.html add
[ ] workflows/task_chooser/includes/select_task_type.html add
[ ] modeladmin/inspect.html Back button @vossisboss
[x] wagtailredirects/index.html Header icon
[x] documents/_file_field.html, images/_file_field.html source document/image link icons
[ ] wagtailimages/multiple/add.html add
[ ] wagtailusers/users/create.html "Go to next tab"

Will be fixed as part of slim sidebar rework

[x] Hamburger menu @allcaps Should this be a button? Currently a div.
[x] Search submit button @allcaps
[x] Main nav #footer. arrow down, account, logout
[x] Main nav menuitem, sub-menu item

Will be fixed as part of the page editor 2022 project

[x] Inputs .url_field .input:before
[] Datetimepicker icons https://github.com/wagtail/wagtail/blob/main/client/scss/overrides/_vendor.datetimepicker.scss
[] edit panels .title-wrapper:before Fish finger icons https://github.com/wagtail/wagtail/blob/main/wagtail/admin/static_src/wagtailadmin/scss/layouts/page-editor.scss
[x] Preview button icon
[x] Privacy switch button icons
[x] Privacy switch panel icons
[x] _locked_indicator.html locked icon
[ ] Dropdown button down arrow (_button_with_dropdown.html, locale_selector.html)

Additional icon font work

[x] Add utility CSS to make sizing and positioning easy for third party and custom works. https://github.com/wagtail/wagtail/issues/6142#issuecomment-643596671 -- #6189
[x] Sprite view + IE11 support, and cache ~~https://github.com/wagtail/wagtail/pull/6231~~ https://github.com/wagtail/wagtail/pull/6243
[x] Fix icon size in style guide #6189
[x] class_name or classname. https://github.com/wagtail/wagtail/pull/6125#discussion_r439176243
[x] Update wagtailfontawesome to use SVG OR provide a new drop-in replacement package.
I created a replacement package https://pypi.org/project/wagtail-font-awesome-svg/0.0.2/

Code cleanup

[ ] Remove mixin https://github.com/wagtail/wagtail/blob/main/client/scss/tools/_mixins.general.scss#L88
[ ] Remove variables https://github.com/wagtail/wagtail/blob/main/client/scss/settings/_variables.scss#L131
[ ] Remove unused code https://github.com/wagtail/wagtail/blob/main/client/scss/components/_chooser.scss#L36-L39

Documentation

[x] Add documentation https://github.com/wagtail/wagtail/pull/6028
[ ] Update the documentation on icon usage https://docs.wagtail.io/en/stable/advanced_topics/customisation/extending_draftail.html?highlight=icon#extending-the-draftail-editor

Deprecation process

[ ] Two-release deprecation process if at all possible.

[ ] Remove any FontAwesome specific workaround (fa-).
[ ] Remove wagtail icon font (we need it for backward compatibility. So deprecate and remove at major release).
[ ] Remove choosers styles referring to icon-font.

I'd propose to keep this issue as a meta issue to keep track of progress. Work can be done in separate issues and pull requests. To keep pull requests reviewable.

Wagtail userbar - wagtail/admin/templates/wagtailadmin/userbar/base.html
uses

Working on buttons with icons

@Scotchester @rinti and I have expressed some interest in trying to get the bulk of this done in time for Wagtail 2.11, scheduled for release on 2020-11-01. With the 2-week release candidate period, that leaves us until 2020-10-16 to tackle all of the icons changes, and the new documentation.
I’ve tagged us on the individual tasks we’re intending to do – if others want to pick up other tasks please let people know via a comment.
@allcaps how does that sound?

Heads’up for people working on this – we’re going to be reworking icons used in the page editor as part of #7739. I believe this includes all 3 items still unticked from the list above (edit panels, URL inputs, spinner).

I have just updated the list of what’s remaining based on a the work in #8054.

Now updated based on the implementation of page editor form styles in #8921.

Privacy indicator icon & locked indicator icon will be updated to use the new SVG icons via https://github.com/wagtail/wagtail/pull/8954
wagtail/admin/templates/wagtailadmin/pages/listing/_privacy_indicator.html
wagtail/admin/templates/wagtailadmin/pages/listing/_locked_indicator.html
Note: these are shown in page listings such as locked pages reports or dashboard listings.

Hi 👋🏼
I'm an Outreachy intern and I would love to work on this issue if it is still open for contribution. Thank you

Hi @NPDebs! There’s lots in here that can be picked up, though the tasks on this list are pretty advanced.
There are two tasks that we haven’t discussed and I think would make excellent additions for a newcomer to take on, if you’re keen:

Make it possible for us to preserve the xmlns attribute in our SVG files, but remove it when we process the files in Python.
Make it possible for us to preserve HTML comments in our SVG files, but remove them when we process the files in Python.

For the xmlns attribute
Take this file for example:
https://github.com/wagtail/wagtail/blob/main/wagtail/admin/templates/wagtailadmin/icons/ellipsis-v.svg
If we changed the first line to:
<svg xmlns="http://www.w3.org/2000/svg" id="icon-ellipsis-v" viewBox="0 0 192 512">

Then the file would be valid and previewable in lots of systems (Mac, Windows, GitHub).
The problem is we only want the attribute to be there in the stored file, but it needs to be removed when we load it in Wagtail in a browser. We’d need to change this code: https://github.com/wagtail/wagtail/blob/09a225730aedc7298902979a0a4bf210a03969fe/wagtail/admin/views/home.py#L300
I think we’d need to change this line to:
        for icon in all_icons:
            combined_icon_markup += render_to_string(icon).replace("svg", "symbol").replace('xmlns="http://www.w3.org/2000/svg"', "")

And then add xmlns="http://www.w3.org/2000/svg" to all our existing files. And that should be it?
For comments
The same file https://github.com/wagtail/wagtail/blob/main/wagtail/admin/templates/wagtailadmin/icons/ellipsis-v.svg, has a comment pointing out it comes from FontAwesome. I think those comments are very important for us to keep track of where icons come from, but they again shouldn’t be there when we load the file in the browser.
So again, we’d want to change the same code to find all such lines with comments, and remove them as part of loading the icons.

Tagging as Outreachy task now – @NPDebs please let us know whether you intend to take this on or would prefer to leave it to others.

Tagging as Outreachy task now – @NPDebs please let us know whether you intend to take this on or would prefer to leave it to others.

Hi @thibaudcolas 👋🏼
This seems pretty straightforward and beginner-friendly.
However, while waiting for a response, I got assigned to many issues from other organisations. I wouldn't want to delay the completion of this issue.
Please let someone else, e.g @vicky1312 have it. Thanks! 🙌🏼🚀

👍 thanks for letting us know! @vicky1312 go for it if you’re still interested – either of the tasks in https://github.com/wagtail/wagtail/issues/6107#issuecomment-1276245262

Alright @thibaudcolas I’ll work on it.

@thibaudcolas I would love to take this, but I need clarification on it. I saw some solutions online, and I want to confirm from you first before taking this up.
For svg icon files with comments, am I to add these lines of code?
<xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"/> in the tag? or is there another solution that would be much preferable?

@vicky1312 for this task I don’t think we need to make any changes to the SVG files. The comments are already in there, see for example ellipsis-v.svg. The only changes needed should be in the Python code, so we remove those existing comments.

Now that https://github.com/wagtail/wagtail/pull/8886 is merged, I would like to prepare a pull request that updates the icon classname usage from class_name to classname. See docs - https://docs.wagtail.org/en/latest/contributing/general_guidelines.html#use-classname-in-python-html-template-tag-variables
I will try to get this PR up soon but wanted to post here unless there are critical objections to this approach.
I propose that we include backwards compatibility of class_name (both can be used) up until 5.0 (even though icons are not official yet, they are pretty much a core API and commonly used by other projects).
Interestingly the top of this issue's description contains the example using the classname kwarg not class_name.
Example of current usage
https://github.com/wagtail/wagtail/blob/d2167ed705e9bb5c74ba84e027e00935cb833d58/wagtail/admin/templates/wagtailadmin/base.html#L16-L26
Files

https://github.com/wagtail/wagtail/blob/main/wagtail/admin/templates/wagtailadmin/shared/icon.html
https://github.com/wagtail/wagtail/blob/main/wagtail/admin/templatetags/wagtailadmin_tags.py#L671

Proposed approach

Support class_name but only when passed in, otherwise it will use the preferred classname
We could also

@register.inclusion_tag("wagtailadmin/shared/icon.html", takes_context=False)
def icon(name=None, classname="icon", title=None, wrapped=False, class_name=None):
    """
    Abstracts away the actual icon implementation.

    Usage:
        {% load wagtailadmin_tags %}
        ...
        {% icon name="cogs" classname="icon--red" title="Settings" %}

    :param name: the icon name/id, required (string)
    :param classname: default 'icon' (string)
    :param title: accessible label intended for screen readers (string)
    :return: Rendered template snippet (string)
    """
    if not name:
        raise ValueError("You must supply an icon name")

    if class_name:
        # just importing here for example - will move to actual imports if doing this
        from wagtail.utils.deprecation import RemovedInWagtail50Warning
        warn(
            "Icon template tag `class_name` has been renamed to `classname`, please adopt the new usage instead.",
            category=RemovedInWagtail50Warning,
            stacklevel=3,# ?? unused on this one
        )

    return {"name": name, "classname": class_name or classname, "title": title, "wrapped": wrapped}

PR up that implements the approach in the above comment - https://github.com/wagtail/wagtail/issues/6107#issuecomment-1325635281

https://github.com/wagtail/wagtail/pull/9769 - minimal change to ensure the template tag can support both approaches
https://github.com/wagtail/wagtail/pull/9770 - to complete the work, updating all usage to use classname and also adding deprecation warnings / upgrade considerations

For anyone interested in this, I’m looking for guidance again in #7511. As far as I can tell all remaining font icon usage in Wagtail can be converted to SVG icons, with the exception of the 5 used in the jQuery Datetimepicker (which we want to remove anyway, see #8056).
Here is a regex to help look for (font) icon usage:
^(?!.*<(svg|use)).*[^#.](icon-angle-double-left|icon-angle-double-right|icon-arrow-down|icon-arrow-down-big|icon-arrow-left|icon-arrow-right|icon-arrow-right-full|icon-arrow-up|icon-arrow-up-big|icon-arrows-up-down|icon-bars|icon-bin|icon-bold|icon-breadcrumb-expand|icon-calendar|icon-calendar-alt|icon-calendar-check|icon-chain-broken|icon-check|icon-chevron-down|icon-circle-check|icon-circle-plus|icon-circle-xmark|icon-clipboard-list|icon-code|icon-cog|icon-cogs|icon-collapse-down|icon-collapse-up|icon-comment|icon-comment-add|icon-comment-add-reversed|icon-copy|icon-cross|icon-crosshairs|icon-cut|icon-date|icon-desktop|icon-doc-empty|icon-doc-empty-inverse|icon-doc-full|icon-doc-full-inverse|icon-dots-horizontal|icon-dots-vertical|icon-download|icon-download-alt|icon-draft|icon-duplicate|icon-edit|icon-ellipsis-v|icon-error|icon-expand-right|icon-folder|icon-folder-inverse|icon-folder-open-1|icon-folder-open-inverse|icon-form|icon-globe|icon-grip|icon-group|icon-h1|icon-h2|icon-h3|icon-h4|icon-h5|icon-h6|icon-help|icon-history|icon-home|icon-horizontalrule|icon-image|icon-info-circle|icon-italic|icon-key|icon-link|icon-link-external|icon-list-ol|icon-list-ul|icon-lock|icon-lock-open|icon-login|icon-logout|icon-mail|icon-media|icon-minus|icon-mobile-alt|icon-no-view|icon-openquote|icon-order|icon-order-down|icon-order-up|icon-password|icon-pick|icon-pilcrow|icon-placeholder|icon-plus|icon-plus-inverse|icon-radio-empty|icon-radio-full|icon-redirect|icon-repeat|icon-reset|icon-resubmit|icon-rotate|icon-search|icon-site|icon-snippet|icon-spinner|icon-strikethrough|icon-subscript|icon-success|icon-suitcase|icon-superscript|icon-table|icon-tablet-alt|icon-tag|icon-tasks|icon-thumbtack|icon-thumbtack-crossed|icon-tick|icon-tick-inverse|icon-time|icon-title|icon-undo|icon-uni52|icon-upload|icon-user|icon-utensils|icon-view|icon-wagtail-icon|icon-wagtail-inverse|icon-warning)

With this, we find the following font icon references in JS/Python/HTML code that should all be convertible to SVG icons with enough effort:
arrow-down
arrow-down-after
arrow-right
arrow-right-after
arrow-up
arrow-up-after
doc-full-inverse
edit
grip
image
no-view
plus
plus-inverse
site
view

And there are two "text icons" that I believe we will want to preserve as-is:

icon-help ?
Form submissions listings ordering ▲ ▼

Just a quick update to say I’ve completed all conversions to SVG icons (PR TBD, contains other work). I’ll close this issue once this gets merged, and create a separate one for cleanup after the usual two-release deprecation process.
There is one chance I’d like us to consider if given the chance: define SVG icon names based on the file names, rather than an id attribute. This would make icon definitions even simpler – no need to manually edit the SVG at all if it has been exported appropriately from design tools / icon sets.

This is now complete as far as getting all parts of Wagtail to use SVG for icons. I’ve updated the "Deprecation process" section at the top with tasks to do in Wagtail 6.0 to finally remove all traces of the icon font.
If anyone wants to further help with this – I could use feedback on the release notes for this. They’re currently divided between:

A "headline feature" section, Customisable SVG icons
Upgrade consideration notes for the deprecated icon font
And related but technically part of #2349 – a list of deprecated icons

And I’ve opened a few issues related issues on wagtail-font-awesome-svg, which I’m hoping I will be able to pick up at least some of in time for the 5.0 release but don’t know for sure yet:

https://github.com/wagtail-nest/wagtail-font-awesome-svg/issues/9
https://github.com/wagtail-nest/wagtail-font-awesome-svg/issues/10

Thank you @gasman for offering to help with this 😌 here are the last few steps we can now take on as part of Wagtail 6.0.
Things that seem quite clear:

[ ] Remove wagtail icon font files (we need it for backward compatibility. So deprecate and remove at major release).
[ ] Remove any FontAwesome specific workaround (fa-).
[ ] Remove Sass icon() mixin
[ ] Remove Sass variables ($font-wagtail-icons, the whole of _variables.icons.scss)
[ ] Remove all styles referring to "iconfont"

Things that seem somewhat clear:

[ ] Remove styles set on ::before pseudo elements for icon fonts only.

Things that seem unclear:

[ ] Remove choosers styles referring to icon-font.
[ ] Update test cases to consistently use SVG icon references (check for #icon-foo id rather than icon-foo class).

w00t! With #11209 completed, this is now Done! I’ve also removed our "Adding new icons" page, and kept a copy as a gist in case we ever need it back easily.
Well, that was quite the ride! Thank you @allcaps, @Scotchester, @gasman, @Stormheg, @stevedya, and everyone else who worked on this. I’m elated that as a group we can make big changes like this happen. It’s not always as fast as we might wish, but we take good care of backwards compatibility, and we get things DONE! 🙌

Well done everyone!


Accessing gallery using flutter_webview

Can uploading from gallery can be done using flutter webview.Have implemented webview and converted a website to an app,but where not able to acccess the gallery upon pressing the upload button available in the website.Have added the read/write external storage permissions in manifest.xml

Hi @Deena1999
Can you please provide your flutter doctor -v, your flutter run --verbose and a minimal complete reproducible code sample.
Thank you

Hi,@pedromassangocode
Response for flutter doctor -v:
Flutter (Channel beta, 1.18.0-11.1.pre, on Mac OS X 10.15.4 19E266, locale
en-IN)
• Flutter version 1.18.0-11.1.pre at
/Users/saravavenkatasalam/Desktop/flutter
• Framework revision 2738a1148b (3 months ago), 2020-05-13 15:24:36 -0700
• Engine revision ef9215ceb2
• Dart version 2.9.0 (build 2.9.0-8.2.beta)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at /Users/saravavenkatasalam/Library/Android/sdk
• Platform android-30, build-tools 29.0.3
• Java binary at: /Applications/Android
Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
1.8.0_212-release-1586-b4-5784211)
✗ Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit visit
https://flutter.dev/docs/get-started/install/macos#android-setup for
detailed instructions.
[✓] Xcode - develop for iOS and macOS (Xcode 11.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.4, Build version 11E146
• CocoaPods version 1.9.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 45.1.1
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build
1.8.0_212-release-1586-b4-5784211)
[✓] VS Code (version 1.47.3)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.9.1
[✓] Connected device (2 available)
• Web Server • web-server • web-javascript • Flutter Tools
• Chrome     • chrome     • web-javascript • Google Chrome 84.0.4147.89
! Doctor found issues in 1 category.

Hi @Deena1999
Can you please provide a minimal complete reproducible code sample so that I can reproduce the issue.
Thank you

Hi,@pedromassangocode
This is the main.dart file
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:permission_handler/permission_handler.dart';
void main() async{
WidgetsFlutterBinding.ensureInitialized();
await Permission.camera.request();
await Permission.storage.request();
runApp(MyApp());}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Udhyog'),
),
body: WebView(
initialUrl: "https://udhyog.xyz",
javascriptMode: JavascriptMode.unrestricted,
)
),
);
}
}
Have also added the permission_handler and webview_flutter plugins in pubspec.yaml

Hi @Deena1999
I see there's an open issue addressing the case you described (https://github.com/flutter/flutter/issues/27924).
Consider this comment to workaround this issue https://github.com/flutter/flutter/issues/27924#issuecomment-532268306
Please follow up on that issue, I'm closing the current one as a duplicate.
If you disagree, please write in the comments and I will reopen it.
Thank you