Improve ci by using a pre-built image with required tools

Currently we install,at runtime (when ci is triggered), the required tools for ci tests.
Which makes CI slow and hard to keep tools versions aligned with the dependencies versions.
Using an image with required tools already installed would make this simpler

@Mo3m3n is that fixed by #427?

yes it is


Generic Row format with Row metadata

Create a generic Row format with Row metadata

This is similar to org.apache.spark.sql.catalyst.expressions.UnsafeRow.


More control over carousel caption positioning

Follow up on https://github.com/twbs/bootstrap/pull/29493#issuecomment-538807109.
I think we can go one step further and make it possible to use the thumbs as a stand alone subcomponent which for example can be displayed below the carousel.

@MartijnCuppens I would like to contribute to this step. Guide me what you actually needed in styling

@MartijnCuppens I would like to contribute to this update. Give me a brief description of what you actually  need to style

@MartijnCuppens Still want to tackle this at all? I'm indifferent on adding a new feature here. Perhaps adding null variables is enough?

@MartijnCuppens Still want to tackle this at all? I'm indifferent on adding a new feature here. Perhaps adding null variables is enough?


Error opening OpenEphys files with no events

Describe the bug
Since 11.1.0, due to the change in openephysbinaryrawio.py, neo/rawio/openephysbinaryrawio.py", line 215, OpenEphys files without events cannot be opened:
File "site-packages/neo/rawio/baserawio.py", line 179, in parse_header
self._parse_header()
File "site-packages/neo/rawio/openephysbinaryrawio.py", line 215, in _parse_header
if states[0] < 0:
File "site-packages/numpy/core/memmap.py", line 334, in getitem
res = super().getitem(index)
IndexError: index 0 is out of bounds for axis 0 with size 0
this:
if states[0] < 0:
in 11.0 used to be :
elif 'states' in d:

@mkollo Thank for testing the new release! Can you confirm #1189 fixes the issue?

@mkollo Did you have time to check if https://github.com/NeuralEnsemble/python-neo/pull/1189 fixes the issue for you?

Hi, Sorry for the delay. Yes, I tested it now, and it does fix it, thank you!

Thanks!


despite cuda drivers being installed, I'm seeing this issue

[2023-05-01 12:17:25 +0000] [8] [INFO] Booting worker with pid: 8
2023-05-01 12:17:26.167599: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
2023-05-01 12:17:26.168772: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2023-05-01 12:17:26.189715: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2023-05-01 12:17:26.189953: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F AVX512_VNNI AVX512_BF16 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-05-01 12:17:26.572682: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
Directory  /root /.deepface created
Directory  /root /.deepface/weights created

Exception message is clear.
Could not find cuda drivers on your machine, GPU will not be used.
Your installation is not okay.


Patch / Sort update

Patch to temporarily correct unassigned "entry_page" value when a sub-folder only contains a single index.
Preliminary sort on build tree to improve first_page identification.
Need testing on "View Documentation" assignment when only nested index pages are available.  Currently fails with invalid URI.

Patched daux_page uri usage for View Documentation error.

Site index identification

Patched "first_page" usage to use the _index.md for the initial request, or index.md file if available.
Modified the navbar header to render a base url link only.

LOCAL_BASE constant

Added constant definition to the entry pages index.php & generate.php to be used for the $daux->local_base value when initialized.  This is necessary to allow symlink packages to work properly.

Index title identification

Altered the method for which the document title for index pages is identified, using instead the containing folder name when available.  This prevents the word "index" from being used as the document title.

Image / Raw file downloads

Removed the extension definitions from the .htaccess RewriteRule to correct a 404 header error (primarily affecting Chrome)
Added Content-length to the headers generated in the RawPage output

config.json within tree

Added loading of config.json files during the tree traversing / building procedure.  Custom configuration params are used for that node and descendants only.

Added ipfilter config array

Filter incoming requests from accessing a folder by IP address.  Useful during the document authoring process.

Added inherit_index config flag

Disabled by default, the inherit_index flag alters the lookup procedure for the index page of a folder.   When enabled, each folder will inherit the first available index or page of a descendant node in the folder tree.  This does not change the existing usage of the index files available but allows folders that do not contain an index file to inherit the first available Content item as the index.

Markdown Parser abstraction

Added MarkdownParser abstraction layer.
Added \League\CommonMark to vendor tree.
Created two parser handlers, Parsedown and CommonMark
Assigned Parsedown as default, CommonMark as active in example docs.

Hi,
All these should be fixed and be in the development branch.
If you want to re-propose your markdown parser abstraction, can you create a new pull request please?

Yes - I'll do that now

@onigoetz - since we forked your refactor two months ago you have refactored the tree again.  This merge will take a bit more time unfortunately.  I'll submit the PR as soon as possible.

@onigoetz - hey bud I've just reviewed your restructuring and need to make sure I understand your logic before trying to refactor my parser solution into this new codebase.
As I understand it, your logic / convention is thus that the rendering of a page is passed through the following:  Processor -> Generator -> Formatter -> Converter
Does this sound correct?  The Generator / Formatter / Converter layers seem a bit mixed together so I want to make sure I have a clear picture before this is refactored for the parser changes.
Also you have the hack for the "processor_instance" that I would like to address, since as you mentioned in the comments it isn't very pretty.  Along with that it would be nice to to refactor the "extendCommonMarkEnvironment" logic since that specific convention should probably not be held in the processor, unless we want to be adding extension function for every parser in the future.
Thank in advance.  We can Skype if you prefer.

It's not exactly that.
The process goes like this : Create the tree -> Iterate on the tree to generate the files
The markdown conversion is done in the second step and is tied to the generator.
The Processor can hook on any step, for the moment it is : tree creation, generator initialization, markdown extension
If you have an idea to provide the processor_instance differently, I would be interested.
Yes we might want to provide other extension means, but the only way to extend the markdown parser is to extend that "Environment" class, and that can only be done at this particular step where I did it.

Gotcha.  Thank you.  I understand the tree / iterator logic, but once the processor / generator are introduced for rendering we've got several layers here that I think can be compressed to make for easier expansion / interpretation moving forward.  Some of the class logic in place seems to be a direct result of the Confluence generator needs and could possibly stay compartmentalized within that sub-package.
We also have two separate "Generator" terms being used here, which is a bit confusing.  Maybe they could be collapsed or named differently.  It seems like we are hardly using the Application, Command, or Helper classes in the libs/generator folder.  Maybe we can just trash those altogether.
I believe there are several ways we can tackle this problem that should give us the same environment control while reducing the complexity of this processor / generator / formatter / handler logic currently in place.
Maybe something like this:
Environment -> Server -> Application -> Processor -> Builder (Tree) -> Generator -> Parser
Environment callbacks could be triggered from any subsequent layer.
Thanks again for the feedback.  I can't work on this today but I'll make some headway over the next few days.

I'm not sure to follow you ? what are the 2 different terms for generator ?
No we can't trash Application and Command together, as we're implementing symfony/console and both classes are needed. And later we might add other commands.
If you can reduce the complexity of the generators I would be happy to see it, but I'm not sure that what you propose will really be easier

The term Generator is being used to namespace the Application and Command classes.  The term is also being used to describe the Formats, as in "getGenerators".  I think one of these should be removed as a concept or renamed.

I renamed the namespace for the command, now it is Console. Is it any clearer ?

Yeah that works

Hi, just dropping a line to say I updated the generation part to separate Mardown from the generation process.
Now there is a ContentType interface, which permits to declare content types.
By default I implemented Markdown with CommonMark, but I think it's exactly at this place that you can add a configuration to enable ParseDown instead of CommonMark.
You can also add new content types via processors. (I already use it on a project at work to render mustache templates)

This works - here are my thoughts for both the Markdown and refactoring discussion:

Several of the Format\Base files are still classes while others are abstract.  Ideally these would all be abstract.
CommonMark is being cast into the Markdown namespace in all three of the Formats, and is still referenced in the Processor.

If we were truly isolating the handlers then I would expect all handler (ContentType) logic to be isolated to a single folder.  Ideally all CommonMark objects and references (outside of a configuration directive) would be in a single folder for the system, with all format handlers contained within, for instance:
libs\Handler\Mustache\
libs\Handler\Mustache\HTML\
llibs\Handler\Parsedown\
libs\Handler\Parsedown\HTML\
libs\Handler\CommonMark\
libs\Handler\CommonMark\HTML\

I completely agree on the first point, this is true all these classes should be abstracts or interfaces.
Yes, CommonMark is being cast in the Processor for a very simple reason : each of these conversion systems have their own way to be extended. It seems very weird to me to create a method in the processor named something like extendConversionHandler and one time you get a ComonMark environment, and the next time you get a Mustache Engine.
But why not have another method in the processor for extendParsedown ?
Yes, the handlers can also be in a separated folder.

