Build fails with example project and geolocator 3.0.0

🐛 Bug Report

Just after adding the geolocator dependecy to the default flutter project, it's impossible to build the app. If I try to launch it in debug mode, it just doesn't do anything and the app doesn't open in my device. When trying to build it using flutter build apk, I get the following stacktrace:
Initializing gradle...                                              1,1s
Resolving dependencies...                                           2,0s
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
D8: Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForRelease'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/0.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/1.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/2.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/3.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/4.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/5.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/6.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/7.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/8.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/9.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/10.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/11.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/12.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/13.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/14.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/15.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/16.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/17.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/18.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/19.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/20.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/21.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/22.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/23.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/24.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/25.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/26.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/27.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/28.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/29.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/30.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/31.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/32.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/33.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/34.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/35.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/36.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/37.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/38.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/39.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/40.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/41.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/42.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/43.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/44.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/45.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/46.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/47.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/48.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/49.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/50.jar, /home/pitazzo/Proyectos/location_test/build/app/intermediates/transforms/dexBuilder/release/51.jar
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 7s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                       8,3s
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
Gradle task assembleRelease failed with exit code 1

Expected behavior
Regular build of my application
Reproduction steps
Just created a plain flutter example project and added the geolocator dependecy to the pubspec.yaml file
Configuration
Default configuration
Version: 3.0.0
Platform:

[ ] :iphone: iOS
[x] :robot: Android

I have the same issue in my app. Is there a workaround to fix this?
thank you in advance

I found a workaround, and it works for me. Check this post on StackOverflow
https://stackoverflow.com/questions/50387207/error-while-merging-dex-program-type-already-present-android-support-v4-os-resu

I have the same issue in my app. Is there a workaround to fix this?
thank you in advance

As far as I know, I can't find a way to get it working

I found a workaround, and it works for me. Check this post on StackOverflow
https://stackoverflow.com/questions/50387207/error-while-merging-dex-program-type-already-present-android-support-v4-os-resu

This doesn't work for me. What did you exactly do? I have added
android.useAndroidX=true
android.enableJetifier=true

to my gradle.properties  and those dependencies to my build.gradle file. However, I'm still not able to build the example app and getting this stacktrace:
Initializing gradle...                                              0,9s
Resolving dependencies...                                           1,7s
/home/pitazzo/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-2.1.1/android/src/main/java/com/baseflow/flutter/plugin/geolocator/tasks/LocationUpdatesUsingLocationServicesTask.java:5: error: package android.support.annotation does not exist
import android.support.annotation.NonNull;
                                 ^
/home/pitazzo/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-2.1.1/android/src/main/java/com/baseflow/flutter/plugin/geolocator/tasks/LastKnownLocationUsingLocationServicesTask.java:4: error: package android.support.annotation does not exist
import android.support.annotation.NonNull;
                                 ^
