{"Could not load type 'System.Diagnostics.CodeAnalysis.MaybeNullAttribute' from assembly 'netstandard, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.":"System.Diagnostics.CodeAnalysis.MaybeNullAttribute"}

After getting today's release of .net core 3.0.
I have upgraded to EF core 3.0 library and we have started seeing this error
System.TypeLoadException: Could not load type 'System.Diagnostics.CodeAnalysis.MaybeNullAttribute' from assembly 'netstandard, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
at Microsoft.EntityFrameworkCore.Metadata.Conventions.NonNullableConventionBase.IsNonNullableReferenceType(IConventionModelBuilder modelBuilder, MemberInfo memberInfo)
at Microsoft.EntityFrameworkCore.Metadata.Conventions.NonNullableReferencePropertyConvention.Process(IConventionPropertyBuilder propertyBuilder)
at Microsoft.EntityFrameworkCore.Metadata.Conventions.NonNullableReferencePropertyConvention.ProcessPropertyAdded(IConventionPropertyBuilder propertyBuilder, IConventionContext1 context)    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnPropertyAdded(IConventionPropertyBuilder propertyBuilder)    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.RunVisitor.VisitOnPropertyAdded(OnPropertyAddedNode node)    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnPropertyAddedNode.Accept(ConventionVisitor visitor)    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.Visit(ConventionNode node)    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.VisitConventionScope(ConventionScope node)    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionBatch.Run()    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionBatch.Dispose()    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelInitialized(IConventionModelBuilder modelBuilder)    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnModelInitialized(IConventionModelBuilder modelBuilder)    at Microsoft.EntityFrameworkCore.Metadata.Internal.Model..ctor(ConventionSet conventions)    at Microsoft.EntityFrameworkCore.ModelBuilder..ctor(ConventionSet conventions)    at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder)    at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.<>c__DisplayClass5_0.<GetModel>b__1()    at System.Lazy1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)    at System.Lazy1.CreateValue()
at System.Lazy1.get_Value()    at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext context, IConventionSetBuilder conventionSetBuilder)    at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()    at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()    at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServicesBuilder.<>c.<TryAddCoreServices>b__7_3(IServiceProvider p)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)    at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)    at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)    at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()    at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()    at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()    at Microsoft.EntityFrameworkCore.DbContext.get_Model()    at Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.get_EntityType()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.CheckState()    at Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.get_EntityQueryable()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.System.Linq.IQueryable.get_Provider()    at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ExecuteAsync[TSource,TResult](MethodInfo operatorMethodInfo, IQueryable1 source, Expression expression, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ExecuteAsync[TSource,TResult](MethodInfo operatorMethodInfo, IQueryable1 source, LambdaExpression expression, CancellationToken cancellationToken)    at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.SingleOrDefaultAsync[TSource](IQueryable1 source, Expression1 predicate, CancellationToken cancellationToken)    at Microsoft.Education.AristoServices.ConnectorApp.Connectors.StateManagement.DbWorkflowExecutionStateManager.GetExecutionDetails(String executionId) in D:\code\AristoServices\src\ConnectorApp\Connectors\StateManagement\DbWorkflowExecutionStateManager.cs:line 35    at Microsoft.Education.AristoServices.ConnectorApp.Connectors.StateManagement.DbWorkflowExecutionStateManager.UpdateExecutionStatusAsync(String executionId, WorkflowExecutionStatus executionStatus) in D:\code\AristoServices\src\ConnectorApp\Connectors\StateManagement\DbWorkflowExecutionStateManager.cs:line 92    at Microsoft.Education.AristoServices.ConnectorApp.Web.Services.ConnectorWorkerQueueClient.SendMessageAsync(ConnectorWorkerMessage message) in D:\code\AristoServices\src\ConnectorApp\ConnectorApp.Web\Services\ConnectorWorkerQueueClient.cs:line 65    at Microsoft.Education.AristoServices.ConnectorApp.Web.Services.ConnectorWorkerQueueClient.QueueWorkAsync[TRequestParameters](ConnectorWorkRequest1 workRequest, String connectorType) in D:\code\AristoServices\src\ConnectorApp\ConnectorApp.Web\Services\ConnectorWorkerQueueClient.cs:line 46
at Microsoft.Education.AristoServices.ConnectorApp.Web.Controllers.RequestController1.QueueWork(ConnectorWorkRequest1 payload) in D:\code\AristoServices\src\ConnectorApp\ConnectorApp.Web\Controllers\RequestController.cs:line 50
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at NSwag.AspNetCore.Middlewares.SwaggerUiIndexMiddleware.Invoke(HttpContext context)
at NSwag.AspNetCore.Middlewares.RedirectToIndexMiddleware.Invoke(HttpContext context)
at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

@sunildixit - This error occurred when using preview SDK of .NET Core. Can you make sure that you have uninstalled all 3.0 preview SDKs and install 3.0 RTM SDK released today?

You are actually right. I just thought, that when the VS got upgraded it would've have removed the preview, which it didn't. After uninstalling it, it has started working. Thank you for your help.

Actually, I am using the latest stable version - 3.0.100. I haven't pre-installed any of the preview versions, and I am still getting this exception in my Xamarin projects.

@smitpatel

@mduchev - Can you share a repro project? It may have something to do with being a Xamarin project. If we get a repro, we can isolate where is the issue and pass on to appropriate team.

Why is this issue closed? Im also getting this error after upgrading from preview 7 to public release - 3.0.100

Hey all, I resolved mine the following way :

Make sure all .net core runtimes and SDKs are uninstalled. Run dotnet --info to see. If installing 3.0.100 didnt remove the previews, go to those dirs and manually remove them. Re install (modify) the net core 3.0.100 installation to be safe again.

Make sure you have installed VS 2019 16.3.1

Error should disappear.

@smitpatel  I will try to find the time to create a repro.
@R00iBaard I have never installed any preview versions, nor do I have anything else than 3.0.100 on my device. You can see my device --info in my previous comment. This is not a solution, obviously. There is still an issue!

@mduchev same situation here. I notice that Visual Studio 16.3.1 is shipped with an "embedded" version of net core 3, which differ  from a standalone installation of netcore 3 sdk.

I solved by downgrading to efcore 2.6, I think there are some issue with netstandard 2.1 https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-3-0-preview-8-and-entity-framework-6-3-preview-8/
The project is based on xamarin and it runs on net standard 2.1

@smitpatel Here you are a sample project.
TestEFC3XamarinApp.zip
Steps to reproduce:

Run the app
Click on the button.
When the button is clicked, we are creating a new entity of type Address.
After the entity is created, we are adding it to Addresses DbSet (here is where the issue occurs)
Before we are able to call SaveChangesAsync, the app crashes with the same exception:

System.TypeLoadException
Message=Could not resolve type with token 01000143 from typeref (expected class 'System.Diagnostics.CodeAnalysis.MaybeNullAttribute' in assembly 'netstandard, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51')
NOTE: This is tested on Android project only. The iOS project has other issues - it can't be run on simulator, nor on a real device. There I am getting these errors:
ios_simulator_errors.txt
ios_device_errors.txt
I don't know if I there are reported already, or should I open new issues.

I solved by downgrading to efcore 2.6, I think there are some issue with netstandard 2.1 https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-3-0-preview-8-and-entity-framework-6-3-preview-8/
The project is based on xamarin and it runs on net standard 2.1

@cagianx Yes, the configuration works with no issues running EFCore 2.2.6. Either there are some issues for EFCore 3.0, or there is new configuration that we need to apply.

@mduchev - Thanks for the code. I will investigate.

Same thing with Xamarin.Android.
Is the netstandard.ddl, when using Android from the net core sdk or is it supplied by Xamarin.Android?
If it is the latter, I think we just need a later netstandard.dll for Xamarin.Android (to make Android work)
I need some fixes of the 3.0.0 version so downgrading is not an option for me :(

@mduchev @groege
After going through all the comments, I am not able to test out things as my dev environment is not setup for Xamarin project. I fairly believe that this is issue with netstandard2.1 and Xamarin projects. Hence I would recommend you guys to file an issue on their repo https://github.com/xamarin/xamarin-android/issues
They would be best to help you out.
@cagianx - Regarding multiple different SDK installed for 3.0, please file an issue at https://github.com/dotnet/core-sdk/issues
Closing this as external. EF is using netstandard2.1 API. Issues like this are likely caused by SDK or project type is not supported properly on netstandard2.1 RTM.

You need to target at least Xamarin.Android 10.0 or Xamarin.Mac 5.16 to use netstandard2.1 and EF Core 3.0.0
https://github.com/dotnet/standard/blob/master/docs/versions.md

@AndriySvyryd  I'm targetting those versions and still getting the error

Sadly I've been using the latest versions of Visual Studio (prerelease and non prerelease)
Latest Version of VS2019 is using Xamarin.Android 10.0 and the latest prerelease is using 10.1...
Both have the same issue, I think we'll need another Xamarin.Android version with a proper dll...

@shaks786 @groege Check that the .csproj is actually targeting 10 as the minimum version, if so please open an issue containing a small repro project on https://github.com/xamarin/xamarin-android/issues and link here.

@AndriySvyryd Are you saying NetStandard 2.1 is only compatible with Android Q?
So not even Android Pie works? That would be disastrous...

@AndriySvyryd
You are mixing Xamarin.Android SDK with the Target Android SDK. You can have Xamarin.Android 10 and still target 9 or lower. And still, the issue occurs even with Xamarin.Android 10 and targeting Android Q.
@smitpatel
I will report the Android and iOS issues on the corresponding projects.

xamarin/xamarin-macios#7153


widdst: ensure DST is applied when leaving settings

... for example, when fastload is installed, so we don't jump back to the clock with the old DST settings.

Tested: full load is performed when changing DST setting, fastload when changing non-DST setting.
When fastload isn't installed, a full load is performed when changing DST, no errors occur


By Filesystem on PS Core fails with error

Here is the PSDeploy code:
By Filesystem {
    FromSource "Build\ModuleName"
    To "$($env:PSModulePath -split ';' | ?{$_ -like "$($env:USERPROFILE)*" -and $_ -notlike '*vscode*'})\ModuleName\0.0.0"
    Tagged Dev
}

Here is the error:
ERROR: Method invocation failed because [System.AppDomain] does not contain a method named 'DefineDynamicAssembly'.
At C:\Users\user\OneDrive\Documents\PowerShell\Modules\PSDeploy\1.0.2\Private\Invoke-Robocopy.ps1:81 char:21
+ ...             $AssemblyBuilder = $Domain.DefineDynamicAssembly($DynAsse ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I've looked up that class in .NET core and it doesn't have that method. I did find a work around: https://stackoverflow.com/questions/36937276/is-there-any-replace-of-assemblybuilder-definedynamicassembly-in-net-core
I'll test and submit a PR with that implemented.

Closing this out, I assume the PR fixed it, but ping me otherwise!  Thanks for spending the time on this, and sorry for the delay!


fail to add member because of strict checking

$ bin/etcdctl member add node4 http://localhost:7004
Added member named node4 with ID cef3b0f150daa109 to cluster

ETCD_NAME="node4"
ETCD_INITIAL_CLUSTER="infra1=http://localhost:7001,node4=http://localhost:7004"
ETCD_INITIAL_CLUSTER_STATE="existing"

$ bin/etcd -name node4 -listen-client-urls http://localhost:4004 -advertise-client-urls http://localhost:4004 -listen-peer-urls http://localhost:7004 -initial-cluster="infra1=http://localhost:7001,node4=http://localhost:7004" -initial-cluster-state existing
2015/03/25 10:06:03 etcd: no data-dir provided, using default data-dir ./node4.etcd
2015/03/25 10:06:03 etcd: listening for peers on http://localhost:7004
2015/03/25 10:06:03 etcd: listening for client requests on http://localhost:4004
2015/03/25 10:06:03 etcdserver: datadir is valid for the 2.0.1 format
2015/03/25 10:06:03 etcd: stopping listening for client requests on http://localhost:4004
2015/03/25 10:06:03 etcd: stopping listening for peers on http://localhost:7004
2015/03/25 10:06:03 etcd: node4 has different advertised URLs in the cluster and advertised peer URLs list

etcd should do best effort checking on initial-advertise-peer-urls in this case.

@yichengq etcd should bypass the checking in this case if the user does not provide the peer url. If user gives us the peer url, we can do verification.


Save and Load Data Preparation Pipelines and Trained Models How-To

Updated Save and Load Data Preparation Pipelines and Trained Models How-To
Internal Review Link
AB#1484938

Nice work, @luisquintanilla!


Fix build break.

Adding certificate file.
Fix a typo in InstanceSettings struct name.

Thank you @dotnetjunky!


Update .travis.yml

Allow testing on travis ci new server which are faster.

Merged to master at commit 326b28810c9d462308f53b5cdcd964f2ca37a660. Thanks!

Thanks.


Announce new members

Announce new OpenSSF members

Do we want to specifically recruit additional members ahead of the 10/30 announce? We have a solid group currently. Perhaps we let membership grow organically at this point?

Have there been requests for additional companies to join already?
I wouldn't feel the pressure to go 'get' new members, but would want to make sure anyone who's already expressed interest has had a chance to participate.

The LF has been reaching out to companies, as well as fielding new requests.

@kaywilliams this item can be closed.  Updated OpenSSF members list shared with PR Firm for the press release Thanks!

Thanks Lindsay.


allow to retrieve videocapture properties before first frame reading

There are some properties related to device controls, so proposed approach brokes this behaviour. We should allow to setup properties after open() and before first grab request.
What is about to execute grabFrame() in on-demand mode in case of empty(invalid)  width/height/etc?

There are some properties related to device controls, so proposed approach brokes this behaviour

Changed VideoCapture class does not have such ones.

I see, you change the "image" backend of VideoCapture only.

@alalek any comments? Are you ready for merge?

I have no more comments.

Let's merge it then :)

I think you need to handle the situation when grabbing fails.

I think you need to handle the situation when grabbing fails.

Added the check, if I correctly understand you.

Not quite. If grabFrame fails, you shouldn't return true from open (or set grabbedInOpen, IMO).

I propose to take the code as is, because it keeps the original logic.

@alalek Opinion?

@alalek agree with @SpecLad. Done.

Right, this approach is more user friendly.
:+1:


Add cpu-shares short flag (-c) and cpu-shares CI tests

Short flag -c was missing for --cpu-shares in buildah bud, this adds the flag to improve compatibility with docker build. CI tests included for flag options.
Signed-off-by: pixdrift<EMAIL_ADDRESS>

LGTM assuming happy green test buttons.  I'd one generic question that should not hold up this PR, but may result in a small issue.

@pixdrift, no not blocked on this.  However @nalind or @rhatdan usually do the approval/merges.  Both are a bit busy this week so hopefully they'll get a looksee soon.

@rh-atomic-bot r+
Lets fix the docs in a different PR>


Flutter readOnly TextField not getting Focus on tab key press

i have two textfield widgets in list. secound textfield widget is readonly. i am using it on windows . when i press tab key focus not goes into readonly textfield. if i trun off readonly then it work quite fine.

Use case

Proposal

@abdulrehmananwar
What flutter version are you on ? Although I didn't verify on Windows yet, but on macOS desktop, the focus using tab key on read-only textfield works properly. I verified this on latest stable (2.10.2).

issue resolved after turn on focused border .thanks


fix(dispatch): corrected file types for validate OMEX metadata form

:tada: This PR is included in version 5.6.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


help !! LUA functions not being called !!

Describe your problem here.
Basically (SOME (i forgot to add this)) the LUA functions aint getting called
function keyboardJustPressed(key)
It don't get called.  I've also done this with a couple other functions related to the keyboard . . . they ALSO don't get called.
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
Haven't edited source, this is GitHub release build.

try using
function onUpdate()
if keyboardJustPressed('key') then
end

end

try using function onUpdate() if keyboardJustPressed('key') then -- code end end

this got me surprised bruh


fixes toolbox/gpu-operator/deploy_from_operatorhub.sh regression, it didnt accept more than one parameter

This fixes CI failures from lines like:
<EMAIL_ADDRESS>Which pass 2 parameters (version and channel) to said script

/test gpu-operator-e2e

thanks @omertuc, I'm not 100% sure what happened here, the line you modified was committed 24 days ago, and things were seemingly working as as expected last week ... but clearly the logs show something wrong:
FATAL: expected 0 or 1 parameter ... (got '1.7.1 v1.7')
Deploys the GPU Operator from OperatorHub / OLM

https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/logs/periodic-ci-openshift-psap-ci-artifacts-release-4.7-gpu-operator-e2e-170/1412184695172501504/artifacts/gpu-operator-e2e-170/nightly/build-log.txt

thanks @omertuc, I'm not 100% sure what happened here, the line you modified was committed 24 days ago, and things were seemingly working as as expected last week ... but clearly the logs show something wrong:
FATAL: expected 0 or 1 parameter ... (got '1.7.1 v1.7')
Deploys the GPU Operator from OperatorHub / OLM

https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/logs/periodic-ci-openshift-psap-ci-artifacts-release-4.7-gpu-operator-e2e-170/1412184695172501504/artifacts/gpu-operator-e2e-170/nightly/build-log.txt

hum, got it, it wasn't modified 24 days ago as blame suggests, but only 7 days ago by this PR https://github.com/openshift-psap/ci-artifacts/pull/199, which makes more sense

hum, got it, it wasn't modified 24 days ago as blame suggests, but only 7 days ago by this PR #199, which makes more sense

Yep, always trips me up to :)


Ignore NotFound errors when deleting GCE resources

Following up on https://github.com/kubernetes/kubernetes/issues/54717, the GCE wrapper functions will no longer capture and ignore NotFound errors. As I mentioned in https://github.com/kubernetes/kubernetes/pull/54746#issuecomment-352911385, it seems that the only callers missing this check are in this repo. Recommend auditing all resource deletion calls prior to updating your vendor.


add metrics framework

JIRA Ticket: None
What does this Pull Request do?
This PR is intended to demonstration a possible metrics integration. It uses Micrometer for collecting metrics within the app and reports them to Prometheus. Micrometer could also be configured to report to any number of alternative metrics backends. Prometheus is very powerful, though it is not the most intuitive to use.
Regardless, if we do want to support capturing metrics, I think it would likely make sense to offer a number of different backends so that the metrics could more easily integrate with whatever service an institution is already using. For example, Graphite is also popular. However, the bigger question is in regards to if we want to use Micrometer or an alternative like Dropwizard. Micrometer is more popular currently and perhaps better designed, but Dropwizard does have some out-of-the-box Jersey integrations that Micrometer does not have.
A word about annotations, out of the box, Micrometer only supports AspectJ for annotation based annotation based metrics collection. I do not think this is a bad thing. Spring proxy based AOP is not a good fit for annotation based metrics collection because it has serious limitations which would likely result in people adding annotations that they think would emit metrics when they are actually doing nothing.
Prometheus works by periodically "scraping" metrics. I added a new endpoint, /prometheus to the webapp that exposes the metrics for Prometheus. I exposed some default JVM metrics and added two timing metrics on get and put resource requests. No other custom metrics have been added at this point.
How should this be tested?
Write the following to a file named prometheus.yml:
scrape_configs:
  - job_name: 'fcrepo'
    scrape_interval: 30s
    metrics_path: '/prometheus'
    static_configs:
    - targets: ['localhost:8080']
    basic_auth:
      username: fedoraAdmin
      password: fedoraAdmin

Write the following to a file named docker-compose.yml that is in the same directory as prometheus.yml:
version: '3.8'
services:
 prometheus:
   image: prom/prometheus
   ports:
     - "9090:9090"
   volumes:
     - ./prometheus.yml:/etc/prometheus/prometheus.yml
   network_mode: "host"

 grafana:
   image: grafana/grafana
   ports:
   - "3000:3000"
   network_mode: "host"

Execute: docker-compose up
Finally, startup Fedora and execute a few requests like:
curl -u fedoraAdmin:fedoraAdmin http://localhost:8080/rest/binary -H "Link: <http://www.w3.org/ns/ldp#NonRDFSource>; rel=type" -v -H "Content-Type: text/plain" -X PUT --data-binary "testing"
curl -u fedoraAdmin:fedoraAdmin http://localhost:8080/rest/binary

Navigate to http://localhost:9090, to query the metrics directly in Prometheus or go to http://localhost:3000, if you'd like to use Grafana.
If you're using Grafana, here are the steps to connect it to Prometheus:

Login: admin/admin
Configuration -> Datasources
Add datasource -> Prometheus
URL: http://localhost:9090
Save & Test
Create a new dashboard

Here are some example queries:

JVM memory usage: jvm_memory_used_bytes
All API requests throughput: rate(fcrepo_http_request_seconds_count[1m])
GetResource API request throughput: rate(fcrepo_http_request_seconds_count{api="getResource"}[1m])
GetResource API mean request time: rate(fcrepo_http_request_seconds_sum{api="getResource"}[1m])/rate(fcrepo_http_request_seconds_count{api="getResource"}[1m])
GetResource API p99 request time: histogram_quantile(0.99, sum(rate(fcrepo_http_request_seconds_bucket{api="getResource"}[1m])) by (le))

Interested parties
@fcrepo4/committers @awoods

🤣 I present to you, fcrepo-metrics https://github.com/fcrepo4/fcrepo4/tree/4.7-maintenance/fcrepo-metrics

🤣 I present to you, fcrepo-metrics https://github.com/fcrepo4/fcrepo4/tree/4.7-maintenance/fcrepo-metrics

What is the story there?

Actually, Micrometer does have Jersey 2 integration. Let me see if I can get it hooked up

We used to have these test bits in the codebase to allow for metrics much like (I assume) what you have done here. But no one was using them and the setup with Graphite was a lot of work. So it got removed. https://jira.lyrasis.org/browse/FCREPO-2779

We used to have these test bits in the codebase to allow for metrics much like (I assume) what you have done here. But no one was using them and the setup with Graphite was a lot of work. So it got removed. https://jira.lyrasis.org/browse/FCREPO-2779

I see, that I would have been useful context to have known earlier.

If you can make the bar a little lower I'd be interested. I had tried to use Graphite before, but it wasn't super friendly and I got distracted.

Here is some old documentation: https://wiki.lyrasis.org/display/FEDORA4x/Setup+a+Graphite+instance

@awoods I fixed the one-click (didn't realize it had its own web.xml) and added the micrometer jersey integration. Now, all of our Jersey APIs are reporting metrics. I removed the manual metrics that I had added, so the queries in the PR description are no longer good.
Here is an example Grafana dashboard that has a few queries setup:
{
  "__inputs": [
    {
      "name": "DS_PROMETHEUS",
      "label": "Prometheus",
      "description": "",
      "type": "datasource",
      "pluginId": "prometheus",
      "pluginName": "Prometheus"
    }
  ],
  "__requires": [
    {
      "type": "grafana",
      "id": "grafana",
      "name": "Grafana",
      "version": "7.2.0"
    },
    {
      "type": "panel",
      "id": "graph",
      "name": "Graph",
      "version": ""
    },
    {
      "type": "datasource",
      "id": "prometheus",
      "name": "Prometheus",
      "version": "1.0.0"
    }
  ],
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "editable": true,
  "gnetId": null,
  "graphTooltip": 0,
  "id": null,
  "links": [],
  "panels": [
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_PROMETHEUS}",
      "fieldConfig": {
        "defaults": {
          "custom": {}
        },
        "overrides": []
      },
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 0,
        "y": 0
      },
      "hiddenSeries": false,
      "id": 4,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "nullPointMode": "null",
      "options": {
        "alertThreshold": true
      },
      "percentage": false,
      "pluginVersion": "7.2.0",
      "pointradius": 2,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "expr": "rate(http_server_requests_seconds_count[1m])",
          "interval": "",
          "legendFormat": "",
          "refId": "A"
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [],
      "timeShift": null,
      "title": "Request Rate",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_PROMETHEUS}",
      "fieldConfig": {
        "defaults": {
          "custom": {}
        },
        "overrides": []
      },
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 9,
        "w": 12,
        "x": 12,
        "y": 0
      },
      "hiddenSeries": false,
      "id": 2,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "nullPointMode": "null",
      "options": {
        "alertThreshold": true
      },
      "percentage": false,
      "pluginVersion": "7.2.0",
      "pointradius": 2,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "expr": "histogram_quantile(0.99, sum(rate(http_server_requests_seconds_bucket{method=\"GET\",uri=\"/rest/{path: .*}\"}[1m])) by (le))",
          "interval": "",
          "legendFormat": "p99",
          "refId": "A"
        },
        {
          "expr": "rate(http_server_requests_seconds_sum{method=\"GET\",uri=\"/rest/{path: .*}\"}[1m])/rate(http_server_requests_seconds_count{method=\"GET\",uri=\"/rest/{path: .*}\"}[1m])",
          "interval": "",
          "legendFormat": "avg",
          "refId": "B"
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [],
      "timeShift": null,
      "title": "GET Resource Time",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_PROMETHEUS}",
      "fieldConfig": {
        "defaults": {
          "custom": {}
        },
        "overrides": []
      },
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 0,
        "y": 8
      },
      "hiddenSeries": false,
      "id": 8,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "nullPointMode": "null",
      "options": {
        "alertThreshold": true
      },
      "percentage": false,
      "pluginVersion": "7.2.0",
      "pointradius": 2,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "expr": "rate(http_server_requests_seconds_count{outcome=~\".*_ERROR\"}[1m])",
          "interval": "",
          "legendFormat": "",
          "refId": "A"
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [],
      "timeShift": null,
      "title": "Request Error Rate",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_PROMETHEUS}",
      "fieldConfig": {
        "defaults": {
          "custom": {}
        },
        "overrides": []
      },
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 12,
        "y": 9
      },
      "hiddenSeries": false,
      "id": 6,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "nullPointMode": "null",
      "options": {
        "alertThreshold": true
      },
      "percentage": false,
      "pluginVersion": "7.2.0",
      "pointradius": 2,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "expr": "jvm_memory_used_bytes",
          "interval": "",
          "legendFormat": "",
          "refId": "A"
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [],
      "timeShift": null,
      "title": "JVM Memory Usage",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    }
  ],
  "schemaVersion": 26,
  "style": "dark",
  "tags": [],
  "templating": {
    "list": []
  },
  "time": {
    "from": "now-1h",
    "to": "now"
  },
  "timepicker": {},
  "timezone": "",
  "title": "Example Fedora Dashboard",
  "uid": "AEUsf4KMk",
  "version": 1
}