I hear you.  It may be unreasonable to have a common extender, but it would be nice so that the processor doesn't have to change every time a new handler is added.
libs/Processor
class Processor {
	public function extendHandler( $handler ){
		$handlerClass = 'extendHandler' . $this->daux->options->handler;
		if( method_exists($this, $handlerClass) ){
			return call_user_func([$this, $handlerClass]);
		}
	}
}

libs/Extension/MyProcessor.php
class MyProcessor extends Processor {
	public function extendHandlerCommonMark( $handler ){
	}
}

@onigoetz
You removed the LOCAL_BASE declaration but in your notes generally mentioned that all issues were resolved.
What is the method for overloading the $daux->local_base?  I do not see an approach for this implemented.


buildRows function is NOT the same in slick.js and slick.min.js

In slick.js you can see the condition _.options.rows>0 in the buildRows function
... whereas in slick.min.js  the condition is _.options.rows>1
I believe the correct condition is the one in slick.min.js  (_.options.rows>1) because if there is only one row defined there would be no reason to wrap the slides in additional <div> elements.

Seconded
I also have this issue


set min version to python 3.8 (3.7 is EOL)

see https://devguide.python.org/versions/

looks fine to me. Can we set min version of the dev side also to python 3.8?


Remove outdated stats

removing the recently contributed to section - would like a double check on this please

I'll take care of the merge conflict...


Card Section Simple Pattern Top Level Card Link is not the same height as the other cards

Using v1.5.1-rc.1, it looks like the Card Section Simple Pattern has a styling issue where if the Top Level Card is the first element in the row it does not have the same height as all the other cards.  Please see the screen shot below.

This might be related to issue (#1727)


Code_of_conduct

What does this PR do:
Add Code of conduct for the project
Where should the reviewer start:
diffs

:+1:
I see that the build now is failing with the alex.js test, because the conduct has some words it doesn't like.
I guess we should just add the packages/frint/CODE_OF_CONDUCT.md file to the .alexignore.

Coverage remained the same at 97.394% when pulling 0b41605c909159bf31fd863f99147b28beee5c7c on CodeOfConduct into 1cc43c2efc5805dbbb1d0d65b161e08353aeea66 on master.

Thanks for the PR! Really appreciate it! 💖

Note to maintainers and those who merge PRs:

Please make sure the PR titles are descriptive enough, because they appear in the commit history once squash merged to master
Also apply labels PR and the related semver label, which helps generate changelogs and prepare for releases later
make sure it is assigned to someone too
delete the branch afterwards
if PR is for an existing Issue, reference it with hashtag, so it is automatically closed later upon merge

The info above can be moved to MAINTAINERS.md file if it helps.

Closes #235


HDDS-8884. [Ozone-Streaming] Ozone Stream init unused token

What changes were proposed in this pull request?
Ozone Stream init unused token
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8884

A small problem, when the stream init request is sent, the token property is not yet initialized.
@szetszwo PTAL thanks.

Thanks @guohao-rosicky for the patch, @szetszwo for the review.


Go through switchover checklist

Take snapshot of database
Cutover: Export people's repos
Cutover: Run addititive migrations against database
Cutover: Make the switchover live
Cutover: Run migrations to clean up tables that are no longer needed


Exposes some gm convert functionalities.

Exposes BlackThresholdImage and ImageThreshold.

You should check that warnings.
graphicsmagick: 1.3.29

Removed warnings.
New option WhiteThresholdImage.
Update convert/3 doc.


feat: add optional file parameter on octopilot exec cmd

From source https://golang.org/pkg/os/exec/ :
Unlike the "system" library call from C and other languages, the os/exec package intentionally does not invoke the system shell and does not expand any glob patterns or handle other expansions, pipelines, or redirections typically done by shells.
This commit aims at providing the possibility to expand files on the case we execute a command with octopilot.
This is done through an optional file parameter on the octopilot update exec

why not use a shell command directly? something like sh -c 'ls test.*'
my concern is that your fix is too specific, and adds complexity


Add phpfpm to readme

Thank you @kokarn! this is probably the easiest PR I've ever had to review! ;-) :+1:


Add travis testing for node v4

@b3njamin can you close and reopen this PR to get another build going?

Never mind that, it's still broken: https://travis-ci.org/tgriesser/knex/jobs/81842000 #995


elm-overlay box unresponsive/covered

The small debug box ends up below the transparent full window pane of the elm-mdl div. No click events get through to the box. Same behavior on latest Firefox and Chromium browsers.
I've experienced this with an elm-mdl app. It might be some particular thing I'm doing with it, but I think it could pop up else where as well.
By hacking in z-index: 1 in the .elm-overlay class everything seems to work again.

This is also covered by #100, and is being tracked under #98. Thanks!


File does not exist at path D:\www\laravel\phphub/asset_manifest.json

ErrorException (E_UNKNOWN)
File does not exist at path D:\www\laravel\phphub/asset_manifest.json (View: D:\www\laravel\phphub\app\views\layouts\default.blade.php) (View: D:\www\laravel\phphub\app\views\layouts\default.blade.php)
I don't know why is that?

Please read Assets management

phphub use gulp for frontend stuf, such as compile sass, uglify, concat, version, etc. So you should install gulp first, then run the gulp command , then it will generate the asset_manifest.json.

thanks for your help

Thank @lifesign and @NauxLiu ,  You are awesome.


feat: update ControlPlane with new publish Service

What this PR does / why we need it:
Lists the current Service for a DataPlane in the DataPlane's status.
Adds a controller-runtime reference between a ControlPlane and the DataPlane it configures. DataPlane updates trigger an update of the ControlPlane.
Overwrite ControlPlane Deployment environments if they differ from the ControlPlane environment on ControlPlane reconciles (we were already updating the ControlPlane environment with the latest DataPlane Service on reconciles).
Which issue this PR fixes
Fix #97
Special notes for your reviewer:
PR to another branch with an open PR. We filed an issue for this, but it doesn't look like it's relevant without that other branch.
Previously, our reconciliation strategy for ControlPlanes meant that you (or some application with access to do it) could modify their Deployment's environment by editing the Deployment itself. With this change, that is no longer possible-ish--we will overwrite edits on DataPlane changes or anything else that triggers a ControlPlane reconcile. This may or may not be fine, but we should be aware of the change at least.
PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[ ] ~the CHANGELOG.md release notes have been updated to reflect significant changes~ ALPHA LIMBO

Thank you for implementing this @rainest. I know this PR is kinda useless without this merged. I'm going to restart working on that PR and get it merged so that we can unblock this one.

Draft pending parent.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: mlavacca:x: rainestYou have signed the CLA already but the status is still pending? Let us recheck it.

Superseded by https://github.com/Kong/gateway-operator/pull/218


Impossible to cancel a connection once it's intiated

Hello, on Windows I try to connect to a device, but since it will try to connect indefinitely, I use a CancellationToken so that after around 15 seconds the connection attempt stops.
The exception is thrown (a task was cancelled.) , but it seems that, if the device becomes available after that exception is raised, the device will still connect to it despite the ConnectToDeviceAsync() or ConnectToKnownDeviceAsync() methods having completely finished.
It seems like there is no way to actually stop the connection once it's initiated, I have tested on android and I don't have that issue on it.
Another strange thing is that on Windows both ConnectToDeviceAsync() and ConnectToKnownDeviceAsync() will run indefinitely without throwing any errors ever, even if the device isn't powered on. On Android after like 25 seconds it throw an error.
Sorry if this is maybe not an issue, it's my first time writing an issue ever, and i've searched for a while and havn't found anything to fix that. Maybe I am not using the plugin correctly I don't know, so any help would be appreciated!
Steps to reproduce

Perform a connection to a device with ConnectToDeviceAsync() or ConnectToKnownDeviceAsync() with a CancellationToken while the device is out of reach.

Example :

_adapter.DeviceConnected += (s, a) =>
{
    Console.Write("Device connected");
};
var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(10));
var cancellationToken = cancellationTokenSource.Token;
try
{
    await _adapter.ConnectToKnownDeviceAsync(device.Guid, new Plugin.BLE.Abstractions.ConnectParameters(), cancellationToken);

    await DisplayAlert("Success", $"Connected to {device.Name}", "OK");
}
catch (Exception ex)
{
    await DisplayAlert("Error", "Connection error", "OK");
}
finally
{
    cancellationTokenSource.Dispose();
}

Expected behavior
When the cancellationToken activates, the exception should be thrown and the device should not be able to connect anymore after that.
Actual behavior
If a CancellationToken is passed, the exception is raised however, if the device becomes available after that, it will still connect and trigger DeviceConnected
Happens on Windows and doesn't seems to happen on Android from my testing.
Crashlog
None
Configuration
**Version of the Plugin:**3.1.0
Platform: Windows 10.0.18362.0
Device: Windows 10 PC
11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz   2.61 GHz
Installed RAM 8.00 GB (7.86 GB usable)
System type 64-bit operating system, x64-based processor

