DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_c8483bf5-40be-4427-b23e-125fb1fb1260/pull/1 is merged into live branch.
Auto archive content to https://github.com/VSC-Service-Account/docs-archive-test-target_c8483bf5-40be-4427-b23e-125fb1fb1260.git

Docs Build status updates of commit a54d205:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-ServiceAccountCannotAccessRepository] Your repository https://github.com/VSC-Service-Account/docs-archive-test-source has enabled Docs Build service account. It seems that at least one of the accounts, e2ebd1, does not have Read permission to the repo. Please ask your repo admin to grant correct permission to service accounts (refer to this document: https://review.docs.microsoft.com/en-us/engineering/projects/ops/engdocs/how-to-grant-service-account-permission-in-your-repository?branch=master#ops-e2e-ppe) and then retry the build. Don't know who to contact? Refer https://repos.opensource.microsoft.com/VSC-Service-Account/repos/docs-archive-test-source/permissions/ to get admin list of the repo if the repo is in one of the organizations Microsoft owns.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Enhance Use MetaIdMappingsLog to replace InitCatalogLog/InitDatabaseLog.

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall

There are still some issues with this PR, I will reopen it after fixing them.

run buildall

run buildall

run buildall


feat(build): support build AV1 with source code

Codecov Report

Merging #75 into develop will decrease coverage by 22.9%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop      #75       +/-   ##
============================================
- Coverage       70%   47.09%   -22.91%
============================================
  Files          200      200
  Lines        10580    10580
============================================
- Hits          7406     4983     -2423
- Misses        3174     5597     +2423

Impacted Files
Coverage Δ

framework/demuxer/play_list/playListParser.cpp
0% <0%> (-100%)
:arrow_down:

framework/demuxer/play_list/AdaptationSet.cpp
0% <0%> (-100%)
:arrow_down:

framework/demuxer/play_list/AbstractStream.cpp
0% <0%> (-100%)
:arrow_down:

.../demuxer/play_list/segment_decrypt/ISegDecrypter.h
0% <0%> (-100%)
:arrow_down:

framework/demuxer/play_list/SegmentTracker.h
0% <0%> (-100%)
:arrow_down:

framework/demuxer/play_list/HlsTags.h
0% <0%> (-100%)
:arrow_down:

framework/demuxer/play_list/HLSStream.h
0% <0%> (-100%)
:arrow_down:

framework/tests/dataSource/ipList.h
0% <0%> (-100%)
:arrow_down:

framework/demuxer/play_list/PlaylistManager.cpp
0% <0%> (-100%)
:arrow_down:

framework/demuxer/play_list/Period.cpp
0% <0%> (-100%)
:arrow_down:

... and 54 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 0007970...3991b9b. Read the comment docs.


Report relation cache sizes in --diagnostics too

This would be helpful for https://github.com/microsoft/typescript-benchmarking/pull/58, as passing --extendedDiagnostics turns on tracing which slows down the compiler (not great for benchmarking).
But, maybe this is too much info for the more generic --diagnostics printout.

But, maybe this is too much info for the more generic --diagnostics printout.

I might be wrong, but I think the only reason --diagnostics doesn't just do the same as --extendedDiagnostics is because we didn't want to break existing tools that parsed the output (and possibly that the latter measures things a little incorrectly?).

Yeah, we talked about this in the meeting. It's now a lot easier to backfill data so we can change things, but the main problem is that extendedDiagnostics requires native performance events which slows down the benchmarks and makes them less realistic (since as we add more trace points, the perf gets worse with the flag on, but not for any actual user).


[Bug] Time Dependent Booster in case of Pause

For now, it is not a problem. But in case of setting 'Pause' time dependent booster might disappear due to dependency on std::chrono:system_clock.

Done in scope of the other task.


Async branch not working with Xcode 13 Beta 5

I just installed Xcode 13 Beta 5 13A5212g and now I get the errors below when building my root package Assist from branch async-await. In a previous version this worked without problems. I just upgraded macOS to the newest beta and downloaded the latest Xcode. I wonder why you don't specify any platform versions in Package.swift. Since Async await is only working in macOS 12 and argument parser is only for macOS I'd expect something like
platforms: [
    .macOS(.v12)
]

The errors I get are the following:
~/Library/Developer/Xcode/DerivedData/Assist-bpeugmbecnlglscpsxjqdloqyduu/SourcePackages/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/ParsableCommand.swift:31:23: error: concurrency is only available in macOS 12.0.0 or newer
  mutating func run() async throws