This is actually a significant feature for Fedora... worthy of a JIRA ticket.

This is actually a significant feature for Fedora... worthy of a JIRA ticket.

https://jira.lyrasis.org/browse/FCREPO-3443


fix: running java-tools.sh fail on apt-get update #87

See Issue #87 for details

logs running java-tools.sh after applying this PR
root@ab1563397906:/tmp# /imagegeneration/installers/java-tools.sh
Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:2 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease [3065 B]
Get:3 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease [23.8 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [107 kB]
Get:6 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:7 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main amd64 Packages [52.4 kB]
Get:8 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main all Packages [713 B]
Get:9 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
Get:11 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
Get:12 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 Packages [2956 B]
Get:13 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]
Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1189 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1125 kB]
Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [10.9 kB]
Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [880 kB]
Get:19 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [49.0 kB]
Get:20 https://packages.adoptium.net/artifactory/deb jammy InRelease [6632 B]
Get:21 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [22.4 kB]
Get:22 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [855 kB]
Get:23 https://packages.adoptium.net/artifactory/deb jammy/main amd64 Packages [3707 B]
Get:24 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [823 kB]
Get:18 https://packagecloud.io/github/git-lfs/ubuntu jammy InRelease [24.4 kB]
Get:25 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [883 kB]
Get:26 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [5557 B]
Get:27 https://packagecloud.io/github/git-lfs/ubuntu jammy/main amd64 Packages [1274 B]
Fetched 26.3 MB in 2s (10.7 MB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Selected version '8.0.362.0.0+9-1' (Artifactory:jammy [amd64]) for 'temurin-8-jdk'
The following additional packages will be installed:
  adoptium-ca-certificates alsa-topology-conf alsa-ucm-conf fonts-dejavu fonts-dejavu-extra java-common libasound2 libasound2-data libxi6 libxtst6 p11-kit p11-kit-modules
Suggested packages:
  default-jre libasound2-plugins alsa-utils
The following NEW packages will be installed:
  adoptium-ca-certificates alsa-topology-conf alsa-ucm-conf fonts-dejavu fonts-dejavu-extra java-common libasound2 libasound2-data libxi6 libxtst6 p11-kit p11-kit-modules temurin-8-jdk
0 upgraded, 13 newly installed, 0 to remove and 38 not upgraded.
Need to get 87.6 MB of archives.
After this operation, 216 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 p11-kit-modules amd64 0.24.0-6build1 [223 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 p11-kit amd64 0.24.0-6build1 [101 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-topology-conf all <IP_ADDRESS>-2 [15.5 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 libasound2-data all <IP_ADDRESS>-1ubuntu1 [19.1 kB]
Get:5 https://packages.adoptium.net/artifactory/deb jammy/main amd64 adoptium-ca-certificates all 1.0.1-1 [2260 B]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 libasound2 amd64 <IP_ADDRESS>-1ubuntu1 [390 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 alsa-ucm-conf all <IP_ADDRESS>-1ubuntu1.4 [41.6 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-dejavu-extra all 2.37-2build1 [2041 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fonts-dejavu all 2.37-2build1 [3192 B]
Get:11 http://archive.ubuntu.com/ubuntu jammy/main amd64 java-common all 0.72build2 [6782 B]
Get:12 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxi6 amd64 2:1.8-1build1 [32.6 kB]
Get:13 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxtst6 amd64 2:1.2.3-1build4 [13.4 kB]
Get:9 https://packages.adoptium.net/artifactory/deb jammy/main amd64 temurin-8-jdk amd64 8.0.362.0.0+9-1 [84.7 MB]
Fetched 87.6 MB in 7s (12.0 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package p11-kit-modules:amd64.
(Reading database ... 25523 files and directories currently installed.)
Preparing to unpack .../00-p11-kit-modules_0.24.0-6build1_amd64.deb ...
Unpacking p11-kit-modules:amd64 (0.24.0-6build1) ...
Selecting previously unselected package p11-kit.
Preparing to unpack .../01-p11-kit_0.24.0-6build1_amd64.deb ...
Unpacking p11-kit (0.24.0-6build1) ...
Selecting previously unselected package adoptium-ca-certificates.
Preparing to unpack .../02-adoptium-ca-certificates_1.0.1-1_all.deb ...
Unpacking adoptium-ca-certificates (1.0.1-1) ...
Selecting previously unselected package alsa-topology-conf.
Preparing to unpack .../03-alsa-topology-conf_<IP_ADDRESS>-2_all.deb ...
Unpacking alsa-topology-conf (<IP_ADDRESS>-2) ...
Selecting previously unselected package libasound2-data.
Preparing to unpack .../04-libasound2-data_<IP_ADDRESS>-1ubuntu1_all.deb ...
Unpacking libasound2-data (<IP_ADDRESS>-1ubuntu1) ...
Selecting previously unselected package libasound2:amd64.
Preparing to unpack .../05-libasound2_<IP_ADDRESS>-1ubuntu1_amd64.deb ...
Unpacking libasound2:amd64 (<IP_ADDRESS>-1ubuntu1) ...
Selecting previously unselected package alsa-ucm-conf.
Preparing to unpack .../06-alsa-ucm-conf_<IP_ADDRESS>-1ubuntu1.4_all.deb ...
Unpacking alsa-ucm-conf (<IP_ADDRESS>-1ubuntu1.4) ...
Selecting previously unselected package fonts-dejavu-extra.
Preparing to unpack .../07-fonts-dejavu-extra_2.37-2build1_all.deb ...
Unpacking fonts-dejavu-extra (2.37-2build1) ...
Selecting previously unselected package fonts-dejavu.
Preparing to unpack .../08-fonts-dejavu_2.37-2build1_all.deb ...
Unpacking fonts-dejavu (2.37-2build1) ...
Selecting previously unselected package java-common.
Preparing to unpack .../09-java-common_0.72build2_all.deb ...
Unpacking java-common (0.72build2) ...
Selecting previously unselected package libxi6:amd64.
Preparing to unpack .../10-libxi6_2%3a1.8-1build1_amd64.deb ...
Unpacking libxi6:amd64 (2:1.8-1build1) ...
Selecting previously unselected package libxtst6:amd64.
Preparing to unpack .../11-libxtst6_2%3a1.2.3-1build4_amd64.deb ...
Unpacking libxtst6:amd64 (2:1.2.3-1build4) ...
Selecting previously unselected package temurin-8-jdk.
Preparing to unpack .../12-temurin-8-jdk_8.0.362.0.0+9-1_amd64.deb ...
Unpacking temurin-8-jdk (8.0.362.0.0+9-1) ...
Setting up libxi6:amd64 (2:1.8-1build1) ...
Setting up java-common (0.72build2) ...
Setting up libxtst6:amd64 (2:1.2.3-1build4) ...
Setting up libasound2-data (<IP_ADDRESS>-1ubuntu1) ...
Setting up p11-kit-modules:amd64 (0.24.0-6build1) ...
Setting up fonts-dejavu-extra (2.37-2build1) ...
Setting up alsa-topology-conf (<IP_ADDRESS>-2) ...
Setting up libasound2:amd64 (<IP_ADDRESS>-1ubuntu1) ...
Setting up p11-kit (0.24.0-6build1) ...
Setting up adoptium-ca-certificates (1.0.1-1) ...
/etc/ssl/certs/adoptium/cacerts successfully populated.
Setting up fonts-dejavu (2.37-2build1) ...
Setting up temurin-8-jdk (8.0.362.0.0+9-1) ...
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/appletviewer to provide /usr/bin/appletviewer (appletviewer) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/clhsdb to provide /usr/bin/clhsdb (clhsdb) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/extcheck to provide /usr/bin/extcheck (extcheck) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/hsdb to provide /usr/bin/hsdb (hsdb) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/idlj to provide /usr/bin/idlj (idlj) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jar to provide /usr/bin/jar (jar) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/javac to provide /usr/bin/javac (javac) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/javah to provide /usr/bin/javah (javah) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/javap to provide /usr/bin/javap (javap) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jhat to provide /usr/bin/jhat (jhat) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jjs to provide /usr/bin/jjs (jjs) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jps to provide /usr/bin/jps (jps) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jsadebugd to provide /usr/bin/jsadebugd (jsadebugd) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/native2ascii to provide /usr/bin/native2ascii (native2ascii) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/orbd to provide /usr/bin/orbd (orbd) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/policytool to provide /usr/bin/policytool (policytool) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/rmic to provide /usr/bin/rmic (rmic) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/schemagen to provide /usr/bin/schemagen (schemagen) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/servertool to provide /usr/bin/servertool (servertool) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/tnameserv to provide /usr/bin/tnameserv (tnameserv) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/wsgen to provide /usr/bin/wsgen (wsgen) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/wsimport to provide /usr/bin/wsimport (wsimport) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/bin/xjc to provide /usr/bin/xjc (xjc) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-8-jdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
Setting up alsa-ucm-conf (<IP_ADDRESS>-1ubuntu1.4) ...
Processing triggers for fontconfig (2.13.1-4.2ubuntu5) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Setting up JAVA_HOME_8_X64 variable to /usr/lib/jvm/temurin-8-jdk-amd64
JAVA_HOME_8_X64=/usr/lib/jvm/temurin-8-jdk-amd64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Selected version '<IP_ADDRESS>.0+10' (Artifactory:jammy [amd64]) for 'temurin-11-jdk'
The following NEW packages will be installed:
  temurin-11-jdk
0 upgraded, 1 newly installed, 0 to remove and 38 not upgraded.
Need to get 167 MB of archives.
After this operation, 324 MB of additional disk space will be used.
Get:1 https://packages.adoptium.net/artifactory/deb jammy/main amd64 temurin-11-jdk amd64 <IP_ADDRESS>.0+10 [167 MB]
Fetched 167 MB in 11s (15.2 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package temurin-11-jdk.
(Reading database ... 26629 files and directories currently installed.)
Preparing to unpack .../temurin-11-jdk_<IP_ADDRESS>.0+10_amd64.deb ...
Unpacking temurin-11-jdk (<IP_ADDRESS>.0+10) ...
Setting up temurin-11-jdk (<IP_ADDRESS>.0+10) ...
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jaotc to provide /usr/bin/jaotc (jaotc) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jar to provide /usr/bin/jar (jar) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/javac to provide /usr/bin/javac (javac) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/javap to provide /usr/bin/javap (javap) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jimage to provide /usr/bin/jimage (jimage) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jjs to provide /usr/bin/jjs (jjs) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jlink to provide /usr/bin/jlink (jlink) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jmod to provide /usr/bin/jmod (jmod) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jps to provide /usr/bin/jps (jps) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jshell to provide /usr/bin/jshell (jshell) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/rmic to provide /usr/bin/rmic (rmic) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
update-alternatives: using /usr/lib/jvm/temurin-11-jdk-amd64/lib/jspawnhelper to provide /usr/bin/jspawnhelper (jspawnhelper) in auto mode
Setting up JAVA_HOME variable to /usr/lib/jvm/temurin-11-jdk-amd64
JAVA_HOME=/usr/lib/jvm/temurin-11-jdk-amd64
Setting up default symlink
Setting up JAVA_HOME_11_X64 variable to /usr/lib/jvm/temurin-11-jdk-amd64
JAVA_HOME_11_X64=/usr/lib/jvm/temurin-11-jdk-amd64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Selected version '<IP_ADDRESS>.0+10' (Artifactory:jammy [amd64]) for 'temurin-17-jdk'
The following NEW packages will be installed:
  temurin-17-jdk
0 upgraded, 1 newly installed, 0 to remove and 38 not upgraded.
Need to get 165 MB of archives.
After this operation, 329 MB of additional disk space will be used.
Get:1 https://packages.adoptium.net/artifactory/deb jammy/main amd64 temurin-17-jdk amd64 <IP_ADDRESS>.0+10 [165 MB]
Fetched 165 MB in 11s (15.2 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package temurin-17-jdk.
(Reading database ... 27210 files and directories currently installed.)
Preparing to unpack .../temurin-17-jdk_<IP_ADDRESS>.0+10_amd64.deb ...
Unpacking temurin-17-jdk (<IP_ADDRESS>.0+10) ...
Setting up temurin-17-jdk (<IP_ADDRESS>.0+10) ...
update-alternatives: using /usr/lib/jvm/temurin-17-jdk-amd64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode
Setting up JAVA_HOME_17_X64 variable to /usr/lib/jvm/temurin-17-jdk-amd64
JAVA_HOME_17_X64=/usr/lib/jvm/temurin-17-jdk-amd64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  ant-doc antlr javacc junit junit4 jython libactivation-java libbcel-java libbsf-java libcommons-logging-java libcommons-net-java libmail-java libjaxp1.3-java libjdepend-java libjsch-java liblog4j1.2-java
  liboro-java libregexp-java libxalan2-java libxml-commons-resolver1.1-java libxz-java
The following NEW packages will be installed:
  ant ant-optional
0 upgraded, 2 newly installed, 0 to remove and 38 not upgraded.
Need to get 2467 kB of archives.
After this operation, 3432 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 ant all 1.10.12-1 [2100 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/universe amd64 ant-optional all 1.10.12-1 [368 kB]
Fetched 2467 kB in 0s (13.0 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package ant.
(Reading database ... 27752 files and directories currently installed.)
Preparing to unpack .../archives/ant_1.10.12-1_all.deb ...
Unpacking ant (1.10.12-1) ...
Selecting previously unselected package ant-optional.
Preparing to unpack .../ant-optional_1.10.12-1_all.deb ...
Unpacking ant-optional (1.10.12-1) ...
Setting up ant (1.10.12-1) ...
Setting up ant-optional (1.10.12-1) ...
ANT_HOME=/usr/share/ant
Downloading 'https://www-eu.apache.org/dist/maven/maven-3/3.9.0/binaries/apache-maven-3.9.0-bin.zip' to '/tmp/maven.zip'...
Download completed
gradleUrl=https://services.gradle.org/distributions/gradle-8.0.2-bin.zip
gradleVersion=8.0.2
Downloading 'https://services.gradle.org/distributions/gradle-8.0.2-bin.zip' to '/tmp/gradleLatest.zip'...
Download completed
GRADLE_HOME=/usr/share/gradle-8.0.2
root@ab1563397906:/tmp#

Hi, any update on this PR please ?


Update Composer dependencies (2021-05-28-00-11)

Visual regression test passed!
View the visual regression test report


Provide Test to Reporter when test hook fails

This allows a reporter to provide details of the associated test.

👍 I hope you reviewed the tests I wrote ;)


Troubleshoot errors when you delete Azure classic storage accounts.

Troubleshoot errors when you delete Azure classic storage accounts, containers, or VHDs

@AngshumanNayakMSFT : Thanks for your contribution! The author, @annayak, has been notified to review your proposed change.

@AngshumanNayakMSFT - Please submit this content through the private repository. cc - @tamram

@tysonn - We're already talking to @AngshumanNayakMSFT about this and will move it over.


Add a Kafka 0.10+ compatible collector and attempt to integrate into zipkin-server

These changes add a new collector module supporting Kafka 0.10+ (zipkin-collector-kafka10) and the associated auto-configure module (zipkin-autoconfigure-collector-kafka10). They also make the auto-configure module a dependency of zipkin-server, with the collector activated by setting the KAFKA_BOOSTRAP_SERVERS environment variable. See https://github.com/dgrabows/zipkin/tree/kafka10-collector/zipkin-server#kafka-010-collector for more details on the supported configuration.
Further changes are needed to how the new collector is integrated with zipkin-server. As currently implemented, the <IP_ADDRESS> version of the org.apache.kafka:kafka-clients dependency takes precendence over the 0.8.x.x one when zipkin-server is built. This will prevent the existing 0.8 Kafka collector from working. From https://github.com/openzipkin/zipkin/issues/1405#issuecomment-300023053:

wrt how we address integration, I think the best way is to act like sqs,
where we package a module jar (and this includes a zipkin-server-kafka file
like
https://github.com/openzipkin/zipkin-aws/blob/master/autoconfigure/collector-sqs/src/main/resources/zipkin-server-sqs.yml
)
The pom would include a module file as well, like this, except different
excludes:
https://github.com/openzipkin/zipkin-aws/blob/master/autoconfigure/collector-sqs/pom.xml
Running will be a little messier than this because of classpath
https://github.com/openzipkin/zipkin-aws/tree/master/autoconfigure/collector-sqs#running
For example, we'll probably have to customize the docker image based on
presence of the KAFKA_BOOTSTRAP_SERVERS variable, and move old jars out of
the way.. we may end up lucky enough to not need to do that. Basically,
once there's a module dir the next step is seeing how lucky we are.. in
best case classpath order works and we don't need to hack the all jar to
take out the kafka08 stuff.
In the future, we could make a thin launcher
https://github.com/dsyer/spring-boot-thin-launcher as the default image

Outstanding tasks I'm aware of:

[x] Add unit test to https://github.com/dgrabows/zipkin/blob/kafka10-collector/zipkin-collector/kafka10/src/test/java/zipkin/collector/kafka10/KafkaCollectorTest.java#L204 for collector running multiple threads.
[ ] Review/update closing of Kafka consumers when consumer thread is interrupted. See https://github.com/dgrabows/zipkin/blob/kafka10-collector/zipkin-collector/kafka10/src/main/java/zipkin/collector/kafka10/KafkaConsumerProcessor.java#L83
[x] Add zipkin-server-kafka.yml configuration file to https://github.com/dgrabows/zipkin/tree/kafka10-collector/zipkin-autoconfigure/collector-kafka10/src/main/resources
[x] Update https://github.com/dgrabows/zipkin/blob/kafka10-collector/zipkin-autoconfigure/collector-kafka10/pom.xml to produce a module jar
[x] Remove zipkin-autoconfigure-collector-kafka10 dependency from https://github.com/dgrabows/zipkin/blob/kafka10-collector/zipkin-server/pom.xml
[x] Move usage documentation from https://github.com/dgrabows/zipkin/blob/kafka10-collector/zipkin-server/README.md#kafka-010-collector to new README.md in https://github.com/dgrabows/zipkin/tree/kafka10-collector/zipkin-autoconfigure/collector-kafka10 and update to reflect approach of loading the kafka10 collector from an external module jar
[x] Uncomment https://github.com/dgrabows/zipkin/blob/kafka10-collector/zipkin-autoconfigure/collector-kafka10/src/test/java/zipkin/collector/kafka10/ZipkinKafkaCollectorAutoConfigurationTest.java#L88 and get test passing
[x] Clean up logging APIs, implementations, and configuration in https://github.com/dgrabows/zipkin/tree/kafka10-collector/zipkin-collector/kafka10

There are probably also changes to https://github.com/openzipkin/docker-zipkin that are not yet clear to me, although that's probably a separate pull request given that it's a different repository.
Attempts to resolve #1405.

The zipkin-autoconfigure/collector-kafka10 module now builds a module jar, e.g. zipkin-autoconfigure-collector-kafka10-1.24.1-SNAPSHOT-module.jar.
Next step is getting the collector to run in zipkin-server again as an external module, based off of the SQS collector example and instructions on https://github.com/openzipkin/zipkin/issues/1219#issuecomment-274451253.

Thanks for getting this started!
Here are some notes as most looks picture perfect!

toss the extra logback config in test sources. Add a test dep of a slf4j
to log4j2 bridge if somehow missing
if slf4j is the implied logging api of kafka, make a comment in the pom
of why we are binding to it. Otherwise switch to whatever kafka10 uses and
similarly make a comment
you have a commented out test. You should be able to test this by
sneakily using package access to the kafkaConsumers field. Try it!
move/rework the kafka properties description from zipkin-server to the
autoconfig README. you can look at zipkin-sparkstreaming or zipkin-aws for
exampkes.. mainly we should link in nice bold in the zipkin-server readme
to the right place. (This is different than othe4s but a good time to break
from sprawling)

All above are small things.. good work!

I made some changes to clean up logging for the unit tests, but I'm not sure if I went in the direction you intended.
I took your comments to mean there is a preference for binding the logging to a log4j implementation, although that seems to differ from the preference in elsewhere in the project. Modules that reference a logging implementation all seem to depend on logback and https://github.com/openzipkin/zipkin/blob/master/pom.xml defines a logback.version. I can't find any references to log4j other than some dependency exclusions and the unnecessary log4j.properties in test/resources for zipkin-collector-kafka, which I carried over when I created the kafka10 collector.
org.apache.kafka:kafka-clients, at least for 0.10+, implement logging against slf4j-api.
I opted to delete the log4j.properties and do some cleanup on the logback.xml. I can easily go the other direction and swap logback for slf4j, but this seemed more consistent with other modules. Just let me know.

I made some changes to clean up logging for the unit tests, but I'm not
sure if I went in the direction you intended.

this is fine. I forgot we hadn't switched tests in the main repo to log4j2,
yet. my mistake!

The kafka10 collector works with zipkin-server as an external module jar. There was no classpath manipulation required. I pretty much just worked once I figured out how to get all the right stuff into loader.path. See https://github.com/dgrabows/zipkin/tree/kafka10-collector/zipkin-autoconfigure/collector-kafka10 for instructions on how to run it.

great. do you want to try and get conditional loading working in the docker
image? There might be a chicken/egg problem as the docker image pulls
release images..

I spent some time working to update the docker image today. Most of that was spent getting familiar with docker, docker-compose, etc., as I've not done much more than copy/paste execution of containers previously. I'm hoping tomorrow I can get something hacked together and into a PR in docker-zipkin so I can get some early feedback.

@dgrabows let me know if I can do anything to help with the Docker work.

It took a lot longer than I was hoping, but I've got something working with the docker images.
See https://github.com/dgrabows/docker-zipkin/tree/kafka10-collector and the comments on the commit https://github.com/dgrabows/docker-zipkin/commit/02470624be97b2b5108b91c2b138be96c1a7d160.
I don't expect any of that to be in a final state, but it's a (more or less) working starting point for discussion on how this should work, what to do about upgrading the kafka container image to 0.10, and how to deal with differences between (at least on Macs) Docker Toolbox and Docker for Mac.
I'll try to write up a cohert PR tonight for those changes in docker-zipkin to allow for more detailed feedback.
@StephenWithPH Any feedback on the direction those docker changes are going would be greatly appreciated.

@dgrabows looking forward to your PR in docker-zipkin. In the interest of keeping the discussion contained, I'll add comments there. I think everything is very close. Thank you for taking this on!

Pull request for the initial attempt a docker changes is now created.
https://github.com/openzipkin/docker-zipkin/pull/142

Thanks. How do you feel about this PR btw. Anything left?
On 16 May 2017 1:49 pm, "Dan Grabowski"<EMAIL_ADDRESS>wrote:

Pull request for the initial attempt a docker changes is now created.
openzipkin/docker-zipkin#142
https://github.com/openzipkin/docker-zipkin/pull/142
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/openzipkin/zipkin/pull/1586#issuecomment-301682169,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAD61wy0xI5jfwpYtk7rUlePhgQKs0Fnks5r6Tj_gaJpZM4NUsrX
.

 Assuming the tests pass (they did for me locally) and there are no concerns from anyone else, I think this is good to go.

I think I'll need to replace the forEach() call here to maintain Java 7
compatibility.

cool. I think one for loop is reasonable. If it had higher impact, I'd
recommend retrolambda

I ran out of steam before getting to this. If anybody feels strongly about
using autovalue here, let me know and I will circle back around to it.

not important!

I don't think anyone else is using your branch, so you can force push it.
The commits will be squashed on merge anyway.

Alright. Rebase and version catch-up are complete. Assuming the tests pass like they did locally, I think that's all the outstanding items.

ok will merge on green, which would then put it into the snapshot repo

Grand work, btw 👍

Thank you.


ALC10.alcDestroyContext import issue

Version
3.2.3
Platform
Windows x64
JDK
Eclipse Temurin 17
Module
OpenAL
Bug description
Hello! I'm having issues importing ALC10.alcDestroyContext and a few other functions from that class. Importing ALC10 itself works, and I can create a context fine. I made an example project to demonstrate what I'm trying to accomplish:
https://github.com/AustinHoover/LWJGLOpenALImportDemo
When I clone this, cd into it, and try mvn package it fails to resolve ALC10.alcDestroyContext.
Of note: I changed the artifact id and it succeeded to build. The name I used for the artifact was "DemoProblem". This only works sometimes. Fiddling with the artifact id does seem to have some influence on build success.
I'm building with Maven 3.8.1 on Windows 10. I also tried it on a non-M1 Mac running java 17 and Maven 3.8.1. I've ruled out every configuration issue I think might have caused this, but in case I missed something obvious I apologize in advance!
Stacktrace or crash log output
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /D:/p/LWJGLOpenALImportDemo/src/main/java/studiorailgun/openaltest/Main.java:[3,30] cannot find symbol
  symbol:   class alcDestroyContext
  location: class org.lwjgl.openal.ALC10

Hey @AustinHoover,
You're trying to import a method from the ALC10 class. This is only possible with a static import, i.e.:
import static org.lwjgl.openal.ALC10.alcDestroyContext;


Continuously crashing after last windows 11 update

Microsoft PowerToys version
0.64.0
Installation method
Microsoft Store
Running as admin
No
Area(s) with issue?
General
Steps to reproduce

Last windows 11 update?
Reboot windows

✔ Expected Behavior
No errors at startup
❌ Actual Behavior
Power toys continues to crash after boot, giving this exception:

Version: <IP_ADDRESS>
OS Version: Microsoft Windows NT 10.0.22621.0
IntPtr Length: 8
x64: True
Date: 15/12/2022 13:44:56
Exception:
System.DllNotFoundException: Unable to load DLL 'PenIMC_cor3.dll' or one of its dependencies: Impossibile trovare il modulo specificato. (0x8007007E)
   at MS.Win32.Penimc.UnsafeNativeMethods.CreateResetEvent(IntPtr& handle)
   at System.Windows.Input.PenThreadWorker..ctor()
   at System.Windows.Input.PenThreadPool.GetPenThreadForPenContextHelper(PenContext penContext)
   at System.Windows.Input.PenThreadPool.GetPenThreadForPenContext(PenContext penContext)
   at System.Windows.Input.StylusWisp.WispTabletDeviceCollection.UpdateTabletsImpl()
   at System.Windows.Input.StylusWisp.WispTabletDeviceCollection.UpdateTablets()
   at System.Windows.Input.StylusWisp.WispLogic.OnDeviceChange()
   at System.Windows.Input.StylusWisp.WispLogic.HandleMessage(WindowMessage msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.SystemResources.InvalidateTabletDevices(WindowMessage msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.SystemResources.SystemThemeFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Other Software
No response

Actually the exception seems caused by this dll: PenIMC_cor3.dll.
I don't know if it's a Windows component or what, but I can give you more info if you tell me where to find them.
Cheers

It's dotnet lib. Can you check dotnet installation dir (probably Program files/dotnet) and see if there is PenImc_cor3.dll in shared/Microsoft.WindowsDesktop.App/<version>/

you can also try reinstalling .NET runtime

@stefansjfw this is #16975

/dup #16975


style(package.json): fixed format

fixed format

:tada: This PR is included in version 2.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


present? couples to activesupport

The calls to present? in the controller mean that we're coupled to ActiveSupport, since that's the library that puts that function on the String class. It would be good to either add an explicit require, update the docs or change the function to use default methods on the String object.

See commit c16baa42


Readid transform

with this PR I propose to add a CLI argument --readid-transform. It accepts Python expressions that will be used to modify readIDs. One immediate use case is Illumina readIDs that contain trailing /1 and /2 to designate the two sides of a read, i.e.:
@HWUSI-EAS100R:6:73:941:1973#0/1
vs
@HWUSI-EAS100R:6:73:941:1973#0/2.
Currently, pairtools parse considers such reads as coming from two different read pairs and fails to parse such files.
I decided to go for a Python function to accommodate for all possible ways in which side IDs could be included into read ids. E.g. Wikipedia says that sometimes read ID can look as "@EAS139:136:FC706VJ:2:2104:15343:197393 1:N:18:1", which would require a more elaborate read transform function.
The other alternatives to deal with this issue include:
-- a binary flag, e.g. "--truncate-readid", which would remove 2 trailing characters from readid
-- an option "--truncate-readid", which would accept the number of trailing characters to be removed from the readID
-- an option "--readid-transform" that would allow choosing from a list of predefined functions to modify readID.
Please, let me know what you think!

Remembering what people do to their readIDs... this may be a nice option.

I like --readid-transform because of its flexibility and it has already worked well with pairtools select. I just noticed the expression compilation for select got a lot more sophisticated. If at some point, we want to refactor this expression handling more generally, we might want to look at https://github.com/alecthomas/pawk for inspiration.

From CI, seems like click now refuses to install on Python < 3.5

Actually, click supports 3.4+, so this seems to be another pip issue.

@golobor  this sounds like a great feature, given the context (we mostly deal with a single sequencer, so I never experienced issues like that before ...)
Implementation wise - what if I do something like  --readid-transform 1 ?  everything would become one read ... where would it break?
there are no checks for that in the code now - right? maybe I missed something ?
should we add a counter/limit on len(sam1/2) ?
maybe check transorm-readid for some really stupid mistakes ... like at least request it to mention readID (even that would fail if someone does --transform-readid readID[0] or ... --transform-readid lambda readID: 0)
this isn't critical, but I'm just thinking of the potentially "mysterious" ways this could fail and give someone a "debugging" adventure ...

@mimakaev , regarding your suggestion in slack (?), we can give access to a variable called, say, i, which would contain the line number. This way, you could create completely artificial ids.
@sergpolly , tbh, I was thinking of this as a "pro" flag, which would be used very very rarely and at your own risk (that is, by ppl who fully understand what they are doing). Of course, this doesn't mean that there should not be any safeguards. However, the only safeguard I can think of is setting an arbitrary upper limit on the number of alignments (10k?). This is a bit ugly - so, let's say, we introduce it after someone runs into this issue once?..
Otherwise, seems like yall approve merging?..


Fix #775: Off-by-one overrun in deeply nested function call

Fixes #775.
The actual problem was in the tuple formatting code, rewrite_tuple referred to config.max_width where width passed from caller should be used.

Thank you!


About Rotation and animation

I want to show my GLB model and rotate it according to touch also my model has animations I want to play on button click can I achieve this functionality using this library please answer I'm stuck on this issue also try com.gorisse.thomas.sceneform:sceneform:1.21.0??

resolved by myself

@AqeelAaqi please share the code


Storage Bug

My other topic was closed with an answer that didn't solve the issue as I did not explain it well enough.
When some sort of storage unit (locker / crate) is placed (seems apparent around a large quantity of structures) it will stay there and stuff can be put in. When the area is unloaded (when a player is not nearby) the locker / crate disappears. When placing the same type of storage in its previous place (ie a locker where a locker was) it appears and still contains the items deposited, but disappears once again when the area is unloaded.

There is a simple and easy fix that you can do yourself to solve the disappearing crates or lockers considering it is a player side implementation therefore a glitch that is not server side. Simple navigate into "steamapps" > "common" > "Unturned" > Then search for the folder "Structures" and the folder "Barricades" by using the search command. (Make sure you are searching in the "Unturned" folder). Proceed to delete the "Structures" and "Barricades" folders. Next, go into the Steam Library, right click on Unturned, select "Properties" in the drop down menu, go under the "Local Files" tab, and click "Verify Integrity of Local Game Cache". This will reinstall the 2 folders you deleted and when you log back into a server the missing crates will reappear with the loot in them. Your welcome :)

Thanks @AHappyTeddyBear, but other players also don't see the crates / lockers so it is not just on my side. Also, I am testing to see if the bug involves me modifying the values of crate and locker size server side because I think that may be the issue. I'll report back when I find out.

Very simple quesion, is this bug replicable on a untouched FRESH install both on the server & client?

This bug is related to this bug. As I've had this happen like this on my server before and it fixed after I started to drain the items out of the glitched container.
https://github.com/SmartlyDressedGames/Unturned/issues/4

This should have been fixed as of the v<IP_ADDRESS> update of unturned.


Replace Success with Failed for Skips

Success with null ticket throws ArgumentNull...
cc @Tratcher

Hi @HaoK, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

Replaced by https://github.com/aspnet/Security/pull/568


PUPIL-270 organise search related components

Description
Music year: 1977

move SearchPage into TeacherViews
extract and move SearchResults, NoSearchResults, SearchResultsItem, SearchResultsSubjectIcon
move SearchDropdown
move and extract SearchFilters, ActiveFilters, SearchFilterCheckbox

Issue(s)
Fixes #PUPIL-270

:tada: This PR is included in version 1.326.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Subliminal 0.7.0 SyntaxError: invalid syntax

I just updated subliminal on my server and now i get this error :
subliminal --lang fr /var/lib/transmission/Downloads/en/The.Walking.Dead.S04E03.720p.HDTV.x264-KILLERS.mkv
Traceback (most recent call last):
  File "/usr/bin/subliminal", line 9, in <module>
    load_entry_point('subliminal==0.7.0', 'console_scripts', 'subliminal')()
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 299, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2229, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1948, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python2.6/site-packages/subliminal/__init__.py", line 9, in <module>
    from .api import PROVIDERS_ENTRY_POINT, list_subtitles, download_subtitles, download_best_subtitles
  File "/usr/lib/python2.6/site-packages/subliminal/api.py", line 85
    providers_by_name = {ep.name: ep.load() for ep in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT)}
                                              ^
SyntaxError: invalid syntax

# rpm -qa | grep python
python-2.6.6-37.el6_4.x86_64

# pip freeze | grep subliminal
subliminal==0.7.0

# cat /etc/redhat-release
CentOS release 6.4 (Final)

if you need more info , just ask me.
I'm glad to help you with this error
Thanks for yuour job and for this release !!

It is not said in subliminal --help!
Please update help text...


Pipelines set -e

I added set -e to multiline scripts in the pipelines. I didn't add it when the only command is the last one in the script - but now I'm thinking about adding it everywhere  for consistency in case we extend any of the templates.
I set cleanup tasks to always run (even if a pipeline fails in the middle).
Are there any places where we don't want
set -e (fail on the first command with non-zero exitcode)
set -u (fail on unset env variable)
set -o pipefail (fail on the first command in a line | of | pipes)
?
CC @julienstroheker
Related to issue #246

/azp run e2e

rebased


SitePlanNavService does not support alternate param support

The abstract and lightweight nav services do not support URLs or other external params beyond simple fields in AssetNode.

Fixed in version 12.0.1


Transfer paragraph attributes to image when used as a block

See discussion in https://discourse.gohugo.io/t/is-it-possible-to-use-attribute-lists-with-render-hooks/31374/6?u=bep
So, images are by definition an inline element, but it most typically is used in block contexts, e.g.:
This is some text.

![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1")
{ .myclass }

And then some more text.

I have not tested the above, but I suspect that the attributes list { .myclass } will be applied to the surround paragraph block.
Since the parsing complexity prevents us from adding attributes to links/images, an option may be to transfer the surrounding block's attributes to the image.
We can certainly have an option to toggle this off, but I suspect that most people would say that the attribute above belongs to the image and not the paragraph.
Thoughts?

For images that are treated as blocks this make sense.
but it does raise the question of what the config option should be... such as:

"treat images as blocks"
"treat "orphan" images as blocks"
"treat images with attributes as blocks"

Just a thought:
Would it be possible to do something similar to how footnotes are treated for inline elements ( and )?  would that help with the parsing complexity?

@HenrySkup thanks for your input.

As to the config option, I think it should be very specific.  So, something ala moveParagraphAttributesToImageBlocks or ... something.

I don't understand the footnote reference, but when working with Goldmark, it's much easier to reason with its AST (instead of the actual markdown text) and say stuff ala "if an image is the only child of a paragraph, then ...".

2. I don't understand the footnote reference, but when working with Goldmark, it's much easier to reason with its AST (instead of the actual markdown text) and say stuff ala "if an image is the only child of a paragraph, then ...".

I was thinking about something like:
This would be some normal text. ![alt](url "title){^1} Bla bla bla.

{^1}: attribute list

but I now realize that this would prob be just as difficult and quite a departure from markdown syntax.
However on the forum @jmooring made an excellent comment.  An i realized that I too had hacked together a render hook for this... though haven't been using it...
Gist here.
If I remember correctly, there were some issues creating a properly formatted HTML string.

2. I don't understand the footnote reference, but when working with Goldmark, it's much easier to reason with its AST (instead of the actual markdown text) and say stuff ala "if an image is the only child of a paragraph, then ...".

Just found this in the common mark spec, which is kind of what I meant... i think.


New Bug: Get_Auth works like normal, and adds email to .env, but as soon as I activate Imagen.py, it tells me "Could not get access token". Do I delete the .env file or leave it and refresh and relog in?

as I said, Do I manually go into the .ENV file and delete the session cookie? New Bug: I am Able to add my profile into .env file but as soon as i click on imagen3.py and enter the email in quotation marks like this: (base) jacobbender@Jacobs-MacBook-Pro sucorn-2k24dj % /usr/local/bin/python3 /Users/jacobbender/Documents/sucorn-2k24dj/utilities/imagen3/imagen3.py<EMAIL_ADDRESS>Could not get access token<EMAIL_ADDRESS>Seeing as how I already had no problems with get_auth.py, what do I do going from there, do I delete the info in .env or what do I do to avoid getting "Could not get access token" errors when activating Imagen3.py. Do I refresh the page in browser, and leave the info in .env alone? or do I manually delete the info stored in .env. What do I do?

Hi there,
We use GitHub issues as a place to track bugs and other development-related issues.
Please see the link below to our dedicated support line:
Help Center :  Click Here
Ticket ID: WT240
Note: Click on the live chat icon at the bottom corner of the page to start a conversation.

This is a bug @Kendra162

@speckly


Steps with decorators are failing to register with runner

Upgraded to version 2.0, while running the calculator example, I always get the error that steps are not defined.  I have a CalculatorSteps.ts file with the proper definitions and it is getting imported as per your example.  Can you please leave me some bread crumbs to figure out what I am doing wrong.
Basic Working Example
In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two numbers
I am using a calculator

Basic Working Example
I am using a calculator
Error: No step definition defined.
@step(/^I am using a calculator$/i)
stepName(context: any) {
    throw new Error('Not implemented.');
}

✘ Basic Working Example : Basic Example with Calculator

Basic Working Example
In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two numbers
I am using a calculator

Basic Working Example
I am using a calculator
Error: No step definition defined.
@step(/^I am using a calculator$/i)
stepName(context: any) {
    throw new Error('Not implemented.');
}

✘ Basic Working Example : Second example
Run has finished

Hello... can I see your top level file, where you call the AutoRunner?

import readline = require("readline");
import {AutoRunner, TapReporter} from "../../node_modules/typespec-bdd/src/TypeSpec";
import {Calculator} from "../../src/Calculator";
import {CalculatorSteps} from "./steps/CalculatorSteps";
AutoRunner.testReporter = new TapReporter();
AutoRunner.run(
"/specs/applications/features/basic.feature",
);

I have one slightly odd looking change for you...
import {CalculatorSteps} from "./steps/CalculatorSteps";
Need to be:
import {CalculatorSteps} from "./steps/CalculatorSteps";
Why?!!!
The TypeScript compiler is smart enough to detect an unused import I'm your file and will optimize it away.

That adjusted import statement tells the compiler not to remove it during compilation.
Let me know if you get success with that change.

Nice!!! that did it.  I confirmed the required(....) for the CalculatorSteps is not included in the generated js file when using import {CalculatorSteps} from "./steps/CalculatorSteps", but it is generated when using import "./steps/CalculatorSteps".  I will adopt this import pattern moving forward for all steps.  Thanks for taking the time to explain why this happens.

No problem. I'm adding it to the docs and adding a hint in the output for this too.


Key framework deprecation

Is your feature request related to a problem? Please describe.
The PersistentDataKey and the PersistentDataHolder were originally introduced as a way to easily access persistent data through custom data sources. However this has gone unused since version 4.1.0 and should be deprecated and removed.

Should also target generic Key usages, as these have the same issue as PersistentDataKeys. Existing usages always target a static Map, which should move to service-scoped functionality instead.


Make license mandatory for Rights

As per discussion with @TimDaub, 'license's should be a mandatory field in Rights.

Current coverage is 94.54% (diff: 100%)

Merging #38 into master will increase coverage by 0.34%

@@             master        #38   diff @@
==========================================
  Files            11         11
  Lines           396        403     +7
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            373        381     +8
+ Misses           23         22     -1
  Partials          0          0

Powered by Codecov. Last update 29fe883...c6420a5


doc: Add software architecture diagram and design considerations

Summary

Added SW architecture diagram, with explanations and design considerations.
Screenshots

Changes

Add SW architecture diagram
Add explanations to the different SW layers

Notes for Reviewers

...
Checklist

[x] Scope: The referenced issue is addressed, there are no unrelated changes.
[x] Run Locally: Verified that the docs build using make server, posted screenshots, verified external links.
[x] New Features Marked: Documentation for new features is marked using the new-in-version shortcode, according to the guidelines in CONTRIBUTING.
[x] Style Guidelines: Documentation obeys style guidelines in CONTRIBUTING.
[x] Commits: Commit messages follow guidelines in CONTRIBUTING, there are no fixup commits left.

Closes #43

Thanks @nejraselimovic for the helpful feedback, can you please have another final review, thanks!


Make glossary public

Now that the glossary is paged, i think @pellaea's old PR #1139 is ready to go.
This PR adds a conditional on the nav tabs - you still have to be logged in to edit or create a glossary term, so those tabs don't even display if you're not logged in.

Coverage: 93.594%. Remained the same when pulling 54fe5fe5fd17d8d121ea57bbb82294645dd5a883 on nimmo-make-glossary-public into 9a9574d14b87f9cff3e8833eae3c538f67ec8c02 on main.


Documentation: Not clear libhdfs3 installation instruction

Describe the bug
Documentation is not clear about libhdfs3 installation instructions.
The question I have:
1.Are steps described in "Option1: Overwrite the soft link for libhdfs.so" / "Option2: Add env variable to the system" necessary after installation with Conda?
2. Can I use apt-get installation option as described in hdfs3 official installation instructions
Additional context
I'm trying to create Docker image with Gluten + Velox installation.

The document is copied from Gazelle, it's outdated. PR425 removed it.
We haven't add hdfs support for Velox backed. It's still WIP.


Update to 1.0.10.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

Thanks Björn!