dyld: Library not loaded:  When using nested target in xcode, and same is working fine with main target runner

dyld: Library not loaded: @rpath/BSGridCollectionViewLayout.framework/BSGridCollectionViewLayout
Referenced from: /Users/reddy/Library/Developer/CoreSimulator/Devices/5013BB7B-FF61-4F04-BDF8-AE7E6511327E/data/Containers/Bundle/Application/21228428-8C32-4EF7-960D-3D68215679CD/gadikota_srikanth_reddy.app/gadikota_srikanth_reddy
Reason: image not found
(lldb)

Hi, could you please confirm if this problem still exists with the latest versions on stable or master?
If so please explain more in detail what you are trying to do
Thanks a lot

This bug still happen:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v1.10.12, on Mac OS X 10.14.6 18G95, locale en-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.38.1)
[✓] Connected device (4 available)

• No issues found!

Trying to install the app on iOS device like this:
flutter build ios
then flutter install
and this is the error:
[  +17 ms] executing: [flutter/] git -c log.showSignature=false log
-n 1 --pretty=format:%H
[  +31 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 0e605cc4dd83137f785769dea5e8ae7da1afb361
[        ] executing: [flutter/] git describe --match v*.*.*
--first-parent --long --tags
[  +12 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[        ] v1.10.12-0-g0e605cc4d
[   +5 ms] executing: [flutter/] git rev-parse --abbrev-ref
--symbolic @{u}
[  +10 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/dev
[        ] executing: [flutter/] git ls-remote --get-url origin
[   +9 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +40 ms] executing: [flutter/] git rev-parse --abbrev-ref HEAD
[  +10 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] dev
[   +4 ms] executing: sw_vers -productName
[  +13 ms] Exit code 0 from: sw_vers -productName
[        ] Mac OS X
[        ] executing: sw_vers -productVersion
[  +13 ms] Exit code 0 from: sw_vers -productVersion
[        ] 10.14.6
[        ] executing: sw_vers -buildVersion
[  +13 ms] Exit code 0 from: sw_vers -buildVersion
[        ] 18G95
[  +16 ms] executing: /usr/bin/xcode-select --print-path
[  +10 ms] Exit code 0 from: /usr/bin/xcode-select --print-path
[        ] /Applications/Xcode.app/Contents/Developer
[        ] executing: /usr/bin/xcodebuild -version
[  +88 ms] Exit code 0 from: /usr/bin/xcodebuild -version
[        ] Xcode 11.0
           Build version 11A420a
[  +48 ms] executing: /sdk/platform-tools/adb devices -l
[   +6 ms] Exit code 0 from: /sdk/platform-tools/adb devices -l
[        ] List of devices attached
           LMG710EMbc8d0e2d       device usb:17825792X product:judyln_lao_com model:LM_G710 device:judyln
           transport_id:3
[  +14 ms] executing:
flutter/bin/cache/artifacts/libimobiledevice/idevice_id -h
[ +178 ms] /usr/bin/xcrun simctl list --json devices
[ +141 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[   +3 ms] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[  +25 ms] executing: /usr/bin/plutil -convert json -o -
/ios/Runner/Info.plist
[   +8 ms] Exit code 0 from: /usr/bin/plutil -convert json -o -
/ios/Runner/Info.plist
[        ]
{"CFBundleName":"name_project","CFBundleIdentifier":"$(PRODUCT_BUNDLE_IDENTIFIER)","CFBundleInfoDictionaryVersio
n":"6.0","UIMainStoryboardFile":"Main","CFBundleVersion":"$(CURRENT_PROJECT_VERSION)","UILaunchStoryboardName"
:"LaunchScreen","CFBundleExecutable":"$(EXECUTABLE_NAME)","LSRequiresIPhoneOS":true,"UISupportedInterfaceOrien
tations":["UIInterfaceOrientationPortrait","UIInterfaceOrientationLandscapeLeft","UIInterfaceOrientationLandsc
apeRight"],"CFBundleDisplayName":"AtomicDEX","CFBundleLocalizations":["zh_TW","zh","zh_CN","English","fr","de"
],"UIViewControllerBasedStatusBarAppearance":false,"CFBundlePackageType":"APPL","CFBundleSignature":"????","NS
CameraUsageDescription":"Camera permission is required for barcode scanning.","NSFaceIDUsageDescription":"Why
is my app authenticating using face
id?","CFBundleDevelopmentRegion":"en","UISupportedInterfaceOrientations~ipad":["UIInterfaceOrientationPortrait
","UIInterfaceOrientationPortraitUpsideDown","UIInterfaceOrientationLandscapeLeft","UIInterfaceOrientationLand
scapeRight"],"CFBundleShortVersionString":"$(FLUTTER_BUILD_NAME)"}
[  +15 ms] Installing com.example to iPhone de -...
[   +1 ms] executing:
flutter/bin/cache/artifacts/ideviceinstaller/ideviceinstaller
--list-apps
[  +10 ms] dyld: Library not loaded: /b/s/w/ir/k/homebrew/opt/libzip-flutter/lib/libzip.5.dylib
             Referenced from:
             flutter/bin/cache/artifacts/ideviceinstaller/ideviceins
             taller
             Reason: image not found
[   +3 ms] executing:
flutter/bin/cache/artifacts/ideviceinstaller/ideviceinstaller -i
build/ios/iphoneos/Runner.app
[  +13 ms] dyld: Library not loaded: /b/s/w/ir/k/homebrew/opt/libzip-flutter/lib/libzip.5.dylib
             Referenced from:
             flutter/bin/cache/artifacts/ideviceinstaller/ideviceins
             taller
             Reason: image not found
[   +1 ms] Process exited abnormally:
           dyld: Library not loaded: /b/s/w/ir/k/homebrew/opt/libzip-flutter/lib/libzip.5.dylib
             Referenced from:

flutter/bin/cache/artifacts/ideviceinstaller/ideviceinstaller
             Reason: image not found
[   +8 ms] "flutter install" took 657ms.
Install failed

#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      InstallCommand.runCommand (package:flutter_tools/src/commands/install.dart:45:7)
<asynchronous suspension>
#2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:557:18)
#3      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:71:64)
#4      _rootRunUnary (dart:async/zone.dart:1132:38)
#5      _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#6      _FutureListener.handleValue (dart:async/future_impl.dart:137:18)
#7      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:678:45)
#8      Future._propagateToListeners (dart:async/future_impl.dart:707:32)
#9      Future._completeWithValue (dart:async/future_impl.dart:522:5)
#10     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:552:7)
#11     _rootRun (dart:async/zone.dart:1124:13)
#12     _CustomZone.run (dart:async/zone.dart:1021:19)
#13     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#14     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#15     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#16     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#17     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:116:13)
#18     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:173:5)

And I just notice: with flutter run the application running but without logs. I can't see any logs from flutter in the terminal. (only happen on ios). Probably because of the new Xcode 11.0.

Am I right that its an iOS 13 phone? There the missin debug output is a known bug.
So this happens if you try a flutter install, not a flutter run, Do I understand this correctly?
Could this be your problem? https://stackoverflow.com/questions/55389080/xcode-10-2-failed-to-run-app-on-simulator-with-ios-10

Exactly an iPhone 13.1.2
Yes flutter install I have this error.
If I use flutter run it's ok.
I don't think it's related to this issue. https://stackoverflow.com/questions/55389080/xcode-10-2-failed-to-run-app-on-simulator-with-ios-10
Probably flutter missing something on iOS 13 and iPhone device.

Does it only happen on real phones?

Yes.

Tested on simulation iPhone XR and it works.

Do you have the chance to test it with another phone?

Does it also happen with a newly created project?

Yes I just test same error.

same problem here, multiple iphones tested with the same result

Duplicate of https://github.com/flutter/flutter/issues/42877.


zip_sva_perf run hw file decompress failed

prepare:
dd if=/dev/urandom of=origin bs=1K count=512
zip_sva_perf --in origin --dest
test:
zip_sva_perf -d --in dest --out origin2
result:
Missing IN list file!
Fail to run hw_ifl_perf() (-22)!
I think the error is caused by the 'load_ilist'. But I can't understand the use of 'ilist'. So I need you help.
@hzhuang1

For your reference, you could print out command in sanity_test.sh.
Let's come back your issue. You're trying to compress data in BLOCK mode with multiple BLOCKS, and decompress data in BLOCK mode, too. So you need to generate gzip_list.bin in compression.
$zip_sva_perf --in origin --out dest --olist /tmp/gzip_list.bin -b 1024
$zip_sva_perf -d --in dest --out origin2 --inlist /tmp/gzip_list.bin -b 1024
gzip_list.bin records each block size.


unit tests for vasp details components

Codecov Report

Merging #318 (21fc482) into main (d90c26c) will increase coverage by 0.19%.
The diff coverage is n/a.

:exclamation: Current head 21fc482 differs from pull request most recent head 52c38ec. Consider uploading reports for the commit 52c38ec to get more accurate results

@@            Coverage Diff             @@
##             main     #318      +/-   ##
==========================================
+ Coverage   45.79%   45.98%   +0.19%
==========================================
  Files          63       61       -2
  Lines        7875     7491     -384
==========================================
- Hits         3606     3445     -161
+ Misses       3601     3403     -198
+ Partials      668      643      -25

Impacted Files
Coverage Δ

directory/pkg/gds/client/profiles.go
70.76% <0.00%> (-1.29%)
:arrow_down:

directory/pkg/gds/admin.go
55.00% <0.00%> (-0.54%)
:arrow_down:

directory/pkg/trtl/server.go
36.95% <0.00%> (ø)

directory/pkg/gds/store/leveldb/index.go
69.32% <0.00%> (ø)

directory/pkg/gds/store/leveldb/leveldb.go
41.64% <0.00%> (ø)

directory/pkg/gds/store/trtl/iterator.go

directory/pkg/gds/store/trtl/mock.go

directory/pkg/gds/store/trtl/trtl.go

directory/pkg/trtl/metrics.go
46.77% <0.00%> (ø)

directory/pkg/gds/emails/client.go
8.12% <0.00%> (+0.29%)
:arrow_up:

... and 5 more

Continue to review full report at Codecov.

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


App crash when I touch a UIWebView

I use the device of iOS9,  and there are a UITextField and a UIWebView in the View Controller,  and use the MLInputDodger.
When I touch the webview,  the app crash
MLInputDodger.m

(void)setFirstResponderView:(UIView *)firstResponderView
firstResponderView  donesnotRecognizeSelector setInputAccessoryView:

firstResponderView is kind of webview ,which has no setInputAccessoryView method.
So i add this code, and crash go away
'''
if(![firstResponderView respondsToSelector:@selector(setInputAccessoryView:)]){
return;
}
'''

@iwanglian  thanks, buddy. it help me much.


Since a certain version of update, IntelliSense works too slow and strange

Issue Type: Bug
Hi all. Hope you are doing great!
I appreciate all those great works you do for public!
It's hard to say when was the first time it has started to happen.
While I'm editing my Java (Spring boot) code, IntelliSense does not work at all
or it works too slow.
And as the screenshot below explains, it seems like the feature conflicts with other extensions like GitLens.  (The assistant shadow message by GitLens appears by cracking my normal code line)

Hope you are willing to regard this as a considerable issue.
Extension version: 1.2.17
VS Code version: Code 1.65.2 (c722ca6c7eed3d7987c0d5c3df5c45f6b15e77d1, 2022-03-10T14:33:55.248Z)
OS version: Windows_NT x64 10.0.22000
Restricted Mode: No
Remote OS version: Linux x64 4.4.0-210-generic

System Info

Item
Value

CPUs
Intel(R) Xeon(R) CPU           X5675  @ 3.07GHz (24 x 3067)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
95.99GB (85.00GB free)

Process Argv
--folder-uri vscode-remote://ssh-remote%2Bhome-gpu/home/woniok/projects/corpmesh --crash-reporter-id 0e38481a-6ff8-40ba-9e1b-cf5748ade8ed

Screen Reader
no

VM
0%

Item
Value

Remote
SSH: home-gpu

OS
Linux x64 4.4.0-210-generic

CPUs
Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz (4 x 3622)

Memory (System)
15.64GB (0.89GB free)

VM
0%

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstes516:30244333
pythonvspyl392:30443607
pythontb:30283811
pythonvspyt551cf:30345471
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscoreces:30445986
pythondataviewer:30285071
vscod805cf:30301675
pythonvspyt200:30340761
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
vsc1dst:30438360
pythonvs932:30410667
wslgetstarted:30449410
vsclayoutctrt:30451275
dsvsc009:30452663
pythonvspyt640:30450904
vscscmwlcmc:30438804
vscgsvid2:30447481
cppdebug:30451566
pynewfile477cf:30450039

Thanks for raising this - it appears to be an issue with the core Java support rather than IntelliCode as such, so I'm tagging @Eskibear  to see this issue.

@starjasmine This can be any of below:

performance of core Java support
performance of Spring Tools extension (if installed)
performance of IntelliCode (less likely)
performance of gitlens (less likely)
above extensions compete for CPU
networking issue as you are running vscode in remote

A simple way to identify the culprit is, you disable above extensions and enable them one by one, see which one affects the performance most.

@Eskibear Thanks for your comment.


fix semantic and example errors in previous versions for compatability

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog

Update existing versions to use the common parameters for subscriptionId, resourceGroupName, and apiVersion. This enables compatibility when fixing subsequent s360 issues
Provide unique names for examples per validation errors
Add required and default responses

Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[x] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[x] No, no need to refresh for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

Hi @allenjzhang,
This PR fixes some semantic errors in previous preview versions, which will enable us to fix further s360 issues. The issues were with swagger only:

Update existing versions to use the common parameters for compatibility when fixing subsequent s360 issues
Provide unique names for examples per validation errors
Add required and default responses

/azp run SDK azure-sdk-for-net

/azp run


Ask function with no default still prints parenthesis

I find it strange that if there is no default, the ask function still prints (), what do you think of removing it?
ask(:value, "value now")

prints

Please enter value now ():

changing it to

Please enter value now:

Yep, good point. I agree that's a bug. Fixes are welcome. 😁

Closed in #1835


truvari: 2.1.1 -> 4.0.0

Diff: https://github.com/spiralgenetics/truvari/compare/v2.1.1...v4.0.0
Description of changes

Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

cc @scalavision

Tests appear to hang @ test_refine_one ran in 2 sec with 64/0 lines to STDERR/OUT, both nixos x86_64 & macos 10.15.

Tests appear to hang @ test_refine_one ran in 2 sec with 64/0 lines to STDERR/OUT, both nixos x86_64 & macos 10.15.

That's why it's marked as draft. I don't have enough time to look into this as I don't use the software but I thought the work I already did might be useful.

@natsukium Would you like to become a maintainer for truvari?

Alright, please add me too.


[Discuss] Standardize API method error handling

Problem
There is a lack of consistency in how errors are handled in the codebase e.g. take the following examples:
Throwing error for handling in the catch
https://github.com/Expensify/App/blob/370869fb9bd5cc0cc60277ba92316822ba2d8f9a/src/libs/API.js#L284-L289
Showing a growl
https://github.com/Expensify/App/blob/370869fb9bd5cc0cc60277ba92316822ba2d8f9a/src/libs/actions/Policy.js#L103-L111
Throwing an error with no message at all
https://github.com/Expensify/App/blob/370869fb9bd5cc0cc60277ba92316822ba2d8f9a/src/libs/actions/Policy.js#L345-L349
Storing the error in Onyx to show inline
https://github.com/Expensify/App/blob/370869fb9bd5cc0cc60277ba92316822ba2d8f9a/src/libs/actions/User.js#L47-L53
Inconsistently checking if jsonCode === 200 vs. jsonCode !== 200
https://github.com/Expensify/App/blob/370869fb9bd5cc0cc60277ba92316822ba2d8f9a/src/libs/actions/Policy.js#L305-L311
Why is this important?
In general, keeping our code consistent makes it easier to understand, write, review, etc and will save both time and mental energy. Having a standard way to distinguish between API calls returning non 200 jsonCode and network errors means there's no question about the correct way and no discussion required.
Solution
I'm not sure yet. Let's discuss it. I think at a minimum we should decide some basic things like:

[ ] Always check jsonCode !== 200 and not jsonCode === 200 (or vice versa)
[ ] Generically handle fetch failures in some way to start
[ ] Decide whether to handle non 200 jsonCode in the .then() or to always handle them in the .catch() (e.g. if we decide to handle them in the .catch() then it might make sense to throw a non 200 jsonCode at some much lower level so we do not have to explicitly throw them)

cc @parasharrajat as we kinda got sidetracked by this in a review

Yup, I agree. This should be consistent across the codebase.
I am in favor of point 3 above.

We should also consider what to do in order to handle jsonCode:666 errors everywhere, in which our API returns a user-friendly error message that can be shown to the user. See https://github.com/Expensify/App/pull/7229 for example.

@marcaaron, this Monthly task hasn't been acted upon in 6 weeks; closing.
If you disagree, feel encouraged to reopen it -- but pick your least important issue to close instead.

I think we're gonna cover this is the Offline Doc but gonna let Melv close this one since we'll probably create a new GH issue eventually.


Feedback from @WabinabUknown

Discord or Telegram handle
@WabinabUknown
Testnet DAO address
wabidao.sputnikv2.testnet
What did you like the most?
Cards thingy. If everything follows NEP-141, we could have more pre-made cards to auto-fill things for us.
What did you like the least?
Dealing with "yocto" values. ft_transfer requires a display of decimal places (telling the user how many decimal places this object have) so minting (stated in "yocto") and ft_transfer card (value in non-yocto) can match. Otherwise, create a dropdown to select between nUSDC and "yocto" nUSDC. (though, it's not really "yocto" but 2 dp or 6dp for USDT)
What was the most complicated?
Creating a Proposal. The JSON have a bug! (One submitted a bug request thankfully)
Is there any feature that you wish to see in the future?
(multiple features here by paragraphs; you can sort them yourself)
The Right Hand Side bar have cards: these cards' font size are okay if it's on "full screen", but too small (until one can't read) when one opened it half-screen (especially with a 27 inch monitor, one can have split screen of half to do stuffs rather than 2 monitor). Consider setting a smallest font size + up the font size a bit for legibility.
In terms of gas allocation, internally you can use many zeros; but it's better if you display in terms of TGas rather than Gas. Human's eye can't read too many zeros without proper separator.
I'm not sure why you need, on the "Export" page, "gas" rather than just stay with TGas. Swap the default to TGas and Gas as an alternative, if you ever need Gas at all. One suggests removing "Gas" and just leave "TGas" is sufficient, though; unless you're planning for the future when GGas or something become significant.
The main screen color contrast isn't great. One almost can't see the buttons if one wasn't searching for a "few minutes". (The buttons that looks like adding Kanban Columns in Github Projects)
Perhaps make clear what the deposit of 1 NEAR is for? Is it storage? Is it consecutive Gas? 1 NEAR is a lot, so explain!
On entering addresses, it's clear that continuous entering of addresses isn't great. One would like to reserve the clipboard for something else, maybe. So, perhaps add an extra button beside it to create a cookie where they could cache the sputnikdao address value; hence reloading doesn't delete it. If they change DAO address, clicking the "create a cookie" button will change the cookie cache to the new DAO address; otherwise if they reload it redirect to old DAO (makes sense, anyways). One isn't sure if you could cache without button, though; but you could try, though one thought it might be (much) more difficult than with a button to create the cookie.
Perhaps implement a button to save the cards and its content? When one clicked to the "DAO" page from "App", the stuffs are lost. That forces us to either open a new tab to do our stuff; or to not accidentally reload the page etc for example.
How did you like the DAO setup tutorial?
okay
How could we improve the DAO setup instructions?
How did you like the multicall tutorial?
alright
How could we improve the multicall instructions?
The "ft_transfer"; why use a "custom" card instead of the "ft_transfer" card? And shouldn't it be 1 yoctoNEAR deposit rather than 0?
Do you agree with the following statements?
"The workflow was clear."
neutral
It starts with an "App" page; when you want your user to start from a "DAO" page? Swap the tab between App and DAO (or just make DAO active rather than App); then perhaps redirect (one isn't sure if this works or not; from past experience building NEAR website, it doesn't) to the App tab after "registering with 1 NEAR".
"Everything worked as expected."
strongly disagree
Invalid JSON!!! (one submitted a bug report, as mentioned)
"It was fun."
agree
"The UI was visually pleasing."
disagree
Most background etc are fine. Just the card "kanban layers" as mentioned before; it's too "light" that one can't see the "+" button at the top. Perhaps add a boundary? And perhaps for new users, add some words to the "kanban column" saying: "Drag a card from RHS to here".
"I would use multicall for my own DAO."
disagree
Yeah, your example reason is correct. I don't have a DAO to use multicall with. Maybe in the future? One isn't sure.
All in all, how would you rate multicall?
4 Stars
Is there anything else, that you would like to comment on?
Check the "I was missing a feature for" section of this submission for more details and "feature request".
https://airtable.com/app9YvmKASJgAJaNI/tblxsjEdbnT3mELHV/rec5bilUmbsP2XSKW

Thank you for the feedback, we will further discuss it here:

[duplicate] #76
#99
[duplicate] #5


Text matching

@tjasmith I updated PR #254 to include the public modifier for the normalizeText.
I believe I can merge #254 and close this PR - if you don't mind doing a review of #254 and let me know if it is missing anything.
I also updated the PR to include finding the end of the license text as well as unit tests.  It should be reasonably stable now.

Closing as PR  #254 includes these code changes


Windows system problem

is this simulator can be installed  in Windows system

@hugo-xie The current minos release was not tested on windows. We added some updates to the dev branch and verified that they allow running minos on a windows system with non-exhaustive tests.  Please check out the dev branch and let us know if you have any issues.  Feedback is appreciated since it will allow us to better support windows.

Just tried installing on Windows 10. Build fails with the error:
'npm ERR! Failed at the<EMAIL_ADDRESS>install script.'


history search by command

With oh-my-zsh, I was able to type just 'vim' in my command line, then hit the up arrow and have only the history commands that begin with 'vim' show up.
For example:   'vim asdf.cpp'   'vim .zshrc'     'vim python.py'
And it works with things like 'ssh'
Now, with prezto, I seem to have lost that functionality and if I type in 'vim' and press the up arrow, it will give me the next literal command that's sitting in my .zhistory.
Is there a way around this?

Oops.  Obviously I am not a very smart person:
This can be solved by enabling 'history-substring-search' module'


Drives not recorded

Describe the bug
This morning, I pulled up Grafana site and noticed that none of my drives of yesterday were showing up. I have verified that I have a live connection to the car (it shows the sleep state accurately, it shows that it is currently on charger & charging).
The one thing that did change between when Teslamate was able to capture data and yesterday was that I upgraded the car to 2020.12.1 (which by the way Grafana shows on the Updates dashboard).
To Reproduce
Steps to reproduce the behavior:

Go to 'Grafana'
Click on 'Drives'
View list of drives
Drives are missing

Expected behavior
The listing of drives should include all the drives made with the car
Relevant entries from the logs
teslamate_1  | 07:31:14.454 car_id=1 [info] Start / :asleep
teslamate_1  | 07:57:09.718 car_id=1 [info] Start / :online
teslamate_1  | 08:12:24.213 car_id=1 [info] Suspending logging
teslamate_1  | 08:33:35.103 car_id=1 [info] Start / :asleep
teslamate_1  | 08:39:19.536 car_id=1 [info] Start / :online
teslamate_1  | 08:54:31.318 car_id=1 [info] Suspending logging
teslamate_1  | 09:15:34.321 car_id=1 [info] Suspending logging
teslamate_1  | 09:36:45.211 car_id=1 [info] Start / :offline
teslamate_1  | 11:38:43.968 car_id=1 [info] Start / :online
teslamate_1  | 11:45:44.431 car_id=1 [error] Error / :timeout
teslamate_1  | 11:53:47.353 car_id=1 [info] Suspending logging
teslamate_1  | 12:14:58.215 car_id=1 [info] Start / :asleep
teslamate_1  | 13:10:03.641 [info] Adding elevation to 11 positions ...
teslamate_1  | 14:12:49.661 car_id=1 [info] Start / :online
teslamate_1  | 14:12:49.773 [info] Querying location for elevation takes longer than 100ms ...
teslamate_1  | 14:13:43.269 [error] TeslaApi.Error / 504 – %{"error" => "upstream_timeout", "error_description" => "", "response" => nil}
teslamate_1  | 14:13:43.269 car_id=1 [error] Error / :timeout
teslamate_1  | 14:14:08.656 [error] TeslaApi.Error / 504 – %{"error" => "upstream_timeout", "error_description" => "", "response" => nil}
teslamate_1  | 14:14:08.657 car_id=1 [error] Error / :timeout
teslamate_1  | 14:14:34.065 [error] TeslaApi.Error / 504 – %{"error" => "upstream_timeout", "error_description" => "", "response" => nil}
teslamate_1  | 14:14:34.065 car_id=1 [error] Error / :timeout
teslamate_1  | 14:14:49.468 [error] TeslaApi.Error / 408 – %{
teslamate_1  |   "error" => "vehicle unavailable: {:error=>\"vehicle unavailable:\"}",
teslamate_1  |   "error_description" => "",
teslamate_1  |   "response" => nil
teslamate_1  | }
teslamate_1  | 14:14:59.673 car_id=1 [info] Start / :offline
teslamate_1  | 15:40:30.516 car_id=1 [info] Start / :online
teslamate_1  | 15:55:42.486 car_id=1 [info] Suspending logging
teslamate_1  | 16:16:43.657 car_id=1 [info] Suspending logging
teslamate_1  | 16:37:44.824 car_id=1 [info] Suspending logging
teslamate_1  | 16:58:46.086 car_id=1 [info] Suspending logging
teslamate_1  | 17:19:47.279 car_id=1 [info] Suspending logging
teslamate_1  | 17:40:48.456 car_id=1 [info] Suspending logging
teslamate_1  | 18:01:59.090 car_id=1 [info] Start / :asleep
teslamate_1  | 20:12:49.787 [info] Adding elevation to 1 positions ...
teslamate_1  | 00:00:07.255 car_id=1 [info] Start / :online
teslamate_1  | 00:15:18.763 car_id=1 [info] Suspending logging
teslamate_1  | 00:36:29.653 car_id=1 [info] Start / :asleep
teslamate_1  | 06:11:05.301 car_id=1 [info] Start / :online
teslamate_1  | 06:11:05.410 [info] Querying location for elevation takes longer than 100ms ...
teslamate_1  | 06:11:26.850 car_id=1 [info] Charging / SOC: 67% / Home
teslamate_1  | 06:12:43.488 [error] TeslaApi.Error / 504 – %{"error" => "upstream_timeout", "error_description" => "", "response" => nil}
teslamate_1  | 06:12:43.489 car_id=1 [error] Error / :timeout
teslamate_1  | 06:12:58.589 [error] TeslaApi.Error / 504 – %{"error" => "upstream_timeout", "error_description" => "", "response" => nil}
teslamate_1  | 06:12:58.590 car_id=1 [error] Error / :timeout
teslamate_1  | 06:50:31.642 [info] GET /
teslamate_1  | 06:50:31.650 [info] Sent 200 in 8ms
teslamate_1  | 09:18:30.468 [info] GET /
teslamate_1  | 09:18:30.475 [info] Sent 200 in 7ms

Screenshots
N/A
Data
No issues with charging reports
Drive report only shows drives from before yesterday (4 in all).
Operating environment

TeslaMate Version: 1.18.1
Type of installation: Docker
OS: Ubuntu

When did these drives take place? But as there are no errors or API timeouts you're drives could not be recorded because logging was suspend to let the car fall asleep. Check out the documentation on that topic: https://teslamate.readthedocs.io/en/v1.18.1/configuration/sleep.html
Note: the next TeslaMate release which is currently in beta doesn't have that limitation anymore.

@adriankumpf Thanks for the response.  I have read the docs on sleep settings.  Being a new user I have kept the system defaults until I learn the system better and tweak it.  This has worked fine for my other drives.  Yesterday's drives were around between 1300-1500.  There were 3 drives about 30 mins, 15 mins and 15 mins.
The logs do report a few 504 errors in that time frame.  Actually it reports similar errors at 0600 today as well.

The default sleep mode settings are fine most of the time but to catch every drive providing wake-up hints is still recommended (or wait for v1.19).

The logs do report a few 504 errors in that time frame. Actually it reports similar errors at 0600 today as well.

Those timeouts only occurred in a time window of 2 minutes, so no big deal. However, if you were driving between 14:14:59 and 15:40:30, and thus the car was not offline, no API logger could have recorded the drive, because the car was simply reported offline (for whatever reason, but this happens in rare cases).


xgcm now includes definition of metrics

It looks like xgcm now allows you to define the metrics when specifying the grid (https://xgcm.readthedocs.io/en/latest/grid_metrics.html) so one does not have to deal with that during the calculations. We could/should make sure xorca provides all metrics needed to do that and could also include this in the examples...

This looks really promising!

I will play around with the metrics in the next weeks and report on any issues that xorca might have with this...

It seems work without problems, we just need to define areas from the distances (e1t, e2t, etc...). The question is: Do we want to do that in the code? And maybe also add a small function that defines the metrics? Or should we keep that outside xorca and just include it in an example?


If Error Message Present SOMETHING IS WRONG

...so we should throw an \Exception!
There's no tests for this, per se, but it does work, see:
{
    "message": "OVER_QUERY_LIMIT",
    "exception": "Exception",
    "file": "C:\\laragon\\webroots\\one-calendar\\calendar\\vendor\\spatie\\geocoder\\src\\Geocoder.php",
    "line": 70,
    "trace": [
        {
            "file": "C:\\laragon\\webroots\\one-calendar\\calendar\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Facades\\Facade.php",
            "line": 221,
            "function": "getCoordinatesForAddress",
            "class": "Spatie\\Geocoder\\Geocoder",
            "type": "->"
        },

Addresses #1 - but I cannot re-open that!

Thanks!


Create a whitelist of characters we can use in the Geostore

User Story
As a user of the Geostore I want to know what characters I can name my data so that it can be successfully uploaded to the Geostore.
Check the discussion on this Slack thread.
More detail on Confluence page.
S3 limitations of characters in S3 keys.
Speak to Daniel Silk in Topo.
Matt to set up meeting to introduce.
Tasks

[ ] Put whitelist of characters into this confluence page.

For now, I think we should allow the following:
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
digits = '0123456789'
macrons = 'āēīōūĀĒĪŌŪ'
special_characters = '_-.''

We can add to this list as appropriate.

Seems like we can close this one @Jimlinz . We have a whitelist now. And can implement them in another issue later if we need to.


Fix syntax error in services_wol_edit.php

@jim-p If you are still around, it would be nice to fix this accidental syntax error, rather than having it keep coming in snaps.


Date range problem

Hi, I'm having a problem with the calendar. I'm using it as a date range picker but if I select a date in the first calendar it doesn't block out the date in the second calendar.
How would I achieve this behavior?
Code is;
$checkin.calendar({
        type: 'date',
        endCalendar: $checkout,
        minDate: new Date(),
        formatter: {
            date: handler.dateFormatter
        },
        onChange: function(date, text){
            searchQuery.checkin = text;
        }
    });

    $checkout.calendar({
        type: 'date',
        startCalendar: $checkin,
        formatter: {
            date: handler.dateFormatter
        },
        onChange: function(date, text){
            searchQuery.checkout = text;
        }
    });

+1
I've got one calendar that works properly, but two more that have a similar issue to this and I can't figure it out.
What happens to me is the dates aren't blocked in the second calendar, and choosing any date in the second calendar clears the first one and prompts for another date selection in the first calendar, once that is done, it prompts for a reselection in the second calendar as if the dates selected are invalid.

It looks like you're doing the right thing. Could you please provide an example JSBin that reproduces the issue?


Update README.md

Added missing space.

I signed it!

This sample has been deprecated/archived (check README for more information on newer samples related to this technology).
As recommended by GitHub, we are closing all issues and pull requests.


Adding validation in OPD Registration page

@Luson045 we can add more validation in OPD registration page like email id should be<EMAIL_ADDRESS>contact no should enter 10 if user not enter 10 digit it will show enter validate number, address should not exceed more than 30 or50 and pincode should be 6 digit..

not needed


Add a Russian translation

can you also translate this? https://github.com/NucleoidMC/Server-Translations/blob/1.19/api/src/main/resources/data/server_translations_api/lang/en_us.json

Sure!


aligned mender backend service repo responsibilities

the test containers are shared, but the majority of PRs is focused on backend testing related things

FYI @lluiscampos

Thank you for submitting a PR! Maybe @olehermanse can review this?


Implement the datagram specification

documentation

What implementation do you expect here? Porting the datagram functionality directly from the i2p java code base? Or just some objects that model the specification described in the linked documentation.
What would be nice is some failing tests that show how this feature would be used.

I start by implementing the models described in the documentation without looking at the Java source, and just write the functionality for reading and parsing the data structures.  Many more functions will be needed for these structures of course, but I plan to write them and reference the java/c++ implementations as needed.
For a good example take a look at the KeysAndCert and corresponding tests.  The data structure this issue is for actually starts with a KeysAndCert, so the first thing that will be done when reading it is probably call readKeysAndCert on the provided data then process the error and remainder.
Let me know if you'd like some failing tests, but I usually find it easier to write the tests as I write the parsing functions.  Also feel free to open an incomplete PR and I'll leave feedback / contribute to it.


Random Videos are hidden

I'm on Win 11, Firefox 103, Tampermonkey 4.17.6161 , Script Version 4.3.2. I'm not sure any of that matters though since I have had this problem for quite a while now. Months probably.
The script hides random videos on the Subscriptions page and the Home feed. Switching between the pages via the side bar doesn't change this. Reloading the page fixes the problem for a while until it returns.
A problem which is most likely connected is that the links to the YT channels (clicking the channel name under the video) are mixed up as well. So you click on channel X and channel Y will open. Reloading fixes this as well, temporarily.

Are you sure the videos it hides are videos you haven't started? YouTube will mark videos you watched even for just a split second as "watched" and the script will hide them.
If not -- have you seen any other pattern to the videos that are being hidden?

I haven't been able to reproduce the problem. Without a way to make it happen it will be difficult for me to fix it. Let me know if you discover any other information that might be helpful.

Bad news. It wasn't my filter.
What's weird is that on the "hide" setting, watched videos are completely hidden as intended but random videos are dimmed. That's new. I used to always have it in "hide mode" and there was no random dimming but there was the random hiding of videos. I turned it to dim mode to look for patterns.
I'll keep trying turning off other addons but I can't think of any that are obvious candidates for causing trouble.

I may have found the problem. I published version 4.4.1 which might fix the problem. Can you give it a try?

I just checked but there is only one version of the script installed.
I have now updated to 4.4.1. It takes a while until I can be sure if it works or not. If it looks good after like 30min it's probably alright. I'll come back in a few to report the results. Thanks for taking a look at this problem so quickly.

Looking good. Thanks again.


Create View Menus on Tabs

Create a custom tab header that will contain view menus for the browser and analytics.

Reopening to:

Add view menus to artist and person tabs.
Skin the view menu styling.


api for field format docs

Codecov Report

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

@@          Coverage Diff           @@
##           master   #1231   +/-   ##
======================================
  Coverage    8.24%   8.24%
======================================
  Files          60      60
  Lines        2280    2280
  Branches      483     483
======================================
  Hits          188     188
  Misses       2092    2092

Continue to review full report at Codecov.

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

I have made the changes to /compliance-data-types response.


Any plans to translate into English?

@kiddick I don't have enough time doing that for now. Maybe someone interested in this project can help me out, or I'll do it myself whenever I think it's time to stop and reorganize all the tips I've wrote.


Updated Bug Report information

Just added dongle id on master. Make sure that information is also included in the bug report.

Done. Forgot to update my local master, whoops :)


Add an endpoint to return period points.

What is needed?
Add a GET endpoint for a campaign and address that return a list of period points.
GET /api/v1/campaign/{resourceID}/periods/{address}
Response
To Be Defined

One issue with the address path position on the endpoint is that it might look like we are doing a selection on the Period (i.e., "give me all periods that have this address").
GET /api/v1/campaign/{resourceID}/periods/{address}
My suggestion would be to do the selection on the address in the path:
GET /api/v1/campaigns/{resourceID}/addresses/{address}/periods
This way, I think it's more clear that the endpoint should return all periods for the provided address.

I'd suggest the following schema. It'd be a paginated response and each result item represents the points for an address for a period (of a campaign with resourceId).
GET /api/v1/campaigns/{resourceId}/addresses/{address}/periods

{
  "count": <number>,
  "next": <url>, // nullable
  "previous": <url>,  // nullable
  "results": [
    {
      "startDate": <string>, // date string e.g.: 2024-05-20
      "endDate": <string>, // date string e.g.: 2024-05-20
      "boost": <string>, // decimal string
      "totalPoints": <string>, // big number string
      "totalBoostedPoints": <string> // decimal string
    }
  ]
}

What do you think? cc/ @moisses89 @safe-global/safe-client-gateway-maintainers @schmanu

As an update on the previous proposal. What do you think of the following one?
GET /api/v1/campaigns/<uuid:resource_id>/activities/?holder=<address>

{
  "count": <number>,
  "next": <url>, // nullable
  "previous": <url>,  // nullable
  "results": [
    {
      "startDate": <string>, // date string e.g.: 2024-05-20
      "endDate": <string>, // date string e.g.: 2024-05-20
      "holder": <string>, // Holder's address
      "boost": <string>, // decimal string
      "totalPoints": <string>, // big number string
      "totalBoostedPoints": <string> // decimal string
    }
  ]
}

This is more in line with the resource hiearchy that we have in place. Without indexing any Period, we are just left with Activities. We can then apply a filter on the collection of Activities for a given Campaign by setting the holder query parameter.
This is what is currently proposed in https://github.com/safe-global/safe-locking-service/pull/137

Hola team, question. Was the endpoint added to Swagger? I cannot seem to find it here 🤔

Otherwise todo bueno. Un saludito

Hola team, question. Was the endpoint added to Swagger? I cannot seem to find it here 🤔

The endpoint is there but it's missing the holder query parameter (which can be used). I will work on a fix for it.

Query parameter was added to the Swagger interface in https://github.com/safe-global/safe-locking-service/pull/140

Query parameter was added to the Swagger interface in #140

PR was merged. holder query param is now available in the Swagger interface.


App Size Challenge

Follow the directions found here: https://github.com/JonDouglas/AndroidPerformanceAndAppSizeChallenge#application-size

Application Size (Download Size)

Before Application Size Changes:

App download size: 25.16MB

After Application Size Changes:

App download size: 17.2MB

Any comments / feedback for how we can improve this experience?
Version Information (Help -> About Visual Studio -> Copy Information)
=== Visual Studio Community 2019 for Mac ===
Version 8.2.4 (build 17)
Installation UUID: c672101c-af52-4af2-92b4-94485f531465
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac <IP_ADDRESS> (d16-2-fix-mac-updates / 86973979)
Package version: 604000165
=== Mono Framework MDK ===
Runtime:
Mono <IP_ADDRESS> (2019-06/a7919897e8b) (64-bit)
Package version: 604000165
=== NuGet ===
Version: <IP_ADDRESS>13
=== .NET Core ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
2.1.12
2.1.11
2.1.9
2.1.8
SDK: /usr/local/share/dotnet/sdk/2.1.701/Sdks
SDK Versions:
2.1.701
2.1.700
2.1.505
2.1.504
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/6.4.0/lib/mono/msbuild/Current/bin/Sdks
=== Xamarin.Profiler ===
Version: 1.6.11
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler
=== Updater ===
Version: 11
=== Apple Developer Tools ===
Xcode 10.3 (14492.2)
Build 10G8
=== Xamarin.Mac ===
Version: <IP_ADDRESS> (Visual Studio Community)
Hash: c6691164
Branch: d16-2
Build date: 2019-07-29 15:54:06-0400
=== Xamarin.iOS ===
Version: <IP_ADDRESS> (Visual Studio Community)
Hash: c6691164
Branch: d16-2
Build date: 2019-07-29 15:54:05-0400
=== Xamarin Designer ===
Version: <IP_ADDRESS>9
Hash: 3f0652957
Branch: remotes/origin/d16-2
Build date: 2019-08-01 17:32:50 UTC
=== Xamarin.Android ===
Version: <IP_ADDRESS> (Visual Studio Community)
Commit: xamarin-android/d16-2/ebd65c9
Android SDK: /Users/gokul/Library/Developer/Xamarin/android-sdk-macosx
Supported Android versions:
4.4 (API level 19)
4.4.87 (API level 20)
5.0 (API level 21)
5.1 (API level 22)
6.0 (API level 23)
7.0 (API level 24)
7.1 (API level 25)
8.0 (API level 26)
8.1 (API level 27)
SDK Tools Version: 26.1.1
SDK Platform Tools Version: 29.0.2
SDK Build Tools Version: 27.0.3
Build Information:
Mono: mono/mono@e6f5369
Java.Interop: xamarin/java.interop@d64ada5
LibZipSharp: grendello/LibZipSharp/d16-2@caa0c74
LibZip: nih-at/libzip@b95cf3f
ProGuard: xamarin/proguard@905836d
SQLite: xamarin/sqlite@8212a2d
Xamarin.Android Tools: xamarin/xamarin-android-tools@6f6c969
=== Microsoft Mobile OpenJDK ===
Java SDK: /Users/gokul/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_<IP_ADDRESS>
1.8.0-25
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Android Device Manager ===
Version: <IP_ADDRESS>
Hash: 686c817
Branch: remotes/origin/d16-2
Build date: 2019-08-07 15:49:58 UTC
=== Xamarin Inspector ===
Version: 1.4.3
Hash: db27525
Branch: 1.4-release
Build date: Mon, 09 Jul 2018 21:20:18 GMT
Client compatibility: 1
=== Build Information ===
Release ID: 802040017
Git revision: 9b155edbf23e9fe8b477b3236a342164fabf5f6b
Build date: 2019-08-16 00:21:01+00
Build branch: release-8.2
Xamarin extensions: 9f2598b5f2371ba2903988c2cd87a9759d0255f2
=== Operating System ===
Mac OS X 10.14.6
Darwin 18.7.0 Darwin Kernel Version 18.7.0
Thu Jun 20 18:42:21 PDT 2019
root:xnu-4903.270.47~4/RELEASE_X86_64 x86_64
=== Enabled user installed extensions ===
Xamarin Hot Reload <IP_ADDRESS>25850
XAML Styler 1.1.3

@itguygokul Thank you so much for your submission! To claim your swag, please fill out this quick survey!
http://aka.ms/androidappchallenge


LICENSE.PyPDF2 missing from wheel distributions

Describe the bug
The wheel distributions do not contain the https://github.com/MatthiasValvekens/pyHanko/blob/master/pyhanko/pdf_utils/LICENSE.PyPDF2 file.
To Reproduce
Download the wheel file from https://pypi.org/project/pyHanko/#files
Expected behavior
The corresponding license file is part of the wheel distribution due to employing a stricter license than pyHanko itself (MIT vs. BSD-3-Clause).
Additional context
By the way, PyPDF2 development has been discontinued in favor of pypdf which received lots of fixes: https://pypi.org/project/PyPDF2/ I am not sure how pyHanko might benefit from this, but I just wanted to point this out.

Hi,
This wasn't an intentional omission, but I'd like to avoid polluting the "business" section of the wheel with data files that have no runtime relevance. Putting them in the metadata section (i.e. under pyHanko*.dist-info) would be OK as far as I'm concerned, though, as that's where all the metadata files (including pyHanko's own licence file) live. Having said that, I'm not sure if there's an easy way to hook into that using setuptools config, and whether you're even supposed to put extra stuff in there. I'll look into it; perhaps just reproducing the upstream licence in the readme is the easiest solution.
Regarding the fate of PyPDF(2): I'm well aware, and I've been in contact with the PyPDF maintainer about this before. See in particular #127 ;). Long story short, from a purely technical perspective there's nothing to update in pyHanko as such: actually very little "original" code from PyPDF2 survives in any recognisable form in pyHanko at this point.

Thanks for your fast reply. I am completely fine with adding the second license file to the distribution info metadata directory. Some other projects like opencv-python are already doing it in a similar fashion. (I am not sure if there is a non-hacky way to include the license file usually within the package into the metadata directory, but it should work if moved to the top-level directory and added to the MANIFEST.in file.)
I would argue against putting the license into the README only though, as this tends to make license compliance for library users harder. With dedicated license files, it is easy to just use them verbatim, while within the README some further post-processing might be necessary.

I looked into this further. For now, I dealt with the issue by providing an explicit license-files directive in pyproject.toml. This way of dealing with it is not 100% standard--the method is specific to setuptools--but the result matches what opencv-python does (thanks for that pointer, by the way!).
Once PEP 639 materialises, there'll probably be a more robust way to solve this particular problem.
Thanks again for flagging this!


Support per-request idle timeout

(Not sure if this simple change needs a ticket so I directly opened the PR)
Right now a caller can set the request timeout on a per-request basis. This PR adds the similar ability for the idle timeout.

Hello, dongxinEric. I'm waiting for one of the admins to verify this patch with /ok-to-test in a comment.

Hi @jamezp , sorry to bother you, but is there any chance this could be considered for the next Resteasy release? thanks!

@jamezp Gentle ping. Is there a plan to include this change to a release scheduled?

Sorry for the delay @dongxinEric. I won't be able to look at this until at least next week. I leave for PTO tomorrow and won't be back until Wednesday.
Currently I don't have a date set for a new release. I try to do one every quarter, but there aren't many changes/fixes in the current cycle. However, we could do one sometime in August for sure. Maybe middle of August so we can ensure to get some bug fixes it.

Sorry for the delay @dongxinEric. I won't be able to look at this until at least next week. I leave for PTO tomorrow and won't be back until Wednesday.
Currently I don't have a date set for a new release. I try to do one every quarter, but there aren't many changes/fixes in the current cycle. However, we could do one sometime in August for sure. Maybe middle of August so we can ensure to get some bug fixes it.

Thanks @jamezp !!

@dongxinEric We require all contributions to be made under the terms of the ASL 2.0 License: http://www.apache.org/licenses/LICENSE-2.0
Do you agree to these terms?

@dongxinEric We require all contributions to be made under the terms of the ASL 2.0 License: http://www.apache.org/licenses/LICENSE-2.0
Do you agree to these terms?

Yes.

@jamezp Sorry to bother you again on this PR, but I noticed this was not included into the 6.2.5 Final released last month. Do you know which release this patch will go into?

@dongxinEric My apologies. I plan a 6.2.6.Final very soon, this week or next, and have it on my backport list.


The wrong currency is displayed

The payment is in WMATIC but is quoted in the front end as MATIC

This should be closed in: https://github.com/oceanprotocol/uploader_arweave/issues/57

this seems done in https://api.test.uploader.oceanprotocol.com/ and https://api.uploader.oceanprotocol.com/
We can close this issue.


2mbps support for review

This PR adds support for the 2Mbps PHY on the VEGA Board

LGTM except the commit body with "supports the at both 1Mbps "

Right, sorry, I missed that ; I will resubmit ASAP

And I forgot to update the index.rst accordingly. Will include that as well

I have no idea why the doc check fails... @dbkinder, any ideas?

I have no idea why the doc check fails... @dbkinder, any ideas?

Please rebase

I have no idea why the doc check fails... @dbkinder, any ideas?

Please rebase

Thanks Maureen, I just did, now let's see if the docs checking are passing now... From the logs I think it might've been a transient error in the infrastructure...


Add missing -O2 flags

Signed-off-by: Dominik<EMAIL_ADDRESS>

i do think we need to spend some time figuring out why -O0 is broken, and fix that.
-O0 really ought to be the MOST reliable compilation option, not the least reliable.

This is not necessary anymore, thanks to your new patch fixing -O0 for fortran.


User/t kazhua/galleryapp sratch

Skeletal Detector Skill View with default sample output

For image files you added, they need to be published under a creative common license or approved by the owner. Are they compliant?

// WARNING: Please don't edit this file. It was generated by C++/WinRT v1.0.190111.3

Don't add any of the files under inc/ they are generated at compile time

Refers to: samples/ObjectDetector/cpp/ObjectDetectorSample_Desktop/inc/winrt/impl/Microsoft.AI.Skills.SkillInterfacePreview.0.h:1 in c398780. [](commit_id = c39878004848bb8c28860f59d9cc8720d26807cf, deletion_comment = False)

I downloaded from the website, so I don't think they are compliant. I will remove them.

In reply to: 505244854 [](ancestors = 505244854)


Main menu does not handle Windows High Contrast mode switching well

Switch to any High Contrast mode.  You will see odd highlights around the Main menu items (File, Edit, etc).  Switch back to a non-High Contrast mode.  Main menu is now very low contrast.
If you restart VS Code after a High Contrast switch, the main menu is rendered correctly.  Only a running VS Code session after switching has problems.

@gregvanl please try to reproduce with bare Electron and file to them, I do not think we can do something about it in VS Code.

Easy workaround, restart VS Code.  Closing


Updates to launch channels from a channel list and move custom vars to external serverinfo.js file.

This will update lambda server and control server to allow for channel names to be sent dynamically from the skill and looked up in a channel list. The hardcoded launch commands have been replaced with the channel name being passed dynamically to the control server. New channels can be added via the rokuchannel.js list.
The APP_ID will be moved to the serverinfo_example.js and a new serverinfo_example.js is created for the control server adding in the rokuaddress, server listening port, and authorization password.
.gitignore has an ignore added for the RokuControlServer/serverinfo.js and any generated .zip files in the RokuLamda dir.

Great changes, thanks for the clean up!

No problem! Thanks for the awesome library!


Add package OpenCL-clhpp

Adds c++ headers for opencl, uses python to generate cl.hpp, cl2.hpp is just copied. Produces a warning if python is not found, it continues the build as cl2.hpp can be built without python.

Produces a warning if python is not found

Please end with FATAL_ERROR in this case. Configuration must be predictable and should not rely on outside environment:

https://docs.hunter.sh/en/latest/creating-new/cmake.html#environment

It requires the OpenCL package (which includes the lib, not system lib), I have modified the package to set OpenCL up as a dependency.
As far as the FATAL_ERROR, I will modified it to have an option of "generating"  cl2.hpp only as this does not require python. If the option is false (meaning cl.hpp is to be generated as well) then I will have it FATAL_ERROR if python is not available.

If the option is false

So in the current default configuration if Python not found we will exit with FATAL_ERROR, right?
Testing:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.1300
https://travis-ci.org/ingenue/hunter/builds/189377480

Yeah default will exit with FATAL_ERROR. Also I see there are some failures on the testing, will look into it tomorrow.
On a side note, the package name "OpenCL-clhpp" seems a bit cumbersome. Wondering if it should be changed to something like OpenCL++ (will hunter and cmake take that?), as it is the c++ wrappers for the c api.

Wondering if it should be changed to something like OpenCL++

Up to you.

will hunter and cmake take that?

Will work, see for example Async++. However I prefer xx or pp instead of ++.

Ok, so another question for you. This package requires OpenCL which includes the ICD lib, The ICD does not work on Android and is remarked out in the test. However (haven't checked yet) but these headers should work fine on the Android toolchain (without the OpenCL package) assuming the NDK is available somewhere. Should I attempt to get that working or just turn the Android test off?

Should I attempt to get that working or just turn the Android test off?

How about turning Android tests off now, and trying to fix this issue later?

This one should be good to go, test updates at https://github.com/ingenue/hunter/pull/47. Some issues there though as since I changed the name from OpenCL-clhpp to OpenCL-cpp test package name (pkg.opencl-clhpp) is a little off.
Here are my test
https://travis-ci.org/caseymcc/hunter/builds/190275079
https://ci.appveyor.com/project/caseymcc/hunter/build/1.0.69

Testing:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.1310
https://travis-ci.org/ingenue/hunter/builds/191888885

Uploading

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.1312
https://travis-ci.org/ingenue/hunter/builds/191915625

Released:

https://github.com/ruslo/hunter/releases/tag/v0.17.13


do we all have Daphnia in our gut?

This morning at breakfast I recalled the Daphnia story, so I quickly looked into the data set of the lean and obese twins (I now also have run the two larger samples in the projects). Here are just the counts of the number of peptides that have the genus Daphnia (or one of its species) as their lowest common ancestor.
SRS000998:39
SRS000999:49
SRS001000:71
SRS001001:42
SRS001002:56
SRS001003:67
SRS001004:98
SRS001005:73
SRS001006:76
SRS001007:61
SRS001008:57
SRS001009:43
SRS001012:70
SRS001013:64
SRS001014:55
SRS001015:67
SRS009825:558
SRS009826:352

The list still uses the EBI sample numbers, to its not immediately clear which ones are from the lean and the obese persons. However, it's already clear that Daphnia occurs in all their guts. Actually, in most cases, the lowest common ancestor is specific at the species level: Daphnia pulex. Here are number of Daphnia pulex (peptides, not DNA reads/proteins)
SRS000998:39
SRS000999:46
SRS001000:70
SRS001001:42
SRS001002:55
SRS001003:64
SRS001004:98
SRS001005:71
SRS001006:76
SRS001007:60
SRS001008:57
SRS001009:42
SRS001012:70
SRS001013:64
SRS001014:55
SRS001015:66
SRS009825:543
SRS009826:348

Original issue by @pdawyndt on Thu May 22 2014 at 06:44.
Closed by @bmesuere on Tue May 27 2014 at 17:21.

I also checked the data set of the breast/formula fed babies. Same story over there.
ERS075404:35
ERS075405:16
ERS075406:33
ERS075407:69
ERS075408:56
ERS075409:26
ERS075410:31
ERS075411:32
ERS075412:20
ERS075413:33
ERS075414:17
ERS075415:21

Original comment by @pdawyndt on Thu May 22 2014 at 06:48.

@pdawyndt Can you easily extract a list of the respective proteins?
Original comment by @bmesuere on Thu May 22 2014 at 11:24.

@pdawyndt can this be closed?
If I remember well, we tried to blast some daphnia hits and didn't find any convincing evidence.
Original comment by @bmesuere on Tue May 27 2014 at 16:52.

@bmesuere The BLAST hits indeed confirmed that the proteins were not Daphnia specific at first sight. This will be explored futher if we benchmark the metagenomics/metaproteomics analysis pipelines for the taxonomic accurracy and correctness on all RefSeq genomes (making a distinction between the ones that are in Unipept and the ones that are not).
Original comment by @pdawyndt on Tue May 27 2014 at 18:49.


net: Only perform IPv4 map check for AF_INET6 sockets

This change avoids executing syscalls testing if IPv4 address mapping
is possible unless the socket being opened belongs to the AF_INET6
family.
In a pledged OpenBSD process, this test is only allowed when the
"inet" pledge is granted; however this check was also being performed
for AF_UNIX sockets (separately permitted under the "unix" pledge),
and would cause the process to be killed by the kernel.  By avoiding
the IPv4 address mapping check until the socket is checked to be
AF_INET6, a pledged OpenBSD process using AF_UNIX sockets without the
"inet" pledge won't be killed for this misbehavior.
The OpenBSD kernel is not currently ready to support using UNIX domain
sockets with only the "unix" pledge (and without "inet"), but this is
one change necessary to support this.

For the OpenBSD kernel patch which is also needed to try this, see https://marc.info/?l=openbsd-tech&m=161221087502321&w=2


Fix playback volume of mono sounds in the lwjgl3 backend

Might fix #6784
The position of sound sources was set to (0,0,1) in 3D space, resulting in sounds not playing at full volume. This led to varying levels of audio output volume compared to other backends (stereo sounds weren't affected).
This PR sets the position to (0,0,0). In order to not break panning, I had to change the way how 2D panning works.
If pan is set to 0 (center), sound output shouldn't differ from playing an unpanned sound. This was the case with the original panning calculation and a default source position of (0,0,1).
The new panning calculation is based on this comment by kcat, the author of OpenAL Soft. If you read the comment, you'll notice a mention of a second variant in the last block. I've chosen this method because the sound output closely matches the output prior to this PR.
Visual comparison:
play(volume, pitch, pan)
The red line indicates the maximum level of output.

It's different but sadly still not quite right, in terms of both amplitude and frequency response.
Three-way comparison of a mono sound in this branch, a mono sound in 1.12.1, a stereo sound in this branch - in that order:
https://github.com/libgdx/libgdx/assets/60154347/00f8b8a0-a5d9-4d2c-94cc-e447ecf933ea
(FLAC in MP4 container due to GitHub file restrictions - player is muted by default for some reason)
The files I'm using for testing (mono version is louder): boom-oggs.zip

I also notice a slight difference. But for me it's minimal, barely audible, barely visible in the waveform. The difference in your mp4 is brutal. I honestly don't know what's going on.
Well, even if it doesn't completely solve the problem for you, this PR is also a prerequisite for panning stereo sources, as stereo channels only remain separated at position (0,0,0) (if not panned). If we want to enable that in the future.

Stereo panning would be nice, and I think this makes mono sounds slightly better. Doesn't make them any worse, at least, so I'm not against this. I'm sure panning stereo sources works on GWT; don't see any reason why it shouldn't work for Android either since it just adjusts the volume of the left and right channels independently. iOS I'm not so sure on, but it's sorta the ugly duckling anyway and not a reason to hold desktop back. I'll repeat the experiment if you get stereo panning working, to see if that screws it up as well or if mono sources are a special case.


No indication in the diff tool about which DataClasses have modifications

Describe the bug
You have to click through each and every DC to find which ones have modifications rather than there being some visual cue
To Reproduce
Produce a diff (not merge diff) of any models with modifications on the DEs or fields in the DC
Expected behavior
DC with modification should be coloured yellow like you colour the deleted ones red.
Screenshots

UI : 6.3.1

@olliefreeman and @jamesrwelch - the ideal way would be to use our newly developed Merge UI as the interface for model comparisons too. The new Merge UI is designed to very easily view all the diffs and comparisons, a simple compare view would simply remove any edit controls for the merge part. This is long-term though, as backend would need to be updated so that compare endpoints function the same way.
Short-term solution would be to do as the issue suggests - some kind of highlight or cue to show what is different.

One option is to take the new merge diff endpoints for the new merge UI, but for a compare-only option to be present. The endpoints would return the expected diffs but, for comparing only, the merge options should be hidden.

See #559 which could make this issue obsolete.


Services: first build: abs added

Linter check found the following problems:
Traceback (most recent call last):
  File "/opt/conda/envs/linter/bin/conda-lint", line 11, in
    sys.exit(main())
             ^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/run.py", line 107, in main
    result = linter.lint(
             ^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 620, in lint
    msgs = self.lint_file(
           ^^^^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 692, in lint_file
    messages = self.lint_recipe(
               ^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 748, in lint_recipe
    res = self.check_instances[check].run(recipe, fix)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 252, in run
    self.check_source(source, "source")
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/check_url.py", line 62, in check_source
    self._check_url(url, section)
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/check_url.py", line 53, in _check_url
    if url.lower().startswith("http://"):
       ^^^^^^^^^
AttributeError: 'CommentedSeq' object has no attribute 'lower'
ERROR conda.cli.main_run:execute(47): conda run conda-lint /tmp/abs_0bui6jemum/clone failed. (See above for error)

Linter check found the following problems:
Traceback (most recent call last):
  File "/opt/conda/envs/linter/bin/conda-lint", line 11, in
    sys.exit(main())
             ^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/run.py", line 107, in main
    result = linter.lint(
             ^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 620, in lint
    msgs = self.lint_file(
           ^^^^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 692, in lint_file
    messages = self.lint_recipe(
               ^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 748, in lint_recipe
    res = self.check_instances[check].run(recipe, fix)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/__init__.py", line 252, in run
    self.check_source(source, "source")
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/check_url.py", line 62, in check_source
    self._check_url(url, section)
  File "/opt/conda/envs/linter/lib/python3.11/site-packages/anaconda_linter/lint/check_url.py", line 53, in _check_url
    if url.lower().startswith("http://"):
       ^^^^^^^^^
AttributeError: 'CommentedSeq' object has no attribute 'lower'
ERROR conda.cli.main_run:execute(47): conda run conda-lint /tmp/abs_b2fufqd4pz/clone failed. (See above for error)

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_15ofkquso9/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
ERROR: /tmp/abs_15ofkquso9/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_3496tjtv8z/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
ERROR: /tmp/abs_3496tjtv8z/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_b4_x7qn_hb/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
ERROR: /tmp/abs_b4_x7qn_hb/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_eavcychi0f/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
ERROR: /tmp/abs_eavcychi0f/clone/recipe/meta.yaml:50: patch_must_be_in_build: patch must be in build when source/patches is set.
Errors were found


Associate multiple sources to a profile URL

I installed Streetpass and went to my own site. I observed Streetpass activate and add my profile to the link list. I then went to my GitHub profile and expected to see another link in the list: the same one that was added when I went to my own site. It wasn't added. I thought perhaps that Streetpass was naively looking for rel="me" or something like that, but I was wrong.
I think it be cool and somewhat useful to track where all I've seen profile links for a certain //a[@rel~='me']/href or //head/link[@rel='me']/href value.

I also wish I could see when another website is linked to the same profile.
Also, I would like the extension to show the Mastodon link again on a second visit to the same website.


Add Reverse String exercise

Implemented the reverse string exercise.

@robtimp Is there anything else to be modified in this pull request?


since yesterday I am trying to use debug50 and even though I constantly reboot the problem persists

$ debug50 ./draw
Failed to connect extension server on port 1337.
Please visit cs50.dev/restart to restart your codespace.
Multiple exceptions: [Errno 111] Connect call failed ('::1', 1337, 0, 0), [Errno 111] Connect call failed ('<IP_ADDRESS>', 1337)
$
Version: 1.93.1
Commit: 38c31bc77e0dd6ae88a4e9cc93428cc27a56ba40
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Embedder: codespaces

/question please use your CS50 course support channel.


Spider: Creve Coeur Economic Development Committee

URL: https://crevecoeurcitymo.iqm2.com/Citizens/Calendar.aspx
Spider Name: cc_economic_development
Agency Name: Creve Coeur Economic Development Committee
See the contribution guide for information on how to get started

I can work on this spider.


aoi definition in variables_style_rules.csv

[ ] ~Closes #xxxx~
[X] I am familiar with the contributing guidelines
[ ] ~Tests added~
[ ] ~Updates entries in docs/sphinx/source/reference for API changes.~
[ ] Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[ ] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[X] Pull request is nearly complete and ready for detailed review.
[ ] Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

Original definition says angles "between 90deg and 90deg", but this should be plus/minus 90deg (right?)

I read "angle...between" as going to tell me the two rays that define the angle, rather than the limits. What about "angle between the normal vector and the vector pointing to the sun's center"? I also think we can drop the limits +/-90 since pvlib doesn't enforce that.

In addition to @cwhanse note, I would add normal vector of the module. To be very clear.

Just a general comment: AOI goes from 0 to 180.  Negative AOI doesn't make sense.

Just a general comment: AOI goes from 0 to 180. Negative AOI doesn't make sense.

I was wondering about that...
I was trying to make sense of this line:
https://github.com/pvlib/pvlib-python/blob/cbe4cc5a8bb3bb529f2dd885aebcd527fedbbc63/pvlib/iam.py#L273
Maybe in this case, the normal to the surface is defined as the 0, and then +/- 90 either side?
As far as I can tell the only iam=0 is set in line 228 for aoi>=90 (no mention of any negatives) so does this function docstring need revising?
Anyway, I'll remove the range reference as suggested by @cwhanse

I read "angle...between" as going to tell me the two rays that define the angle, rather than the limits.

Makes sense

"the vector pointing to the sun's center"

Would "sun's rays" be sufficient here or is it not precise enough (I looked here on sciencedirect and here on sandia for lexical inspiration 👀)

@RDaxini that text probably originated in PVLib for Matlab, as a warning to the user when AOI<0 was input. When AOI<0, the Martin-Ruiz function would give IAM<0. At some point in transfer to pvlib-python or creating of iam.py from functions in pvsystem.py, the message was confused.
iam.martin_ruiz handles aoi<0 by setting the IAM to zero.
To be clear, I am suggesting deleting the range from the description of AOI in the Glossary. I would correct, not delete, the statement that IAM= for AOI outside of 0 <= aoi <=90.
Let's not mix editing docstrings with creating a glossary in this PR, it won't ever get finished. If you can create an issue to accumulate docstring edits as a checklist, that would be very helpful. An entry in that checklist: this line is a cut/paste error and should be removed.

To be clear, I am suggesting deleting the range from the description of AOI in the Glossary. I would correct, not delete, the statement in the martin_ruiz docstring that IAM= for AOI outside of 0 <= aoi <=90.

Understood, we are on the same page here

Let's not mix editing docstrings with creating a glossary in this PR, it won't ever get finished.

Agreed

It would be very helpful if you can create an issue to accumulate docstring edits as a checklist. An entry in that checklist: this line is a cut/paste error and should be removed.

Okay I will do this 👍🏾

this line is a cut/paste error and should be removed.

@cwhanse is the same line on 381 and 471 correct?

"the vector pointing to the sun's center"

Would "sun's rays" be sufficient here or is it not precise enough? (I looked here on sciencedirect and here on sandia for lexical inspiration 👀)

Any thoughts on this? Just an idea, not a definite suggestion.

The sun's rays originate from a disc with an angular diameter of a degree or so.  It is the center of this disc which defines aoi, in the sense that pvlib uses it.
Seems like nobody objects to the definition as it currently stands in this PR, so I'll go ahead and merge it.  Thanks @RDaxini!


[5.4] Add a simple transformer.

Moved from #14339 since 5.3 is almost ready for release.

Would be useful to support simple transformer without requiring full-blown thephpleague/fractal. The idea is to provide basic transformer so we can have standard output when transforming single
model or a collection.
This is essentially useful for API response development since whenever we add new fields to say a Model, our API would then automatically has access to this information. It would be nice to have an explicit transformer to format the output.
Got this idea based on #14333
Signed-off-by: crynobone<EMAIL_ADDRESS>

I also like the idea of having the abstract class suggested in your previous PR, however i think that it should handle relations, maybe something like the include's from the fractal package, (or something similar).
IMO if we are adding that class it should at least properly handle the transforms of the relationships.

I have already using thia style on my project and loving it. Some might argue that it's similar to many presenter packages but the things with presenter is that you only have one "transformer" per model. However with this you can have different transformer for e.g v1 and v2 api.

I use this package I built almost a year ago, it uses an abstract transformer class, within the Model Transformer class I can pass options that customizes the output instead of having multiple transformers per entity.
The thing I like about this package too is having these two functions:
isRelationshipLoaded() which tells if a specific reltionship is eagerly loaded so that I can display it within the transformed object.
isLoadedFromPivotTable() which tells if the model is being loaded from a pivot table so that I can prepend the pivot data and transform it if I need.
Having something like that in laravel would be great, although people are used to external packages that provide the same functionality + more, but having just a simple transformer with these 2 helpers would save 1 more composer require.

Using this example, how do you define multiple transformers per model?

For my use case I can either have separate route for different API version, or using IoC to resolve which namespace I could fetch the transformer from.
https://twitter.com/crynobone/status/757747712594808832

@crynobone why not using a listener with a generic serializer like we do in api-platform/core and EloquentSerializer instead?  Sure it requires another package, but it provides a solution working with most of the use cases (i.e. no longer require any transformer) and doesn't require anything to be added to the core.

I guess maybe I'm confused as to how this is used. If I have a collection of Users I want to return from an API how do I use this? Maybe I need a bigger code sample?

Sure it requires another package, but it provides a generic solution working with most of the use cases

Use case to transform Carbon to datetime, hiding Model::$hidden attributes or does it handle more than that. Sorry I don't have experience using it and commenting purely on the code example.
For me, the problem with that is that you either have configure Model::$hidden, or use $model->setAccessible() to filter the output. Let so example you integrate laravel/cashier to your project. So you would have stripe_id, card_brand, card_last_four set under Model::$hidden, which is valid. What what if you need to prepare API endpoint for billing info.
use App\User;

class UserProfile {
    public function __invoke(User $user) {
        return [
            'fullname' => $user->firstname . ' ' $user->lastname,
            'email' => $user->email,
        ];
    }
}

use App\User;

class UserBilling {
    public function __invoke(User $user) {
        return [
            'stripe_id' => $user->stripe_id,
            'card_brand' => $user->card_brand,
            'card_last_four' => $user->card_last_four,
        ];
    }
}

Route::get('users', function () {
    return User::all()->transform(new UserProfile());
});

Route::get('users/{user}', function (User $user) {
    return $user->transform(new UserProfile());
});

Route::get('users/{user}/billing', function (User $user) {
    return $user->transform(new UserBilling());
});

Since the PR for Paginator::transform() was rejected, returning is slightly different.
Route::get('users', function () {
    $users = User::paginate()

    $user->getCollection()->transform(new UserProfile());

    return $users;
});

In regards to versioning API, my main objective is that once I come out with v1 API, we have a standard transformer given consistent output all the time. Let say given the User example, many example would just return $user->toArray();. This would be bad if for any reason we change field name from users.email to users.email_address. Now, any API that was returning email would suddenly return email_address.
Related to my use case, I have a public API that I have release and our iOS and Android developer would depends on when building the app. Given that I have the above UserProfile, if at any point of time I would need to change the schema from email to email_address, I would simply need to update the transformer to
class UserProfile {
    public function __invoke(User $user) {
        return [
            'fullname' => $user->firstname . ' ' $user->lastname,
            'email' => $user->email_address,
        ];
    }
}

With this simple change, I prevent any breaking changes on my API, until for example I release v2 of the API.

Use case to transform Carbon to datetime, hiding Model::$hidden attributes or does it handle more than that? Sorry I don't have experience using it and commenting purely on the code example.

Yep it does.

What if you need to prepare API endpoint for billing info, you then have to use $model->setAccessible(), and this become hard to maintain when you carry on your project.

In case it wasn't obvious I was referring to the Symfony Serializer. The integration to Laravel is fairly easy and it supports some feature you are looking for like groups which offer more flexibility than $hidden.

Well this proposal seems halted, indeed there's many packages out there that can provide similar functionality (this is a pretty simple concept after all), however having a default one that provides some built in hooks with Eloquent would be a god's blessing, like the ones mentioned by @themsaid  for example isRelationshipLoaded(), isLoadedFromPivotTable() and many more would already be a good reason for having this in core.
Currenty this PR doesn't have these hooks but it will open the doors for such new functionalities.

What about something like this: http://anderly.com/2016/09/08/laravel-transformable-a-model-trait-for-consumable-models/

@anderly

The options only simple single transformer per model. (see https://github.com/laravel/framework/pull/14357#issuecomment-237132806)
You can only set output to JSON, while with exporting to array, you can now have to converted to JSON, CSV, XML, etc.
Loading relations seem to be manual/not supported. (https://github.com/laravel/framework/pull/14357#issuecomment-234315471)

@crynobone
Yes, the default would be a single transformer per model using the Transformable trait.
To create multiple transformers, I would leave my main User model in App\Models and it would import and use Transformable. Then maybe under App\Models\Transformers, I could subclass User and define UserProfile and UserBilling which can override the $transformation_map property.
You can define relations just like you would on eloquent models and they'll respect the transformable attribute names.
Just a thought. Plus, consumers can instantiate the models using the transformed attribute names without knowledge of the underlying db schema names.
I'm working on support for where* methods so you can also query based on a transformed attribute name without knowledge of the schema names.
Just a different approach was curious to get some feedback.

To create multiple transformers, I would leave my main User model

This is where I wouldn't agree on this structure, having many duplicate models is far worst that having many transformers, but the responsibility of a transformer class is small, which you're duplicating the responsibility of many models, that not a good way to do it.
Let's say you do this for v1 of your API, what happen when you need to make v2, more duplicates? v3?

Wouldn't you run into the same issue with versioning with your transformer classes? You'd need to be backward-compatible or version the transformer classes (i.e. create new ones for breaking changes).
Instead of sub-classing the Eloquent model, I could achieve a similar approach to yours by just accepting the underlying model as an argument or injecting it via the constructor. I just didn't like all the calls to $user->transform(new UserProfile()) or '$user->transform(new UserBilling())`. I'd rather just call the transformer class directly. Thoughts?

Wouldn't you run into the same issue with versioning with your transformer classes? You'd need to be backward-compatible or version the transformer classes (i.e. create new ones for breaking changes).

There's many ways to handle it, which is why if you looks at the file changes for this approach is minimal (so there no restriction on how you want, or can handle it, on one of my current project I'm using https://github.com/orchestral/lumen/blob/3.3/src/Routing/Helpers.php, since I backporting fractal transformation to this simple structure.
For other purpose, you can have something similar to:
<?php

class UserTransformer
{
    protected $version = 'v1';

    protected $supportedVersion = [
        'v1' => 'handleOne',
        'v2' => 'handleTwo',
    ];

    public function __construct($version) {
        $this->version = $version;
    }

    public function __invoke(...$parameters)
    {
        $method = $this->supportedVersion[$this->version];

        return $this->{$method}(...$parameters);
    }

    public function handleOne(User $user)
    {
        return [
            'email' => $user->email,
            'fullname' => $user->firstname.' '.$user->lastname,
            'prjects' => $user->projects->transform(new ProjectTransformer());
        ];
    }

    public function handleTwo(User $user)
    {
        return [
            'email_address' => $user->email,
            'fullname' => $user->fullname,
            'projects' => $user->projects->transform(new ProjectTransformer());
        ];
    }
}

Again, this is one of endless possibility that you can do with it, and that the reason why I would prefer $user->transform(new UserTransformer());, so this would also be possible $user->transformer(app('user.transformer'), or even $user->transform(new UserTransformer($request->input('version')); etc.

I like your versioned approach above. Just curious, how do you handle instantiation and persistence of the transformed model? For instance, I wanted to be able to instantiate and persist the model using the transformed attributes (the contract) just like I use the transformed attributes on the consumption side. Do you use your transformer class for that as well?

I think the idea behind this feature is good but want to think about the implementation more.

Leaving this open actually so I can review further since it's pretty simple.

I've used league fractal and not really liked it.
I've done something like this in the past
<?php

class User extends Authenticatable implements Transformable
{

    public function transform()
    {
        return [
            'full_name' => $this->first_name . ' ' . $this->last_name,
            'email' => $this->email,
            'creation_time' => $this->created_at->timestamp
        ];
    }
}

User::find(1)->transform()

If I have a collection of models then..
$data = $collection->map(function ($model) {
    return $model->transform();
});

return response()->json($data);

A bit like the getModelKeys method on eloquent collections, there could be a shorter way to transform your model data with maybe.
I see the benefit of really simple way to define these structures that doesn't mean including another dependancy to try and help..

Is the main reason this uses Fluent just to take advantage of the Jsonable implementation of it?

Both Jsonable and Arrayable implementation.

I've built quite a few API's using fractal, and admittedly it is kinda clunky so it would be nice to have something a little more built-in.
I think the following are necessary for an implementation:

Multiple transformers per model: I need to represent my User model in different ways depending on the API call / resource
Ability to selectively include relationships - I do not want my User "photos" collection to be included in a GET /users request, but I would like them present in a /users/1234  single resource request
Make it simple to have a default transformer - if i can just call $user->transform() for most cases that would be nice, and $user->transform(UserSnippetTransformer::class), for other cases
Some convenience functionality for pagination (embed paging data in output, get paging from input)  $collection->transformWithPagination() etc.

I created a package for handling this, might bring some ideas to the table if this feature ends up being added to the framework: https://github.com/flugger/laravel-responder

I have implemented a transformer based structure in a Lumen based project of mine. The structure is pretty basic and consists of :

interface Transformable
{
    // This interface is implemented by all models

    // Return the name of the transformer for this model. For 'User', it would be 'UserTransformer'
    static public function transformerName();

    // Return the transformed model
    public function transform();
}

trait Transforms {
    // This trait is implemented by the models which want to utilize the default mechanism

    static public function transformerName() {
        /* Return the default transformer name, i.e, UserTransformer for User*/
    }

    public function transform()
    {
        return app(self::transformerName())->transform();
    }
}

abstract class TransformerContract {
    // This is extended by all the Transformer classes.

    // Transform the model into an associative array
    public function transform(Transformable $model);
}

And then I overrided the Response class to use the Transformer's transform method, if the passed variable was an instance of Transformable.
Now, I have also seen some pitfalls to be considered with this approach :

Recursion : if by mistake someone tries to transform a model within its own transformer, bad things happen.
Common Properties : we need to keep some mechanism, so that a few attributes can go straight away into the transformed array without the need to write code for them. For example, id, created_at and updated_at.
Performance : If the users are  allowed to do serialization themselves, they might add too much code in the transform method. And especially when transforming a set of models, this situation gets worse.

If we use Fractal, it can serve our purpose, but, adding Laravel specific abstract classes above it will also help, so that we can leverage the IoC container properly.
This could be a big addition to Lumen, more than Laravel.

We found Fractal horribly coded and just a pain to use causing more issues than anything. And very tedious to use it. So we wrote a trait to extend eloquent with transformer like properties along with eloquents built in transforming and it has worked far better than multiple methods we tried in the past by using a fluent API. Needs more work to be able to release (and renaming some things). Hopefully we will have time oneday to release.
eg.
return $contentRequest->includeRelation(['type', 'user'])->append('dragons');

It also does the same nesting as eloquent does when using with. So if you had comments and wanted users with them when transformed you would do:
$contentRequest->includeRelation('comments.user')`

On top of that this is done using the toArray so each model goes through it's own transformations when nesting. The models also set default includes and permissions so that there is a "normal" response but we can easily change the responses based on the users permissions etc. We also add in policies if specified $contentRequest->includePermission('delete') will add canDelete to the response by checking the delete policy action of $contentRequest.
Not really much to add to this proposal since it would need to work well without Eloquent to be in core I imagine but basically saying YES PLEASE.

@robclancy using Fractal increased our benchmark response times so dramatically, we had to stop using it.  And we weren't doing anything extraordinary -- pretty much out of the box usage!

@GrahamCampbell push to 5.5? this PR was made just right after 5.4 was released.

It may go to 5.4. Just leaving on 5.5 for now. I don't know the exact plans for this.

Then don't change it,!

I didn't change it. The target as remained as master. The master has just become 5.5 now. It would have been a change to retarget this at 5.4.

You could wait and ask me to rebase this, the new branch was only available 6-8 hours ago while I was still sleeping.

Nothing to rebase. We can switch this from 5.4 to master and back as much as we want, without issue.

If you do want to rebase this, best to rebase on 5.4, not master, then it can be merged into either.

It is already retargetting 5.4, you should know GitHub already provide the ability to retargetting branch from UI.

you should know GitHub already provide the ability to retargetting branch from UI.

yes, i know, but i left it on 5.5 on purpose

What are the reasons why it's not merged in 5.4 ?
I feel this PR from @crynobone would be pretty useful

I hope this is going into 5.4

Any chance to get this PR re-opened and merged in 5.4 ?
cc @taylorotwell / @crynobone
It would be a REALLY pity that the community cannot get it

@lucasmichot I have no interest to pursue this anymore, and in fact have handle it own my own for my project. Up to you if you want to PR it, don't really care.

See https://github.com/laravel/framework/pull/17363