Hi @CorentinRubio,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

Ill just throw this out there #876
I havent been able to use the Windows implementation reliably in quite some time.

That is really unfortunate to hear, I didn't knew the Windows version had many difficulties compared to the others versions.
I'm glad I asked for this because otherwise I wouldn't have been able to figure out what was happening, and thanks for the quick answer !
Hope the windows version can be fixed one day !

I hope that this might be fixed by PR #880 ...?


add option to add external URL

Currently you can only connect with an internal URL, you need to add an option for an external URL,
with automatic transition as in the Android application.

Well I don't 'need' to do anything :p But you can already add an external URL.
There's already a ticket for switching: https://lab02research.youtrack.cloud/issue/hassagent-119
Monitor that if you want updates :)


Reduce metrics cardinality replication.TaskStore

What changed?
Emit replication cache size as timer, to get a percentile view instead of metric per each shard.

Why?
Turns out, having metric per shard is very expensive. Dashboard become too sluggish to work with.
Keep higher level metrics only and log warning when cache is full, for debugging specific shards.

How did you test it?

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 0182f365-4f4e-4bbb-8547-57534eeb5660

10 of 10 (100.0%)  changed or added relevant lines in 1 file are covered.
127 unchanged lines in 13 files lost coverage.
Overall coverage decreased (-0.02%) to 57.78%

Files with Coverage Reduction
New Missed Lines
%

common/task/weightedRoundRobinTaskScheduler.go
1
88.6%

common/backoff/retry.go
2
92.11%

common/persistence/statsComputer.go
3
94.64%

common/task/fifoTaskScheduler.go
3
84.54%

common/persistence/serialization/parser.go
4
65.41%

common/persistence/serialization/thrift_decoder.go
4
61.22%

service/history/task/transfer_standby_task_executor.go
4
86.79%

common/persistence/nosql/nosqlplugin/cassandra/workflow.go
6
56.99%

common/persistence/nosql/nosqlplugin/cassandra/workflowUtils.go
11
74.22%

common/persistence/sql/workflowStateMaps.go
11
85.56%

Totals

Change from base Build 0182eb95-a47b-4b48-8f18-de9548f005fc:
-0.02%

Covered Lines:
84371

Relevant Lines:
146020

💛  - Coveralls


feat: fixed Dockerfile* and also added plv8 extension

*the last used version (from 6 months ago) didn't work anymore

Build of plv8 took almost 1000s on my machine. After we're done with the migration to rds we can use a pre-built image from dockerhub. Unfortunately the debian version of the postgres14 image hasn't been released.

Thanks for your help, @futile!


New Look for Demo Site

Adds nice colors, and use a more showcase like layout

fixes #258

Codecov Report

Merging #290 (3a20635) into master (416704a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #290   +/-   ##
=======================================
  Coverage   64.04%   64.04%
=======================================
  Files          79       79
  Lines        1858     1858
  Branches      259      259
=======================================
  Hits         1190     1190
  Misses        454      454
  Partials      214      214

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 416704a...3a20635. Read the comment docs.


Move to playplay audio key retrieval

[x] Working clienttoken request
[x] Persist client token once generated
[ ] Working playplay request

Hi! I was wondering, the playplay endpoint is used by the official desktop client?

Hi! I was wondering, the playplay endpoint is used by the official desktop client?

Yes, it is


apollo-codegen is not recognized

Hello.
I'm struggling to get apollo-codegen to work on Windows.
I have installed it with npm install apollo-codegen
But in terminal trying to run "apollo-codegen something" im getting 'apollo-codegen' is not recognized as an internal or external command,operable program or batch file.
Is there something more that needs to be done for getting it to work?

you could try node_modules/.bin/apollo-codegen  your-command

from the root folder of your project

Thanks m8. Worked like a charm running from the .bin folder


Support cortex disabled application config.

Closes #24.

@christhekeele happy to merge this after a rebase

@glittershark  Rebased (and added documentation in the README.md), tests still passing, LGTM!


I have a a very large number of Parameters for a Query and I would like to merge 2 ValueLists

I have 2 ValueLists that I need to merge because I have a query with a very large number of parameters. I do not want to have to pass all the values individually. How would I go about doing this? ValueList seems to have a private buffer for the serialized values.
Any help would be deeply appreciated.
More specifically, ValueList just takes a struct A for example and turns it into a SerializedResult of type
Result<Cow<SerializedValues>, SerializeValuesError>. My goal is I want to be able to take 2 structs struct A and struct B that both implement ValueList and pass them to a query. So I want to be able to merge them into 1 ValueList.

At the first glance, I don't immediately see a convenient solution to your problem.
In general though, I recommend using the new SerializeCql/SerializeRow trait tandem instead of the obsolete Value/ValueList pair.
What you could do is creating a wrapper struct that would take both A and B and implement SerializeRow on it manually so that it achieves what want to.
We can consider implementing a general adapter that would take two structs implementing SerializeRow and implement serialization of them consecutively as a row. At the moment I don't know yet whether this is even feasible, tbh.


[UX] [mwc-qt-wallet] The warning displayed when Foreign API is enabled in an insecure fashion she be worded more clearly.

OS found on: OSX
Below is an image of the warning:

This is another similar wording issue we can fix (caused by the same issues)

I will add more on to this bug as I investigate further.

Actually thinking we should remove this. I think http is a variable option
in some cases, like possibly private networks or if you are not that
concerned about privacy.
On Tue, Apr 21, 2020 at 2:30 PM Jim Byrer<EMAIL_ADDRESS>wrote:

OS found on: OSX
Below is an image of the warning:
[image: image]
https://user-images.githubusercontent.com/10661009/79915836-91c6f380-83dc-11ea-9f57-ee150405dd81.png
I will add more on to this bug as I investigate further.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mwcproject/mwc-qt-wallet/issues/261, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXFVNYGU6BJDZV6UZWJ4KTRNYGAFANCNFSM4MNUFVUQ
.

After discussion, it has been recommended that we remove the first warning (see the first image) completely.  In addition, for the warning in the second image, instead of "WARNING: ...." we should say either "HTTP enabled" or "HTTPS enabled".  And the second WArning about "Authorization with api secret is disabled" can just be removed

With additional discussion we decided to keep

The dialog will be moved to the settings and shown once when user pressing OK button.

assigned to K, feel free to reassign.  I set this as a low priority.

Confirmed fixed.


feat: add policy parameter to evaluate command

Also changed the command to "image evaluate" to make it consistent with the documentation.

I made this PR against the Alpha branch per the contribute instructions but since that branch didn't have the config I wanted to update I had to copy the whole thing in. Please let me know if you'd prefer this against master (or another branch).

@ls-ross-macduff Thank you so much for your contribution, you did the right thing opening your PR against Alpha but for some reason that branch is not on sync with master, we are going to fix that and then review this change. We will get back to you shortly.

Fixing Alpha so we can run our automated tests against your PR. Hold tight! 🤞🏽

Thank you for merging this to Alpha. Looking forward to this being available in an upcoming release 😄


Fixed an issue dropping with out placeholder

https://github.com/lukasoppermann/html5sortable/issues/456
Fixes #456
Similar changes were made in the commit bc046961 Avery Lemons, but all this was in the docs directory

Coverage decreased (-0.4%) to 76.426% when pulling 7f6c6296df84fdcc503e1d6b1a0e7a55030e4759 on alsundukov:master into 5cb9f63b413ac37de60030a90e34840546ca9127 on lukasoppermann:master.

Hey @alsundukov thanks for the PR, I added a question.
Can you also please rebase the PR?
Would it be possible to include this in the tests, so that we do note have a decrease in coverage? Thank you.

Hey @lukasoppermann, I did it

Hey @alsundukov great, thank you.
Can you please also reply / act on the two comments I added in the review? Thanks

Sure, but I don't see your questions, sorry

Great, thank you.


Typo in "ShouldShowRequestPermissionRationale"

The last letter is missing from the word "Rationale" in the name of this method, under "Runtime Permission Checks in Android 6.0" heading.

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

ID: 85d5d1c5-9b5b-0e6c-0ac2-0cc76dff410b
Version Independent ID: 21a07f8c-706c-e69e-43db-8f5c61dd6be1
Content: Permissions In Xamarin.Android - Xamarin
Content Source: docs/android/app-fundamentals/permissions.md
Product: xamarin
GitHub Login: @conceptdev
Microsoft Alias: crdun

Thanks for letting us know, it's been updated and will be published soon.


Update codes.csv

See issue #285: Correction to EA009 codes 5 and 6, for which the 'shortName' of the codes was reversed

Looks great Kate! nice pull request :)


remove unused load task ;B

Bug fix
Description
We reference update_release_notes.rake but this file does not exist. This PR removes that reference.
Checklist