/home/pitazzo/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-2.1.1/android/src/main/java/com/baseflow/flutter/plugin/geolocator/tasks/LocationUpdatesUsingLocationServicesTask.java:62: error: cannot find symbol
                    public void onComplete(@NonNull Task<Void> task) {
                                            ^
  symbol: class NonNull
/home/pitazzo/SDKs/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-2.1.1/android/src/main/java/com/baseflow/flutter/plugin/geolocator/tasks/LastKnownLocationUsingLocationServicesTask.java:40: error: cannot find symbol
                    public void onFailure(@NonNull Exception e) {
                                           ^
  symbol: class NonNull
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
4 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':geolocator:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                       1,8s
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
Gradle task assembleRelease failed with exit code 1

updates geolocator: ^3.0.0

Hi. I couldnt get this work either. I think the google_api_availability is holding everything back. The geolocator is depending on google_api_availability, which is still stuck in the old pre-AndroidX migration. Hope this helps to whoever can solve it.

I am facing this issue as well.

The plugin needs to be updated. Facing the same issue.

Android builds were failing on my machine with:
Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

Adding these lines to android/gradle.properties solved it:
android.useAndroidX=true
android.enableJetifier=true

please migrate google_api_availability to 2.0.0, thanks.

We just released version 3.0.1 of the Geolocator plugin which takes a dependency on the google_api_availability plugin version 2.0.0.
this should solve this problem together with making sure you Flutter project is migrated to support AndroidX (which it doesn't out of the box). For instructions see

I was using 3.0.1 and got the same error as mleonhard. His solution worked for me.


LOOP-1167: play back delivered and pending alerts on re-launch

Here's the use case:

User gets an alert while the app is in the background.
Alert shows in NotificationCenter, but the user does nothing about it (doesn't clear it, doesn't tap it... pretty normal for a busy person to do)
At some point, the app is quit (i.e. ejected from memory) on iOS.  So any alerts "showing" in the UI are no longer in memory.
The user re-launches the app (either by tapping the UserNotification or launching the app normally).  The alert modal should still be shown.

The idea here is: Let NotificationCenter keep track of those alerts.  So all I do is, upon launch, "re-play" those alerts that are in the "delivered" or "pending" lists in NotificationCenter.
However, there was a catch: the alerts delivered to NotificationCenter are not necessarily the same copy (body text) as the ones delivered in the modal.  Thus, I went ahead and implemented serializability to the DeviceAlert, which I then used to stuff into the userInfo on the UNNotificationRequest itself.  When the app launches, I deserialize it and play back.

@ps2 ok this is ready to review

@ps2 Yep, and we also discussed that I should coordinate with @darinkrauss around CoreData persistence of alerts.


Cannot handle source

dbt wizard complains when using {{ source('dataset','model') }}, though it compiles correctly when using 'Show query preview'

Hi @pernillekle,
Could you please clarify what the error are you seeing in the Problems tab for this model?

Can you also attach logs from output tab after selecting dbt Wizard in the right select box?

Hi, Same error here

How to fix that?

Hi @assafshayhaimhibob. Do you get such error for any model of your project? How big is your dbt project?
As a workaround you can try to change compiler to dbt instead of dbt-rpc. You can find this setting in Preferences -> Settings -> Extensions -> Wizard for dbt Core (TM) -> Wizard For Dbt Core(TM): Dbt Compiler.

Hi @pgrivachev, I only have several sources in my project and same error for all of them.
The workaround seems to be working.
Thank you.


feat(httpc): add error return argument to auth func

This is a proposal.
I propose we add an error return argument to the auth function. Just so an auth func provided can get into the control flow if something goes wrong deriving authorization. This is useful for example when deriving a jwt.

[ ] CHANGELOG.md updated with a link to the PR (not the Issue)
[x] Well-formatted commit messages
[x] Rebased/mergeable
[x] Tests pass
[x] http/swagger.yml updated (if modified Go structs or API)
[x] Documentation updated or issue created (provide link to issue/pr)
[x] Signed CLA (if not already signed)

Cheers @jsteenb2 !


Call .value to get gemspec required_ruby_version only if str_type?

fixes #12744
This change avoids an exception (NoMethodError: undefined method `value' for an instance of RuboCop::AST::SendNode) that currently occurs in rubocop version 1.61.0 when the project has a gemspec file and that gemspec specifies a required_ruby_version by reading from another file (such as .ruby-version).
Example of an affected gemspec file:
Gem::Specification.new do |spec|
  # ...
  spec.required_ruby_version = Gem::Requirement.new(">= #{File.read('.ruby-version').rstrip}")
  # ...
end

This bug began occurring in several of my projects as a result of #12645 (d1746bedd) ("Check gemspec required_ruby_version before .ruby-version and other sources"). My projects have both a .ruby-version file and also a gemspec that (as in the example above) sets the required_ruby_version by reading from that .ruby-version file. Prior to #12645, the latent bug that this change fixes was not occurring for me, because the GemspecFile TargetRuby finder was never running, because the RubyVersionFile TargetRuby finder had higher precedence (and a target Ruby version was found using this finder), and so the GemspecFile TargetRubyVersion finder was never invoked.
With #12645, because the GemspecFile finder now runs before the RubyVersionFile finder, this exception has started occurring in these projects, when I try to run rubocop 1.61.0.
This change fixes/avoids this exception by checking that the right_hand_side is a str_type? before attempting to call right_hand_side.value. In a setup like mentioned in my projects above, right_hand_side will be a RuboCop::AST::SendNode and str_type? will be false, so we avoid the NoMethodError exception that otherwise will occur if we attempt to call .value on that node.
With this change, for projects with such a gemspec file that reads from a .ruby-version file, the GemspecFile finder will now return nil for the target Ruby version (rather than raising an unhandled exception), and so we will continue through the other TargetRuby finder classes, until the RubyVersionFile finder returns a Ruby version based on the one specified in the .ruby-version file.
I also updated several of the specs in the target_ruby_spec.rb file. The motivation for these spec changes is that several of the specs were at risk of "falsely passing", because they had spec setups that intended for 2.7 to be returned as the target Ruby version, but Ruby 2.7 is also currently the RuboCop::TargetRuby::DEFAULT_VERSION. So, in working on the bug that is the focus of this change, although one of my initial attempts to fix the bug actually broke some relevant functionality, all of the specs nevertheless still passed, because they expected a target Ruby version of 2.7 to be returned, and it was still being returned, even after I had broken some of the functionality, simply because Ruby 2.7 is also the default. By setting up the specs to expect a target Ruby version other than the default (Ruby 2.7), the specs will now fail, if/when the relevant functionality under test is broken.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

The tests are currently failing.

Done.

@bbatsov : Tests passed, with the exception of "CircleCI Pipeline" (which I am guessing you need to separately approve?) and a number of pending checks (which I am guessing will be run after you approve the "CircleCI Pipeline" check?).
Thank you again for working with me on this!

Something seems broken with CircleCI in general right now, but I'll look into this separately. Thanks for working on this!


Don't use generic url validation for kube endpoints

this was recently added
false negative for minikube url (https://<IP_ADDRESS>:8443)

Codecov Report

Merging #4826 (becc9cc) into master (463a1c3) will decrease coverage by 25.54%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master    #4826       +/-   ##
===========================================
- Coverage   53.08%   27.53%   -25.55%
===========================================
  Files        1150       60     -1090
  Lines       40016     4681    -35335
  Branches     5082        0     -5082
===========================================
- Hits        21241     1289    -19952
+ Misses      18591     3208    -15383
  Partials      184      184


Send funds message update

Priority
High
Description

Prevents the user from sending a 0 value payment
Updates the toast to notify user of a failed 100% send failure (existing behaviour is a successful toast message)

Screenshot

Fixes #63

it fixes #62 too
https://github.com/Block-Equity/stellar-android-wallet/issues/62

Error message is now readable!


avoid a spurious divide-by-zero in Student t stats

Use _lazywhere to avoid dividing by zero.
closes gh-5270

Thanks!


Feat/add matomo language button tracking

we also need to change NEXT_PUBLIC_MATOMO_URL in .env
https://app.asana.com/0/1204152181784036/1206612990757854

I changed .env for staging accordingly

@aeschi @ff6347 @Jaszkowic should we test this in some manner?

But how? Intercept the request with MSW could be one solution.

@ff6347 I‘m joining the discussion as I pair-programmed with @aeschi to implement this.

yes, that‘s a valid point.
while this function is only used once atm, we expect it to be used more often in the future to track specific events (e.g. tracking on salespage outlink), that‘s why I suggested to move it in a more global folder. Would you still prefer to have moved while there is only a single usage?
valid point as well!

regarding the testing, i agree, we should use something like msw. However, I researched a bit and found this feature from playwright: https://playwright.dev/docs/mock
especially the HAR files feature seem interesting to mock the analytics script from matomo. What do you think?

@ff6347 I‘m joining the discussion as I pair-programmed with @aeschi to implement this.

while this function is only used once atm, we expect it to be used more often in the future to track specific events (e.g. tracking on salespage outlink), that‘s why I suggested to move it in a more global folder. Would you still prefer to have moved while there is only a single usage?

I guess when we start using this in other locations we still can refactor the code base to move it into another shared file. Having 3 lines of code in a file just in case somewhere in the future we might reuse it, is (IMHO), over engineering.

regarding the testing, i agree, we should use something like msw. However, I researched a bit and found this feature from playwright: https://playwright.dev/docs/mock
especially the HAR files feature seems interesting to mock the analytics script from matomo. What do you think?

If we plan to use playwright for more e2e tests I would say let's go for playwright. We already have msw in the code base I would not introduce another dep just for testing this one feature. So currently I would see if we can do this with msw first.

@ff6347 I tried to render the LandingPage via vitest and it looks like it is going to be hard to test the matomo tracking with the means we currently have:

React Testing Library ignores script tags:

And apparently, you also cannot render the Head component from nextjs: https://github.com/testing-library/react-testing-library/issues/402#issuecomment-1013392720  (links to this discussion https://github.com/vercel/next.js/discussions/11060)

Vitest has an experimental browser mode https://vitest.dev/guide/browser.html, I tried to use it but got an error message that vitest 1.3.0 is necessary, right now we have 1.2.1.

Maybe with more research there is a way to make it work. But probably it is going to be easier to use playwright straight away, once we decide to use it. Let's keep it in mind for the UI rework 👍


Fixing demo link in README.md

Demo link currently 404's; see below:

Thank you for your contribution, link was fixed in new release


Feedback required  ---  Proposal for FSC command line support on coreclr compiler for platform support

Proposal for FSC command line support on coreclr compiler for platform support
FSharp compiler has always done 'MAGIC' for referenced, we have a goal to ship a single compiler that can run on all platforms and target all platforms.  We may not get there but if a developer can build and package a Windows Desktop App on a MAC or a Unix APP on Mac or Windows that will be huge.
The compiler as is will work fine with the dotnet cli tool when targeting coreclr, however, we need to ensure that the fsc.exe cli is still usable and relevent for the existing Windows and Mono usage scenarios.  We also need to smooth out references under FSI on coreclr where the BCL is partitioned in a much more fine grained way - writing an F# script that directly references each framework assembly, so I propose that the --targetprofile  scheme described below is also supported by the FSI command.
The existing msbuild magic will not work on the coreclr or for building Windows apps on linux I am proposing using nuget combined with --targetprofile below to fill those gaps by referencing
nuget packages with the reference assemblies for specific profiles and platforms.  This will also enable us to support a wider number of portable profiles via nuget, if the need arises.
Having the compiler understand the nuget protocol is not ideal, but it will allow us to have the fsc command line reference packages of assemblies with a single instruction.
This proposal applies to command line processing
Goal:

Be able to build all targets on all platforms.  Obviously desktop will require Windows to run.  But it will be possible to build and deploy on all platforms.  Linux, Mac, and other coreclr targets.
Be extensible to any new build target platform without requiring extensive modification.
Support simple IDE target platform selection.
Enable FSI to #r nuget packages
dotnetcli will be able to specify the switch using project.json files.
project json files will be able to reference these packages
we will not depend on nuget.exe for nuget support.

--targetplatform:platformId

    lookuptable platformID --> nugetpackageID  ?? Should this be a convention FSharp.Platform.__targetplatform__ or a textfile that is read at runtime.  My preference a convention.

reserved:           // provided for compatability with legacy build scripts __ will only work on desktop windows __
    mscorlib        // Will respect --simpleresolution --noframework
    netcore

new:
    net461 ---      Windows Desktop 4.61    --- FSharp.Platform.net461
    net46 ---       Windows Desktop 4.6     --- FSharp.Platform.net46
    net452 ---      Windows Desktop 4.52    --- FSharp.Platform.net452
    net451 ---      Windows Desktop 4.61    --- FSharp.Platform.net451
    net45 ---       Windows Desktop 4.5   --- FSharp.Platform.net45

    profile7 ---      Portable Profile 7        --- FSharp.Platform.profile7
    profile47 ---    Portable Profile 47      --- FSharp.Platform.profile47
    profile78 ---    Portable Profile 78      --- FSharp.Platform.profile78
    profile259 ---  Portable Profile 259    --- FSharp.Platform.profile259
    profileN ---     Portable Profile N        --- FSharp.Platform.profileN        ???? If we decide to add more
                                                                                ???? profile support
    coreclr ---       CrossPlat corclr          --- FSharp.Runtime.coreclr

Specification of these will automagically select --noframework and --simpleresolution. All lib assemblies in packages will be automagically referenced.
Todo:
1.  Rip out more msbuild codepath from coreclr build (Mostly done but I foolishly tried to deal with it in the original port to coreclr)
2.  Build sample profiles for Desktop 45, profile7 and crossplat coreclr
3.  Implement nuget support for profiles
4.  Extend #r support to include profile support.

From all I learned about it I think putting nuget into the compiler is a really bad idea. Good luck with keeping up with all the craziness.

I personally think that putting nuget into the compiler would be a big mistake. It has way to many changing parts and would be really hard to keep up with all the changes.

Of course having #n in fsx files would be nice, but I always thought it should call another (customizable) tool.

Regarding Nuget, I'm iffy on fsc/fsi understanding nuget, in other environments I've never seen the compiler dealing with package repository directly (ruby has gem, ghc has cabal, rust has cargo, etc.).
It seems for F# we could expect users to have paket installed (it could be shipped as part of dotnet or fsharp like ruby installer ships gem, etc.).
Now that I've started to use paket, it's not too painful to pull all dependencies, we could have a paket command to generate a packages/load-all-dependencies.fsx to #load which has all the assemblies from all dependencies.
As a .net developer, paket solves most of the pain of dealing with nuget published refereneces, it took me very short time to pick it up while nuget has always been kind of nebulous and painful at times (inconsistent versions / targets in several packages.config files, default to folder named with version, etc.).
Regarding the main point of this issue (cross compile / support many targets), it seems to me having a first release of fsc/fsi with a "hardcoded" set of platform would be good enough so the development stays focused on the internals while keeping in mind that it would be made extensible by descriptors on file system in the future.
My rationale is that I assume most of the hardwork happens in the compiler's internals to deal with all those targets properly while the end user extensibility is not a top priority (as long as list of targets support most runtimes).

I am totally :-1:  to do complex resolution in the compiler or bundle nuget experience.
the compiler should accept path of references as part of command line arguments, no clue about how these files are created ( packet, nuget restore, downloaded from internet, file copy etc ).
It's seems better at the beginning, but it's easier to create a wrapper command line to translate arguments.

Enable FSI to #r nuget packages

I think is easier on #r package to call packet download package or nuget download package

Support simple IDE target platform selection

project json support multiple targets in the framework property, and build each one, in parallel.

I was originally thinking of creating a new compiler driver perhaps fl.exe until it occurred to me that fsc and fsi are not the compiler, the compiler is really fsharp.compiler.dll, FSC and FSI are the compiler driver.
I am very keen on shipping a single compiler that runs on the corecl and targets desktop windows profiles with a minimal transformation of project files for existing tooling as well as coreclr profiles and can do so on MAC, Linux and Windows clients.
The cli tool is a tacit recognition of this state of affairs and resolves the issue  for coreclr by creating a set of command line drivers that rely on project.json and nuget.  Of course the desktop C# compiler uses a lot less magic than the F# desktop compiler and so the C# command line driver transfers easier to Linux and mac.
I have noticed that the FSC command line experience is almost unusable as a command line tool when using --simpleresolution --noframework.  This proposal is an attempt to make it usable as a command line tool.  I would welcome suggestions for how to make it usable.
Or perhaps you think we should ship two compilers, a windows only compiler with the current set of switches for building windows apps, and a coreclr based compiler for building coreclr based apps?
Thoughts?

In F# 2.0 I argued for something along these lines. I think it makes a lot of sense, on the assumption that the whole notion of platform identifier is stable enough.
As Kevin mentions, in the forthcoming CoreCLR world, it seems that F# scripts are going to need something like
#r "coreclr"

#r "net461"

that indicates what platform the script actually targets.  I think this declaration needs to be in the script file itself since the editor tooling will need to inspect it to get the references right.   In truth we already need this today as it's not clear which .NET 4.x is targeted by a script - the editor tooling defaults to the latest .NET but that's not always what you want.

what about
#platform "coreclr"

and keeping this optional (use most recent runtime by default, or rather same runtime as what fsi/fsc is bound to), we really want the simple / portable scripts to look as slick as possible.

#platform "coreclr"

I'd be fine with that. I don't mind #r and it may be cheaper that way (since support for various # directives is baked into a few different places and tools).

and keeping this optional (use most recent runtime by default, or rather same runtime as what fsi/fsc is bound to)

Yes, assuming that would be the case..

Small question.  Why doesn't the coreclr platform need a version number?  net46 for example has one.  Or to rephrase, if I do --targetPlatform=coreclr, will that automatically reference (a fixed version of) packages like NETStandard.Library or Microsoft.NETCore.Platforms?

i think if we depends on nuget for dependencies ( sry ), the new nuget platform docs can help the discussion ( and make someone crazy )
for example, `#platform  "netstandard,1.4" make more sense maybe
And we should make fsi and fsc two separate discussions, because #r ( or #n ) it's complicated if you dont use paths.
for example csi (csharp interactive)

Note: The Interactive Window doesn't currently support #r'ing NuGet packages. As a temporary workaround, reference the NuGet DLL

Can we close this now?

Can we close this now?


AIX: create display number based on date +"%u%M" and not use port 6000

A security scan complains about port 6000 being active. This is being opened by, among other tests, java_beans_X.
This change prevents, on AIX, the port 6000 being opening on the IP interfaces.

Based on a conversation with @sxa - we have not been able to reproduce the failure that this PR addresses, I would like to leave this open in draft form while we observe and work to reproduce.  If after a period of a few weeks we do not see the issue again, we will close this PR as not needed.

Based on a conversation with @sxa - we have not been able to reproduce the failure that this PR addresses, I would like to leave this open in draft form while we observe and work to reproduce. If after a period of a few weeks we do not see the issue again, we will close this PR as not needed.

The failure is that a security scan tool sees port 6000 open. This is not something we can generate on our own. Not unless we were lucky and a process hangs and leaves the port open.

The failure is that a security scan tool sees port 6000 open. This is not something we can generate on our own. Not unless we were lucky and a process hangs and leaves the port open.

I thought -secIP 000 was the solution to that problem - the port number switching was a separate issue, and just moving it around doesn't fix the fact that if it's an exposure on 6000 it'd be an exposure even if on another port. I believe we only looked at adding the port moving code to try and work around the case when there was an existing X server left over from a previous run.

The failure is that a security scan tool sees port 6000 open. This is not something we can generate on our own. Not unless we were lucky and a process hangs and leaves the port open.

I thought -secIP 000 was the solution to that problem - the port number switching was a separate issue, and just moving it around doesn't fix the fact that if it's an exposure on 6000 it'd be an exposure even if on another port. I believe we only looked at adding the port moving code to try and work around the case when there was an existing X server left over from a previous run.

re: -secIP 000 - have to verify that resolves the security scan issues. If so, I'll eat some words (I forgot in any case).
re: it's an exposure: correct, could be an exposure - BUT - scanners being generally dumb, this issue seems to have been merely that that (standard) port was available. They are not scanning all ports, and checking protocols on all open ports.
iirc: I was trying to be more generic rather than AIX only.

This problem is unlikely to be AIX specific so I would personally not support doing this for AIX only. Also I feel we should resolve the underlying problem (X servers being left over) instead of working around it like this which is likely to just grow more and more X servers over time. We already have some process cleanup code at the start of the test runs and adding an X server clean up to that would be a better approach, so we can ensure it's stopped before trying to start a new one.

I made a change - as a start to make it less AIX specific - but that was never accepted.
I have merged 'master' and dropped the generalization.
Considering that there were - already - platform specific conditional tests - I see no reason to 'improve' the AIX then block.


Explore: Movie style input

In the movie, the Doc uses a telephone style input to enter times.

Not going to do. For now, will try using a web related input (see Issue #5).


schema.org book markup

We could potentially add metadata markup to our search results and book pages up using the schema.org Book metadata: https://schema.org/Book . This would allow search engines and other automated systems to accurately identify and consume our data. Thoughts?

We already do, view source an ebook page and schema.org info is in an ld/json snippet at the top. Is that what you mean?

Oh, oops, I’ve only used metadata attached to the HTML before, not delivered as a JSON object, so I completely missed it at the top of the page 🤦♂


[Event Request] page 6510 "Item Tracking Lines" - new event in CalculateSums

Hi,
I ask if you can add an event in function CalculateSums in order to let us work on the record before it is copied .
I mean something like:
procedure CalculateSums()
var
    xTrackingSpec: Record "Tracking Specification";
begin
    xTrackingSpec.Copy(Rec);
    Rec.Reset();
    Rec.CalcSums("Quantity (Base)", "Qty. to Handle (Base)", "Qty. to Invoice (Base)");
    // NEW >>
    OnBeforeCopyRecToTotalTrackingSpecification(Rec);
    // NEW <<
    TotalTrackingSpecification := Rec;
    Rec.Copy(xTrackingSpec);

    UpdateUndefinedQtyArray();
end;

this is because I need to execute additional calcsums for that record.
Thank you

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


unnecessary_import hint is not reported if the same number of elements are used from each file

a.dart
class A {}

b.dart
export 'a.dart';

foo.dart
// Only one of these is required.
import 'a.dart';
import 'b.dart';

A? a;

In foo.dart, one of the imports is unnecessary but it's not reported because the number of used elements from each file is the same (1). The relevant code is here:
https://github.com/dart-lang/sdk/blob/b6c8bd7a81d3a71a0e57a152626538012396823f/pkg/analyzer/lib/src/error/imports_verifier.dart#L689
Adding a second class to b.dart and using it in foo.dart causes a.dart to be marked as unnecessary.
Changing the > to >= in the code above likely won't work, because both imports would be deemed unnecessary. I think it needs some deterministic way to decide which one is unnecessary (I don't know if it also needs to take into account when there's more than two providing the same items too?).
@bwilkerson @srawlins

That would be a "redundant" import. https://github.com/dart-lang/sdk/issues/44569

Ah, gotcha - makes sense. Closing this since it seems like a dupe of that then. Thanks!


app: ... rapidjson/document.h:1731: ... Assertion `IsString()' failed.

Hi Jakob,
first I want to thank for your work on cquery! :)
I just tried running cquery with vscode and looking at the output section of cquery I'm getting all the time output like:
0  libclang.so.4   0x00007fc3839e4735
1  libclang.so.4   0x00007fc3839e4d76
2  libpthread.so.0 0x00007fc382046390
3  libc.so.6       0x00007fc3811fb428 gsignal + 56
4  libc.so.6       0x00007fc3811fd02a abort + 362
5  libc.so.6       0x00007fc3811f3bd7
6  libc.so.6       0x00007fc3811f3c82
7  app             0x0000000000510113
8  app             0x000000000045bb95
9  app             0x000000000045b83f
10 app             0x000000000045b5dc
11 app             0x000000000047f1a3
12 app             0x000000000047ebb3
13 app             0x000000000043c68c
14 app             0x00000000005329dd
15 libstdc++.so.6  0x00007fc381b67c80
16 libpthread.so.0 0x00007fc38203c6ba
17 libc.so.6       0x00007fc3812cd3dd clone + 109
[Info  - 12:34:23 PM] Connection to server got closed. Server will restart.
date       time         ( uptime  ) [ thread name/id ]                   file:line     v|
2017-11-18 12:34:23.671 (   0.000s) [main thread     ]             loguru.hpp:1794     0| arguments: ./app --language-server
2017-11-18 12:34:23.671 (   0.000s) [main thread     ]             loguru.hpp:1797     0| Current dir: /home/dan/builds/cquery/build
2017-11-18 12:34:23.671 (   0.000s) [main thread     ]             loguru.hpp:1799     0| stderr verbosity: 0
2017-11-18 12:34:23.671 (   0.000s) [main thread     ]             loguru.hpp:1800     0| -----------------------------------
2017-11-18 12:34:23.671 (   0.000s) [main thread     ]             loguru.hpp:1952     0| Logging to 'cquery_diagnostics.log', mode: 'w', verbosity: 9
app: ../third_party/rapidjson/include/rapidjson/document.h:1731: const Ch *rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> >::GetString() const [Encoding = rapidjson::UTF8<char>, Allocator = rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>]: Assertion `IsString()' failed.

I'm on Ubuntu 16.04 and using vscode 1.18.1.
The output might indicate there's something wrong with my compile_commands.json which works fine with rtags. So here's just one entry of it:
{
  "directory": "/home/dan/intes/builds/trunk/debug/visper/src/sceneGraph",
  "command": "/usr/bin/g++49 -m64  -DAPPLICATIONMINOR=\"\" -DBUILDING_LIBS -DCONFIG_H=\\\"/home/dan/intes/src/trunk/visper/visper/src/config/vpConfig.linux-64.h\\\" -DFW_ENABLE_TASKLETS -DFW_SYSSTR=\\\"linux-64\\\" -DFW_VERS=\\\"0.62\\\" -DFW_VERS_MINOR=62 -DQT3_SUPPORT -DQT_3SUPPORT_LIB -DQT_CORE_LIB -DQT_DEBUG -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_OPENGL_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DQT_STATICPLUGIN -DQT_SVG_LIB -DQT_UITOOLS_LIB -DQT_XML_LIB -DSGA_OSG -DSHARED_LIBS -DSYSTEM=\\\"linux-64\\\" -DVISPER_VERS_PATCH=\\\"-dev\\\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -DsceneGraph_EXPORTS -g3 -ggdb  -Wall -W -Wno-unused-parameter -Wno-non-virtual-dtor -Wno-strict-aliasing -fPIC -I/home/dan/intes/builds/trunk/debug/visper/src/sceneGraph -I/home/dan/intes/src/trunk/visper/visper/src/sceneGraph -I/home/dan/intes/src/trunk/visper/visper -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/Qt3Support -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtOpenGL -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtScript -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtSvg -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtUiTools -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtGui -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtXml -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtSql -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtNetwork -isystem /proj/sciviz/framework-3rd/centos4u4_64/qt-sc.iViz_sciviz-4.6.3-2/include/QtCore -I/home/dan/intes/src/trunk/visper/visper/src -I/home/dan/intes/src/trunk/visper/framework -I/proj/sciviz/framework-3rd/centos4u4_64/python-2.7.2-static_socket_scivizFrame_0.62/include/python2.7 -I/proj/sciviz/framework-3rd/misc/boost_1_63_0 -I/home/dan/intes/src/trunk/visper/visper/src/sceneGraph/nodes -I/home/dan/intes/src/trunk/visper/visper/src/sceneGraph/visualStates    -o CMakeFiles/sceneGraph.dir/SgManager.cpp.o -c /home/dan/intes/src/trunk/visper/visper/src/sceneGraph/SgManager.cpp",
  "file": "/home/dan/intes/src/trunk/visper/visper/src/sceneGraph/SgManager.cpp"
}

Thanks for any hints!
Greetings,
Daniel

Can you paste your vscode cquery settings? I suspect one of the entires is not formatted correctly. It is on my TODO list to do a better job at settings type validation.

{
    "workbench.colorTheme": "Visual Studio Light",

    "cquery.launch.workingDirectory": "/home/dan/builds/cquery/build/",

    "cquery.cacheDirectory": "/home/dan/.cache/cquery/",

    "cquery.misc.indexerCount": 7,
    "extensions.ignoreRecommendations": true
}

Okay, they look fine, can you upload the entire cquery_diagnostics.log file? It is located in ~/cquery/build/cquery_diagnostics.log

arguments: ./app --language-server
Current dir: /home/dan/builds/cquery/build
File verbosity level: 9
date       time         ( uptime  ) [ thread name/id ]                   file:line     v|
2017-11-18 17:42:57.167 (   0.000s) [main thread     ]             loguru.hpp:1952     0| Logging to 'cquery_diagnostics.log', mode: 'w', verbosity: 9

Just to confirm do you have any workspace specific cquery settings?

I'm using vscode for the first time, so these are all settings I've changed until now.

I've pushed a possible fix, can you run git pull origin master --rebase ; ./waf build and try again?

Great!
I'm now getting which seems to be the supposed output:
date       time         ( uptime  ) [ thread name/id ]                   file:line     v|
2017-11-18 18:54:14.113 (   0.000s) [main thread     ]             loguru.hpp:1794     0| arguments: ./app --language-server
2017-11-18 18:54:14.113 (   0.000s) [main thread     ]             loguru.hpp:1797     0| Current dir: /home/dan/builds/cquery/build
2017-11-18 18:54:14.113 (   0.000s) [main thread     ]             loguru.hpp:1799     0| stderr verbosity: 0
2017-11-18 18:54:14.113 (   0.000s) [main thread     ]             loguru.hpp:1800     0| -----------------------------------
2017-11-18 18:54:14.113 (   0.000s) [main thread     ]             loguru.hpp:1952     0| Logging to 'cquery_diagnostics.log', mode: 'w', verbosity: 9
{"cacheDirectory":"/home/dan/.cache/cquery/","logSkippedPathsForIndex":false,"maxWorkspaceSearchResults":1000,"indexerCount":7,"enableIndexing":true,"enableCacheWrite":true,"enableCacheRead":true,"includeCompletionMaximumPathLength":37,"includeCompletionWhitelistLiteralEnding":[".h",".hpp",".hh"],"showDocumentLinksOnIncludes":true,"diagnosticsOnParse":true,"diagnosticsOnCodeCompletion":true,"codeLensOnLocalVariables":false,"clientVersion":3}

How can see if cquery took the compile_commands.json? The status bar says cquery: loading, can I somewhere see the indexing progress?
Thanks for your help!

Indexing progress should continue to be emitted inside of that same output window.
It may be easier to chat on https://gitter.im/cquery-project/Lobby if you're still having issues, otherwise I'll close the issue.

Ok.


Pinpoint to Hbase Distributed mode

Hi,
I installed Hbase in distributed mode.
Hbase is started and init hbase also worked. but collector is not started saying " server has closed socket, closing socket connection and attempting.."
Is there any additional config to do in collector?
Thank You!

Hi
refer to http://naver.github.io/pinpoint/installation.html#hbase-region-servers-hostname-resolution


chore: add dataloader to release-please manifest and fix mongoose

Which problem is this PR solving?
We forgot to add instrumentation-dataloader to the manifest and instrumentation-mongoose had a wrong path.

I'm still confused about which files need to be touched to keep release please happy. I thought that .release-please-manifest.json is updated by release please and users have to add their module only in release-please-config.json?

I feel you. I'm constantly confused myself as well.
Adding packages to manifest is only important because we don't release 1.0.0 as the first version. In my mind:

manifest -> release please's state;
config -> our preferences for release please.


fix up remaining issues with page breaks

I spent a few minutes trying to clean up the remaining issues with more than three blank lines before a page break (kudos to @jpapagelis24 for the helpful output below which guided me):

Closed with https://github.com/STAT325-S24/HistoryAmherstCollege/commit/24df69397e3116b2b88b4ac8a87e83f78d1dbe89


Chaoss Slack-bot Content Contributions

On the topic of improving the Chaoss Slack bot, there is a need for content contributions and the areas needing content include:

Slack bot
Project wiki
Contribution guide (all .md files)
and the issue form as well.

Content can be created for any of the above that require new content and tag @Ruth-ikegah to review the pull request.
Suggestions on how to improve already existing content are welcomed, if anyone would like to take any of these do create an issue and tag Precious (on slack) to avoid multiple people working on same issue.
While creating the issue you can just put N/A in any field that's not applicable to what you're trying to do in the issue form.
Here's a link to the project slack-bot/wiki

Assign @peculiaruc

Hi, @peculiaruc which of these areas would you want to work on?

3. CONTRIBUTING.md, SETUP.md, and README.md files
No 3

Okay @peculiaruc please create an issue for it, so that it can be assigned to you.

@the-techgurl
I'd like to ask if this issue is still opened?

@the-techgurl
I'd like to ask if this issue is still opened?

No please. The PR is waiting for review.

@the-techgurl
I'd like to ask if this issue is still opened?

No please. The PR is waiting for review.

Okay thank oyu very much for your reply.


ASU-702 API for fetching successfully mapped apartments

Creates new table with mapped apartment data and api for fetching those.
Creates new Django command for deleting mapped apartments from data table for use with cronjob.

Codecov Report

Merging #35 (33edc97) into develop (949c7d8) will decrease coverage by 0.07%.
The diff coverage is 75.38%.

@@             Coverage Diff             @@
##           develop      #35      +/-   ##
===========================================
- Coverage    85.14%   85.07%   -0.08%
===========================================
  Files           30       33       +3
  Lines          949      998      +49
  Branches        96       97       +1
===========================================
+ Hits           808      849      +41
- Misses         113      121       +8
  Partials        28       28

Impacted Files
Coverage Δ

connections/oikotie/field_mapper.py
100.00% <ø> (ø)

connections/oikotie/services.py
18.86% <15.38%> (+2.20%)
:arrow_up:

connections/etuovi/services.py
25.71% <50.00%> (+3.13%)
:arrow_up:

connections/api/views.py
83.33% <83.33%> (ø)

apartment_application_service/urls.py
100.00% <100.00%> (ø)

connections/api/serializers.py
100.00% <100.00%> (ø)

connections/enums.py
100.00% <100.00%> (ø)

...ement/commands/empty_mapped_apartments_database.py
100.00% <100.00%> (ø)

connections/models.py
100.00% <100.00%> (ø)

connections/urls.py
100.00% <100.00%> (ø)

... and 4 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 949c7d8...33edc97. Read the comment docs.

Included updated requirements files from dependencies updating branch to see that nothing get broken.


[VS Code] Joining collaboration session: Agent terminated with exit code: 0 and signal null:

Error:
Joining collaboration session: Agent terminated with exit code: 0 and signal null:
Steps to Reproduce:

Version Data

extensionName
VSLS

extensionVersion
1.0.18

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.33.0

platformName
Windows

platformVersion
10.0.15063

Hey @sergioalucard91 , could you provide some more information about what you were doing when this happened? Does this consistently happen for you?

Closing this issue due to inactivity. Please re-open it if you're continuing to encounter this problem. Thanks!


Repository Cleanup & Optimisation

Removed all .DS_Store files
Added .DS_Store to gitignore
Removed unnecessary whitespace from CSS
Used Kraken.io to Losslessly Compress art assets. Saved a few Megs
Adds a file called .editorconfig, which will allow for contributors to maintain coding styles with the .editorconfig plugin for their favourite Text Editors.
Introduced, then fixed, a bug caused by a reckless uncorrected parameter change.
Removed the Archive4.zip - which includes all the same contents as the repo.
laid foundations for a Gruntfile to manage a build process and run local servers in the future (SoundJS expects to be able to XMLHttpRequest to get things, this won't work if you just open index.html on your system like a normal file in your browser)

@ncase: Would it be possible to either merge or close this PR? As comment #48638320 mentioned my handle, this PR has become a permanent part of my mention tab.
If you're unable - or unwilling - to merge or close this PR, could I ask you edit the linked comment and remove my handle?
Essentially, I use the created, assigned, mentioned, and review tabs like inboxes (to keep at zero), so it's really quite distracting to have a PR from 2014 on there as a permanent feature.


<EMAIL_ADDRESS>inquirer.prompt is not work in node v8.1.0

<EMAIL_ADDRESS>inquirer.prompt is not work in node v8.1.0;
With node v8.1.0 run vue init pwa pwa, enter the name after the stuck, and then no response
when i change the inquirer to 3.1.1, it works but can't pass the unit test, so i close the pull requests, There may be a better solution

upgrade node


ENH: Changing output types and adding options for run action

This PR closes #5 .

Changes the output types of run action for tsv files to ImmutableMetadata type.
Removing the pipeline, having only run as the action of analysis. (the actual execution with virsorter2 is virsorter run ...)
Adding 2 optional parameters for the run action.

 This may print messages to stdout and/or stderr.
The command(s) being run are below. These commands cannot be manually re-run as they will depend on temporary files that no longer exist.

Command: virsorter run -w /var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/tmp3wcim73j -d /var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/qiime2/rischv/data/3c9d15e1-62c1-470d-96c0-48ef86ed4fc4/data -i /var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/qiime2/rischv/data/5a0b3d11-cd2f-45fb-94e8-51452c6fbbc1/data/dna-sequences.fasta -j 15 --min-score 0.7 --min-length 0 --use-conda-off

[2024-07-08 15:24 INFO] VirSorter 2.2.4
[2024-07-08 15:24 INFO] /Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/bin/virsorter run -w /var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/tmp3wcim73j -d /var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/qiime2/rischv/data/3c9d15e1-62c1-470d-96c0-48ef86ed4fc4/data -i /var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/qiime2/rischv/data/5a0b3d11-cd2f-45fb-94e8-51452c6fbbc1/data/dna-sequences.fasta -j 15 --min-score 0.7 --min-length 0 --use-conda-off
[2024-07-08 15:24 INFO] Using /Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/virsorter/template-config.yaml as config template
[2024-07-08 15:24 INFO] conig file written to /private/var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/tmp3wcim73j/config.yaml

[2024-07-08 15:24 INFO] Executing: snakemake --snakefile /Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/virsorter/Snakefile --directory /private/var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/tmp3wcim73j --jobs 15 --configfile /private/var/folders/nj/rfpdzc_90zl3555cttz236_w0000gp/T/tmp3wcim73j/config.yaml --latency-wait 600 --rerun-incomplete --nolock        --quiet  all
Job counts:
        count   jobs
        1       all
        1       check_point_for_reclassify
        1       circular_linear_split
        1       classify
        2       classify_by_group
        2       classify_full_and_part_by_group
        1       combine_linear_circular
        2       combine_linear_circular_by_group
        1       extract_feature
        1       extract_provirus_seqs
        1       finalize
        1       gff_feature
        2       gff_feature_by_group
        2       hmm_features_by_group
        1       hmm_sort_to_best_hit_taxon
        2       hmm_sort_to_best_hit_taxon_by_group
        1       merge_classification
        1       merge_full_and_part_classification
        2       merge_hmm_gff_features_by_group
        2       merge_provirus_call_by_group_by_split
        1       merge_provirus_call_from_groups
        5       merge_split_hmmtbl
        10      merge_split_hmmtbl_by_group
        10      merge_split_hmmtbl_by_group_tmp
        1       pick_viral_fullseq
        1       preprocess
        1       split_faa
        2       split_faa_by_group
        2       split_gff_by_group
        61
[2024-07-08 15:24 INFO] # of seqs < 0 bp and removed: 0
[2024-07-08 15:24 INFO] # of circular seqs: 1
[2024-07-08 15:24 INFO] # of linear seqs  : 8
[2024-07-08 15:24 INFO] Finish spliting linear contig file with common rbs
[2024-07-08 15:24 INFO] Finish spliting circular contig file with common rbs
[2024-07-08 15:24 INFO] Step 1 - preprocess finished.
[2024-07-08 15:35 INFO] Step 2 - extract-feature finished.
[2024-07-08 15:35 INFO]
            ====> VirSorter run (provirus mode) finished.
            # of full    seqs (>=2 genes) as viral:     5
            # of partial seqs (>=2 genes) as viral:     1
            # of short   seqs (< 2 genes) as viral:     1

            Useful output files:
                final-viral-score.tsv       ==> score table
                final-viral-combined.fa     ==> all viral seqs
                final-viral-boundary.tsv    ==> table with boundary info

                Suffix is added to seq names in final-viral-combined.fa:
                full    seqs (>=2 genes) as viral:      ||full
                partial seqs (>=2 genes) as viral:      ||partial
                short   seqs (< 2 genes) as viral:      ||lt2gene

            NOTES:
            Users can further screen the results based on the following
                columns in final-viral-score.tsv:
                - contig length (length)
                - hallmark gene count (hallmark)
                - viral gene % (viral)
                - cellular gene % (cellular)
            The group field in final-viral-score.tsv should NOT be used
                as reliable taxonomy info
            We recommend this SOP/tutorial for quality control
                (make sure to use the lastest version):
                https://dx.doi.org/10.17504/protocols.io.bwm5pc86

            <====

[2024-07-08 15:35 INFO] Step 3 - classify finished.
Traceback (most recent call last):
  File "/Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/q2cli/commands.py", line 468, in __call__
    results = action(**arguments)
  File "<decorator-gen-27>", line 2, in run
  File "/Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/qiime2/sdk/action.py", line 274, in bound_callable
    outputs = self._callable_executor_(
  File "/Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/qiime2/sdk/action.py", line 526, in _callable_executor_
    self.signature.coerce_given_outputs(output_views, output_types,
  File "/Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/qiime2/core/type/signature.py", line 487, in coerce_given_outputs
    output = self._create_output_artifact(
  File "/Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/qiime2/core/type/signature.py", line 511, in _create_output_artifact
    artifact = qiime2.sdk.Artifact._from_view(
  File "/Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/qiime2/sdk/result.py", line 353, in _from_view
    transformation = from_type.make_transformation(to_type,
  File "/Users/rischv/miniconda3/envs/q2-viromics/envs/q2-viromics/lib/python3.8/site-packages/qiime2/core/transform.py", line 58, in make_transformation
    raise Exception("No transformation from %r to %r" %
Exception: No transformation from <class 'qiime2.metadata.metadata.Metadata'> to <class 'q2_types.metadata._format.ImmutableMetadataDirectoryFormat'>

Plugin error from viromics:

  No transformation from <class 'qiime2.metadata.metadata.Metadata'> to <class 'q2_types.metadata._format.ImmutableMetadataDirectoryFormat'>

See above for debug info.
(q2-viromics) rischv@fsbt007 PR6Virsorter %

Im not sure what the problem could be. I used the same env from PR 6 and just installed the branch into that env, but i guess there is no difference. i also used the data from the PR 6 but its the same input.qza and db.qza i guess.

Hey @VinzentRisch,
Can you try installation as I do it in this PR? I have changed to one version of QIIME2 ahead (from 2023.5 to 2023.7), in comparison to PR-6, because it is the last version for which it works. Let me know if you get the same message. It seems to be something with the transformers though.


modifications required to build in windows

The following lines need to be added to the top of io.c:
#if defined(WIN32) || defined(WIN64)
#include <sys\stat.h>
#define S_IRUSR _S_IREAD
#define S_IWUSR _S_IWRITE
#define O_SYNC 0
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif

In addition, process.c needs to be added to the VS project in util

I don't have access to a Windows machine or VS. Would you be able to send me a pull request with this and/or the VS project change?

Will do!
On Tue, Mar 15, 2016 at 7:51 AM, Bob Nystrom<EMAIL_ADDRESS>wrote:

I don't have access to a Windows machine or VS. Would you be able to send
me a pull request with this and/or the VS project change?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/munificent/wren/issues/342#issuecomment-196827469

--
John Lagerquist
Chief Engineer
RallyTronics LLC
801-866-5981

This is done now, right?


feat(HUB-67): preserve page location on namespace change when in namespace view

Didn't test it yet, staging does not work :(


Clean up the legend on map 2

Take a look at this

I've updated this ticket and put it on the Map2 Milestone and In Progress status. Let me know if it should be updated otherwise. cc @benjaminug


No fail when ghooks not found

The git hook template should somehow try and catch on a require('ghooks') to prevent the case where someone deletes their node_modules directory and tries to pull. Had this cause some trouble for me. We could have it warn that the hooks aren't running.

Fixed on 8c461549a41207a4b23055370891ecaebb4bebf4.


fix bugfix

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Pull request type

Please check the type of change your PR introduces:

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Other information

Codecov Report
Patch coverage: 25.00% and project coverage change: -18.57 :warning:

Comparison is base (d78e692) 64.78% compared to head (cfce2c6) 46.22%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #710       +/-   ##
===========================================
- Coverage   64.78%   46.22%   -18.57%
===========================================
  Files         228      154       -74
  Lines       22295    16120     -6175
===========================================
- Hits        14444     7451     -6993
- Misses       7084     8338     +1254
+ Partials      767      331      -436

Flag
Coverage Δ

?

1.17.x
45.98% <25.00%> (-18.52%)
:arrow_down:

1.19.x
46.29% <25.00%> (-18.00%)
:arrow_down:

1.20.x
?

integration
?

macOS
?

secure
?

ubuntu
46.22% <25.00%> (-0.02%)
:arrow_down:

unit
46.22% <25.00%> (-0.08%)
:arrow_down:

windows
?

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

Impacted Files
Coverage Δ

connection.go
3.70% <0.00%> (-74.82%)
:arrow_down:

internal/table/client.go
78.47% <27.27%> (-8.67%)
:arrow_down:

... and 171 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Support scenario had better "source->target" than "target->source".

Support scenario had better "source->target" than "target->source".

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8c8dc618-bff7-b1aa-be2c-b6b933f75545
Version Independent ID: 9a608dd8-d781-eb4a-c796-34f758f0d58a
Content: Database migration scenario status
Content Source: articles/dms/resource-scenario-status.md
Service: dms
GitHub Login: @HJToland3
Microsoft Alias: jtoland

Thanks for the feedback! We are currently investigating and will update you shortly.

Given the scenario in which the information is being presented; reverse engineering the process to first identify the desired database platform the migration is to Target, a list of supported Source database platforms can be presented. The Target -> Source analogy works in this case.
We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion. Thanks!

Users start "source" which they have existing databaes and they want to understand that which target can they migrate from their databases to.

@yuharucan, this table is intended to show the status of each migration scenario, not which targets are available for each source. You can get a better idea of which targets are available for which resources on this page: https://docs.microsoft.com/azure/dms/dms-tools-matrix. You can also check out the Azure Database Migration Guide at https://datamigration.microsoft.com/.


Fixing all tests and more

I fixed a few errors that i've got when running my project's test suites, e.g.
NoMethodError: undefined method detect for nil:NilClass

And also that the currencies does not match, because it is setting the default currency to the mocked customer (which should not be set).
All tests that I've fixed ran successfully on my local machine.

@lpsBetty are there any failing tests on your local?

@csalvato no i fixed them all

@lpsBetty Thanks for this work.
When I run specs locally, I get several failures:
Finished in 11.31 seconds (files took 0.8676 seconds to load)
1129 examples, 462 failures, 39 pending

We will need to set up some CI (maybe GitHub actions) to test various environments. Once we do that, we can have a red/green suite and development on this gem should be a lot faster.
What command are you running to run the specs? Also, what Ruby version?  If you have a fully passing suite, we can start there with support for the gem.

@csalvato ruby version 2.6.2 as defined in .ruby-version and executing with bundle exec rspec
Can you tell me one of your failures? Did you run it within my repository lpsBetty/stripe-ruby-mock ?

@lpsBetty Thanks for helping me clear this up. It was definitely because of running ruby 3.0 on my local environment.
It looks like the server doesn't support ruby 3.0 just yet, and there will need to be some changes to make it work. I don't see a reason to prioritize that, though, unless someone raises an issue on it.
Ideally, we set up github actions/travis/circle to run tests on 2.6.2 and a few other ruby versions automatically. 🤔
Not sure if that's something you're willing to take on, but i can merge this in, in the meantime and we can plan for another release.
I'll create another release candidate with these changes and push a new version of the gem.

The gem should now be updated and accessible with a bundle update 👍🏼

@csalvato very cool, thank you! yes i can help you with CI, when i find time ! :)


When giving sequential commands with && it goes crazy

When I type youtube-dl (some playlist link) && youtube-dl (other links) it starts overlapping downloads and the output is a mess, this is the only program that doesn't respect the order assigned (command1) && (command2)

Carefully read new issue template and provide all requested information.

@yan12125

If you're looking for diagnosing, please provide enough information: the actual command you use. Fake parameters like (some playlist link) doesn't help.


Box with uppercase name didn't migrate from 1.0.0 to 1.1.1

Step to reproduce:
// build with Hive 1.0.0
void main() async {
  final directory = await getApplicationDocumentsDirectory();
  Hive.init(directory.path);
  final box = await Hive.openBox('LOCAL_STORAGE');
  box.put('FOO', 'BAR');
  runApp(MyApp());
}

// build with Hive 1.1.1
void main() async {
  final directory = await getApplicationDocumentsDirectory();
  Hive.init(directory.path);
  final box = await Hive.openBox('LOCAL_STORAGE');
  print(await box.get('FOO'));
  runApp(MyApp());
}

Expected: print BAR in console
Actual: print null in console
I found that our box file is stored in lowercase local_storage.hive for 1.0.0, and uppercase LOCAL_STORAGE.hive in 1.1.1.
I think it's the most breaking  breaking change  you can get, but it's not documented anywhere.
Not only is data from 1.0.0 lost in 1.1.1, we have some trouble recreating corrupted Hive file because now we have both lowercase/uppercase file in production
  Future<Box> get _box async {
    await _hiveInitialization;
    try {
      return await Hive.openBox(_boxName);
    } catch(e) {
      File('$_hivePath/$_boxName.hive').delete();
      return await Hive.openBox(_boxName);
    }
  }

Shit, I'm very sorry, this is a major bug that was not detected by the unit tests :(
The correct implementation would use lower case letters.

I'll close this for now as there is nothing I can do to undo that mistake...

Oh I thought you are going to close it after 1.2.0 but that's fine.
Do you have some timeline for 1.2.0?
We already handle the situation for now so not pushing, just a little info would be nice.
Also base on our current situation (some UPPERCASE.hive out there), do we need to do anything when upgrading to 1.2.0?

@Fantasycheese I'm still working on #94. 1.2.0 should be published in 1-2 weeks.

Unfortunately, 1.2.0 will be another breaking change for you. Everything will be how 1.0.0 did it.

@leisim Sure don't worry, as long as I know beforehand we should be fine. FYI previously we have some trouble adding any plugins in add-to-app structure on iOS so this library is a life saver for us, thanks!

Dev version of v1.2.0 published. I documented the new breaking change in the changelog.

😢 I published my app with 1.1.1 so my boxes are CamelCase.hive and CamelCase.lock. I've seen error logs consistent with https://github.com/hivedb/hive/issues/94. I decided to upgrade to 1.4.1+1 and I get can't open error. I've tried to programmatically rename the box files from CamelCase.hive to lower camelcase.hive.
@leisim are there any technical reasons renaming these files wouldn't work before opening them with Hive?


ENH: Add datalad installation via conda

It will also install git-annex which datalad uses for management of large
files.
Since it is just a "tool", I have not used --freeze-installed to benefit from
possible upgrades etc.
It could also be installed from stock ubuntu, but would be an older version.
Also backports are available from NeuroDebian, but I have decided to just go with
conda installation for now.
Closes #50
What kind of change does this PR introduce?

[ ] Bugfix
[x] New Feature
[ ] Feature Improvment
[ ] Refactoring
[ ] Documentation
[ ] Other, please describe:

Description:

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] My changes don't require a change to the documentation, or if they do, I've added all required information.

Oh, I guess I should add to documentation. At large it should be just a reference to http://handbook.datalad.org/ and may be http://handbook.datalad.org/en/latest/code_from_chapters/usecase_ml_code.html and http://handbook.datalad.org/en/latest/beyond_basics/101-168-dvc.html in particular

@yarikoptic Thanks for the pull request! I took a closer look at datalab for the 0.12 release. Unfortunately, the installation is too big for a single tool to be preinstalled inside the main workspace flavor:

conda install (409MB):

apt install (390MB):

A few other options:

Build and publish your own datalad flavor:

# Extend from any of the workspace versions/flavors
FROM mltooling/ml-workspace:0.12.1

# Run you customizations, e.g.
RUN \
	# Install datalad
    apt-get update && \
    apt-get install -y datalad && \
    # Cleanup Layer - removes unneccessary cache files
    clean-layer.sh

Use an install method with a smaller footprint. However, since most space is used by git-annex, this might not be possible.
Add a tool installer script (e.g. see these scripts). However, datalad is quite easy to install, so it might not need an additional installer script.

@yarikoptic Thanks for the pull request! I took a closer look at datalab for the 0.12 release. Unfortunately, the installation is too big for a single tool to be preinstalled inside the main workspace flavor:

conda install (409MB):

apt install (390MB):

A few other options:

Build and publish your own datalad flavor:

# Extend from any of the workspace versions/flavors
FROM mltooling/ml-workspace:0.12.1

# Run you customizations, e.g.
RUN \
	# Install datalad
    apt-get update && \
    apt-get install -y datalad && \
    # Cleanup Layer - removes unneccessary cache files
    clean-layer.sh

Use an install method with a smaller footprint. However, since most space is used by git-annex, this might not be possible.
Add a tool installer script (e.g. see these scripts). However, datalad is quite easy to install, so it might not need an additional installer script.

conda install (409MB) -- is that in addition to what you already have installed otherwise anyways (  indeed would be too big then :-/) ?  majority should be common python packages (besides git-annex itself which is written in haskell but it should not pull too much).  I can look into it later to see where the hit comes from and see what could be done.

conda install (409MB) -- is that in addition to what you already have installed otherwise anyways (  indeed would be too big then :-/) ?  majority should be common python packages (besides git-annex itself which is written in haskell but it should not pull too much).  I can look into it later to see where the hit comes from and see what could be done.

Yes, it's in addition. But there are some pinned dependencies that are forced to downgrade/upgrade... which might blow up the total required space as well. To see what's actually installed/removed/downgraded, you can just build this Dockerfile:
# Extend from any of the workspace versions/flavors
FROM mltooling/ml-workspace:0.12.1

# Run you customizations, e.g.
RUN \
	# Install datalad
    apt-get update && \
    apt-get install -y datalad && \
    # Cleanup Layer - removes unneccessary cache files
    clean-layer.sh

Yes, it's in addition. But there are some pinned dependencies that are forced to downgrade/upgrade... which might blow up the total required space as well. To see what's actually installed/removed/downgraded, you can just build this Dockerfile:
# Extend from any of the workspace versions/flavors
FROM mltooling/ml-workspace:0.12.1

# Run you customizations, e.g.
RUN \
	# Install datalad
    apt-get update && \
    apt-get install -y datalad && \
    # Cleanup Layer - removes unneccessary cache files
    clean-layer.sh


Adding TypeScript Notes And Codes

Assign to me and add hacktoberfest labels as soon as possible so i can do pull reqest

Assign to me and add hacktoberfest labels as soon as possible so i can do pull reqest

Go ahead and make sure to add code snippets and example


Add implementation of elgot hylomorphism

This PR adds elgot hylomorphisms, as mentioned in this TODO on Paramerge.
The two auxiliary definitions of loop and trans were introduced for documentation purposes and assist type inference in the remaining code.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@sellout Are tests obligatory? To be honest, I haven't looked very deeply into your testing infrastructure, yet. What would be the best location to add tests to?

@b-studios Yeah, that would be nice – we should have codecov verifying that coverage doesn’t decrease, but I think I have to fix something to make that work again.
Tests should go under tests/src/test/… – it’s not very well organized at the moment – I think most tests are just in spec.scala, but feel free to put things elsewhere if it makes things clearer for you.

@sellout I added some tests, though I am not super happy with the use cases. They still look contrived and semantically don't use everything the elgotHylo has to offer.
I also added tests for elgotCata and elgotAna while at it. I noticed that elgot(Cata|Ana) take the distributive laws as first argument, I would be interested in the design considerations there. Currently, my implementation of elgotHylo first takes phi and psi and then the distributive laws.

@b-studios Yeah, so the order of parameters I probably just got from @ekmett’s recursion-schemes. I guess we could potentially do something like
  def elgotHylo[M[_]: Monad, W[_]: Comonad, F[_]: Functor, A, B](
     kf: DistributiveLaw[F, W],
     kg: DistributiveLaw[M, F]
   ): (ElgotAlgebra[W, F, B], ElgotCoalgebra[M, F, A]) => A => B

def elgotDyna[…] = elgotHylo(distHisto, distAna)

but that probably doesn’t play well with inference. Also we tend to have the value A as the first parameter – just seems to be the Scala way. My Haskell brain definitely prefers the A => B.

@sellout I agree, this won't play well with type inference since A and B are known too late. It probably doesn't make any sense to discuss this in this PR, but I prefer the A => B for the simple reason that I like to see the x-morphisms as building blocks to define functions, rather than as a tool to recursive over something.

Sidenote: I also don't understand why Kmett puts the algebra argument before the coalgebra one. Maybe I am thinking to imperative here, but for me it is (1) unfold something, then (2) fold into a result.

The order of arguments was picked a decade before I ever appeared on the scene, but the argument order is good for equational reasoning and fits with existing practice with (.).
 g) a to keep things in the same order.
The parts are in the same order as you rewrite:
hylo f g a = cata f (ana g a) = (cata f . ana g) a

Internally,
hylo f g = h where h = f . fmap h . g

f & g are placed in the order they appear in the result
You can derive the internal definition of hylo from taking cata and ana's internal definition and fusing them this way, and nothing ever gets interchanged in the argument list.

@ekmett Thanks, for your explanations! Taking (.) as the primary composition mechanism on arrows  this completely makes sense. As I said, maybe I am still thinking too imperative here, but if we build on reverse arrow composition (;) instead (as I have also seen in some literature on CT) we at least would have:
hylo g f = ana g ; cata f

which also keeps the parts in order. Admittedly, I can't claim the same for f (g a) and (g ; f) a.

You'd also run into the problem that every single person that knew what these were would get the argument order wrong.
Functional Programming with Bananas, Lenses and Barbed Wire is a chapter in Erik Meijer's thesis, and pretty much the paper that set the order of these things in stone and popularized the core concepts.

Just pretend you're writing POSIX-compliant code, as such the destination/output description is the first argument by convention if it makes you feel better. ;)

@ekmett Scala basically universally inverts argument order.  Intuitively, this is because the "first" argument is the dispatch receiver in an OO language, which is also by definition usually the most specific argument and thus the one that would be placed last in a language where functions are the primary abstraction.
The unfortunate reality is that the type inferencer and the parser are both biased toward the "most-to-least specific" ordering, and it's almost impossible to create a usable Scala API which bucks that trend.  It is backwards from the standpoint of composition (.), but there's not a lot that can be done about it unless you want to give up on inference and, secondarily, extraneous punctuation everywhere.

@ekmett I have to apologize, I know the Bananas paper and the argument ordering there and misattributed you in my statement above. It is just that you are an authority on the field of recursion schemes and I was too quick with putting fingers.
To conclude the slightly off-topic discussion: I will change the argument ordering to be compliant with the established standards, but still need to find an elegant solution for the distributive laws.

def elgotHylo[M[_]: Monad, W[_]: Comonad, F[_]: Functor, A, B](
  f: ElgotAlgebra[W, F, B],
  g: ElgotCoalgebra[M, F, A],
  kf: DistributiveLaw[F, W],
  kg: DistributiveLaw[M, F]
): A => B

@djspiewak: argument order doesn't really help these with inference without doing a ton of different argument groups, basically all the parameters are functions, so the best you could do is take the (A) as an argument in one parenthesis group, then all the functions after and it'd help you infer a tiny bit about the carrier of the coalgebra argument. Once you do that, though, the whole thing becomes a mess, though. You could maybe use the determination of F from the coalgebra to infer the type of F in the algebra, and then in a separate argument group you'd be able to fully infer rather than check types for the distributive laws.
def elgotHylo[M[_]: Monad, W[_]: Comonad, F[_]: Functor, A, B]
  (a: A)
  (g: ElgotCoalgebra[M, F, A])(f: ElgotAlgebra[W, F, B])
  (kg: DistributiveLaw[M, F], kf: DistributiveLaw[F, W]): B

But god damn is that a mess. ;)Actually using the distributive law arguments first might work out better, because they'll tell you M and F and W. so that you just need, but to get inference to flow for F you need to take them in separate ()'s.
def elgotHylo[M[_]: Monad, W[_]: Comonad, F[_]: Functor, A, B]
  (kg: DistributiveLaw[M, F])(kf: DistributiveLaw[F, W])
  (a: A)
  (g: ElgotCoalgebra[M, F, A], f: ElgotAlgebra[W, F, B]): B

Yuck again. 4 argument groups haphazardly sorted? But interestingly in this last case, it doesn't matter which way you take algebra vs. coalgebra arguments as
def elgotHylo[M[_]: Monad, W[_]: Comonad, F[_]: Functor, A, B]
  (kf: DistributiveLaw[F, W])(kg: DistributiveLaw[M, F])
  (a: A)
  (f: ElgotAlgebra[W, F, B], g: ElgotCoalgebra[M, F, A]): B

works just as well. In theory that'd let you infer all the type arguments at the low low price of your soul when you have to read the code later or figure out how to call it. =)

@ekmett Yeah, I remember jumping through some of these hoops when initially writing the generalized stuff.
I think the main reason we ended up with something like def gcata(T)(DistributiveLaw, GeneralizedAlgebra): A was to make it possible for Simulacrum to generate implicit Ops classes (via @typeclass). But that only affects Recursive. Corecursive and hylo-ish ops need to be hand-written anyway, but consistency is useful.
However, we later abandoned @typeclass sow we could use other tricks (PartiallyApplied) to make it easier for users to call the Ops methods. There are various issues (scala/scala#5108, mpilquist/simulacrum#75, mpilquist/simulacrum#76) that would make it possible to eliminate various tricks and/or get back some of the automation.

To be honest, I'll be shocked if you get anybody ever using anything more complicated than a dynamorphism in practice. Examples become sparse the farther up the tree you climb.
All of these fancy hylo variants can be written in terms of the base hylo. They are just stylized applications of distributive laws.
And indeed within the confines of these sorts of combinators, a better approach overall would be to base work on the adjoint folds stuff that Hinze,  Wu, and Gibbons have built up, but that requires a better language than Scala, or frankly, Haskell as it is used today as well. =(

Yeah, adjoint folds are on the TODO.
Most of the code in here is motivated by use in quasar-analytics/quasar.
Are you saying that ghylo can be written in terms of hylo? It’s not immediately obvious to me how, but I’m interested in digging in if so.

You need an extract and a return on the outside. Your carriers shift to being (M A) and (W B) instead of A and B. The result is less efficient if you don't use Yoneda[F] instead of F, though, as it will use separate fmaps because you'll have to do an fmap inside of each of the algebra and coalgebra.

All the distributive laws do is 'shove crap back into the carriers' so that the recursion scheme can keep pushing it out of sight one more recursion level deeper in.

ghylo covers everything here except for Fokkinga's postpro/prepro and some adjoint fold cases that aren't expressible through this (co)monad transformer approach.

Does this also work for the “elgot” variants? In Matryoshka, I’ve generalized the term from the usual “elgot {co}algebra” to type EAlgebra w f a = w (f a) => a (and the obvious dual).

Sticking to the basic version:
elgot :: Functor f => (f b -> b) -> (a -> Either b (f a)) -> a -> b
elgot phi psi = h where h = (id ||| phi . fmap h) . psi

doesn't fit the pattern of
hylo phi psi = h where h = phi . fmap h . psi

directly, because of that pesky (id |||) on the outside. That is the key to using elgot efficiently though. It means that we can build up layers one by one or choose to cheat and just tell the output its carrier directly.
But you should be able to change base functor from f to Compose (Either b) f and stylistically replace the algebra with one that just passes through the left case as its answer and otherwise does what the original did.
So in the elgot case you're changing the functor, not the carrier to shoehorn it into the hylo mold.

Thanks, this has all been super-informative.

@b-studios I still think this PR is useful as-is (with a reordering of the parameters). The implementation might change (a la #72), but the signature should be the same.
Also, could you define elgot and coelgot in terms of elgotHylo? Preemptively get rid of a few more Recursion warnings 😆

@sellout Should I also implement elgot(Cata|Ana) in terms of elgotHylo or is this counterproductive wrt your recursion elimination strategy?

@b-studios Yeah, I think that’d be good. Eventually elgot(Cata|Ana) should be implemented in terms of cata or ana, but I’m currently stuck on how to do that. You can see I did the same with anaM, etc. in #72 – implement it in terms of some hylo until I can figure out how to do it in terms of ana.

@sellout As promised on gitter, I implemented elgot(Ana|Cata) and (co)Elgot in terms of ana|cata / hylo, respectively. I was slightly surprised that I did not need to use the elgotHylo -- which again seems like a point for "we don't actually need it".
To finalize this PR, I think we only need to change the argument order of elgotHylo as desired. However, in the discussion above I lost track of what's the argument order that you'd prefer. I suggest:
def elgotHylo[M[_]: Monad, W[_]: Comonad, F[_]: Functor, A, B]
      (a: A)
      (kφ: DistributiveLaw[F, W], kψ: DistributiveLaw[M, F])
      (φ: ElgotAlgebra[W, F, B], ψ: ElgotCoalgebra[M, F, A]) : B = ???

In practice you probably don't want to implement them in terms of ana/cata as you'll run into problems with performance. scala isn't the best at inlining and/or dealing with Yoneda'd code. ;) I tend to favor just directly implementing them as a result.

Yeah, that’s close. A couple small changes – reverse the order of the M and W type parameters, merge the distributive law & algebra parameter lists, and since we use Monads in two ways (as part of a gana as well as in anaM), we use N for the first type and M for the latter.
def elgotHylo[W[_]: Comonad, N[_]: Monad, F[_]: Functor, A, B]
  (a: A)
  (kφ: DistributiveLaw[F, W], kψ: DistributiveLaw[N, F], φ: ElgotAlgebra[W, F, B], ψ: ElgotCoalgebra[N, F, A])
    : B = ???

This’ll also need a merge from master, and probably some (hopefully minor) conflict resolution in the tests.

@ekmett The reason for defining the unfolds in terms of ana is so that, e.g., Corecursive[Nu[F]].elgotAna will be lazy like Nu’s ana. #72 makes this change more generally, and I’d be more than happy to get your input on it.

The thing to make sure is that the stylized distributive law tweaks don't wind up causing you to map 2-3 times per iteration rather than once. Expand out the code for your distributive laws and make sure you don't wind up with, say:
f . fmap duplicate . fmap h . fmap join . g

rather than

f . fmap (duplicate . h . join) . g

Depending on the base functor, this cost can be tremendous. You can fuse them by using Yoneda to force the fmap to happen in one pass, but you'd need to benchmark / inspect the generated code to see how awful it is in practice.


azcore: instrument code with logging

Include armcore and azidentity

This has been addressed.  New issues should be opened for specific places that should be enhanced further.


Copy button in Settings>About>Files should graphically indicate that it is a dropdown

What feature or improvement do you think would benefit Files?
Perhaps the Copy button could use a tiny arrow signalling that it is not a single click, single action button but rather a dropdown leading to two options.
Or it could be split into two dedicated buttons.
This would be a very minor and subtle change, yet it has confused me from the very first time I had made use of it, and it keeps on doing so to this day, as it is what has driven me to request this improvement.
Requirements
Dropdown modals have already been implented therefore there are no prior requirements to this improvement.
Files Version
<IP_ADDRESS>
Windows Version
10.0.19045.2788 | Windows 10 Pro | Version 22H2 | OS build 19045.2788 | Windows Feature Experience Pack 120.2212.4190.0
Comments

Thanks for the feedback. The copy button isn't a drop down as it doesn't have sub options.

What Josh said is correct, while chevrons are used to indicate when there is a drop down menu, it's not the design we use for regular buttons with a menu flyout.


"Fill match arms" code action creates non-exhaustive match

I have code like this:
        let mut chars = s.chars().peekable();
        match chars.peek() {
            Some(&'+') => {
                chars.next();
            }
            Some(&'-') => {
                bigint.negative = true;
                chars.next();
            }
            _ => (),
        }

Rust analyzer (run through Emacs) suggests the "fill match arms" action which, when applied, changes the fallback match arm to:
        None => {}

However, that's incorrect because as the compiler points out, the patterns Some(&'\u{0}'..='*'), Some(&','), Some(&'.'..='\u{d7ff}') and 1 more not covered.

Just to be clear, what do you expect "Fill match arms" to do on that code?
What about this one?
        let mut chars = s.chars().peekable();
        match chars.peek() {
            Some(&'+') => {
                chars.next();
            }
            Some(&'-') => {
                bigint.negative = true;
                chars.next();
            }
        }

Just to be clear, what do you expect "Fill match arms" to do on that code?

To be honest, I don't expect a "fill match arms" action to be suggested for that code. I clicked the suggested action because I was curious what the analyzer would do, and it actually created invalid code, which seemed like a bug.
I am a new user of rust-analyzer, so maybe I'm misunderstanding the intention behind the suggestions (code actions).

What about this one? [...]

I guess adding a _ fallback might be ok for this case. But in my view it would also be fine to just not offer the suggestion for cases where the analysis can't be done or where listing all options would be infeasible for other reasons.

Yeah, I think we shouldn't offer it in cases like these. Just wanted to make sure you didn't want us to list every char.

I think adding Some(_) and None would be correct.

@lnicola I didn't want the analyzer to list every char. :)
@flodiebold Adding Some(_) and None seem correct for the case in Inicola's comment, but less so for my original case. The _ fallback was already there, so a suggestion that additionally distinguishes between Some(_) and None doesn't seem to add much value.

No, I think it's still the right thing in the original case. It's no different from when you have
match option {
    _ => {}
}

and apply the assist.

Fair enough - I guess the issue is that I misinterpreted the assist as a sort of suggestion.

It's only a suggestion if it comes with a diagnostic, otherwise it's just something to help transform the code if you want to. We have many cases of assists doing opposite transformations :slightly_smiling_face:


hotfix: installer shall use master

With this fix, flake8 checks also work and should catch more issues (e.g. f-strings not in Python3.5 on stretch)

At least for one user it was confirmed in https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/747#issuecomment-581031783 that it works again.

Hat funktioniert. Ich danke Euch

I think @ZyanKLee already fixed this in develop.


Error: Incorrect whitelist config, no code coverage will be generated.

Related to https://github.com/PUGX/badge-poser/pull/391
See the build: https://app.circleci.com/pipelines/github/PUGX/badge-poser/282/workflows/8b32270e-4bf6-4c74-89af-53242dd10e0b/jobs/1162

See https://github.com/PUGX/badge-poser/pull/393
BTW I don't see any tool to collect the result of code coverage. Is it intended or is it missing?

was on the todo list of things to do!

There's an issue that I can tackle, or was just an "abstract" to do? Because I can set it up in a different PR.
If there's not an issue related, what provider (coveralls, codecov, etc) do you prefer?

Unfortunately there is no issue, we talked about it on slack!
I have no preferences about it! I leave the choice to the creator, the important thing is that we can then use a badge that shows the percentage in the readme! ;)

Ok. I'll work at this next days.

I think this could be closed.


function must be used instead of an arrow function =>

Arrow functions do not set arguments. function must be used to define functions in which you desire to manipulate arguments.
If you use an arrow function here, all of the functions break.

I agree with the function, just wanted to align the style; and disrespected the usage of arguments. Sorry about that!
I'm not so sure about === though: Although I prefer it in general, for typedef it's pretty clear, what the type of that expression is. No need for a third =.


Colors

How to change dots and selected one colors?
I tried the following code but there is an error:
slideshow.activityIndicator = DefaultActivityIndicator(style: .white, color: nil)

I want the following colors:

Please help me.

you can use
.pageControl.currentPageIndicatorTintColor &.pageControl.pageIndicatorTintColor

Thanks


ApiException::getPrevious returns null, if it is constructed by ApiException::create()

If I create some ApiException by method create, method getPrevious returns null:
$clientExceptionPreviousNull  = ClientErrorException::create()
  ->withMessage('Resource was not found')
  ->withCode(IResponse::S404_NOT_FOUND)
  ->withPrevious($e);

$clientExceptionOK = new ClientErrorException('Resource was not found', IResponse::S404_NOT_FOUND, $e);

var_dump($clientExceptionPreviousNull->getPrevious(), $clientExceptionOK->getPrevious());

Not so easy to fix as Exception::getPrevious is final method :( Probably would need new method or construct it with 'new'.

Fixed by https://github.com/apitte/core/commit/02390f26188929916e08522f10b684633dfe6e5c


Cop idea: Named Placeholder cop

Reference: https://rails.rubystyle.guide/#named-placeholder
Actual behavior
I have the code:
# frozen_string_literal: true

class User < ApplicationRecord
  def method
    Client.where(
      'orders_count >= ? AND country_code = ?',
      params[:min_orders_count], params[:country_code]
    )
  end
end

I will run rubocop and not get any offences:
ydakuka@yauhenid:~/Work/project$ bin/rails_docker rubocop app/models/user.rb
Inspecting 1 file
.

1 file inspected, no offenses detected

Rubocop
ydakuka@yauhenid:~/Work/project$ bin/rails_docker rubocop -V
1.55.1 (using Parser <IP_ADDRESS>, rubocop-ast 1.29.0, running on ruby 2.7.8) [x86_64-linux]
  - rubocop-capybara 2.18.0
  - rubocop-factory_bot 2.23.1
  - rubocop-performance 1.18.0
  - rubocop-rails 2.20.2
  - rubocop-rake 0.6.0
  - rubocop-rspec 2.23.0
  - rubocop-thread_safety 0.5.1

I doubt this is better for parameters less than 3, for example. This cop probably needs a minimum count configuration.

The style guide rule indicates the following:

Consider using named placeholders instead of positional placeholders when you have more than 1 placeholder in your query.

The more places where the ? placeholder is used, the more meaningful naming becomes. So, unless there's significant user feedback, the configuration might be unnecessary.


Welcome screen

When tapping the scanner to scan the invite QR to get into the app, the scanning window was off center to the left, with some of the blue screen underneath showing (i'll try to get a screenshot)
LG K40
The scanner to join a group looks normal, so its just the invite version.

same here, motorola one, looks like need to be adjusted to android.