I can build my package on command line via
swift build "-Xswiftc" "-target" "-Xswiftc" "x86_64-apple-macosx12.0"
But not in Xcode :(
Anything I'm missing?

This should be resolved, see #404 for latest.


BNF

does this thing understands BNF, or maybe a bnf -> ohm converter? or do I have to learn another meta langauge?

Since the Ohm language is based on PEGs, it's not really feasible to directly translate from BNF/EBNF.
So yes, if you'd like to use Ohm, you'll have to learn a new meta language. 😁

thanks i'll pass


Implements NoMarginCallMarginModel

NoMarginCallMarginModel is a version of SecurityMarginModel which does not issue margin call orders.
Ref.: #573

Thank you Alex,


Create a 'Using the MediaSession API' tutorial

Due to rel 82 we need a little added extra to MediaSession. Code should be done for release but a nice article to go along side it is always good

Issue moved to mdn/content #1516 via ZenHub

Issue moved to mdn/content #1516 via ZenHub


New code for release_dates (#169)

@Naliath ?

// TODO: This could be made into an inherited class with Iso3166 as a base-clas property
I would not do this, for a simple property it would not really add anything. Best to keep these thing simple


onBeforeUnmount weird behaviour if the the custom component is on the same DOM tree level.

Vue version
3.3.8
Link to minimal reproduction
https://stackblitz.com/edit/vue3-script-setup-with-vite-l1j4xb?file=src%2FApp.vue
Steps to reproduce
This problem could me my missing knowledge how vnodes and lifecycle hooks working under the hood, but this behaviour is a little bit odd for me because it's working differently with a fresh vite create app and on stackblitz but works differently on SFC Playground.
This is the behaviour on my local env (also on stackblitz):
https://github.com/mateenagy/vue-weird-rerender

Create a new project with npm create vite@latest my-vue-app -- --template vue-ts
Create a simple component with some prop and add onBeforeUnmount hook with logging out the props.name for example.
Use the created component under each other like this:

    <Test name="foo" />
    <Test name="bar" />

Open console in browser then delete the name=foo component
Browser console will log bar instead of foo

SFC Playground:(https://play.vuejs.org/#eNp9Uk1v2zAM/SuaLnaBwD70ljkB1qHANmBbsQ/0UPXg2rTrViYFSU4DGP7vpeQmTdu0N5GPfHwU3yi/GJNtBpBLWbjKdsYLB34wa4Vdb8h6MQoLjZhEY6kXCZcme+gr9eYpn+UhCEzJZ4UKK0LnRe9asQr9afINtCZxSVbXn5IThUU+j+NBHHjojS49cCREUXeb+OBnHIFlDyslGyIlRX4MuintHiryub/ID1jlQnrHopquze4cIe87hmIlK6bpNNjfxncsWsmliEjAStb88CPmvB1gsctXt1DdH8nfuW3IKXlhwYHdgJJ7zJe2BT/D539/wZbfe7CnetBc/QH4BxzpIWicy84GrFn2QV1U+z2epsP2nzvfekC3WyoIDZVTrFeSTxV+8L3Vn+WeZqexT+HEv7g784FhdIkt38AzwVvzEJ5BQxb+Y08D+gUnfoYH1K88tfOMsWQcu6aGpkO4CFERVYVTL4XzlpdjLeuUXaTwFX+anojVel4j8JGGTFObJleh/XopksU8IQsxM0wvvXjEieMYR4tpOu6s6REggxkW)
The behaviour in this is different because when I remove the first component then both onBeforeUnmount event triggered.
What is expected?
I leave some commented out example where it's working as expected:
When I remove the name=foo component then the onBeforeUnmount should log foo
What is actually happening?

No response

https://play.vuejs.org/#__DEV__eNp9Uk1v1DAQ/SvGl2SlJRH0FrIrKKoESEDFhzise4iSSXDXsS3bWRZF+e/MOM2ytKWXxOP3ZuaN5438jbXZYQBe8NLXTtrAPITBboWWvTUusJE5aNnEWmd6liA1OUFvTW/v7rOcAqqUvBJa6NpoH1jvO7ah/DR5B0oZ9sM41TxLVgtBSfzMjF3yMlmz5EVyg2iZz2JQBgYBequqABgxVjbywF7XStb7jeB3BXaUJ3gkICUKOzxvjUNKKjF/zaRu4LjCX2wqOCt01QPiBFO4h98UEU3wfO6VYzM8lfmZBL7mwaP8VnbZrTcan24ksuA1tpUK3GcbJI4neMEiQliF4//6EO+CG2C93Nc/od4/cn/rUUWBh2sHHtwBBD9hoXId4AgEX339BEc8n8DeNINC9hPgF/BGDaRxpl0OukHZZ7yo9n3cstTdN391DKD9MhQJJeYU+YLj1unF/zf6X7kX2UXME3rCV1wcc+Y9VekOlxCwwEMfGn0JuFL4rnsz6LDGi490gOaePRd3WWesR3c00EoN1xSVURVtvmA+OBwOtWxTtJzQ9+qn6YpttvMYVM8oyJTp0mRH6TcFQ7vGDhnFWGH617gPbbsdx9iaTdPjzpr+APBlMSI=
Similar to this use case, there is no correct binding key, causing the dom structure to be updated incorrectly when it is destroyed.

Yes it was on me to forget about the description on the :key property on the component in the vue docs:
Without keys, Vue uses an algorithm that minimizes element movement and tries to patch/reuse elements of the same type in-place as much as possible.
And the it make perfect sense, but I just show a basic example (the stackblitz link contains the :key workaround). My use case is that I have a component which value is in a global store and if I remove it then it updates the store. The problem is In this case that If I don't know the name from the component then the I cant remove from the store properly. The key is a workaround but not really a good developer experience and I mean when I am not using v-for.
I wonder if it's possible to have the option for render function to tell the renderer to not patch/reuse that elements instead just remove it? So I don't  have to use key on every singe component when I use them under each other.
Something like this:
defineComponent({
   	patch: false,
   	props: {
   		name: {
   			type: String,
   			default: '',
   		},
   		default: {
   			type: [String, Boolean, Number, Object],
   			default: '',
   		},
   		ignore: {
   			type: Boolean,
   			default: false,
   		},
   		preserve: {
   			type: Boolean,
   			default: false,
   		},
   	},
   	emits: ['update:modelValue'],
   	setup: (props, ctx) => {
   		return () => {
   			return h(component, {
   				...props,
   				name: props.name,
   			},
   			{ ...ctx.slots });
   		};
   	},
   });


IScroll crashes during call to "new IScroll(..)"

This sample code that reproduces the bug: http://codepen.io/jacobBogers/pen/BKbjQr?editors=1001
I have reduced solely to a 2 line JS initialization
This is the error text of chromium debugger
Uncaught TypeError: this._init is not a function
IScroll.js:355
You can see in the snippet what version if IScroll I use.

There is no iscroll in your repro


Clean up printing code

Our code for the show and print family of functions is a mess. The following is one of the worst cases:
{PooledDataVector(1:3)}

We should exploit the fact that DataArray's now inherit from AbstractArray's whenever possible.

Has been improved.


[WIP] Benchmarks for V1 and V2

Which problem is this PR solving?

PR is on the issue 4869

Description of the changes

Add a benchmark test for both Jaeger V1 and V2 with a similar setup

Checklist

[x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md
[x] I have signed all commits
[ ] I have added unit tests for the new functionality
[ ] I have run lint and test steps successfully

for jaeger: make lint test
for jaeger-ui: yarn lint and yarn test

incomplete, closing


Add tip for HTTP cache

This is a good practice for many apps to optimize performance and number of invocations.

thanks for the quick review, @meryllblanchet . Yes totally makes sense. I have updated the PR accordingly.


Added Quick Question&Answering to AI page

Apply Sweep Rules to your PR?

[ ] Apply:  All new business logic should have corresponding unit tests.
[ ] Apply:  Refactor large functions to be more modular.
[ ] Apply:  Add docstrings to all functions and file headers.

This is an automated message generated by Sweep AI.


Add support for TCP/SNI based routing.

Here's the pull request - just so it's easier for you to comment on. I'll remove telegraf from this. ProxyMode isn't really clean. I would instead remove 443 from the services front-end, get rid of the haproxy_stats front/backends and expose haproxy stats on a unix socket.

I shall take a stab at this again by removing the telegraf stuff and trying to clean up the template. I shall remove 443 as a default bound port because 443 implies TLS. The default 443 doesn't pass cert so it's not terminating TLS here. It's not doing TCP passthrough either - so IMO it shouldn't be listening on 443 and serving plain HTTP. I shall attempt to re-create my POC using the modified stuff and send you another pull request after that. You needn't accept it - it will be just for review. I'll then take a stab at writing the test code and then send you a pull request if that looks ok.

I need a few days to get rid of some urgent matters. I hope it's OK if I review this PR in a few days (weekend in worst case scenario).

No problem. I’m going to be busy for a few days too. I’ll wrap it up before
the weekend if possible.
On 25 January 2017 at 12:20:52 AM, Viktor Farcic<EMAIL_ADDRESS>wrote:
I need a few days to get rid of some urgent matters. I hope it's OK if I
review this PR in a few days (weekend in worst case scenario).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/vfarcic/docker-flow-proxy/pull/112#issuecomment-274898589,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAfACxm_PWPNRq-OZWaVZ67-V9Ykv7HZks5rVkgIgaJpZM4LoFCi
.

Closing this request. Splitting this up into smaller bits.


added missing packages to compute release

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

Can one of the admins verify this patch?

@weidongxu-microsoft
package-xxxx-xx-xx-only tags are supposed to include only files from xxxx-xx-xxx folder, so that's correct
stable/2019-07-01 contains only gallery.json
stable/2019-03-01 contains:

compute.json
disk.json
gallery.json
runCommands.json

so I am adding disk.json because it was missing


Settings hidden

https://github.com/rancher/rancher/issues/8625

LGTM but I'm going to wait until https://github.com/rancher/rancher-auth-service/pull/19 is merged and released before merging this one so that we can include the update to cattle-global.properties in this PR.


CheckboxGroup default selection doesn't work

I was trying to create a CheckboxGroup with one of the checkboxes ticked by default. It was unclear to me, if I should use the checked property of the Checkbox , or the value property of the CheckboxGroup. However, non of them seems to work. Here is a MWE demonstrating both approaches,
from dash import Dash
import dash_mantine_components as dmc

app = Dash(__name__, )
app.layout = dmc.CheckboxGroup([
    dmc.Checkbox(value="x", label="X", checked=True),
    dmc.Checkbox(value="y", label="Y", checked=False),
], value=["x"])

if __name__ == "__main__":
    app.run_server()

Thanks @emilhe for reporting this. Its fixed and will be available in the next release.


Fix regex test string to properly check css input

Pre-Submission Checklist

[x] Your pull request targets the staging branch of FreeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm run test-challenges. Use git commit --amend to amend any fixes.

Type of Change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Closes currently open issue (Closes #XXXX): Closes

Description

Change test string to allow for a non-greedy number of spaces. So that css input with/without spaces will be properly matched.

@ecotg I noticed you mentioned that this closes an issue, can you please edit the PR description and add it there is this addresses any currently open issues.
Closes #XXXX where XXXX is the issue no.

Closing this PR as the issue #8511 was closed an hour ago.

@ecotg Sorry about that! But please keep contributing to other open issues, we thank you for your contributions!


checks if Rails.application is loaded

Summary
There is an error when using this gem as a dependency on another one because Rails.application hasn't yet been loaded. if defined?(Rails) doesn't work properly because Rails is defined but application is nil.
It's the same error found here: https://github.com/github/view_component/issues/231#issuecomment-594667709

yes, sure, but I think it's difficult to do a test for it. I can try @BlakeWilliams

@g13ydson if we need to add a demo gem to the test suite to test this, that's fine with me ❤

@g13ydson if we need to add a demo gem to the test suite to test this, that's fine with me

so, I think it's necessary some changes on the dummy to do it. I don't know if it's is a good way. Another approach is to create another dummy to simulate the real context. I know, it's very important to test, but I need to spend a lot of time on it :sweat_smile:  .

@joelhawksley ok, I know it’s important to create a test case for this, but it’s very difficult to do that.
I've created a demo_gem in the test folder and a Gemfile that uses this demo gem.
If I create a demo gem and add the view_component as a dependency s.add_runtime_dependency 'view_component', '~> 2.9', the vew_component 2.9 gem hasn't yet been updated with the bug fix. Because of this, the tests don't work:
undefined method routes for nil:NilClass. I'm open to suggestions

@g13ydson Thanks for looking into the test case! That makes sense to me, would it be possible to point the gem to the local version of view_component?
I think something roughly like: gem "view_component", path: "../../../view_component" may work?

@BlakeWilliams I guess not. See, we have this scenario: app A depends on demo_gem which depends on view_component.
the error occurs when A uses the demo_gem. A gem’s Gemfile is not considered when a gem is installed, and thus any dependencies within it are not installed. Gemfile will have effect when bundle install is called for the gem itself, and not any projects that include the gem in their bundle, so I think it does not allow adding runtime requirements that aren’t released as proper gems.

@g13ydson I see. I had one last idea if you had interest in trying it out, but I wonder if we could write a test against the Rails.application part?
We're using minitest, so I think we could stub it to return nil.
Rails.stub :application, nil do
  // test that `child` does not include route helpers
end

Re: https://github.com/github/view_component/pull/453#issuecomment-682100748, I'm not convinced that it's impossible to satisfy the dependencies such that we could use an example "ViewComponent library" gem in our tests. I think Bundler can resolve the gem dependencies if we set it up correctly.
As a proof of concept, something like this seems to appease Bundler:
diff --git a/Gemfile b/Gemfile
index 12628b4..2b9b466 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,4 +6,5 @@ gemspec
 rails_version = "#{ENV['RAILS_VERSION'] || '<IP_ADDRESS>'}"

 gem "capybara", "~> 3"
+gem "isolated_view_component_gem", path: "./test/isolated_view_component_gem"
 gem "rails", rails_version == "master" ? { github: "rails/rails" } : rails_version
diff --git a/Gemfile.lock b/Gemfile.lock
index b672ebb..6ffee24 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,3 +1,9 @@
+PATH
+  remote: test/isolated_view_component_gem
+  specs:
+    isolated_view_component_gem (0.1.0)
+      view_component (>= 2)
+
 PATH
   remote: .
   specs:
@@ -205,6 +211,7 @@ DEPENDENCIES
   bundler (~> 1.14)
   capybara (~> 3)
   haml (~> 5)
+  isolated_view_component_gem!
   minitest (= 5.6.0)
   rails (= <IP_ADDRESS>)
   rake (~> 13.0)
diff --git a/test/isolated_view_component_gem/isolated_view_component_gem.gemspec b/test/isolated_view_component_gem/isolated_view_component_gem.gemspec
new file mode 100644
index 0000000..8b03acd
--- /dev/null
+++ b/test/isolated_view_component_gem/isolated_view_component_gem.gemspec
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+lib = File.expand_path("../lib", __FILE__)
+$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
+
+Gem::Specification.new do |spec|
+  spec.name          = "isolated_view_component_gem"
+  spec.version       = "0.1.0"
+  spec.authors       = ["GitHub Open Source"]
+  spec.summary       = "Example gem to be used in ViewComponent test suite"
+  spec.files         = Dir["{lib}/**/*"]
+  spec.require_paths = ["lib"]
+
+  spec.add_dependency "view_component", ">= 2"
+end
diff --git a/test/isolated_view_component_gem/lib/isolated_view_component_gem.rb b/test/isolated_view_component_gem/lib/isolated_view_component_gem.rb
new file mode 100644
index 0000000..2b5b23c
--- /dev/null
+++ b/test/isolated_view_component_gem/lib/isolated_view_component_gem.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require "view_component"
+
+module IsolatedViewComponentGem
+  class GemComponent < ViewComponent::Base
+    def call
+      "Hello World - from inside a gem"
+    end
+  end
+end
diff --git a/test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb b/test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb
new file mode 100644
index 0000000..4d17341
--- /dev/null
+++ b/test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+require "isolated_view_component_gem"
+require "minitest/autorun"
+
+class IsolatedViewComponentGemTest < Minitest::Test
+  def test_that_it_renders_component_from_a_gem
+    result = IsolatedViewComponentGem::GemComponent.new.call
+
+    assert_equal "Hello World - from inside a gem", result
+  end
+end

Running that test with no changes to view_component fails:
$ bundle exec ruby -Itest test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb
Traceback (most recent call last):
	4: from test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb:3:in `<main>'
	3: from test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb:3:in `require'
	2: from /Users/rmacklin/src/github.com/view_component/test/isolated_view_component_gem/lib/isolated_view_component_gem.rb:5:in `<top (required)>'
	1: from /Users/rmacklin/src/github.com/view_component/test/isolated_view_component_gem/lib/isolated_view_component_gem.rb:6:in `<module:IsolatedViewComponentGem>'
/Users/rmacklin/src/github.com/view_component/lib/view_component/base.rb:185:in `inherited': undefined method `application' for Rails:Module (NoMethodError)

It also fails using the changes from https://github.com/github/view_component/compare/24d122cd87b69604b5f6b3d7c21a70593cf7fd6b...96e55ea60e7ae738099ffb24d8da37cbb5262210#diff-08fe1c0f29a6308ad005c21f4adcfd64
But if we change it slightly to:
diff --git a/lib/view_component/base.rb b/lib/view_component/base.rb
index 730b6fc..e172830 100644
--- a/lib/view_component/base.rb
+++ b/lib/view_component/base.rb
@@ -180,7 +180,7 @@ module ViewComponent

       def inherited(child)
         # If we're in Rails, add application url_helpers to the component context
-        if defined?(Rails)
+        if defined?(Rails) && Rails.respond_to?(:application) && Rails.application
           child.include Rails.application.routes.url_helpers unless child < Rails.application.routes.url_helpers
         end

then it passes:
$ bundle exec ruby -Itest test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb
Run options: --seed 22529

# Running:

.

Finished in 0.000842s, 1187.6485 runs/s, 1187.6485 assertions/s.

1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

I haven't looked into why the Rails module is defined even in an isolated gem; view_component must require some files that define it. But anyway, this seems to prove that Bundler is not a blocker here.
Some notes:

It's important that I'm running that test in isolation above (bundle exec ruby -Itest test/isolated_view_component_gem/test/isolated_view_component_gem_test.rb). Running that test as part of the default bundle exec rake test task won't have the same results because the normal test suite runs in an environment where Rails.application is defined and non-nil. We'd potentially want to make CI run that test in isolation like I did, or set up a separate rake task to run the tests in test/isolated_view_component_gem/test
I initially tried making the test inherit from ViewComponent::TestCase and use render_inline instead inheriting from Minitest::Test, but ViewComponent::TestHelpers has implicit dependencies on a Rails environment:
https://github.com/github/view_component/blob/24d122cd87b69604b5f6b3d7c21a70593cf7fd6b/lib/view_component/test_helpers.rb#L28
https://github.com/github/view_component/blob/24d122cd87b69604b5f6b3d7c21a70593cf7fd6b/lib/view_component/test_helpers.rb#L38
that cause errors in an isolated environment. I'm not sure if we'd want to fix that or leave it to gem authors to decide whether they want to run isolated tests or pull in enough of a rails environment to use ViewComponent::TestCase.

I've run out of time to go any further with this, but figured I'd share what I'd found in case it helps.

hey, @rmacklin this is perfect, so, I'll wait for the opinion of the gem authors. @joelhawksley @BlakeWilliams what do you think about this?

Nice investigative work @rmacklin!
It seems like that's a lot of setup, extra code, and work for the test suite to account for. Given what it takes to setup that test, I think I'd lean towards using a stub to make Rails.application return nil to test this change.

@blakepender I don't think it's possible, the Rails defines the application as an attr_writer, but the application method is automatically resetting it to the default application class instance if it's nil.  https://github.com/rails/rails/blob/fbe2433be6e052a1acac63c7faf287c52ed3c5ba/railties/lib/rails.rb#L38

@g13ydson If we used a stub, I don't think we would have to worry about the method creating a new instance.

It seems like that's a lot of setup, extra code, and work for the test suite to account for. Given what it takes to setup that test, I think I'd lean towards using a stub to make Rails.application return nil to test this change.

As the maintainers, it's your call if that's how you want to proceed.
But I would like to reiterate this:

It also fails using the changes from https://github.com/github/view_component/compare/24d122cd87b69604b5f6b3d7c21a70593cf7fd6b...96e55ea60e7ae738099ffb24d8da37cbb5262210

That is, the code in this PR failed with a NoMethodError when used in a real test, but if it was tested with a stub it would've passed despite that error. Testing with a stub doesn't actually verify the logic works; it just verifies the logic is there. (We can fix that error using the patch I shared, but my point is the test wouldn't inspire a lot of confidence.)
IMO, adding the extra test setup would also be consistent with how ViewComponent's test suite is already set up: rather than testing everything in isolation, it sets up a dummy rails application (which requires considerably more setup code than a dummy gem) to ensure that the code works "in the real world".

That is, the code in this PR failed with a NoMethodError when used in a real test, but if it was tested with a stub it would've passed despite that error. Testing with a stub doesn't actually verify the logic works; it just verifies the logic is there. (We can fix that error using the patch I shared, but my point is the test wouldn't inspire a lot of confidence.)

If we stub Rails.application to be nil, pre-patch it should hit child.include Rails.application.routes.url_helpers unless child < Rails.application.routes.url_helpers and raise because it can't call routes on nil. Something like the following would cover those inheritance cases:
diff --git a/test/view_component/view_component_test.rb b/test/view_component/view_component_test.rb
index 58a1ba9..0b05925 100644
--- a/test/view_component/view_component_test.rb
+++ b/test/view_component/view_component_test.rb
@@ -645,4 +645,10 @@ class ViewComponentTest < ViewComponent::TestCase

     assert_text("http://assets.example.com")
   end
+
+  def test_does_not_require_rails_application
+    Rails.stub :application, nil do
+      Class.new(MyComponent)
+    end
+  end
 end

I'd accept a test with a stub, or a full-integration test based on a gem. The latter requires a lot more work/setup and also means we have to think about how we currently run tests given we would now have to maintain two separate test suites (based on the research above).
Based on that last sentence, I'm wondering if we could define tests inside of the gem that run before we load the Rails application to test this scenario where Rails.application doesn't exist. 🤔

pre-patch it should hit child.include Rails.application.routes.url_helpers unless child < Rails.application.routes.url_helpers and raise because it can't call routes on nil.

When you say "pre-patch", do you mean without the patch that's provided by this PR currently (https://github.com/github/view_component/compare/24d122cd87b69604b5f6b3d7c21a70593cf7fd6b...96e55ea60e7ae738099ffb24d8da37cbb5262210)?
I think I may not have expressed it clearly, but the test I added showed that this PR's patch isn't sufficient. It needs to also check Rails.respond_to?(:application). Otherwise, there is a different NoMethodError which the real test revealed when using the code in this PR:

undefined method `application' for Rails:Module (NoMethodError)

That NoMethodError was raised because Rails did not respond to the application method; wouldn't stubbing the application method force Rails to respond to it?

@rmacklin Hmmm, I tested that locally and I think that's only the case when Rails isn't required. View component is pretty heavily coupled to Rails, so I think requiring Rails to be an included/required Gem is fine.

I tried to do a simple test, but the Rails.application automatically resetting to the default application class instance, for example:
Rails.stub(:application, nil) do
  assert_equal(false, MyComponent.included_modules.include?(ActionView::RoutingUrlFor))
end

It was to be false, but returns true


Hook to uppercase the 'level'

I like how bunyan-logstash-tcp converts the integer loglevel to a string.
I'd like to have uppercase loglevels in logstash, though. Is there a way to do this, perhaps by pre-processing the log object somehow? I've briefly looked at serializers but that doesn't seem to be helpful here.
If not, could we somehow make the translation of the 'level' field configurable in bunyan-logstash-tcp?

I've monkey-patched around it like this for now:

var levels = {
  10: 'TRACE',
  20: 'DEBUG',
  30: 'INFO',
  40: 'WARN',
  50: 'ERROR',
  60: 'FATAL'
};

logstashStream.originalWrite = logstashStream.write
logstashStream.write = function patchedLogstashWrite(entry) {
  if (levels.hasOwnProperty(entry.level)) {
    entry.level = levels[entry.level];
  }
  this.originalWrite(entry);
}

.. but I'm not proud of it :)


Upgrade to Mondrian 8.2

Upgrade to the current latest Mondrian <IP_ADDRESS> version
Desupport Java 7, added support for Java 11
Remove deprecated NativeException, Fixnum

Hi @rsim,
If you don't mind me asking: what's the reason for moving to Mondrian 8? (I never quite understood the logic behind Mondrian versioning :/)
Cheers!

@jazzido Mondrian 8.x is actually the continuation of the same Mondrian 3.x. They did the renaming to match the Pentaho BI Server version numbers where the corresponding Mondrian engine is embedded.
Mondrian 4.x which made significant changes to schema definitions seems to be abandoned.

a, now its starting to make1§ sense, thx @rsim!


at_client "crashes" when decryptionService.decrypt() returns a null

[gkc] Update 2023-02-20

The fatal bug was fixed in 2022.
However we have not yet tackled the follow-on issue of how the contacts widget should deal with atSigns which no longer exist.
Created ticket in at_widgets which will need an architecture discussion.
Closing this issue.

Describe the bug
This was originally noticed in spacechat with some @ signs working just fine and others not logging in or not seeing chats.
To Reproduce
Steps to reproduce the behavior:

First run an app that uses the at_contacts_flutter
Then have an @ sign that has at least some odd data (@ colin always fails)
Crash is shown in the logs but the app keeps running

I/flutter (14990): @colin
I/flutter (14990): INFO|2022-03-31 13:52:21.367113|At Onboarding Flutter|Onboarding...!
I/flutter (14990): SEVERE|2022-03-31 13:52:21.701471|SelfKeyDecryption|Error while decrypting value: Invalid argument(s): Invalid or corrupted pad block
E/flutter (14990): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: type 'Null' is not a subtype of type 'String' in type cast
E/flutter (14990): #0      GetResponseTransformer.transform (package:at_client/src/transformer/response_transformer/get_response_transformer.dart:38:69)
E/flutter (14990): <asynchronous suspension>
E/flutter (14990): #1      AtContactsImpl.get (package:at_contact/src/at_contacts_impl.dart:73:19)
E/flutter (14990): <asynchronous suspension>
E/flutter (14990): #2      AtContactsImpl.listContacts (package:at_contact/src/at_contacts_impl.dart:153:19)
E/flutter (14990): <asynchronous suspension>
E/flutter (14990): #3      ContactService.initContactsService (package:spacesignal/app/modules/contacts/controllers/contact_service.dart:131:25)
E/flutter (14990): <asynchronous suspension>
E/flutter (14990): #4      OnbordingScreenState.build.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:spacesignal/app/modules/home/views/onboarding.dart:229:43)
E/flutter (14990): <asynchronous suspension>
E/flutter (14990):

Expected behavior
The library should not error
Were you using an @application when the bug was found?

spacechat

Additional context
This is a low level issue so could have impact across other places

After digging into the problem the cause of the issue is in :-
https://github.com/atsign-foundation/at_client_sdk/blob/trunk/at_client/lib/src/transformer/response_transformer/get_response_transformer.dart
lines 38/39
    // For public and cached public keys, data is not encrypted.
    // Decrypt the data, for other keys
    if (!(decodedResponse['key'].startsWith('public:')) &&
        !(decodedResponse['key'].startsWith('cached:public:'))) {
      var decryptionService = AtKeyDecryptionManager.get(tuple.one,
          AtClientManager.getInstance().atClient.getCurrentAtSign()!);
      atValue.value =
          await decryptionService.decrypt(tuple.one, atValue.value) as String;
    }
    ```

    I put in a null check and the app now works as it should

    ```
        // For public and cached public keys, data is not encrypted.
    // Decrypt the data, for other keys
    if (!(decodedResponse['key'].startsWith('public:')) &&
        !(decodedResponse['key'].startsWith('cached:public:'))) {
      var decryptionService = AtKeyDecryptionManager.get(tuple.one,
          AtClientManager.getInstance().atClient.getCurrentAtSign()!);
       var temp = await decryptionService.decrypt(tuple.one, atValue.value);
       if (temp != null){
         atValue.value = temp.toString();
       }
    }
    ```

Although that fixes things it is probably not the ideal solution.. Would appreciate your thoughts on the best way to fix the bug.
@VJag @gkc @murali-shris @kalluriramkumar

With this 'fix' in place still get plenty of errors from the contact lib
I/flutter (17415): SEVERE|2022-03-31 16:31:45.446241|AtContactsImpl|Invalid JSON. Unexpected character found in JSON : NFmJEPvYE50SNgnZujZKZNAuPmnZwcLRuAgcmP4vhJM7c8PnVLPWflpzsC+rv0rpSYDqQTVQUpSu0H2YGgouuRvptA/b/ZSKmc4bG4/IpTlG5eQZ3/K3fUBWte6qWcV3xkmECeWvkbEatN2NhQ/SHaE5Ztjj7yT/6NlISl/Ig2okfMWdKYdVL/0aZidccHbIksoBmF3fMJKwRuOnpHHqVG+Wscz5YE11vZ6MIiGKxlvBr7VEH1+6e2A5xh704ayQM+P+IKj7P20fi1Mb1tz2BPSqL96gPOfjSmRdop1NrpnygkRUbKRg0O/Md2at3NRwlde4wbcC48hrZ4V/tuRxVrjKk48DfdZC9N+lDP3WPMpSES92i4o8Lc3tmJiSgD0A
I/flutter (17415): SEVERE|2022-03-31 16:31:45.446935|AtContactsImpl|Invalid atsign contact found @AtKey{key: atconnections.deepburntorange.colin.at_contact.spacesignal, sharedWith: null, sharedBy: @colin, namespace: spacesignal, metadata: Metadata{ttl: null, ttb: null, ttr: null,ccd: null, isPublic: false, isHidden: false, availableAt : null, expiresAt : null, refreshAt : null, createdAt : null,updatedAt : null,isBinary : false, isEncrypted : null, isCached : false, dataSignature: null, sharedKeyStatus: null}, isRef: false} : Exception: Invalid JSON found

It is possible to do remove a 'no longer valid' contact.
One way to do that is:

Self key decryption throws the exception back to app

Give an option to the widget to decide if the contact can be deleted or not

@override
Future<List> listContacts({bool removeInvalid = false}) async

Handle the exception in the contacts library when contact is no longer decryptable
try {
contact = await get(atsign, getAtKey: atKey);
} on Exception catch (e) {
logger.severe('Invalid atsign contact found @$key : $e');
if(removeInvalid) {
await delete(atsign);
}
}

The reason we see these errors all the time is that we have not yet removed that contact.

I think even better would be to return a bad contact back so that the "user will not have silently removed without any information" kind of experience.
For that we have to do the following:

Introduce isValid on AtContact defaulting it to true

Fix in at_client
https://github.com/atsign-foundation/at_client_sdk/pull/459

[gkc] Update

The fatal bug was fixed in 2022.
However we have not yet tackled the follow-on issue of how the contacts widget should deal with atSigns which no longer exist.
Created ticket in at_widgets which will need an architecture discussion.
Closing this issue.


hx711: tidy up a few remaining PR comments

Remove ReadAveraged - it's not a good fit here.
Use the proper datasheet URL.
Remove some constants.
Rename StopContinuousRead to Halt.

Codecov Report

Merging #312 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #312      +/-   ##
=========================================
- Coverage   69.22%   69.2%   -0.03%
=========================================
  Files          99      99
  Lines        8709    8709
=========================================
- Hits         6029    6027       -2
- Misses       2524    2526       +2
  Partials      156     156

Impacted Files
Coverage Δ

devices/lepton/lepton.go
87.19% <0%> (-1.22%)
:arrow_down:

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 210d3e3...4c4d1cb. Read the comment docs.

gohci

Thanks a lot for following through!


Shader applied colour darker than it should be

Godot version
4.0b2
System information
macOS Monterey
Issue description
When setting a pixel colour via shader, the colour is displayed darker than it should be.
Steps to reproduce
Set colour of sprite via shader and same colour to a ColorRect. See difference in colour.
Please see attached project
Minimal reproduction project
shader_color_issue.zip

closed duplicate of #48039

This may actually be a duplicate of https://github.com/godotengine/godot/issues/66619, especially if you can only reproduce the issue in 4.0.

Issue can be resolved by converting from linear to sRGB colour space
Color.linear_to_srgb()


fields_count was remake by value based approach

This approach gives us ability for make overloads of fields_count function.
And this ability will help me with https://github.com/boostorg/pfr/issues/100

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
332

Relevant Lines:
332

💛  - Coveralls

Im not sure. It will be reopened if we really need it


Developer friendly interfaces for reading ion objects.

Problem: The interfaces for writing/reading ion are quite verbose. http://amzn.github.io/ion-docs/guides/cookbook.html#reading-and-writing-ion-data
Extracting a single field requires walking the document through functions like next(), stepIn().
for eg:
Reading with ion-js
let ion = require('ion-js');

let reader = ion.makeReader('{hello: "world"}');
reader.next();                         // position the reader at the first value, a struct
reader.stepIn();                       // step into the struct
reader.next();                         // position the reader at the first value in the struct
let fieldName = reader.fieldName();    // retrieve the current value's field name
let value = reader.stringValue();      // retrieve the current value's string value
reader.stepOut();                      // step out of the struct
console.log(value);  // prints: world

Whereas if we compare this to ion python :
import amazon.ion.simpleion as ion

obj = ion.loads('{hello: world}')
print(obj['hello'].text)                            //prints world

The ion python library has much easier to use/understand interfaces.
Feature Request:
Developer friendly and less verbose interfaces to read/write ION objects.
Something like:
let ionObject = ion.loads('{hello: "world"}');

console.log(ionObject['hello'].text);  // prints: world

+1 was hoping to get Typescript objects out that I could manipulate or return in an API, instead I have to walk a dom tree. Working on adapting the pretty writer to output JSON but it's risky...

@jmagnuss do you need to manipulate it? generally wed like to make the sequence of objects immutable due to the added api risk and decreased perf of allowing users to manipulate its symboltable context.

We're looking into what it would take to offer a straightforward load() API to get a JS Object value from a given Reader. I'll update this issue when we have more details.

I don't need to manipulate it, I'm working on a REST API that manages records in QLDB.
Here's my quick solution last night: https://gist.github.com/jmagnuss/419db1c4891b5aa7f79a40e4cf8e9a4a
I was going to toss it up as a module this morning, but if we can natively support down-converting to JSON and Objects in the official library, that would be ideal.

I ran into a similar issue working with QLDB. I have a quick and dirty object implementation, but I haven't set up all the tests I'd like to have on it yet. I'll make sure I push it up to my fork today. If anyone wants to see the basic idea, here's a gist with relatively recent code - https://gist.github.com/doberenz/01927f18a1c785c58ab0536b3987a6ee

I have the reader side of the tests passing at https://github.com/fuwjax/ion-js. I had some difficulty getting it to build on my work laptop, "fuwjax" is my personal GitHub account.
The basic premise, construct a Reader and pass it to IonObject.values(). That will return an iterator over IonObject instances. Those instances are a bit clumsy, as you have to keep calling .value and casting the result to a type. The value objects have .asSomething properties to avoid the cast, but you'll still have to cast to the value object itself.
At the very least, the resulting object will give you a .json property that you could parse back to a json object, that should at least obey the rules from the ion spec. I can add an .asNative property to save the hassle of parsing, but this is starting to feel like more baling wire and duct tape.
The issue I was running into was that to do an update in QLDB, I wanted to fetch an object, change it a bit and resubmit the object. That meant being able to swap from ion to json and back to ion, preferably with the same mutable object. Instead, I think there is some value in treating the objects as immutable and having a builder pattern for creating an ion object. That way a reader could return simple javascript objects without the type hierarchy, and when creating an ion object you'd have a literate syntax instead of an object/array json model.

Hi all! The next release will include the new DOM API, which aims to address this issue.

Version 4.0.0 has been released.


git tags missing since version 0.2.4

Hi, I've noticed the git tags are missing for versions >= 0.0.24. This makes packaging distro packages slightly more complicated because it prevents people from using "predictable" Github URLs for downloading the source code tarball, and instead requires either the use of non-predictable download URLs from pypi.org or figuring out by hand which git commit id corresponds to which version. So would it be possible to add the missing git tags? :)

Fixed: https://github.com/di/pip-api/tags


feat(luasnip_fn): expand snippet directly;

Expand snippets directly, do not put trigger strings into buffer
Setup function now respects userconfig in telescope setup
Meld stylua config from upstream

@hinell Thanks for the PR.
I merged another small PR (performance tweak for Windows users -- thanks @paopaol !), and it's triggered a merge conflict with your PR.
I haven't explicitly done so, but I have a Stylua configuration file I need to commit, which I think is aligned with Neovim Lua conventions. Once I get that done, we could reformat your PR to make the diff a little easier to read.
How does that sound?

@hinell I've opened benfowler/telescope-luasnip.nvim#20 if that helps you at all.
Again, thanks for bearing with me. We'll try and get this merged ASAP.

@benfowler Hi. The #7 PR is a bit wrong.
There is actually a dedicated config for previews that can be reused:, it's called config.preview.check_mime_type see
h telescope.defaults.preview
My PR is going to honor this tweak.

@benfowler I've merged .stylua.tom from upstrea and formatted it except few places. Checkout.

I've expanded tabs to spaces. Checkout.

Hey @hinell , I took the liberty of resolving those merge conflicts for you. If you'd like to quickly cast your eyes over it again, I can merge when you're ready. Thanks again for taking the time to get this change in.

@benfowler LGTM. Feel free to merge.
There is a small typo in error(..) message btw. Can you fix it after a merge?

Thanks again @hinell for taking the trouble to do this. I've merged, and also fixed that typo. Hope that help. Please shout if you notice anything else wrong.


Support multiple inventory files under individual inventory directory

Currently default caph-ansible example coming with following limitation:

Didn't provide sample inventory file as reference, e.g. inventory/sample/hosts
{{ fetch_directory }} is relative to project top directory, so multiple deployments will result as shared fetch/ folder generated
group_vars is relative to project to directory, so multiple deployments will again sharing the same configuration

This patch try to improve above limitation by:

Create sample inventory file: inventory/sample/hosts
{{ fetch_directory }} now relative to {{ inventory_dir }}: inventory/sample/fetch/
group_vars now relative to {{ inventory_dir }}: inventory/sample/group_vars/
Simplify sample configuration files from group_vars/*.yml.sample as inventory/sample/group_vars/*.yml
Update generate_group_vars_sample.sh according to above changes
Update docs/source/index.rst according to above changes

With above changes user can simply copy entire inventory/sample/ for individual deployment, start its own configuration and deploy without any conflict, e.g.
ceph-ansible/
├── inventory
│   ├── dev
│   │   ├── fetch
│   │   │   └── ceph_cluster_uuid.conf
│   │   ├── group_vars
│   │   │   └── all.yml
│   │   └── hosts
│   ├── production
│   │   ├── fetch
│   │   │   └── ceph_cluster_uuid.conf
│   │   ├── group_vars
│   │   │   └── all.yml
│   │   └── hosts
│   └── staging
│       ├── fetch
│       │   └── ceph_cluster_uuid.conf
│       ├── group_vars
│       │   └── all.yml
│       └── hosts
├── site-docker.yml.sample
└── site.yml.sample

I found that following tests always fail in latest master, whatever with/without the patch from here:

luminous-ansible2.4-purge_bluestore_osds_container
luminous-ansible2.4-xenial_cluster

Does this means these 2 tests should be get fixed by upstream?

@hswong3i i'm currently working on fixing these two tests, sorry for that.

@guits thank you very much for the fix, just hope to understand if patch here getting something wrong as I am new with ceph-ansible ;-)
Also hope to contribute for the fix, please feel free to share about how to do so, so I could help running the test locally, too.

@guits I had recently contribute a similar patch for Kubespray (https://github.com/kubernetes-incubator/kubespray/pull/2233) which already get merged. Since recent failed test in here are mainly not related to its changes, may we also have a review here and so get it merged?

@hswong3i  I like this patch and definitely see the value here. I'm just concerned about the impact on existing deployments.

+1 with what @leseb said here, this is a decent feature, the only concern is the backward compatibility.
The minimum would be to add some documentation to warn users that have already deployed a cluster even if I'm not sure this would be enough.

@leseb .gitignore updated ;-)

@guits basically documents already updated for new deployment.
Case 1: For existing deployment that move the original fetch BEFORE another run of playbook
No impact.
Case 2: For existing deployment that DIDN'T move the origin fetch folder before another run of playbook
Since if the target inventory/mycluster/fetch folder not existing we will always regenerate a new one, then update all deployment target hosts accordingly, therefore the running of playbook will always works.
NOTE: The only concern is from the client use case point of view: because the fetch/__uuid__/etc/ceph/ceph.client.admin.keyring also get updated, so existing mount from client machine need to update accordingly, e.g. update its /etc/fstab. Once this get done, everything should works as expected.
Case 3: Already run playbook once as Case 2, then move fetch and re-run playbook
Again, no impact because all parameters rollback as original, so both server and client should works as expected ;-)

@guits I also remove some fake group_vars from previous commit, because tests should always failed unless we also update the test plan accordingly, so let's keep this patch simple stupid ;-)

jenkins test this please

Instead of modifying the ceph-ansible source have you tried creating your inventory directory outside of the ceph-ansible tree and then when running site.yml pointing to whichever inventory file you're trying to manage with the -i flag of ansible-playbook? Ansible will then pick up all config that is defined relative to that inventory file. You can set fetch_directory to be stored in these directories as well so your clusters will be isolated. This is how we handle our CI tests for ceph-ansible. In the tests/functional directory we have many clusters defined, all isolated from each other with their own config and inventory.
For example, if you were deploying to your production cluster you might run a command like this from the root of ceph-ansible:
ansible-playbook site.yml -i /path/to/inventory_dirs/production/hosts

I don't think we need to modify ceph-ansible source at all to accomplish the kind of setup you want here.

| You can set fetch_directory to be stored in these directories as well so your clusters will be isolated. This is how we handle our CI tests for ceph-ansible.
Agree that we could alter this by changing those variables manually which also shown as works in CI, but this is simple just because we are developer or even contributor.
From normal non-contributor point of view (which I was before indeed study the code logic of ceph-ansible for many hours), the unexpected behavior which by default store all generated secrets under shared fetch/ directory when using different hosts file which placed in different locations looks insane for me... This behavior keep as is even if we place the hosts file outside ceph-Ansible source tree... This changed unless finally I could discover those variables and it’s out of the box default values...
That’s why this patch coming from: make use of those variables and provide a better user experience in a out of the box style for normal non-contributors use cases. For CI which may have another special needs in using a shared fetch/ directory when running with multiple tests, let’s keep it as contributor’s duty to understand how to do so by altering those default values ;-)

@andrewschoen has a point here, however for newcomers/ non-well-versed in Ansible this is non-obvious to come up with such setup.
@hswong3i's approach changes the repo structure and yes this is not ideal, but it brings a better out of the box experience. Later, it could even improve multi-cluster deployments more easily.
There are apparently pros/cons to this approach, most of them were discussed already, and the cons are very limited (mostly docs) compare to the ease of use from a contributor/operator/developer perspective, which is IMHO a huge win.

Update description with example result of multiple artifacts.

I agree that this needed, having to understand ansible and how it works is cumbersome if all one wants to do is deploy a cluster. This is what ceph-deploy helped with, and what gdeploy does with Gluster.
Maybe we should rethink how to help ceph-ansible with a wrapper CLI project that can help, vs. just changing the whole project structure because a new comer might not be aware of how Ansible works?
This change is not going to make it easy for any other downstream product consuming ceph-ansible, and it will require hefty rewrites of all (most?) of the tests. Not sure why we are seeing only 8 tests running on this PR.

jenkins test all

Maybe we should rethink how to help ceph-ansible with a wrapper CLI project that can help, vs. just changing the whole project structure because a new comer might not be aware of how Ansible works?

@alfredodeza Are you sure this is just about a new comer might not be aware of how Ansible works? Please checkout https://github.com/ansible/ansible/issues/16956 for more information about how this also impact to Ansible experts, since Ansible 2.1.1 ;-)
See https://github.com/ansible/ansible/issues/16956#issuecomment-280626669

Anyway everyone, there is no point in replying to this issue any more, because this will never be reverted back to the state it was in 2.0, because it was a bug. Just modify your playbook directory structure to make it work and be done with it.

IMHO, ceph-ansible current project structure may not as how Ansible expected :-S

@hswong3i if you look at the Ansible best practices page you'll see that both directory structures we've discussed here are valid: http://docs.ansible.com/ansible/latest/playbooks_best_practices.html#directory-layout
My original contention was that ceph-ansible should not be in the business of defining which layout or approach the end user should use. Doesn't this way force a user to define their inventory inside of the ceph-ansible project? Do they also always now need to define an inventory_dir variable to let ceph-ansible know where there inventory is located? This seems redundant as you are already telling ansible where your inventory is with the -i flag. IMHO, ceph-ansible should just provide the roles and then leave it up to the end user to best use those for their situation. This PR will certainly cause lots of change for our downstream usage.
I'm not really trying to block this PR, but I think it further complicates an already complicated project and introduces more complexity while limiting flexibility. Maybe I'm missing something though.

First of all let's clarify about inventory_dir: it is one of the Ansible build-in Magic Variables which you could use it anytime, NO additional manual definition is required:

Also available, inventory_dir is the pathname of the directory holding Ansible’s inventory host file, inventory_file is the pathname and the filename pointing to the Ansible’s inventory host file.

Yes this point to the right place, which I am now proposing with the Alternative Directory Layout, due to this original needs:

Alternatively you can put each inventory file with its group_vars/host_vars in a separate directory. This is particularly useful if your group_vars/host_vars don’t have that much in common in different environments.

Back to the original though of this issue:

Currently default caph-ansible example coming with following limitation:

Didn't provide sample inventory file as reference, e.g. inventory/sample/hosts
{{ fetch_directory }} is relative to project top directory, so multiple deployments will result as shared fetch/ folder generated
group_vars is relative to project to directory, so multiple deployments will again sharing the same configuration
We can't manage all deployment at once, inside centralized ansible controller

The troublesome caused by shared {{ fetch_directory }} just simply related to top dir:

In multiple inventories deployment use case, the generation of {{ fetch_directory }}/ceph_cluster_uuid.conf is now hard coded as a shared location, so result as all different deployments hard coded with the same uuid
With the shared uuid, all deployments will again shared with the {{ fetch_directory }}/{{ fsid }}, so all generated keyring will be enforced to be the same

Again, when combine with the troublesome caused by shared group_vars just simply related to top dir:

In multiple inventories deployment use case, most likely both hosts structure and its group_vars/all.yml need slightly different, e.g. in my above description example:

Both c11 and c21 zone coming with 3 ceph servers (inventory related), each with 100GB SSD x1 (group_vars related)
Both d11 and d21 zone coming with 1 ceph server only, but with 100GB SSD x3

With current ceph-ansible no recommendation on how inventory file should be placed but by default given with a group_vars relative to top dir, which means we are misleading users that we are by default only support shared group_vars with multiple inventory files style

IMHO, ceph-ansible should just provide the roles and then leave it up to the end user to best use those for their situation

Assuming this is how we really expected (as what am I original though, too), when migrate into Alternative Directory Layout it should also works well and perfectly: but the truth is it won't works, as all important stuff inside {{ fetch_directory }} are now shared, including the keyring...
Finally, from another point of views, applying changes from this issue will support both shared configuration directory layout and completely isolated inventory and configuration directory layout perfectly, so why not back to the origin that leave it up to the end user to best use those for their situation?

Actually, I think this is a nice PR, but for a nonexistent blocking issue.
It looks like we are changing the whole repo layout while it appears its not really needed, therefore, I would say I tend to agree with @andrewschoen
I guess, as @andrewschoen said, this is more a question of documentation lacking than something else.

You have my changes and its commit message for what you are looking for ;-)

@hswong3i, I can't understand your reaction.
It's pretty fair that whoever feel involved in this project and those in charge of maintaining it give their opinion and/or their concerns about such a patch.
The more we discuss, the more we can move forward the right way.
I think you should have addressed @andrewschoen's comments here https://github.com/ceph/ceph-ansible/pull/2367#pullrequestreview-98188383 and wait to see if we can find a consensus instead of reacting that way.

@hswong3i, please re-add your initial change, we haven't decided yet. So remove your last commit and avoid this kind of behavior in the future, that's not helping. We are listening to contributors and happy to see contributions, so we also expect a similar reaction in regards to maintainers.
@andrewschoen I understand what you're saying, all the comments are valid. However, I'd like to raise a few points again, in favor of this PR and perhaps also clarify this repository's goal.
ceph-ansible (here, https://github.com/ceph/ceph-ansible) is the repository that you can clone and get started. Out of the box, we hope to provide everything for a smooth experience. Any newcomer shouldn't have to know anything about Ansible, nor Ceph and I guess that's what makes this repository so attractive. By merely following the doc, you should be good to go in less than ten configuration steps, grab your coffee and check the result; your Ceph cluster is up and running.
When it comes to fine-grained/tuned Ansible configuration, we have the Ansible Galaxy for that. So we are providing each role individually. It means that if you are integrating our roles in your main Ansible structure, you know what you're doing.
I believe, this PR (if original state is submitted again) will ease:

newcomers (Ceph sandbox)
consultant deploying Ceph for customers (most comfortable configuration for mirrored cluster/multi-site deployments)
QE and performance engineers who usually implement more than one cluster

All of this boils down to usability, and that's what we have been targetting recently.
Please let me know if what I just said makes sense to you, @andrewschoen, @guits

@leseb I do understand, and in my review I was trying to highlight things that I thought would cause regressions or other issues. My intention was to try to find a middle ground, not shut down the PR. I might disagree with the opinion that a "newcomer shouldn't have to know anything about Ansible" to use this repo, but I certainly can't disagree with the fact that usability is important here for all users, regardless of their level of Ansible knowledge.
In general, these were my main points:

we can't assume fetch_directory will have always been fetch for existing deployments. Most likely that will not be the case.
I don't like the addition of the ceph.sh script, I think it's not needed and introducing artifacts_directory is just more config in a project that already has a lot of config options.
we can't assume ceph-ansible will always be run from a client node or from a node that even has ceph installed

I also completely understand that multiple deployments using the same fetch directory will cause major issues, I dealt with this while working on ceph-installer. I know that we do store most things in the fetch_directory within a folder named after the cluster's fsid. What I don't see in that fsid directory is ceph_cluster_uuid.conf and monitor_keyring.conf. Could we always just ensure that everything stored in fetch_directory is put in the fsid folder?

@andrewschoen Let me try to answer these question:

we can't assume fetch_directory will have always been fetch for existing deployments. Most likely that will not be the case.

In this case, which means the user ALREADY define fetch_directory within their current all.yml, so our new default location will not be effective, i.e. will not affect existing deployment.
P.S. I would like to say most end-user may not truly understand the importance of {{ fetch_directory }} because it is not well documented... Therefore they should simply keep it as default commented in all.yml... If they do already change this variable, which means they already spend nubmers-of-day-and-night to understand what is it and the value should be always valid to their existing deployment even we change the default value...

I don't like the addition of the ceph.sh script, I think it's not needed and introducing artifacts_directory is just more config in a project that already has a lot of config options.

I try to propose the use of artifacts_directory because I am integrating the use of both cahp-ansible and kubespray, so would like to sync the management style when contribute if possible.
If this looks too much for ceph-ansible, we could utilize the existing fetch_directory for similar use cases.
On the other hand, the helper ceph.sh is useful for simplify daily operation: I hate to keep typing something like ceph -c ceph.conf -k ceph.client.admin.keyring -s  for every operation... It really looks silly... ./ceph.sh -s looks much elegant ;-)

we can't assume ceph-ansible will always be run from a client node or from a node that even has ceph installed

That's why if ceph-ansible is NOT running as a client node, the ceph.conf + ceph.client.admin.keyring + ceph.sh will NOT installed into the artifacts_directory (ok, let's assume it should be the fetch_directory as mentioned above...)
This is because if we need to access the ceph API correctly, following 3 components MUST exists:

ceph CLI (which installed by client group)
ceph.conf
ceph.client.admin.keyring

Back to the origin: ceph-ansible MUST run as client node in order to access ceph API, else no need to fetch those artifacts from remote to localhost.

What I don't see in that fsid directory is ceph_cluster_uuid.conf and monitor_keyring.conf. Could we always just ensure that everything stored in fetch_directory is put in the fsid folder?

Yes this is a good question, but a Chicken or the egg issue: currently ceph-ansible first read the cluster uuid from ceph_cluster_uuid.confand setup the fsid variable, then fetching the contents from {{ fetch_directory}}/{{fsid}}/balabalbal.... Therefore you CAN'T put the ceph_cluster_uuid.conf INSIDE {{ fetch_directory}}/{{fsid}}: you simply don't know the cluster uuid, yet.
From the other point of view, if {{ fetch_directory }} become relative to {{ inventory_dir }} which should always unique between multiple deployment, the redundancy use of {{ fetch_directory}}/{{fsid}} could now simplify as {{ fetch_directory}} only: simple and elegant ;-)
Again back to the origin: because {{ fetch_directory }} is now by default shared, so we try to keep stuff unique by using {{ fetch_directory}}{{ fsid }}; BTW if {{ fetch_directory }} already unique, the use of {{ fetch_directory}}{{ fsid }} become redundancy.

ping @leseb and @andrewschoen, shall I assume enough information provided for your discussion?

Closing this due to inactivity.


too many open files

It seems like when I have quite a few buffers open, and I constantly are switching between them, I get this error, which makes neovim unusable.

If I ignore the error and try to keep on editing. The next time I try to save a file, I get more errors

I would need to close all files and restart neovim everytime I get these errors in order to keep working

I tried uninstalling harpoon. The error still persists. Seems like a bug with plenary than harpoon. Closing the issue


AssertionError at AsyncTimeout.java:101 for some android 4.4.2 and 4.4.4 devices

Hey okhttp. I've been confused with this AssertionError error for a while now. It only occurs on some android 4.4.2 and 4.4.4 devices. Have I missed something or could there be a real issue?
I am using okhttp 3.8.1 with retrofit 2.3.0 and dagger 2.11
    @Provides
    @Singleton
    OkHttpClient providesOkHttpClient() {
        OkHttpClient.Builder builder = new OkHttpClient().newBuilder()
                .readTimeout(30L, TimeUnit.SECONDS)
                .connectTimeout(30L, TimeUnit.SECONDS)
                .writeTimeout(30L, TimeUnit.SECONDS)
                .addInterceptor(new NetworkInterceptor());
        return builder.build();
    }

    @Provides
    @Singleton
    Retrofit provideCall(OkHttpClient client) {
        return new Retrofit.Builder()
                .baseUrl(BuildConfig.SERVER_PATH)
                .client(client)
                .addConverterFactory(MoshiConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.createAsync())
                .build();
    }

StackTrace
Android: 4.4.2
Thread: OkHttp Dispatcher-729

java.lang.AssertionError
	at okio.AsyncTimeout.scheduleTimeout(AsyncTimeout.java:101)
	at okio.AsyncTimeout.enter(AsyncTimeout.java:80)
	at okio.AsyncTimeout$1.flush(AsyncTimeout.java:193)
	at okio.RealBufferedSink.flush(RealBufferedSink.java:218)
	at okhttp3.internal.http1.Http1Codec.finishRequest(Http1Codec.java:164)
	at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:84)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
	at okhttp3.RealCall$AsyncCall.execute(RealCall.java:147)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
	at java.lang.Thread.run(Thread.java:848)

Any particular manufacturers for these devices? Typically ‘impossible’ problems like this indicate a faulty VM or CPU.

Manufacturer seems to vary, most come from the HTC desire 526/626 but also lenovo and sony there too. A handful of devices from my hockey crash reports are:

HTC Desire 526GPLUS
HTC Desire 626G
alps DENVER TAQ-10153
SONY Xperia E4 E2105
BQ Aquaris E4.5
Wiko Sunset2
BLU Studio 5.0 K
Lenovo Tab 2 A7-10
Lenovo A8-50 A5500
Lenovo S820
Acer Liquid Z520
(all running either 4.4.2 or 4.4.4)

i have similar problem for HTC Desire 620G dual sim 4.4.2:
Fatal Exception: java.lang.AssertionError
       at okio.AsyncTimeout.scheduleTimeout(AsyncTimeout.java:101)
       at okio.AsyncTimeout.enter(AsyncTimeout.java:80)
       at okio.AsyncTimeout$1.write(AsyncTimeout.java:178)
       at okio.RealBufferedSink.flush(RealBufferedSink.java:216)
       at okhttp3.internal.http1.Http1Codec.finishRequest(Http1Codec.java:166)
       at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:72)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
       at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
       at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
       at ru.papajobs.network.ReceivedCookiesInterceptor.intercept(ReceivedCookiesInterceptor.kt:11)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
       at ru.papajobs.network.AddCookiesInterceptor.intercept(AddCookiesInterceptor.kt:18)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
       at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)
       at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135)
       at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at java.lang.Thread.run(Thread.java:841)

We at @StudioSol had the exactly same problem. We did a series of tests trying to solve it and we ended up finding out that the problem was in the build process.
We had switched to Gradle 3.1.0-alpha1, which uses D8 compiler instead of DX compiler by default. After switching to DX compiler, the problem is no longer appearing.
A temporarily solution may be using Gradle 3.0.0 or disabling D8 compiler in gradle.properties with:
android.enableD8=false

I'm getting the same.
Verizon Wireless Ellipsis 7 (QMV7A) (QMV7A), 1024MB RAM, Android 4.4
will disable D8 ...

quick thought - maybe D8 causes problems with experimental/beta version of ART in 4.4 (hidden in developer options)

Tested on my Lenovo S650 Android 4.4.2
Works fine on Dalvik runtime and throws AssertionError on ART

rct6773w22
touch smart fly 3g
e2104
Huawei HOL-U19
Micromax A310
OPPO A11w
OPPO 1201
and so on...
I found manay 4.4 device have the same issue

I have the same problem. Will disable D8 for now

disabling D8 worked for us.

Same problem reported for us. A lot of crash in my interceptors on:

return chain.proceed(request);

on 4.4

It would help if we had an actual reproduction to use and a list of devices where this happens. So far, we have not been able to reproduce it.

Found same issue (Crashlytics reports) on these devices :
Hisense STARSHINE 4
Lenovo A3500-FL
Archos 101D Neon
Lenovo A5500-H
All running with Android 4.4.2
Will try to disable D8

I have found this issue, how to resolve this,,
Today, 12:23 PM on app version 3
Oppo A11w (A11w), 1024MB RAM, Android 4.4
Report 1
java.lang.NoClassDefFoundError:
at suma.screen.recorder.capture.video.RecordScreenActivity.onCreate (RecordScreenActivity.java:100)
at android.app.Activity.performCreate (Activity.java:5361)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1088)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2331)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2440)
at android.app.ActivityThread.access$800 (ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1342)
at android.os.Handler.dispatchMessage (Handler.java:110)
at android.os.Looper.loop (Looper.java:193)
at android.app.ActivityThread.main (ActivityThread.java:5344)
at java.lang.reflect.Method.invokeNative (Native Method)
at java.lang.reflect.Method.invoke (Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:676)
at dalvik.system.NativeStart.main (Native Method)

Duplicate of this Okio bug:
https://github.com/square/okio/issues/334
Need guidance from the D8 folks on this.

Do you have a d8 bug number yet? If not, happy to pass it on.

@nfuller please do.

I have the same problem Too. I disable D8, but error: Default or static interface method used without --min-SDK-version >= 24 appear in message tab. I don't know, what is last solution for this issue?

The D8 bug report for this is https://buganizer.corp.google.com/issues/70909581
We have attempted to reproduce this on multiple devices and emulators and have failed. If you have a reproduction we would love to get our hands on it.
We have inspected the code generated with D8 and with DX and have yet to find anything that could explain this (which makes sense since this only seems to happen on 4.4.2 indicating a potential VM bug).
It looks like all of the devices listed here contain MediaTek chips. We know that MediaTek has done vendor customization of Android Runtimes and have seen other bugs in their custom Android Runtime versions. But even on one of the devices listed here (HTC Desire 626G) we have not been able to reproduce.
We will continue to investigate, but at this point it is a dead end. Any help finding reproductions would be much appreciated. If you guys have apps built with D8 where you see these crashes it would be great if you could attach the apk to the D8 bug report: https://buganizer.corp.google.com/issues/70909581 so we can see if we can reproduce.

I'm starting to have these errors in one of my projects. I got reports from Google Developer Console with unknown android devices for me (keytak72_cwet_lca, ratech92_cwet_rlk_kk and a831_324_ax_cht_z6_plus).
All devices are in Android 4.4. Here is the stacktrace:
java.lang.AssertionError:
  at okio.AsyncTimeout.scheduleTimeout (AsyncTimeout.java:101)
  at okio.AsyncTimeout.enter (AsyncTimeout.java:80)
  at okio.AsyncTimeout$2.read (AsyncTimeout.java:235)
  at okio.RealBufferedSource.read (RealBufferedSource.java:46)
  at okhttp3.internal.http1.Http1Codec$AbstractSource.read (Http1Codec.java:360)
  at okhttp3.internal.http1.Http1Codec$FixedLengthSource.read (Http1Codec.java:404)
  at okio.RealBufferedSource.read (RealBufferedSource.java:46)
  at okhttp3.internal.cache.CacheInterceptor$1.read (CacheInterceptor.java:174)
  at okio.RealBufferedSource.request (RealBufferedSource.java:67)
  at okhttp3.logging.HttpLoggingInterceptor.intercept (HttpLoggingInterceptor.java:240)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)
  at okhttp3.RealCall.getResponseWithInterceptorChain (RealCall.java:200)
  at okhttp3.RealCall$AsyncCall.execute (RealCall.java:147)
  at okhttp3.internal.NamedRunnable.run (NamedRunnable.java:32)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
  at java.lang.Thread.run (Thread.java:848)

I cannot reproduce this bug.
Hope this would help

my crashlytics report[old version of app with d8 enable]:
This issue has 111 crashes affecting 29 users. [last 7d]
68%	HUAWEI
15%	HTC
8%	LENOVO
5%	Blackview
4%	Other (2)
56%	Android 4.4.2
44%	Android 4.2.2
Some Example Devices:
HUAWEI G750-U10
HUAWEI G750-T01
HUAWEI Hol-U19
HTC Desire 816G dual sim
HTC Desire 626G+ dual sim
HTC Desire 820G PLUS dual sim
Lenovo A7-30GC
Lenovo A3300-GV
with d8 disabled it disappeared but seems that 'android.enableD8' is deprecated now:
"The option 'android.enableD8' is deprecated and should not be used anymore.
Use 'android.enableD8=true' to remove this warning.
It will be removed in AGP version 3.3."

We finally managed to reproduce this issue and identified the MediaTek JIT bug in the VM that is causing this. Certain long arithmetic and comparison instructions are incorrectly handled by the JIT. Luckily, we can workaround the issue by forcing the register allocator to avoid certain registers combinations for long operations. We are working on that fix now and will push it out ASAP. When Android Studio 3.1 goes final we expect this fix to be included. Thanks for all of the reports and help tracking this down.
Bug to follow for progress on the fix: https://issuetracker.google.com/issues/70909581

@madsager
are these two issue related ? [disabling d8 fixed both]
https://github.com/square/okio/issues/323

@haniha it definitely could be. The bug that we are working around could cause any code that performs computations and comparisons of longs to produce incorrect results on these devices when the JIT compiler kicks in. If long computations produce wrong results that can manifest in many different ways.

@haniha looking at the code I find it very likely that this is the same issue. The null pointer exception is in a loop of the form:
for (; offset >= (s.limit - s.pos); s = s.next) {
Where offset, s.limit and s.pos are longs. So, if the comparison produces wrong results, this code can continue to do s = s.next until s becomes null and then throw an exception.


MINOR Addressed minor typos in READMEs.

Corrected a few typos in READMEs.

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@junrao This is a tiny PR addressing the found typos in READMEs.


Update package index with latest published versions

Update package index with latest published versions

C++ looks good. I won't approve the PR, since it has other changes, to let others also review before it gets auto-merged.


[MM-46537]: Yearly/Monthly toggle on Pricing model

Summary

Added a new monthly/yearly toggle to the pricing that changes the professional price accordingly. (Note: the prices shown in the pricing model are just from the mocked CWS so it's not the actual values right now)
Added telemetry for when the toggle is pressed as mentioned in MM-46565.
Ticket Link

MM-46537
Related Pull Requests

Has server changes (please link here) : this is the new feature flag
Has mobile changes (please link here)

Screenshots

before
after

https://user-images.githubusercontent.com/44761757/198726370-c88ab637-bda5-4a28-8922-5678db435805.mov
Release Note

NONE

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

Mattermost test server with CWS created! 🎉
Access here: https://mattermost-webapp-pr-11473.test.mattermost.cloud
Account Type	Username	Password
Admin<EMAIL_ADDRESS>Cws@10102020

We need to enable the feature flag in this test server to be able to see the changes - it probably needs https://github.com/mattermost/mattermost-server/pull/21551 merged

Mattermost test server with CWS created! 🎉
Access here: https://mattermost-webapp-pr-11473.test.mattermost.cloud
Account Type	Username	Password
Admin<EMAIL_ADDRESS>Cws@10102020

We need to enable the feature flag in this test server to be able to see the changes - it probably needs mattermost/mattermost-server#21551 merged

Is it still alright that the default AnnualSubscription feature flag is set to false in that PR. Can that value be manually update in the test server?

@emmyni does changing the interval also translate to the purchase modal?

That's a good point, I'll add that to the other PR since that one handles the purchase modal

@emmyni it is still not showing up for me in the test server for some reason

generally looks great! The only thing I see that might be off is the spacing - The toggle should be 44px from the modal header and 44 px from the plan below

generally looks great! The only thing I see that might be off is the spacing - The toggle should be 44px from the modal header and 44 px from the plan below

@annelieseklein It should already be 44px

Closed and is now available here: https://github.com/mattermost/mattermost-webapp/pull/11534


Add more GAT tests

and export GALAXY_HOSTNAME and GALAXY_API_KEY

ahh amazing. yeah, that's probably a better solution. I'll make some additions to this quickly but this looks good.

failures were temporary, due to fastly.


Missing sub-dirs

lorenzo@Lorenzos-Air ~/ghubRepo/Pyfhel $ python3 setup.py build --CYTHONIZE
Traceback (most recent call last):
 File "setup.py", line 63, in <module>
   [os.path.join(AFHEL_PATH, 'Afseal.cpp')])
 File "setup.py", line 13, in scan
   for file in os.listdir(dir):
FileNotFoundError: [Errno 2] No such file or directory: 'Pyfhel/SEAL/SEAL/seal'

This can be solved by pulling all the submodules with:
git submodule update --init --recursive

To avoid it in the first place, make sure you clone the repo with --recursive:
git clone --recursive https://github.com/ibarrond/Pyfhel.git


Exception when selecting Arrow

When trying to place an arrow, an exception is thrown inside of ArrorTailTypeComboBox.xml.cs:

Resolved.


Control poses of synth images

Hi
can we control the poses of synthetic face images (generated images) ?

Yes, you can combine InstantID with ControlNet (OpenPose)

Yes, you can combine InstantID with ControlNet (OpenPose)

Hi, can I use full body pose map guided contronet combined with InstantID to generate full body human image while perserving the face identity well?


feat(google-maps/map-advanced-marker): Add support for some mouse events #29741

This PR adds support for the following mouse events to the map-advanced-marker component:

Double click (dblclick)
Mouse out (mouseout)
Mouse over (mouseover)
Mouse up (mouseup)
Right click (right-click)

These events were available in the deprecated map-marker and are now implemented to enable similar functionality in map-advanced-marker.
Testing:

Unit tests added for each event.

Can you run yarn bazel run //tools/public_api_guard:google-maps/google-maps.md_api.accept and push the changed file?


Can't reference local projects from C#

Expected Behaviour

I would like to be able to reference a local project from a C# function.
Current Behaviour

The project folder which is specified as the handler in the yml file is copied into the build directory. It is then built inside the container. As a result, the referenced project cannot be found.
Possible Solution

Steps to Reproduce (for bugs)

Create a new function from the CSharp template.
Create a new C# project in the same folder.
Reference the C# project from the function project.
Run a faas build.

Context

I have a project which contains model classes. One of these models will be returned by the function. For simplicity, I would like to share the model between the function and the calling application (happens to be another function).
Your Environment

Docker version docker version (e.g. Docker 17.0.05 ):
Docker version 18.09.0, build 4d60db4

Are you using Docker Swarm or Kubernetes (FaaS-netes)?
Docker Swarm

Operating System and version (e.g. Linux, Windows, MacOS):
Windows 10, Linux Containers

Link to your project or a code example to reproduce issue:

Hi,
I'm having the same issue and what I did is the following:
First create a symlink to the folder with the local project inside my function project folder.
Then exclude it from the build and project.
  <ItemGroup>
    <Compile Remove="ProjectFolder\**" />
    <EmbeddedResource Remove="ProjectFolder\**" />
    <None Remove="ProjectFolder\**" />
  </ItemGroup>

And then make it work for VS (When part) and build (Otherwise part).
<Choose>
  <When Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">
    <ItemGroup>
      <ProjectReference Include="..\ProjectFolder\Project.csproj" />
    </ItemGroup>
  </When>
  <Otherwise>
    <ItemGroup>
      <ProjectReference Include=".\ProjectFolder\Project.csproj" />
    </ItemGroup>
  </Otherwise>
</Choose>

Seems a bit hacky and I've just started testing OpenFaaS so I'm not sure this will workout as a real-world solution.


Cannot use the < key in editor

This is a bizarre issue, but I find that with Haxe Support 0.9.2 installed I cannot enter the < character in the editor. This issue affects projects in other languages (tested in objective-c and C)
This issue only appears to manifest when the Haxe Support plugin is enabled, disabling it returns the ability to use the character again. Only the main editor is affected, it is still possible to use this in Preferences and other menus. AFAIK the character isn't bound to any specific shortcut.
AppCode 3.1.5
OSX 10.10.2
JVM 1.6.0_65-b14-466.1-11M4716 x86_64

What version of IDEA are you using?
You might also try version 0.9.3, which you can pick up in the releases section (https://github.com/TiVo/intellij-haxe/releases).  We fixed a problem with unit tests for other languages that only cropped up when haxe support was enabled.  I'm not sure that they're related, though.

Version 14.0 on Linux, with C/C++ support added works for me...

I'm using AppCode 3.1.5, Jetbrains' flavour of IDEA for objc - internally it looks like IDEA OC-139.1400
The same issue appears with the 0.9.3 plugin (on OSX) and is resolved when haxe support is disabled.

We (as in TiVo devs) are not set up to test AppCode.  And I don't know which IDEA release is comparable to 139.1400.
I tested on 139.1117.1, which is IDEA 14.0, by adding in the C/C++ plugin, starting a C project, and writing a "Hello World" program.  That worked correctly and I had no issues with the '<' key.
The trouble we fixed last week was with the plugin not checking the file type before it went ahead and created a compile context (see change b77ae4b6c56e63683c077f3c10b933149a2648f1).  There is probably something similar that needs to be done in the key handling.  The crux of the change was:
+    if (!ModuleUtil.getModuleType(module).equals(HaxeModuleType.getInstance())) {
+      return true;
+    }

You might check the key handling code for something similar.  If you can find/fix the issue, we'll be glad to take the pull request.  Since we can't reproduce it with our setups, there's not much we can do with it.

This also repros on WebStorm 10.0.2.


Unclear sentence in 06-hello-world

The following sentence in chapter 6 just doesn't really make sense:

Also, it setup break points and stepped through the trampoline we are at the first executable statement in fn main().

I'm not quite sure what a better wording would be because I can't tell exactly what the author is trying to say, but perhaps it's something like this:

It also set up breakpoints and stepped through the trampoline, so now we are at the first executable statement in fn main().

I think it's important to include a link with the word "trampoline" since it's the first time that word is used in this text and it's likely to be new to the reader; it certainly was to me. The Wikipedia page was sparse and high-level, so I chose to link to a StackOverflow answer in my suggestion, but another explanation could be chosen. Even better, if "trampoline" is an important concept, it could be explained in the book itself so as to be more self-contained.
I can PR this at some point but I feel like it's worth thinking through my suggested update first to clarify the desired approach.

Sounds like a good improvement! I would certainly welcome this as a PR

I also think there is a should better explanation for the "trampoline"


[BUG] DataLakeFileClient.Rename InvalidSourceUri

Describe the bug
Calling DataLakeFileClient.Rename on a file with "special" characters requiring html encoding results in Bad Request "The source URI is invalid". Other methods like Exists() and GetProperties() work with the same client.
Very similar to this issue in the java client: https://github.com/Azure/azure-sdk-for-java/issues/8761
Expected behavior
Successfully rename the file
Actual behavior (include Exception or Stack Trace)
Bad Request "The source URI is invalid"
To Reproduce

Create a file in a DataLakeGen2 account with special characters, eg "foo bar.txt"
Create a DataLakeFileClient to this file, eg service.GetFileSystemClient("...").GetDirectoryClient("...").GetFileClient("foo bar.txt")
Call Rename on file client

Environment:

NetCore 3.1
Azure.Storage.Files.DataLake 12.4.0
DataLake Gen2

Thank you for your feedback.  Tagging and routing to the team best able to assist.

Apparently this is already fixed in 12.5.0-preview.1