[x] My code follows the style guidelines of this project
[x] I have added tests that prove my fix is effective or that my feature works
[x] The build is passing

Already on master. Appreciate it tho.


Chinese version of developer guide (翻译开发者指南)

翻译源: https://github.com/clusternet/website/blob/main/content/en/docs/developer-guide.md
翻译后: content/zh-cn/docs/developer-guide.md

[WeOpen Star]I would like to help


Stupidly downloaded master version instead of beta! reboot loop and no wifi

Updated to High Sierra last night on my mid 2010 Mac Pro 5.1.
I stupidly downloaded the master version of the CAT instead of the beta and disabled SIP to install it I then tried installing when I rebooted it as prompted once it had completed but it just comes up with a error at enters a reboot until the error appears and restarts again - this happens repeatedly.
I can boot if I re enable the SIP but then have no wifi which I rely on for internet. I cannot run the uninstall option in the CAT as it says I need to turn off SIP - but If I turn off SIP the machine wont start up.
Currently restoring to a previous Time machine back up which im leaving to happen while im at work, does anyone know if this will fix the issue for me to attempt an install of the latest CAT beta?
Please help!

This happened to me last year.  There is a simpler way out...

Boot into another partition or boot disk if you have one. (You'll need to be able to mount and edit the original boot drive.)

Hopefully you have backups of the two original Kext files. Move them back to /System/Library/Extensions/ replacing the two new ones put there by CAT.

Now reboot. System no longer hangs or kernel panics, but after a successful boot, all wireless hardware will not be found. (Thanks to some clever Apple engineers, my wireless Apple mouse is still working despite no Bluetooth.)

Note: SIP is still disabled. Run CAT option 3, "Uninstall". (Even though you've already put the original Kext files in place allowing you to reboot, option 3 rebuilds the Kext caches and a few other important things that will allow your original wireless hardware to get recognized on the next boot.)

Optional: When step 4 is complete and you're prompted to reboot, hold down command-R and enter Recovery Mode, where you can re-enable SIP by entering csrutil enable at a Terminal prompt.

Reboot - everything back to normal without needing to reinstall the OS or roll back with Time Machine!


Make Timestamp index an actual index

Timestamp indexes are explained as indexes to users (see the documentation) but they are not implemented as actual indexes. Instead, they are a syntactic sugar that:

Modifies (see TimestampIndexUtils)the TableConfig and Schema in order to:

Add one new column per granularity.
Add a range index on each column.

Applies some query override in order to use the new columns when available. I didn't find the code where this is applied, but given that FieldConfig.IndexType.TIMESTAMP is not read, I guess that the query engine looks for columns with specific pattern names as a general optimization.

This is not ideal and we should correctly define Timestamp indexes. Options are:

We can either accept that they are not actual indexes and pull them somewhere else. They would still be configured in tableConfig.fieldConfigList.timestampConfig but we will not call them indexes. We would need to classify them as a new concept.
Or we make them actual indexes.

The first approach mainly implies to change documentation and keep the current implementation.
This will make things less confusing, but the current implementation is still difficult to maintain and/or not very efficient:

Usually implementations do not actually modify the TableConfig and Schema.
Adding more columns may be problematic in terms of storage. If the table is stored by the timestamp, new columns forward indexes should be small in size, but if it is not, the these new columns can be quite large in bytes.

Therefore we propose to make them actual indexes.
This implies to create their own IndexType, IndexCreator, IndexReader, IndexHandler... but also configure them in the tableConfig.fieldConfigList.indexes section and store them in a single buffer instead of being an alias on top of artificial columns.
Configuration
Like other indexes, we will add a new way to configure Timestamp indexes.
To keep backward compatibility, timestamp indexes defined in tableConfig.fieldConfigList.timestampConfig will continue to be supported.
But the new and recommended way to define them would be something like:
//tableconfig
{
  fieldConfigList: [{
    name: "columnName"
    indexes: {
      "timestamp": {
          ...timestampConfig  // same object we had in timestampConfig but adding the standard "disabled" property
       }
    }
  }]
}

Since index-spi was merged, timestamp indexes are the only one that cannot be defined in the indexes section.
To let them be configured in the indexes section seems to be something easy to implement.
Index implementation
The idea here would be to implement this kind of index as a normal index, which means to store all information in a single buffer and do not create new columns.
At the end of the day a Timestamp index contains N different range indexes. Right now they are implemented as N different columns with 1 range index each. The idea here would be to store the N range indexes in 1 single buffer.
Each range index should have the same size of the one used in the current solution, but we won't need to add one forward index per granularity.
At query time, we need to add rules like we have in other indexes and apply it if the operation is compatible. The current optimizations applied for timestamp indexes are:

GROUP BY: functions like dateTrunc('DAY', ts) will be translated to use the underly column $ts$DAY to fetch data.
PREDICATE: range index is auto-built for all granularity columns.

The predicate optimization can be applied in the same way with the proposed actual index type.
The group by may be tricky and we may need to think more about them, but at worst, users can decide to create their own virtual columns like they do to optimize similar patterns with other types.
This change may be more difficult to implement and require to invest more time than the change in the configuration. If we decide that this is the solution we would like to have at long term, we can start implementing the changes in the configuration in order to provide an uniform way to configure all indexes.

For the context, the query override logic is in BaseBrokerRequestHandler.handleTimestampIndexOverride().
I'll vote for option 2 - making timestamp an actual index type. The current approach works, but is very hard to manage because it requires modifying table config, schema and query transparently.


Add semantics for explicit specialization control

Our users are reporting that seemly unrelated changes in their code suddently trigers dynamic dispatch on code that was originally specialized. We need to start developing the some/any semantics on our existential types to provide a more explicit control on what is allowed to be dynamic dispatched.

An alternative would be to allow the user to explicitly specialize at sites.
Being able to decorate a function with a warning "please warn if this ever isn't specialized" would be welcome I think.

Just decorating the functions won't be sufficient. We also need a way to tell if a value (used as argument in a call) can be specialized or not. This would require us to introduce a systematic mechanism in the type system.
The some and any are distinct types on values to indicate if the value can be specialized. A some value means it will come from a specialized source and use it as argument in a call is treated as a specialized call. The any value means the compiler will try its best to specialize but specialization isn't guaranteed. With these, we can decorate a function by putting some on the parameters, and detect error when the user is trying to call a value with a type that cannot coerce to the some T type.

How about:
func myCall<specialize MyMustBeSpecialized, MyMayNotBeSpecialized>(int maybeSpecialized, specialize int definitelySpecizlied) -> int;

here the specialize keyword instructs the compiler to fail (or warn in some permissive mode) if it is unable to specialize the type parameter MyMustBeSpecialized or the value parameter definitelySpecizlied.
The current constraint syntax might make it tricky to require specialization of a dictionary but not a type, but that's obviously a very niche case.

Duplicate of #2210


Create Clear Interface for Adding Library Blocks to Workspace Contents

Determine how a user will be able to add library blocks to the workspace contents, and how to make this as clear/functional as possible.

Dupe of #103


Publish storage

To publish iroha, we need to publish this crate also.

[ ] Rename this crate, as storage is taken
[ ] Change the dependency on concread to the published version

Sure i will update to the latest concread version.
Any ideas about proper name? :)

How about mv? mv::Cell, mv::Storage look nice


SemanticComparison not matching Nullable value against value where names match

Hi,
I am attempting to use SemanticComparison to create a proxy with the following properties:
Source
public DateTime StartTime { get; set; }
public DateTime? EndTime { get; set; }
Destination
public DateTime? StartTime { get; set; }
public DateTime? EndTime { get; set; }
I use .AsSource().OfLikeness().CreateProxy();
EndTime propagates correctly but StartTime does not.
Is this the expected behaviour?

In either case, is there a workaround?

How do the class constructor(s) look like?

The destination has no defined constructor.
The source has a default constructor which initializes a list.

Here is a test case:
[Test]
public void SemTest()
{
    var source = fixture.Create<Source>();
    var dest = source.AsSource().OfLikeness<Destination>().CreateProxy();
}

public class Source
{
    public DateTime StartTime { get; set; }

    public DateTime? EndTime { get; set; }
}

public class Destination
{
    public DateTime? StartTime { get; set; }

    public DateTime? EndTime { get; set; }
}

This is bug in the CreateProxy method. Thank you for catching and reporting this! :+1:

The following tests demonstrate the bug:
[Fact]
public void SourceAndDestinationAreSemanticallyEqual()
{
    var source =
        new Fixture().Create<Source>();
    var destinatation =
        new Destination
        {
            StartTime = source.StartTime,
            EndTime   = source.EndTime
        };
    source.AsSource().OfLikeness<Destination>()
        .ShouldEqual(destinatation); // Passes.
}

[Fact]
public void SourceAndProxiedDestinationAreSemanticallyEqual()
{
    var source =
        new Fixture().Create<Source>();
    var destinatation =
        new Destination
        {
            StartTime = source.StartTime,
            EndTime  = source.EndTime
        };
    Assert.True(source
        .AsSource()
        .OfLikeness<Destination>()
        .CreateProxy()
        .Equals(destinatation)); // Fails.
}

Source.StartTime is of type DateTime, while Destination.StartTime is of type Nullable<DateTime>, so it looks like CreateProxy matches on the exact type instead, but it probably shouldn't.

I still think we should deprecate the class - or even the entire SemanticComparison library...

I'm happy to stop attempting to use it but I came to it as a useful companion to AutoFixture as it allows me to confirm the values on a fixture generated object have not been modified by a method under test.
I initially looked at Likeness but that is not sufficient as it keeps a reference to the original object.
Can you suggest a solution to this problem?
One solution that comes to mind would be to allow Autofixture to create a pair of identical objects, one for input, one for comparisons. You could then build your likeness against the comparison object.

Can you suggest a solution to this problem?

Don't use CreateProxy in this case, at least until this bug is fixed. Instead, use Likeness directly:
[Fact]
public void SourceAndDestinationAreSemanticallyEqual()
{
    var source =
        new Fixture().Create<Source>();
    var destinatation =
        new Destination
        {
            StartTime = source.StartTime,
            EndTime   = source.EndTime
        };
    source.AsSource().OfLikeness<Destination>()
        .ShouldEqual(destinatation); // Passes.
}

@moodmosaic Could you please clarify which exact action is required here? If we need to  obsolete/remove something, we can do that in v4..

IIRC, the idea was to deprecate the Likeness class(es)... There's also a bug in the Common Intermediate Language we produce through the ProxyGenerator, hence that comment of mine.
Perhaps there should be a post-v4 list with such items?

@moodmosaic Sure, we can handle it after. The only concern for my side what if some breaking changes are required by this issue. If not - let's release that after v4 :relaxed:

This issue has been migrated here: https://github.com/AutoFixture/SemanticComparison/issues/1


"eitmerge" plugin

Hi,
With the objective of a "simple" and "powerful" future eitmerge plugin (proposed in #59), I suggest some ideas about the functionality of this plugin:

Without specific parameters, the plugin only bypass the EIT info. So it doesn't touch the pid 0x12.
--secondary-pid 0x????: Identifies the EIT info of the merged stream (you called it "merge-pid").
--pass-scheduled-others: It maintains EIT scheduled info of programs in other streams.
--pass-scheduled-actual: It maintains EIT scheduled info of programs in this stream.
--merge-scheduled-actual: It merges (actual) EIT scheduled info from the secondary EIT pid with scheduled info of this mux (uses info from "merge-sid", "merge-all" and "merge-all-exclude").
--merge-scheduled-others: It joins (others) EIT scheduled info of programs from the secondary EIT pid  without any check as other info.
--pass-pf-others: idem for EIT present/forward info.
--pass-pf-actual: idem
--merge-pf-actual: idem
--merge-pf-others: idem
--replace-sid ????=????: Use the EIT info of the left SID (source) as the EIT info for the right SID (target). If some EIT info for right SID exists, then discard it (so use only EIT from source).
--merge-sid ????=????: Idem for the ETI info from the secondary EIT pid. This is used when doing the join action. The source SID is from the secondary EIT pid, and the target is for the current stream.
--merge-all: It accepts all SIDs from the secondary EIT pid. It doesn't do checks about identical SIDs.
--merge-all-exclude ???,???,...: Idem with an exception list of SIDs.
--remove-sid ????: It removes any EIT info of this specific program in any EIT table.
--remove-missing: It removes actual EIT info of programs not found in this stream.
--remove-all: It cleans the EIT info; that's it removes all info.

As you can imagine, the processing logic is relatively simple to implement. All actions are atomic "remove" or "rewrite" triggers. And each action is done when a new EIT packet comes from any of the two sources (without "--merge-pid" the plugin is a simple ETI processor).
Sorry @lelegard if this issue feels you pressurising! That's not my intention. I only like to contribute with a constructive discussion. I hope you accept it! :smile:
What you think ?

Ideas and suggestions are always accepted, especially when they include some initial analysis.
Thank you for the contribution. Let's keep this issue open for further reference.

Ideas and suggestions are always accepted, especially when they include some initial analysis.
Thank you for the contribution.

If you agree, I'll try too to write some user-case example.

Hi @lelegard ,
Regarding the EIT processing when muxing (merge) I have these suggestions after some time working in it:

The current implementation of TSDuck has already the option for renaming one program from a MPTS and obtain a SPTS with correct EIT info. So, only simple tasks for manipulating the EIT table are required to complete the muxing of the EIT.
EIT processing: I suggest to include in the eit plugin some commands for "processing". Like --remove-pf-others, --remove-pf-actual, --remove-orphan and so on. Also, include and option --pid to apply it to a non-standard EIT pid.
EIT mix: The only remaining task is to "sum", "mix" or "append" multiple pids with EIT into one. So, with -P eit --merge 180 --merge 280 you can append pids 180 and 280 to the current EIT pid (0x12).
The idea with the "mix" is to not touch the info data, but complete a mere join. And the idea with the "processing" is do all manipulations (by hand) to obtain correct data (filtering unwanted data and renaming the rest).

I feel this is the most simple approach. Futhermore, you can maintain the current eti plugin name. The "-o" will provide additional functionality for extracting info; or you can create a new one etiprocess.
However I leave in your hands to define the best implementation.
I hope you agree and soon have some initial implementation.
Regards.

Hi @lelegard ,
I agree with the idea of priorize any task that can't be done outside TSDuck. And this task is an exemple.
So, you agree with implement the remaining "join": -P eit --merge 112 --merge 212?
Plus the "pid rename", with a generic -P filter --rename 12,112 inside the inner tsp of the merge? (I feel that a generic pid-rename will be useful for other tasks too).
Take note that in order to mix the EIT from a merge, at time only remains these two tasks for the basic functionality.
I hope you agree.

What is this -P filter --rename 12,112 ?
Isn't it the same as -P remap 12=112 ?

What is this -P filter --rename 12,112 ?
Isn't it the same as -P remap 12=112 ?

Yes! :+1:
I'm still reading the documentation... it's very large. :smile:

Hi @lelegard ,
I update this issue to remind that only a simple functionality is missing (almost for initial support):

The unconditional EIT join from listed pids to the regular EIT pid 0x12 (without any check!).

This can be done inside the eit plugin (for example with -P eit --join 0x112,0x212), or inside the merge plugin (for example with -P merge --join-eit 0x112,0x212). Personally I prefer in the eit plugin.
What you think?

Hi @lars18th,
I propose something more general. What you need here is to merge sections from several PID's into one single PID, replacing all input PID's by the output PID. Nothing is EIT-specific here. So, a new generic section merging plugin could be used. Quite simple to implement in fact.
In your use case: -P sectmerge --input 0x12 --input 0x112 --input 0x212 --output 0x12

Hi @lars18th,
Even more general, I just added the plugin named sections which demuxes sections from various input PID's, apply some filtering based on table id or table id extension, and remuxes the remaining sections into an output PID. Very simple to implement, all basic blocks were already there.
To merge your EIT's: -P sections --pid 0x12 --pid 0x112 --pid 0x212 --output-pid 0x12
In fact, the default output PID is the first input PID. So, you don't need to mention it here.
To implement things like "remove EIT p/f other", add option --tid-remove 0x4F.
You need to pull and rebuild to test it.

Hi @lars18th
Do we need anything else to merge EIT's ? Without specific eitmerge plugin eventually.
I let you close this issue if you consider the topic as completed.

Works fine for merging EPG from multiple streams. Verified in VLC only so far:

Version 3.14 is out, including the sections plugin. Closing this issue.


Unable to delete the stale IP's

Hello @jsenon,
Thank you for the workaround.
I tried to implement it but it didn't work out. Below is the information:
K8s version: 1.11
Set-up by Kops on AWS EC2 nodes
OS: Ubuntu:16.04
Issue:
I ran it as a daemonset and commented out CronJob part (as suggested by you in your Readme) but I assume daemonset should run in kube-system namespace which was missing from the deployment.yaml file. Without mentioning it was failing. I added it and then deployed it as (DaemonSet, Service, ClusterRole, ClusterRoleBinding, ServiceAccount) and all are in kube-system namespace.
It was running fine but was not deleting the stale IP files.
Upon seeing the logs of the pod it was running as expected and when I hit the http://::/cleanup it didn't delete the CNI files. Don't know why?
Can you shed some light on this?
Screenshots:
API-CNI Pods:

Logs and API hit:

Upon seeing the directory on the node (ls /var/lib/cni/networks/cbr0 | wc -l) I am getting an output 254. Hope this info helps you to understand the problem-statement.

Hi @sahilsharma-bb
Sorry for delay, does the CNI files are located in /var/lib/cni ? if not have you specified the correct folder in the args of the container?

Hello @jsenon, Yes, my files are located at /var/lib/cni/networks/cbr0 folder and as you can see I didn't any error in the logs and when I hit the API I got "Done" as response. I am not seeing any gap in the implementation. Don't know why it is happening.


GetProjectOptionsFromProjectFile returns incorrect results

When running GetProjectOptionsFromProjectFile with the MonoDevelop.FSharp.mac-linux.fsproj I have experienced results where all of the assembly references are missing and only the projectreferences are present.

Here is the project file options when this happens
--simpleresolution
--noframework
--out:/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/../bin/mac-linux/Debug/FSharpBinding.dll
--fullpaths
--flaterrors
--target:library
--define:TRACE
--define:DEBUG
--define:MDVERSION_6_0
--debug+
--optimize+
--tailcalls+
--platform:anycpu
--warnon:1182
-r:/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/../bin/mac-linux/Debug/FSharp.CompilerBinding.dll
-r:/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/../bin/mac-linux/Debug/FSharpBinding.Gui.dll
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/Utils.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/OrderAssemblyReferences.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/Lexer.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/CodeGeneration.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/UntypedAst.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/TypedAstUtilities.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/InterfaceStubGenerator.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/Parameters.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/CompilerArguments.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/TooltipHelpers.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/FileService.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/LanguageService.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/CompilerService.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/InteractiveSession.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/NRefactory.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/NRefactoryCodeActionSource.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/FSharpIndentationTracker.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpSymbolHelper.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpInteractivePad.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpOptionsPanels.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpLanguageBinding.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpResourceIdBuilder.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpFoldingParser.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpParser.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpTextEditorCompletion.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpPathExtension.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpUnitTestTextEditorExtension.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpProjectServiceExtension.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpProjectFileNodeExtension.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpTooltipProvider.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpResolverProvider.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/RefactoringOperationsHandler.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpReferenceFinderExtension.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpFormattingPolicy.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpFormatter.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpFormattingPanelWidget.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpFormattingPolicyPanel.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpSyntaxMode.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpHighlightUsagesExtension.fs
/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharpBinding/UnformattedTextFileDescriptionTemplate.fs

And here are the compiler options while running from msbuild:
``
-o:obj/Debug/FSharpBinding.dll
-g
--noframework
--define:TRACE
--define:DEBUG
--define:MDVERSION_6_0
--optimize+
--resource:obj/Debug/FSharpSyntaxMode.xml
--resource:obj/Debug/FSharpFormattingPolicy.xml
--resource:obj/Debug/FSharpStylePolicy.xml
--resource:obj/Debug/FSharpBinding.addin.xml
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/gtk-sharp-2.0/pango-sharp.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/gtk-sharp-2.0/atk-sharp.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/gtk-sharp-2.0/glib-sharp.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/System.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/System.Xml.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/System.Xml.Linq.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/mscorlib.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Mono.Cairo.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Mono.Posix.dll
-r:../../../build/AddIns/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.dll
-r:../../../build/bin/Mono.Addins.dll
-r:../../../build/bin/Xwt.dll
-r:../../../build/bin/Xwt.Gtk.dll
-r:../../../build/bin/Mono.TextEditor.dll
-r:../../../build/bin/MonoDevelop.Core.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/monodoc/monodoc.dll
-r:../../../build/bin/MonoDevelop.Ide.dll
-r:../../../build/bin/ICSharpCode.NRefactory.dll
-r:../../../build/AddIns/MonoDevelop.Refactoring/MonoDevelop.Refactoring.dll
-r:../../../build/AddIns/MonoDevelop.Debugger/MonoDevelop.Debugger.dll
-r:../../../build/AddIns/NUnit/MonoDevelop.NUnit.dll
-r:../packages/FSharp.Compiler.Service.0.0.89/lib/net45/FSharp.Compiler.Service.dll
-r:../packages/Mono.Cecil.<IP_ADDRESS>/lib/net40/Mono.Cecil.dll
-r:../packages/Mono.Cecil.<IP_ADDRESS>/lib/net40/Mono.Cecil.Mdb.dll
-r:../packages/Mono.Cecil.<IP_ADDRESS>/lib/net40/Mono.Cecil.Pdb.dll
-r:../packages/Mono.Cecil.<IP_ADDRESS>/lib/net40/Mono.Cecil.Rocks.dll
-r:../packages/Fantomas.1.6.0/lib/FantomasLib.dll
-r:../packages/FSharp.Compiler.CodeDom.0.9.1/lib/net40/FSharp.Compiler.CodeDom.dll
-r:../packages/ExtCore.0.8.45/lib/net40/ExtCore.dll
-r:../packages/System.Collections.Immutable.1.1.32-beta/lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll
-r:../packages/System.Reflection.Metadata.1.0.17-beta/lib/portable-net45+win8/System.Reflection.Metadata.dll
-r:../packages/Microsoft.CodeAnalysis.Common.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.dll
-r:../packages/Microsoft.CodeAnalysis.Common.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.Desktop.dll
-r:../packages/Microsoft.CodeAnalysis.CSharp.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.CSharp.dll
-r:../packages/Microsoft.CodeAnalysis.CSharp.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll
-r:../packages/Microsoft.CodeAnalysis.Workspaces.Common.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.Workspaces.dll
-r:../packages/Microsoft.CodeAnalysis.Workspaces.Common.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.Workspaces.Desktop.dll
-r:../packages/Microsoft.CodeAnalysis.CSharp.Workspaces.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.CSharp.Workspaces.dll
-r:../packages/Microsoft.CodeAnalysis.CSharp.Workspaces.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop.dll
-r:../packages/Microsoft.CodeAnalysis.VisualBasic.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.VisualBasic.dll
-r:../packages/Microsoft.CodeAnalysis.VisualBasic.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.VisualBasic.Desktop.dll
-r:../packages/Microsoft.CodeAnalysis.VisualBasic.Workspaces.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll
-r:../packages/Microsoft.CodeAnalysis.VisualBasic.Workspaces.<IP_ADDRESS>-beta2/lib/net45/Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/xbuild/../4.5/Facades/System.Runtime.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/xbuild/../4.5/Facades/System.IO.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/xbuild/../4.5/Facades/System.GLobalization.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/xbuild/../4.5/Facades/System.Threading.Tasks.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/FSharp.Core.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/System.Core.dll
-r:/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/FSharp.CompilerBinding/bin/Debug//FSharp.CompilerBinding.dll
-r:/Users/dave/code/xamarin/monodevelop/main/external/fsharpbinding/MonoDevelop.FSharp.Gui/bin/Debug//FSharpBinding.Gui.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Collections.Concurrent.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Collections.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.ComponentModel.Annotations.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.ComponentModel.EventBasedAsync.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.ComponentModel.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Diagnostics.Contracts.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Diagnostics.Debug.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Diagnostics.Tools.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Diagnostics.Tracing.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Dynamic.Runtime.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Globalization.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.IO.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Linq.Expressions.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Linq.Parallel.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Linq.Queryable.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Linq.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Net.NetworkInformation.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Net.Primitives.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Net.Requests.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.ObjectModel.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Reflection.Emit.ILGeneration.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Reflection.Emit.Lightweight.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Reflection.Emit.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Reflection.Extensions.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Reflection.Primitives.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Reflection.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Resources.ResourceManager.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.Extensions.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.InteropServices.WindowsRuntime.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.InteropServices.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.Numerics.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.Serialization.Json.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.Serialization.Primitives.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.Serialization.Xml.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Runtime.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Security.Principal.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.ServiceModel.Http.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.ServiceModel.Primitives.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.ServiceModel.Security.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Text.Encoding.Extensions.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Text.Encoding.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Text.RegularExpressions.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Threading.Tasks.Parallel.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Threading.Tasks.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Threading.Timer.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Threading.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Xml.ReaderWriter.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Xml.XDocument.dll
-r:/Library/Frameworks/Mono.framework/Versions/4.0.0/lib/mono/4.5/Facades/System.Xml.XmlSerializer.dll
--target:library
--warn:3
--warnaserror:76
--fullpaths
--flaterrors
--highentropyva-
--warnon:1182
Services/Utils.fs
Services/OrderAssemblyReferences.fs
Services/Lexer.fs
Services/CodeGeneration.fs
Services/UntypedAst.fs
Services/TypedAstUtilities.fs
Services/InterfaceStubGenerator.fs
Services/Parameters.fs
Services/CompilerArguments.fs
Services/TooltipHelpers.fs
Services/FileService.fs
Services/LanguageService.fs
Services/CompilerService.fs
Services/InteractiveSession.fs
Services/NRefactory.fs
Services/NRefactoryCodeActionSource.fs
Services/FSharpIndentationTracker.fs
FSharpSymbolHelper.fs
FSharpInteractivePad.fs
FSharpOptionsPanels.fs
FSharpLanguageBinding.fs
FSharpResourceIdBuilder.fs
FSharpFoldingParser.fs
FSharpParser.fs
FSharpTextEditorCompletion.fs
FSharpPathExtension.fs
FSharpUnitTestTextEditorExtension.fs
FSharpProjectServiceExtension.fs
FSharpProjectFileNodeExtension.fs
FSharpTooltipProvider.fs
FSharpResolverProvider.fs
RefactoringOperationsHandler.fs
FSharpReferenceFinderExtension.fs
FSharpFormattingPolicy.fs
FSharpFormatter.fs
FSharpFormattingPanelWidget.fs
FSharpFormattingPolicyPanel.fs
FSharpSyntaxMode.fs
FSharpHighlightUsagesExtension.fs
UnformattedTextFileDescriptionTemplate.fs

Also notice that the produced by GetProjectOptionsFromProjectFile has the option --simpleresolution set, is that correct?

I suggest using the optional log parameter to see if anything strange is
going on. You get a string back.
On 17 Apr 2015 15:50, "Dave Thomas"<EMAIL_ADDRESS>wrote:

Also notice that the produced by GetProjectOptionsFromProjectFile has the
option --simpleresolution set, is that correct?
—
Reply to this email directly or view it on GitHub
https://github.com/fsharp/FSharp.Compiler.Service/issues/335#issuecomment-94001251
.

It's quite strange, it doesn't happen all the time.  It's as if an error is occurring and the dll references are missed.

On 17 Apr 2015, at 23:43, Robin Neatherway<EMAIL_ADDRESS>wrote:
I suggest using the optional log parameter to see if anything strange is
going on. You get a string back.
On 17 Apr 2015 15:50, "Dave Thomas"<EMAIL_ADDRESS>wrote:

Also notice that the produced by GetProjectOptionsFromProjectFile has the
option --simpleresolution set, is that correct?
—
Reply to this email directly or view it on GitHub
https://github.com/fsharp/FSharp.Compiler.Service/issues/335#issuecomment-94001251
.

—
Reply to this email directly or view it on GitHub.

We'll need a reliable repro for this - can you isolate it Dave?

@rneatherway GetProjectOptionsFromProjectFile doesn't have an option for logging only FSharpProjectFileInfo.Parse has that option.
@dsyme Its a strange one, I didn't get it yesterday, but I get it each time I need it today, the problem is I memoize it so once its incorrect Im stuck with it.
What Im assuming is happening is there is an exception while processing references and there is an empty list returning, all project references are there just no file references.

Actually I just managed to capture this exception:
Target ResolveAssemblyReferences started.
Task started.
Using task CreateItem from Microsoft.Build.Tasks.CreateItem, Microsoft.Build.Tasks.v12.0, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Task finished.
Task started.
Using task CreateItem from Microsoft.Build.Tasks.CreateItem, Microsoft.Build.Tasks.v12.0, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Task finished.
Task started.
Error initializing task ResolveAssemblyReference: Exception has been thrown by the target of an invocation.
Error initializing task ResolveAssemblyReference: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: An item with the same key has already been added.
  at System.ThrowHelper.ThrowArgumentException (ExceptionResource resource) [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/external/referencesource/mscorlib/system/throwhelper.cs:74
  at System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.Dictionary`2[System.Version,System.String]].Insert (System.String key, System.Collections.Generic.Dictionary`2 value, Boolean add) [0x0008e] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/external/referencesource/mscorlib/system/collections/generic/dictionary.cs:329
  at System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.Dictionary`2[System.Version,System.String]].Add (System.String key, System.Collections.Generic.Dictionary`2 value) [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/external/referencesource/mscorlib/system/collections/generic/dictionary.cs:185
  at Microsoft.Build.Tasks.AssemblyResolver.GatherGacAssemblies () [0x000c4] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/AssemblyResolver.cs:104
  at Microsoft.Build.Tasks.AssemblyResolver..ctor () [0x00024] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/AssemblyResolver.cs:58
  at Microsoft.Build.Tasks.ResolveAssemblyReference..ctor () [0x00006] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ResolveAssemblyReference.cs:89
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/corlib/System.Reflection/MonoMethod.cs:535
  --- End of inner exception stack trace ---
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00013] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/corlib/System.Reflection/MonoMethod.cs:541
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x000af] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/corlib/System/Activator.cs:321
  at System.Activator.CreateInstance (System.Type type) [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/corlib/System/Activator.cs:214
  at Microsoft.Build.BuildEngine.BuildTask.InitializeTask () [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildTask.cs:204
  at Microsoft.Build.BuildEngine.BuildTask.Execute () [0x00006] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildTask.cs:90
Target ResolveAssemblyReferences finished.

And another:
Error executing task ResolveAssemblyReference: Object reference not set to an instance of an object
Error executing task ResolveAssemblyReference: System.NullReferenceException: Object reference not set to an instance of an object
  at System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Tasks.TargetFrameworkAssemblies].Insert (System.String key, Microsoft.Build.Tasks.TargetFrameworkAssemblies value, Boolean add) [0x0010c] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/external/referencesource/mscorlib/system/collections/generic/dictionary.cs:347
  at System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Tasks.TargetFrameworkAssemblies].set_Item (System.String key, Microsoft.Build.Tasks.TargetFrameworkAssemblies value) [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/external/referencesource/mscorlib/system/collections/generic/dictionary.cs:180
  at Microsoft.Build.Tasks.AssemblyResolver.FindInTargetFramework (ITaskItem reference, System.String framework_dir, Boolean specific_version) [0x00034] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/AssemblyResolver.cs:131
  at Microsoft.Build.Tasks.ResolveAssemblyReference.ResolveReference (ITaskItem item, IEnumerable`1 search_paths, Boolean set_copy_local) [0x000a4] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ResolveAssemblyReference.cs:220
  at Microsoft.Build.Tasks.ResolveAssemblyReference.ResolveAssemblies () [0x0007f] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ResolveAssemblyReference.cs:157
  at Microsoft.Build.Tasks.ResolveAssemblyReference.Execute () [0x00087] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ResolveAssemblyReference.cs:112
  at Microsoft.Build.BuildEngine.TaskEngine.Execute () [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/TaskEngine.cs:134
  at Microsoft.Build.BuildEngine.BuildTask.Execute () [0x0008f] in /private/tmp/source-mono-mac-4.0.0-branch/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.0/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildTask.cs:101
Target ResolveAssemblyReferences finished.

Looks like its not thread safe to call GetProjectOptionsFromProjectFile because msbuild is not threadsafe during the access.

If I add a lock to my usage then I don't get an error:
lock projectInfoCache (fun () ->
                  Debug.WriteLine (sprintf "LanguageService: GetProjectCheckerOptions: Generating ProjectOptions for %s" <| Path.GetFileName(projFilename) )
                  let opts = checker.GetProjectOptionsFromProjectFile(projFilename, properties)

Maybe there is some state within the msbuild task thats invoked or something that not disposed properly?

If the operation is not thread safe then it should really be run through the Reactor thread in FCS.  This is a relatively easy fix to make.

Running this function out of process would fix this issue and also #342

@rneatherway Note this will be fixed by #470 :)

Closed via #470


Allow users to flag ingredients?

Reading the other issues it seems like it will be difficult to avoid false positives and false negatives. It might help to have users of is-vegan to have the option to flag any mistakes to get closer to 100% accuracy?

Hi @ryanmccauley211,
That is true! I'm not sure if I understand your point. Anybody can flag ingredients here on github as a PR.
Could you please give me some detail?

For example if someone decides to use is-vegan as part of a web applet, it would be useful if they could allow their users to flag ingredients if they notice any errors. This means users can report any errors as well as developers.

@ryanmccauley211 In this case, I don't think is-vegan is the appropriate package to use. As far as I understood, this is just meant to be a quick and dirty checker.

@dodekeract agree, for another solution their should a database etc. who knows, maybe I build a solution and feed the data from the database on a regularly back to the npm package...


"no key" when using user_can?

After some debug, what I've found is that it's trying to invalidate session[:permission], though the :permission key is not set session.
The trace:
cantango (<IP_ADDRESS>) lib/cantango/ability/cache/session_cache.rb:36:in `invalidate!'
cantango (<IP_ADDRESS>) lib/cantango/ability/cache.rb:67:in `invalidate!'
cantango (<IP_ADDRESS>) lib/cantango/ability/cache/writer.rb:16:in `save'
cantango (<IP_ADDRESS>) lib/cantango/ability/cache.rb:34:in `cache_rules!'
cantango (<IP_ADDRESS>) lib/cantango/ability/cache_helpers.rb:6:in `cache_rules!'
cantango (<IP_ADDRESS>) lib/cantango/ability/executor.rb:17:in `execute!'
cantango (<IP_ADDRESS>) lib/cantango/ability/engine_helpers.rb:6:in `block in execute_engines!'
cantango (<IP_ADDRESS>) lib/cantango/ability/engine_helpers.rb:13:in `block in each_engine'
cantango (<IP_ADDRESS>) lib/cantango/ability/engine_helpers.rb:12:in `each'
cantango (<IP_ADDRESS>) lib/cantango/ability/engine_helpers.rb:12:in `each_engine'
cantango (<IP_ADDRESS>) lib/cantango/ability/engine_helpers.rb:5:in `execute_engines!'
cantango (<IP_ADDRESS>) lib/cantango/cached_ability.rb:14:in `initialize'
cantango (<IP_ADDRESS>) lib/cantango/ability_executor.rb:25:in `new'
cantango (<IP_ADDRESS>) lib/cantango/ability_executor.rb:25:in `cached_ability'
cantango (<IP_ADDRESS>) lib/cantango/ability_executor.rb:17:in `cached_rules'
cantango (<IP_ADDRESS>) lib/cantango/ability_executor.rb:7:in `initialize'
cantango (<IP_ADDRESS>) lib/cantango/configuration/factory.rb:26:in `new'
cantango (<IP_ADDRESS>) lib/cantango/configuration/factory.rb:26:in `default_factory'
cantango (<IP_ADDRESS>) lib/cantango/configuration/factory.rb:17:in `factory_build'
cantango (<IP_ADDRESS>) lib/cantango/api/common.rb:7:in `create_ability'
cantango (<IP_ADDRESS>) lib/cantango/api/user/ability.rb:6:in `user_ability'
cantango (<IP_ADDRESS>) lib/cantango/api/user/ability.rb:10:in `current_user_ability'
(eval):3:in `user_can?'
app/views/layouts/application.html.erb:12:in `_app_views_layouts_application_html_erb__1953511322705147990_52161660__1246252357618705991'
actionpack (3.0.9) lib/action_view/template.rb:135:in `block in render'
activesupport (3.0.9) lib/active_support/notifications.rb:54:in `instrument'
actionpack (3.0.9) lib/action_view/template.rb:127:in `render'
actionpack (3.0.9) lib/action_view/render/layouts.rb:80:in `_render_layout'
actionpack (3.0.9) lib/action_view/render/rendering.rb:62:in `block in _render_template'
activesupport (3.0.9) lib/active_support/notifications.rb:52:in `block in instrument'
activesupport (3.0.9) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (3.0.9) lib/active_support/notifications.rb:52:in `instrument'
actionpack (3.0.9) lib/action_view/render/rendering.rb:56:in `_render_template'
actionpack (3.0.9) lib/action_view/render/rendering.rb:26:in `render'
actionpack (3.0.9) lib/abstract_controller/rendering.rb:115:in `_render_template'
actionpack (3.0.9) lib/abstract_controller/rendering.rb:109:in `render_to_body'
actionpack (3.0.9) lib/action_controller/metal/renderers.rb:47:in `render_to_body'
actionpack (3.0.9) lib/action_controller/metal/compatibility.rb:55:in `render_to_body'
actionpack (3.0.9) lib/abstract_controller/rendering.rb:102:in `render_to_string'
actionpack (3.0.9) lib/abstract_controller/rendering.rb:93:in `render'
actionpack (3.0.9) lib/action_controller/metal/rendering.rb:17:in `render'
actionpack (3.0.9) lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render'
activesupport (3.0.9) lib/active_support/core_ext/benchmark.rb:5:in `block in ms'
/home/ecdpalma/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
activesupport (3.0.9) lib/active_support/core_ext/benchmark.rb:5:in `ms'
actionpack (3.0.9) lib/action_controller/metal/instrumentation.rb:40:in `block in render'
actionpack (3.0.9) lib/action_controller/metal/instrumentation.rb:78:in `cleanup_view_runtime'
activerecord (3.0.9) lib/active_record/railties/controller_runtime.rb:15:in `cleanup_view_runtime'
actionpack (3.0.9) lib/action_controller/metal/instrumentation.rb:39:in `render'
actionpack (3.0.9) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (3.0.9) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (3.0.9) lib/abstract_controller/base.rb:150:in `process_action'
actionpack (3.0.9) lib/action_controller/metal/rendering.rb:11:in `process_action'
actionpack (3.0.9) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (3.0.9) lib/active_support/callbacks.rb:441:in `_run__3324046468054523801__process_action__2699832443661909176__callbacks'
activesupport (3.0.9) lib/active_support/callbacks.rb:410:in `_run_process_action_callbacks'
activesupport (3.0.9) lib/active_support/callbacks.rb:94:in `run_callbacks'
actionpack (3.0.9) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (3.0.9) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
activesupport (3.0.9) lib/active_support/notifications.rb:52:in `block in instrument'
activesupport (3.0.9) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (3.0.9) lib/active_support/notifications.rb:52:in `instrument'
actionpack (3.0.9) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
actionpack (3.0.9) lib/action_controller/metal/rescue.rb:17:in `process_action'
actionpack (3.0.9) lib/abstract_controller/base.rb:119:in `process'
actionpack (3.0.9) lib/abstract_controller/rendering.rb:41:in `process'
actionpack (3.0.9) lib/action_controller/metal.rb:138:in `dispatch'
actionpack (3.0.9) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
actionpack (3.0.9) lib/action_controller/metal.rb:178:in `block in action'
actionpack (3.0.9) lib/action_dispatch/routing/route_set.rb:62:in `call'
actionpack (3.0.9) lib/action_dispatch/routing/route_set.rb:62:in `dispatch'
actionpack (3.0.9) lib/action_dispatch/routing/route_set.rb:27:in `call'
rack-mount (0.6.14) lib/rack/mount/route_set.rb:148:in `block in call'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:68:in `optimized_each'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.6.14) lib/rack/mount/route_set.rb:139:in `call'
actionpack (3.0.9) lib/action_dispatch/routing/route_set.rb:493:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/head.rb:14:in `call'
rack (1.2.4) lib/rack/methodoverride.rb:24:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/flash.rb:182:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/session/abstract_store.rb:149:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/cookies.rb:302:in `call'
activerecord (3.0.9) lib/active_record/query_cache.rb:32:in `block in call'
activerecord (3.0.9) lib/active_record/connection_adapters/abstract/query_cache.rb:28:in `cache'
activerecord (3.0.9) lib/active_record/query_cache.rb:12:in `cache'
activerecord (3.0.9) lib/active_record/query_cache.rb:31:in `call'
activerecord (3.0.9) lib/active_record/connection_adapters/abstract/connection_pool.rb:354:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/callbacks.rb:46:in `block in call'
activesupport (3.0.9) lib/active_support/callbacks.rb:416:in `_run_call_callbacks'
actionpack (3.0.9) lib/action_dispatch/middleware/callbacks.rb:44:in `call'
rack (1.2.4) lib/rack/sendfile.rb:106:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
railties (3.0.9) lib/rails/rack/logger.rb:13:in `call'
rack (1.2.4) lib/rack/runtime.rb:17:in `call'
activesupport (3.0.9) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.2.4) lib/rack/lock.rb:11:in `block in call'
<internal:prelude>:10:in `synchronize'
rack (1.2.4) lib/rack/lock.rb:11:in `call'
actionpack (3.0.9) lib/action_dispatch/middleware/static.rb:30:in `call'
railties (3.0.9) lib/rails/application.rb:168:in `call'
railties (3.0.9) lib/rails/application.rb:77:in `method_missing'
railties (3.0.9) lib/rails/rack/log_tailer.rb:14:in `call'
rack (1.2.4) lib/rack/content_length.rb:13:in `call'
rack (1.2.4) lib/rack/handler/webrick.rb:52:in `service'
/home/ecdpalma/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/home/ecdpalma/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/home/ecdpalma/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

Then I guess the fix is to patch the invalidate! logic so as to only invalidate the session if there is something to invalidate?

Well, I don't know. It's your code :).
That seems to be "a" solution, but I ask myself whether session[:permission] makes any sense or not. In other words: Is the bug session[:permission] not being set, or else wrongly trying to invalidate it?

See the specs. There should be a spec testing the permission engine both with caching on and off.
The session should only be used in caching mode, so one option would be to turn off this mode for the permission engine (see Engines on the wiki). I will try to fix this ASAP, I'm in the middle of extracting various parts of cantango (and some major refactoring) in order to make it easier to maintain etc.

I'm also getting hit by this.


Fix dependencies for 2 tasks

listTemplateViews
getResource

These two tasks were failing because their dependencies were set to unzipWAR instead of unzip. The unzip task is the one that actually explodes the WAR file so that these two tasks can find resources.

Thank you Dustin!