Unable to get newly created App Services using the resources Rest API

Calling the resources List API with or without filters does not return newly created App Services. For example: https://management.azure.com/subscriptions/****/resources?$filters=resourceType EQ 'Microsoft.Web/Sites'&api-version=2022-05-01
However, calling the resource Get API does return the newly created resource. For example: https://management.azure.com/subscriptions/****/resourceGroups/****/providers/Microsoft.Web/sites/****?api-version=2022-03-01
Note, the newly created resource is visible in the Azure Portal under App Services.
Expected Behavior
GET: https://management.azure.com/subscriptions/****/resources?$filters=resourceType EQ 'Microsoft.Web/Sites' AND name EQ '*****'&api-version=2022-05-01
should return the same resource as calling
GET: https://management.azure.com/subscriptions/****/resourceGroups/****/providers/Microsoft.Web/sites/****?api-version=2022-03-01
Actual Behavior
The list method with filter by name does not return the resource.
Steps to Reproduce

Create an Azure App Service
Wait for the resource to be created
Call the List Api

Verify resource is not returned

Call the Get Api

Verify resource is returned

@bfeldmann12 Apologies for the late reply. Thanks for reaching out to us and reporting this issue. We are looking into this issue and we will provide an update.

@bfeldmann12 I created a new webapp and I was able to list my newly created webapp by invoking the List REST API. See below:
Request

GET https://management.azure.com/subscriptions/XXXXXXXXXXXXX/resources?api-version=2022-05-01&%24filters=resourceType eq 'microsoft.web%2Fsites'
Authorization: Bearer eyJ0eXXXXXXXXXXXXX

Response Output

cache-control: no-cache
content-length: 62225
content-type: application/json; charset=utf-8
expires: -1
pragma: no-cache
x-ms-correlation-request-id: 8f985969-XXXXXXXXXXXXX-527e302c786d
x-ms-ratelimit-remaining-subscription-reads: 11998
x-ms-request-id: 8f985969-XXXXXXXXXXXXX-527e302c786d
x-ms-routing-request-id: XXXXXXXXXXXXX-43b5-8b97-527e302c786d

Response Body

<<<<< TRIMMING THE OTHER RESOURCE DETAILS >>>>>>>
{
"id": "/subscriptions/XXXXXXXXXXXXX/resourceGroups/navbawebappdemo/providers/Microsoft.Web/sites/navbawebappdemo",
"name": "navbawebappdemo",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "southindia",
"tags": {
"Reason": "Repro",
"CreatedDate": "8/30/2022 6:27:46 AM",
}
}
<<<<< TRIMMING THE OTHER RESOURCE DETAILS >>>>>>>

Could you please invoke the REST API from the TryIT option available here ? and then serach for your webapp resource in the response ?
Awaiting your reply.

@navba-MSFT, it turns out this issue has to do with stale cached data between regions. We ran into this issue in our Azure DevOps pipelines using the App Service deploy task, so we also opened a ticket with Microsoft Support. Basically, our DevOps instance is hosted in the Central US, while our resources are being deployed to the East US 2 region. The app service deploy task calls the https://management.azure.com endpoints, which route to the Central US APIs since the Az DevOps instance is hosted in the Central US. Unfortunately, the resources being created in the East US 2 can take some time to sync the information for the new resources into the other regions. The sync process between regions can be delayed anywhere from a few seconds to hours, which in our case is the latter. In working with MS support, we've identified that we can avoid this issue by calling the region-specific REST endpoints, so instead of calling https://management.azure.com, we can call https://eastus2.management.azure.com.

@bfeldmann12 Thanks for the update. I am glad that the issue has been isolated with the help of Microsoft support. Please let me know if you need any further assistance on this issue.

Thanks for looking into this @navba-MSFT


Differentiate Similar language

Description
Some pair of language are always at the top of the detection errors:

pt -> es : 13.9375% (error: 1355)
en -> nl : 15.8565% (error: 884)
pt -> it : 5.431% (error: 528)
ru -> uk : 2.4686% (error: 240)

And all of them make sense, dutch and english are really close, same for portuguese and spanish.
The idea is to find a way to reduce the error rate by putting some extra weight on grams in only one language of the pair.

Started to investigate the idea of pre-building small n-gram  dictionaries to identify gram unique to a language in a family.
In the algorithm it would be a 4st steps, at the end of the process.
Example

Make dictionaries like Spanish - Portuguese, English-Dutch-German and identify grams unique to each language in those family.
Then at query time, if a chunk has both Spanish and Portuguese in the possible results, check if they have any of those "Unique" grams and weight the final %

Tried and it was slightly working for some pair of languages, but not for other and even cause some accuracy drop for some.
And overall the result was far from useful, only +0.25% accuracy for lot of dedicated code and data. I decided to give up on that and focus on other area for the moment


chore: setting up gateway tests

We should have a reproducible, deployable gateway testing setup

beefy gateway on a rent-a-server
arbitrary number of DO nodes
Automatic setup for the nodes
a way to put content to nodes en batch (maybe not needed once gateway supports PUT)

We have a gateway orchestration setup and terraform for arbitrary nodes

This task was completed.


fix: Navigation dropdown not loosing focus on other click [desktop only]

Closes: #2853

I get the same result as @Pucek9, however i think this is good enough for now.
Later on we'll probably have to rework this considering main menus should be in fact browsable with keyboard-only navigation where focus should remain throughout all menu items... but that will come later on when we implement Accessibility.
cc @Xymmer

depends on #3275


source_id registration of KNMI-RACMO23E

label
RACMO23E
label_extended
The KNMI Regional Climate Model RACMO, version 23E
source_id
RACMO23E
source_type
ARCM
release_year
2022
activity_participation
DD
institution_id
KNMI
further_info_url
https://cdn.knmi.nl/system/data_center_publications/files/000/071/902/original/KNMI23_climate_scenarios_scientific_report_WR23-02.pdf
What license do you choose?
CC BY 4.0

Thank you, Erik. I assume the model description is the one found in section 2.4 of the further_info_url provided (KNMI'23 scenarios). The final E refers to this specific configuration for Europe, right? (as in the previous CORDEX simulations with RACMO22E and RACMO22T)

Indeed, Jesus, section 2.4 it should be. Perhaps it can be stated "section 2.4 in further_info_url" instead of "further_info_url" only, I don't know if that feasible and/or desirable.
In the previous set of CORDEX simulations I had introduced  RACMO22T for the AFR-50 runs, and RACMO21P for the ANT-50 simulations. So, yes, E can be seen as European, or more generally, mid-latitude. I don't know, though if there will at some point be CORDEX-simulation with RACMO23T and/or RACMO23P. But, in essence, RACMO23E is the natural successor of RACMO22E.

Perfect. I think it is fine. This explanation can also be found if somebody looks for RACMO here in the future. The further_info_url should actually be a URL, so it can stay as is or we could point it directly to https://cdn.knmi.nl/system/data_center_publications/files/000/071/902/original/KNMI23_climate_scenarios_scientific_report_WR23-02.pdf#section.2.4 . If you have later on a more detailed reference, we can always update it.

Okee, let's keep the URL as it is now. When people scroll through the document behind the URL they will quickly see in the contents page where to find the RACMO description. Or they already have read the explanation above.


Make crop_to_bounds work on dates

As stated in the title, crop_to_bounds does not work for non-numeric parameters such as param.Date, returning the default value instead of the cropped value as the name would suggest:
import param
from datetime import datetime

_DATE_BOUNDS = (datetime(2010, 1, 1).date(), datetime(2030, 1, 1).date())
d = param.Date(bounds=_DATE_BOUNDS)

d.crop_to_bounds(datetime(2020, 1, 10).date()) # Returns None

While this behavior is described in the crop_to_bounds docstring, it kind of defeats the purpose of having the function available  on Date parameters in the first place.
The fact that crop_to_bounds accepts all values without returning an error has the potential to cause some hard-to-debug bugs for those who don't carefully read the docstring.

I don't think the behavior for dates was intentional; this is a method on Number and the check for _is_number was just meant to ensure that only suitable values are accepted (no strings, etc.), e.g. from a text input box.  At some point dates were added as a param.Number subtype, but no one noticed that _is_number is no longer appropriate. Because Number subtypes in general won't be able to handle dates, we probably can't safely make_is_number accept dates.  Instead we probably need to provide a specialized implementation of crop_to_bounds for param.Date and param.CalendarDate.  I think this implementation should not just accept dates, but should in fact require dates.
Would you be comfortable implementing that method, so that we can be sure it meets your needs?  I could write it easily but don't often use date parameters in my own work so I might not think of all the cases it should cover.

Would you be comfortable implementing that method, so that we can be sure it meets your needs? I could write it easily but don't often use date parameters in my own work so I might not think of all the cases it should cover.

To be honest I am not a programmer and I am still at my first experiences with Python and Param, but my implementation would look like this:
    def crop_to_bounds(self,val):
        """
        Return the given value cropped to be within the hard bounds
        for this parameter.

        Accepts values of date or datetime type and None (if allow_None = True).

        In case of non-inclusive bounds, the value is cropped to the nearest
        time unit for the type used in the bounds (1 day in case of dates,
        1 microsecond in case of datetime types).
        """
        if self.allow_None and val is None:
            return

        if self.bounds is None:
            return val

        if not isinstance(val, dt_types) and not (self.allow_None and val is None):
            raise ValueError("Date '%s' only takes datetime and date types."%self.name)

        lbound, hbound = self.bounds
        incmin,incmax = self.inclusive_bounds

        if lbound is not None:
            if incmin == True:
                vmin = lbound
            else:
                if isinstance(val, dt.datetime):
                    vmin = lbound + dt.timedelta(microseconds=1)
                else:
                    vmin = lbound + dt.timedelta(days=1)
            if val < vmin:
                return  vmin

        if hbound is not None:
            if incmax == True:
                vmax = hbound
            else:
                if isinstance(val, dt.datetime):
                    vmax = hbound - dt.timedelta(microseconds=1)
                else:
                    vmax = hbound - dt.timedelta(days=1)
            if val > vmax:
                return vmax

        return val

It became a bit longer than expected, but it does handle non-inclusive bounds with both date and datetime types.
The implementation could be a bit simpler for CalendarDate, which to my understanding only supposed to accept date types (not datetime), but it turns out it is possible to use datetime bounds in CalendarDate as well, so at this point I am not quite sure about the difference between Date and CalendarDate.

As far as we can tell, inappropriately inherited behaviour has recently been corrected. This seems like a reasonable, but not urgent.


vuplus <IP_ADDRESS> malfunctionned - jellyfin 10.0.8-beta3 - en-US is an invalid culture identifier

Emby.Server.Implementations.ApplicationHost: Error creating "MediaBrowser.Plugins.VuPlus.LiveTvService"
System.Globalization.CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode
en-US is an invalid culture identifier
[2022-05-28 13:38:36.783 +01:00] [ERR] [1] Emby.Server.Implementations.ApplicationHost: Error creating "MediaBrowser.Plugins.VuPlus.LiveTvService" System.Globalization.CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Parameter 'name') en-US is an invalid culture identifier.    at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride)    at System.Globalization.CultureInfo..ctor(String name)    at MediaBrowser.Plugins.VuPlus.LiveTvService..ctor(ILogger1 logger, IHttpClientFactory httpClientFactory)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Span1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)    at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)    at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)    at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Type type)

Changed Jellyfin docker environment variable <DOTNET_SYSTEM_GLOBALIZATION_INVARIANT> to "0" instead of "1" and the vuplu plugin appears to run and says "active" now.

The plugin seems to be broken with version 10.8. Even with this workaround, no channels / recordings, ... are displayed.
Exception in log is:
Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/LiveTv/Recordings".
System.MissingMethodException: Method not found: 'Void MediaBrowser.Controller.Channels.ChannelItemResult.set_Items(System.Collections.Generic.List`1<MediaBrowser.Controller.Channels.ChannelItemInfo>)'.
   at MediaBrowser.Plugins.VuPlus.RecordingsChannel.GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Channels.ChannelManager.GetChannelItems(IChannel channel, User user, String externalFolderId, Nullable`1 sortField, Boolean sortDescending, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Channels.ChannelManager.GetChannelItemsInternal(InternalItemsQuery query, IProgress`1 progress, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Channels.ChannelManager.RefreshLatestChannelItems(IChannel channel, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Channels.ChannelManager.GetChannelsInternal(ChannelQuery query)
   at Emby.Server.Implementations.LiveTv.LiveTvManager.GetRecordingFolders(User user, Boolean refreshChannels)
   at Emby.Server.Implementations.LiveTv.LiveTvManager.GetEmbyRecordings(RecordingQuery query, DtoOptions dtoOptions, User user)
   at Emby.Server.Implementations.LiveTv.LiveTvManager.GetRecordings(RecordingQuery query, DtoOptions options)
   at Jellyfin.Api.Controllers.LiveTvController.GetRecordings(String channelId, Nullable`1 userId, Nullable`1 startIndex, Nullable`1 limit, Nullable`1 status, Nullable`1 isInProgress, String seriesTimerId, Nullable`1 enableImages, Nullable`1 imageTypeLimit, ImageType[] enableImageTypes, ItemFields[] fields, Nullable`1 enableUserData, Nullable`1 isMovie, Nullable`1 isSeries, Nullable`1 isKids, Nullable`1 isSports, Nullable`1 isNews, Nullable`1 isLibraryItem, Boolean enableTotalRecordCount)
   at lambda_method953(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   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 ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_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 ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
   at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)

Yep. I could not get it to properly work in the end only to not break...disappointing.

Created a pull request for fixes (#10). You could try in the meantime to compile yourself from my repository.

Thanks @neseih
I would love to bring-in your changes to make the vuplus plugin run under jellyfin 10.0.8 but unfortunately I am inexperienced in doing so...
I trust that your changes fixed whats was stopping it from running successfully and you have the plugin running just fine now under your jellyfin-10.0.8 install ?

So in short (I don‘t have acces to my computer)

On your Laptop install .Net SDK 6.
Check out my code with git clone
In a shell or command line run „dotnet build -c Release“ in the MediaBrowser.Vuplus.Plugin folder
In Folder bin/Release copy the MediaBrowser.Plugins.VuPlus.dll to your plugins folder on the synology
Restart Jellyfin

There is another bug in Jellyfin since some time with Recordings. I created an issue with hints in the Jellyfin repo. That should be fixed soon. In the meantime, Live TV should work again 😀

@neseih :
Thank you for your guidance.
With your help I compiled the project on the docker  instance on the NAS. 0 errors , 11 warnings
I got the new  .dll  (80.5KB approx) and the VuPlus plugin is now presenting itself as v<IP_ADDRESS> and does not complain about the  initial "bug" above (  invalid cullture etc....) - Brillant.
Now just need to figure out how to configure the plugin to fetch the relevant bouquet(s)/epg/picon....

The latest release now contains binaries for Jellyfin 10.8 and is referenced in the repository as well.

The latest release now contains binaries for Jellyfin 10.8 and is referenced in the repository as well.

@knackebrot
Thank you for bringing in the changes.
I have an issue when pointing the Jellyfin 10.8 plugin repositories to yuor manifest:
https://raw.githubusercontent.com/knackebrot/jellyfin-repo/master/manifest.json
For a reason or another, only the first version <IP_ADDRESS> is listed in the menu and the version <IP_ADDRESS> that I can see listed in the manifest is not being offered in the plugin repository menu....?
Can the manifest perhaps reverse the order that they are listed starting with <IP_ADDRESS> in case there is a bug in the jellyfin plugin ?

Strange, it appeared to me automatically.

Fair enough...Must be something my end.Thanks for double-checking.


4.x: add AMQP address v2

This is the documentation for https://github.com/rabbitmq/rabbitmq-server/pull/10873

We will be able to review and merge this patch after #1878 which creates the 3.13 docs folder.

The 3.13 docs were branched (#1878). Therefore, this pull request can be rebased, reviewed and merged.

@ansd: I don’t know if it was intentional, but the page added by this pull request is not linked by another page or a sidebar. Therefore it can only be reached by search or by typing the URL. Is it on purpose?

@dumbbell I would like to add the new page to the sidebar. My hope was that this gets done automatically. It looks like I have to manually add the new page to https://github.com/rabbitmq/rabbitmq-website/blob/main/sidebarsDocs.js?

Indeed, the ToC is edited manually to get the order, hierarchy and labels right.
sidebarDocs.js is the correct file to edit. It is divided to target two types of users:

Developers under "How to Use RabbitMQ"
Admins under "How to Manage RabbitMQ" (and "How to Monitor RabbitMQ")

Thanks for spotting this. I added the new page to the sidebar: https://github.com/rabbitmq/rabbitmq-website/commit/1942ef9da56a746658ea47b44a5dbd5231c50d0f


fakeAsync is not working with webpack

I've extended the app.spec.ts with a fakeAsync test.
import {
  it,
  inject,
  beforeEachProviders,
  fakeAsync,
  tick
} from '@angular/core/testing';
import {Control} from '@angular/common';

// Load the implementations that should be tested
import {App} from './app.component';
import {AppState} from './app.service';

describe('App', () => {
  // provide our implementations or mocks to the dependency injector
  beforeEachProviders(() => [
    AppState,
    App
  ]);

  it('should have a url', inject([ App ], (app) => {
    expect(app.url).toEqual('https://twitter.com/AngularClass');
  }));

  it("should rerun the validator when the value changes", fakeAsync(() => {
    var c = new Control("value");

    c.updateValue("expected");
    tick();

    expect(c.valid).toEqual(true);
  }));

});

and got the exception:
TypeError: undefined is not a constructor (evaluating 'new _FakeAsyncTestZoneSpecType()') in /Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js (line 23143)
    fakeAsync@/Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:23143:64 <- webpack:///~/@angular/core/testing/fake_async.js:24:0
    /Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:63422:91 <- webpack:///src/app/app.spec.ts:25:68
    /Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:63413:10 <- webpack:///src/app/app.spec.ts:14:9
    __webpack_require__@/Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:48:34 <- webpack:/webpack/bootstrap c3d4bc0d96fddcbb67fd:47:0
    webpackContext@/Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:63353:29 <- webpack:/src \.spec\.ts:10:0
    map@[native code]
    requireAll@/Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:153:36 <- webpack:///config/spec-bundle.js:56:0
    /Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:157:26 <- webpack:///config/spec-bundle.js:60:0
    /Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:159:35 <- null:0:0
    __webpack_require__@/Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:48:34 <- webpack:/webpack/bootstrap c3d4bc0d96fddcbb67fd:47:0
    /Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:91:37 <- webpack:/webpack/bootstrap c3d4bc0d96fddcbb67fd:90:0
    global code@/Users/thomasfrick/git/angular2-webpack-starter/config/spec-bundle.js:92:12 <- null:0:0

is there an import I miss?

I can confirm this.

Should be solved when #609 gets merged.

done via https://github.com/AngularClass/angular2-webpack-starter/pull/609


Listen for SSDP on Multiple NICs

I read your FAQ and saw the sample for selecting one NIC (ip address) to listen on.  However, I want to listen on multiple NICs simultaneously.  Is that possible?  I think I would just have to create one SsdpCommunicationsServer for each IP Address on the multiple NICs.
What would be the recommended approach to do this?
Thanks.

Hi,
Yes, at the moment you need to create a separate publisher or device locator, using a separate SsdpCommunicationsServer, for each IP.
Finding an alternate solution for this has been on the list for a while, but there are numerous challenges and I do not know if or when I will be able to implement a solution. In the mean time, creating a separate instance for each IP is the only solution I have for you.

ok - thanks


Feature+multilinetask

Fix selection bar when a task is split over multiple lines

Thanks for this useful feature! I have been testing it and like it a lot. I think we need to be careful with making this the default behavior. My guess is that most VIT users would like this to be the default behavior, but I would like for the transition to be smooth.
First, let me explain why I think some (I would guess a minority) VIT users would prefer the current VIT behavior. If you select an annotation in VIT and press "D", it deletes the selected annotation. Further, I'm planning to introduce support for executing commands on annotations (e.g. with "o").  Although I would like to introduce it in an abstract way, I have taskopen https://github.com/ValiValpas/taskopen in mind. If taskopen is executed on a task with more than one annotation that matches a taskopen regex, taskopen asks which annotation you would like to process. Implementing behavior that allows you to run taskopen directly on a selected task would allow the user to skip this extra step.
I believe that most VIT users would prefer the behavior introduced by your patch. And that is why I would like to transition to that as the default.
Ideally, we would expose both behaviors simultaneously to users, so that they could easily switch between selecting tasks and selecting annotations. I wonder if we can rely on Vim for some inspiration. Using jk navigates logical lines in Vim, which is consistent with your patch. Currently, VIT behavior more like Vim's gj, gk, which navigate by screen line. I think this is similar to VIT's current behavior. So perhaps we could experiment with having your patch as the default behavior, and then if a user wants to select an annotation, they can do "gj" and "gk" to navigate among annotations. What do you think about this basic idea? We would want to think about the details, and probably trial and error is the only way to get something that feels right. For example, if the user is on the last annotation of a task, when they press "gj" I guess it should move to the first annotation of the next task?
I think we should consider two possible approaches:
Approach 1: introduce your patch as an opt-in setting (via vitrc) for VIT 1.3, and mention in our release notes that for the release of VIT after this one (that is, VIT 1.4), the option will be turned on by default.
Approach 2: implement the "gj", "gk" approach I outline above.
What are your thoughts?
I have been testing and found some minor bugs with your patch (or they expose bugs that were already present, but hidden, in VIT), which I list below. VIT has many such minor bugs already so I am in some sense being unfair in asking for a polished patch when VIT is far from polished, but hopefully we can eventually make VIT a bit more polished.

H does not work for me if the first line on the screen is an annotation.
Do you think the expected behavior is that VIT selects the first whole task that is shown or that it selects the task associated with the annotation? If the second, then a screen redraw would be necessary, which might feel a little jumpy to the user. But I really don't know what most users would expect.

If I scroll down a few tasks (just enough to force a redraw of the next tasks), and then back up to the start of my task list, the last task in my list is drawn as the first. Can you reproduce?

I have some problems when using search. For tasks with many (e.g. 15) annotations, when I get to them in the search results, they are not highlighted. Can you reproduce?

I came across unexpected behavior when scrolling up when on my screen the first line was of an annotation.
Suppose I have the following drawn on the screen:
--line 1 of my screen: second line of task 40
--line 2 of my screen: first line of task 62
If I currently have task 62 selected, if I press 'k', I get the following:
--line 1 of my screen: first line of task 15
--line 2 of my screen: second line of task 15
--line 3 of my screen: first line of task 40
--line 4 of my screen: second line of task 40
--line 5 of my screen: first line of task 62
task 40 was correctly selected, but I did not expect task 15 to be shown.

On a quick test of "filter" (using the "f" keybinding), the initial selection was not drawn. A simple 'j' or 'k' gets the selection back.

The help needs to be changed accordingly. For example, currently the help for "j" says "move down one line". We might want to wait on updating the help until we agree on what to do for 1.3.

Once we discuss a bit, I think the next step is to see if djp (IRC handle) is willing to join the discussion and help us test. Finally, we can take it to the users and get feedback from them. We don't have a mailing list, but I have the email address of several VIT users and testers. They are a valuable resource that we should involve in this feature.
Finally, let me give a personal thank you! Although I'm hesitant to change the default behavior of VIT for 1.3, I have no doubt that I will personally be using this feature. I don't use "D" to delete annotations.

In testing, I discovered another reason why the current behavior of VIT is useful to me: the color of the task. Sometimes I want to know the color of the task that is selected. One way to get this is to move the selection away quickly (just a quick "j" or "k"), but I use a script where I process tasks one at a time in VIT (this helps me focus). And because there is always a selection, I cannot move it away.
Other than that, testing has gone well and I don't have any further bugs to report. I like it!

Another comment: when marking a task as done, I think it would look better to flash the entire selection. Currently, only the "task part" (i.e. not the annotations) are flashed. I think this is done in
flash_current_task().
I just give this comment in case you agree and if it looks easy to fix. If not, then don't worry about it.

If the last task in VIT's display has an annotation, if the task is selected and I press down again (which should be a noop), if I press up, nothing happens. On a second up, the selection correctly moves up a task. Can you reproduce?

While testing further, I came across a nasty bug: the current patch assumes all tasks have a taskid.  But that's obviously not the case for completed or deleted tasks, so when trying to display those, vit will crash...
I think there is a way to work around this, but it requires changing the input parsing and lookup logic, so I need to spend some time getting this right...

While testing further, I came across a nasty bug: the current patch assumes all tasks have a taskid. But that's obviously not the case for completed or deleted tasks, so when trying to display those, vit will crash...

Ah yes, the ideal patch might be to use UUIDs internally, instead of relying on task IDs. Moving to UUIDs would help with a few issues in VIT. For example, see
https://bug.tasktools.org/browse/VT-17
https://bug.tasktools.org/browse/VT-14
If you thought it would help, I might spend some time (but not sure when) on moving from task IDs to UUIDs. Let me know.

I think there is a way to work around this, but it requires changing the input parsing and lookup logic, so I need to spend some time getting this right...

OK. I'm thinking of moving forward with 1.3beta, and hopefully getting 1.3 out soon. This feature is useful enough that when it is ready we could go to beta quickly in the 1.4 cycle. Do you think that sounds like a good plan? I will look at the other pull requests. Do any of them depend on this one?

While I'm at it, I should also be able to address the other issues you raise. I think definitely that being able to select individual annotations would be a nice feature; I should be able to add that without too much trouble.

Great!

Ah yes, the ideal patch might be to use UUIDs internally, instead of relying on task IDs. Moving to UUIDs > would help with a few issues in VIT. For example, see
https://bug.tasktools.org/browse/VT-17
https://bug.tasktools.org/browse/VT-14
If you thought it would help, I might spend some time (but not sure when) on moving from task IDs to  UUIDs. Let me know.

That would make sense, actually.  I'm just not sure how much work it would be; taskwarrior doen't output the uuids by default after all, so we would need to change the output format of the reports for vit.  It might make more sense to use task export or something like that instead.

OK. I'm thinking of moving forward with 1.3beta, and hopefully getting 1.3 out soon. This feature is useful enough that when it is ready we could go to beta quickly in the 1.4 cycle. Do you think that sounds like a good plan?

Yeah, that's fine.  That would give us some more time to think about how to deal with the issues mentioned above,

I will look at the other pull requests. Do any of them depend on this one?

I don't think there are any dependencies.

That would make sense, actually. I'm just not sure how much work it would be; taskwarrior doen't output the uuids by default after all, so we would need to change the output format of the reports for vit. It might make more sense to use task export or something like that instead.

I see. Yes this would take some time.

I don't think there are any dependencies.

OK I'll look at them in the next few days.

Note that this PR will fix #18.

1.3 branch is no longer receiving non-security updates.


dict & set in Python

Description :
Briefly explain dict & set
Note :
Changes should be made inside the Python/ directory & Python branch.
Issue will be assigned on a first come first serve basis, 1 Issue == 1 PR.
In the PR, keep this issue's title as your PR's title.

Assign me


[Feature request]: Please add --allow-fallback-on-unknown-dc option to simple-run mode

Oh, I just want to enable it, I originally thought it was disabled by default in simple-run mode. :sweat_smile:


Can you add our work which is related to the molecular science / physics?

First of all, thank you for sharing the compilation.
It was challenging to find works on the ICML official site, which was not user-friendly to navigate.
Our recent work, "Gaussian Plane-Wave Neural Operator for Electron Density Prediction," is also related to GNNs for capturing geometrical long-range interactions by considering the adopting the domain specific concept of the molecular science.
If possible, please consider adding our work to your compilation.
Thank you again.
Gaussian Plane-Wave Neural Operator for Electron Density Prediction
https://openreview.net/forum?id=TvoG41N1Y3

Thank you for notifying me. I've included it!


Link does not exist.

Hi, thank you for your outstanding work!
The link provided in the Pipeline Evaluation module of the readme is working: https://cloud.tsinghua.edu.cn/f/799c8c7c44d24c1db2b7/?dl=1. Could you share another one?

s2s-mt5-eae: https://cloud.tsinghua.edu.cn/f/11172c738dd94a48a706/?dl=1
s2s-mt5-ed: https://cloud.tsinghua.edu.cn/f/46a3c30c2bb041d89b9f/?dl=1

Thank you!

As an urgent candidate, perhaps you can try this model (https://huggingface.co/THU-KEG/ADELIE-DPO-1.5B). It's more general and powerful for information extraction, and its scale is similar to the previous one. I will recheck the issues with the old version of the model soon.


Blocks used have all NaN values in UEFI but not in AMD using Fiedka zip release 1.3.4

Hi,
I've just tried the Fiedka Electron app, I'm probably missing some dependencies or step since running npm start led to an error, I thus downloaded the latest zip release and launched it.
I took a binary bios ROM file, I dumped and noticed something weird :

Now, changing from UEFI to AMD shows this :

I wish there were also a channel IRC or Matrix or whatever where I could contact the devs and see with them if this is really a bug, if I should really open an issue or not.

Ugh, I had not come back to this - has long been resolved; the wiring was just missing to actually pass on the size information from the analysis result. :sweat_smile:

6d56301c42f86f597b96e6543f72f6d68fc62713 resolved this.
We do have a Matrix channel by now; https://fiedka.app/ has the link.


multiple reporters

How can I have multiple reporters? I want do add cypress-mochawesome-reporter, but I need to keep junit reporter for the corporate needs

Hey,
I added an example how to use multiple reporters here


[pallas] Documentation for tpu compiler options

The main use for pallas is for tpu, but right now, a lot of options related to TPU compiler is left undocumented and require guesswork.
Documentation for PrefetchScalarGridSpec is incomplete, lacking information about scratch_shapes. jax.experimental.pallas.tpu have no documentation at all. pallas_call's compiler_params also lacks documentation beyond dimension_semantics. It seems possible to pass flags to TPU compiler as seen below, but there's no doc on what flags do, and no list of flags.
https://github.com/google/jax/blob/a8b425cac50c842f66f36903dfb93fe6ad5a2a5b/jax/experimental/pallas/ops/tpu/splash_attention/splash_attention_kernel.py#L1071
With compiler being closed source & no doc available, creating efficient kernel for tpu is rather difficult.

matmul tutorial now covers a bit (commit https://github.com/google/jax/commit/39ec5dacb44c01c130f1c2ab929ff50930a44235 ) about scratch_shapes. In this context 'scratch' refers to a temporary storage space (like scratchpad memory). I believe it works by allocating a small chunk of space in VMEM, which kernel have access to, used in ways much like those _ref.
Seems like all kernel get access to same scratch memory. Unsure how that works when megacore (tpu v4) is involved.

Circling back on this: We've added a new TPUCompilerParams class which has an (incomplete) set of documented options
https://github.com/google/jax/pull/23127. We're still auditing which flags are stable enough to surface to the public API (including the flag that you mentioned) but we will add them here over time.

Also to specifically answer your questions on scratch and megacore (we'll be adding this to the tutorials):
Scratch does work as a "temporary" scratchpad memory as you mentioned - you could also use an output ref in the same way. For megacore configs, each core has it's own VMEM but shares HBM, so it's generally safe to copy from HBM to VMEM but you will need to be careful copying from VMEM back into HBM. (For remote communication, we also recommend issuing remote DMAs from a single core only).


IPinfo Sentinel Solution New Connectors

Required items, please complete
Change(s):

Added 14 new data connectors that use logs ingestion API to ingest data into custom tables.

Reason for Change(s):

New data sets required.

Version Updated:

Yes
3.0.1

Testing Completed:

Yes

Checked that the validations are passing and have addressed any issues that are present:

Need Help to resolve this Fail test case of arm-ttk :
[-] IDs Should Be Derived From ResourceIDs (125 ms)
Property: "id" must use one of the following expressions for an resourceId property: extensionResourceId,resourceId,subscriptionResourceId,tenantResourceId,if,parameters,reference,variables,subscription,guid
Same Issue face in my previous PR #10553

Hello @AhmadMujahid2k, Thanks for raising this PR. This PR will be investigated and we will update you about the same before 29 August, 2024

Invocation log for new Country+ASN data connector.
Country_ASN.csv

@v-prasadboke could you provide an update whether you need any changes from us?
Thank you!

@v-prasadboke could you provide an update whether you need any changes from us (IPinfo)? I will be continuing @AhmadMujahid2k's work moving forward.
Thank you!

Hello @AhmadMujahid2k & @max-ipinfo sorry for the late response. Had some priority tasks on my name.
Right now we are upgrading the Python version of Function apps to 3.11.
We recommend you to upgrade the python version to 3.11 as 3.8 is deprecated and 3.9 & 3.10 will be deprecated soon

I updated all references to Python to version 3.11: https://github.com/Azure/Azure-Sentinel/pull/10981/commits/4ab1e11b0f625c20a0142dfd815f5c1159a750c0
@v-prasadboke are there any other remaining steps you would like me to perform?

@v-prasadboke could you provide an update? We are blocked on this PR to release our Solution offering to our customers.
Thank you.

Hello @AhmadMujahid2k
Getting following error

@v-prasadboke I am unfortunately not up-to-speed with how to test a Sentinel Solution.
Can you share how I can access the web interface you showed in these two last screenshots?
Is there developer documentation I could follow to double-check the validation of our work?
Thanks!

I went through the docs:
https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings#valid-linuxfxversion-values
I see that Python|3.11 is indeed supported:
$ az functionapp list-runtimes --os linux --query "[].{stack:join(' ', [runtime, version]), LinuxFxVersion:linux_fx_version, SupportedFunctionsVersions:to_string(supported_functions_versions[])}" --output table
Stack              LinuxFxVersion       SupportedFunctionsVersions
-----------------  -------------------  ----------------------------
dotnet-isolated 8  DOTNET-ISOLATED|8.0  ["4"]
dotnet-isolated 7  DOTNET-ISOLATED|7.0  ["4"]
dotnet-isolated 6  DOTNET-ISOLATED|6.0  ["4"]
dotnet 8           DOTNET|8.0           ["4"]
dotnet 6           DOTNET|6.0           ["4"]
node 20            Node|20              ["4"]
node 18            Node|18              ["4"]
python 3.11        Python|3.11          ["4"]
python 3.10        Python|3.10          ["4"]
python 3.9         Python|3.9           ["4"]
python 3.8         Python|3.8           ["4"]
python 3.7         Python|3.7           ["4"]
java 21.0          Java|21              ["4"]
java 17.0          Java|17              ["4"]
java 11.0          Java|11              ["4"]
java 8.0           Java|8               ["4"]
powershell 7.4     PowerShell|7.4       ["4"]
powershell 7.2     PowerShell|7.2       ["4"]
custom                                  ["4"]

$ az functionapp list-runtimes --os linux --query "[].{stack:join(' ', [runtime, version]), LinuxFxVersion:linux_fx_version, SupportedFunctionsVersions:to_string(supported_functions_versions[])}" --output table | grep 3.11
python 3.11        Python|3.11          ["4"]

@v-prasadboke regarding your error, I was trying to address your comment asking us to upgrade to Python 3.11. All I did in 4ab1e11 is changing "linuxFxVersion" from "Python|3.10" to "Python|3.11".
I am unfortunately not up-to-speed with how to test a Sentinel Solution:

can you share how I can access the web interface you showed in these two last screenshots?

Go to Azure portal.
Select deploy a custom template
paste the azure deploy file in the edit template section. But before this in the azure deploy file search for "website run from package" and change its value to zip of your repo
after deploying head towards function page and select your function app

is there developer documentation I could follow to double-check the validation of our work?
do I need to regenerate zip files under Solutions/IPinfo? If so, how?

You do not need to regenerate the zip just include all the changes in the zip

Thanks!

Hello @AhmadMujahid2k, Please provide your update on the above

Hello @AhmadMujahid2k, We are waiting for your feedback

Hello @AhmadMujahid2k & @max-ipinfo can you provide us some update on this

We wanted to check on the status of PR #10981 . PR is pending for more than 45+ days. Please let us know if you need any assistance to review this PR. Per our standard operating procedures if no response is received in the next 7 business days, we will close this PR. Thank you for your cooperation.

@v-prasadboke thank you for your message. We would definitely need assistance getting this PR moving again.
Last time I tried, I wasn't able to easily follow your instructions to debug the Python version error you were getting. So we've stuck unable to move it forward.
Any support on your side would be helpful @v-prasadboke . Thank you!

@v-prasadboke I just wanted to let you know that the IPinfo team had a deel-dive call with the Microsoft Sentinel team on Friday December 6, and it gave us great insight into the Sentinel Platform.
I am hoping to make progress on the PR this week. Thank you for your patience!

Thanks for the @max-ipinfo

Hello @AhmadMujahid2k
Can you provide us an update or probably any ETA

Hello @v-prasadboke, sorry for my late reply. I was OOO for the holidays.
I am still working on testing our Sentinel Solution in Azure. Fortunately, I will have some time to continue my testing and expect to provide a concrete update this week.
Thank you for your patience.


Replace objectID with Identifiable.id

Codecov Report

Merging #3 into master will not change coverage.
The diff coverage is 97.34%.

@@           Coverage Diff           @@
##           master       #3   +/-   ##
=======================================
  Coverage   93.46%   93.46%
=======================================
  Files          26       26
  Lines        5114     5114
=======================================
  Hits         4780     4780
  Misses        334      334

Impacted Files
Coverage Δ

...ources/Associations/AssociatedValueReference.swift
96.07% <ø> (ø)
:arrow_up:

FetchRequests/Sources/CWFetchableObject.swift
100% <ø> (ø)
:arrow_up:

...Tests/CWTestObject+CWFetchableObjectProtocol.swift
100% <100%> (ø)
:arrow_up:

FetchRequestsTests/CWTestObject.swift
95% <100%> (ø)
:arrow_up:

...rs/CWFetchedResultsControllerWrapperTestCase.swift
96.59% <100%> (ø)
:arrow_up:

...ntrollers/CWFetchedResultsControllerTestCase.swift
100% <100%> (ø)
:arrow_up:

...s/CWPausableFetchedResultsControllerTestCase.swift
99.34% <100%> (ø)
:arrow_up:

...ources/Controller/CWFetchedResultsController.swift
84.41% <100%> (ø)
:arrow_up:

...sts/Models/CWFetchRequestAssociationTestCase.swift
99.82% <100%> (ø)
:arrow_up:

...urces/Associations/CWFetchRequestAssociation.swift
88.06% <100%> (ø)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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

Merged with ffa2fa7a27cf0c3149425897913f78d939bcf3f4


Operator deployed Prometheus pod is restarting the whole time

What did you do?
Deployed operator with coreos/prometheus-operator/bundle.yaml. Created prometheus object
What did you expect to see?
A healthy prometheus pod
What did you see instead? Under which circumstances?
The prometheus-prometheus-0's containers are restarting (terminating, containercreating, running, termi..) the whole time. I deleted the Operator what made the prometheus-prometheus-0 to stay alive.

 source="storage.go:421"
time="2017-05-21T08:10:28Z" level=info msg="0 series loaded." source="storage.go:432"
time="2017-05-21T08:10:28Z" level=info msg="Listening on :9090" source="web.go:259"
time="2017-05-21T08:10:28Z" level=info msg="Starting target manager..." source="targetmanager.go:61"
time="2017-05-21T08:10:28Z" level=info msg="Loading configuration file /etc/prometheus/config/prometheus.yaml" source="main.go:251"
time="2017-05-21T08:10:31Z" level=warning msg="Received SIGTERM, exiting gracefully..." source="main.go:233"
time="2017-05-21T08:10:31Z" level=info msg="See you next time!" source="main.go:240"
time="2017-05-21T08:10:31Z" level=info msg="Stopping target manager..." source="targetmanager.go:75"
time="2017-05-21T08:10:31Z" level=info msg="Stopping rule manager..." source="manager.go:388"
time="2017-05-21T08:10:31Z" level=info msg="Rule manager stopped." source="manager.go:394"
time="2017-05-21T08:10:31Z" level=info msg="Stopping notification handler..." source="notifier.go:409"
time="2017-05-21T08:10:31Z" level=info msg="Stopping local storage..." source="storage.go:450"
time="2017-05-21T08:10:31Z" level=info msg="Stopping maintenance loop..." source="storage.go:452"
time="2017-05-21T08:10:31Z" level=info msg="Maintenance loop stopped." source="storage.go:1439"
time="2017-05-21T08:10:31Z" level=info msg="Stopping series quarantining..." source="storage.go:456"
time="2017-05-21T08:10:31Z" level=info msg="Series quarantining stopped." source="storage.go:1888"
time="2017-05-21T08:10:31Z" level=info msg="Stopping chunk eviction..." source="storage.go:460"
time="2017-05-21T08:10:31Z" level=info msg="Chunk eviction stopped." source="storage.go:1134"
time="2017-05-21T08:10:31Z" level=info msg="Checkpointing in-memory metrics and chunks..." source="persistence.go:633"
time="2017-05-21T08:10:31Z" level=info msg="Done checkpointing in-memory metrics and chunks in 3.21255ms." source="persistence.go:665"
time="2017-05-21T08:10:31Z" level=info msg="Checkpointing fingerprint mappings..." source="persistence.go:1526"
time="2017-05-21T08:10:31Z" level=info msg="Done checkpointing fingerprint mappings in 4.957027ms." source="persistence.go:1549"
time="2017-05-21T08:10:31Z" level=info msg="Local storage stopped." source="storage.go:477"

kubectl logs -c prometheus-config-reloader prometheus-prometheus-0
ts=2017-05-21T08:11:28Z caller=main.go:227 component=volume-watcher msg=Starting...
ts=2017-05-21T08:11:28Z caller=main.go:202 component=volume-watcher msg="Updating rule files..."
ts=2017-05-21T08:11:28Z caller=main.go:207 component=volume-watcher msg="Rule files updated."
ts=2017-05-21T08:11:28Z caller=main.go:210 component=volume-watcher msg="Reloading Prometheus..."
ts=2017-05-21T08:11:28Z caller=main.go:215 component=volume-watcher msg="Prometheus successfully reloaded."

I'm experiencing the same issue with Kubernetes v1.5.3 and Operator version quay.io/coreos/prometheus-operator:v0.9.1. I have a replica of 2 and the first one is always killed and restarted after ranging from 2 to 4 minutes.

Which operator version did this start with for you?

hmm .. I cannot reproduce .. @21stio can you give us the output of kubectl get pod prometheus-prometheus-0 -oyaml .. maybe the status object can tell us why the container/pod was restarted

@fabxc I'm this image ec264f462e568b53de2519a062c3644d     Image:
@brancz the status object is changing, frequently
apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubernetes.io/created-by: |
      {"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"StatefulSet","namespace":"default","name":"prometheus-prometheus","uid":"d2ef10c8-3df4-11e7-9057-42010a800061","apiVersion":"apps","resourceVersion":"788690"}}
    kubernetes.io/limit-ranger: 'LimitRanger plugin set: cpu request for container
      prometheus'
    pod.beta.kubernetes.io/hostname: prometheus-prometheus-0
    pod.beta.kubernetes.io/subdomain: prometheus-operated
  creationTimestamp: 2017-05-22T11:45:47Z
  deletionGracePeriodSeconds: 600
  deletionTimestamp: 2017-05-22T11:55:49Z
  generateName: prometheus-prometheus-
  labels:
    app: prometheus
    prometheus: prometheus
  name: prometheus-prometheus-0
  namespace: default
  ownerReferences:
  - apiVersion: apps/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: StatefulSet
    name: prometheus-prometheus
    uid: d2ef10c8-3df4-11e7-9057-42010a800061
  resourceVersion: "788723"
  selfLink: /api/v1/namespaces/default/pods/prometheus-prometheus-0
  uid: 32448d2b-3ee4-11e7-9057-42010a800061
spec:
  containers:
  - args:
    - -storage.local.retention=24h
    - -storage.local.num-fingerprint-mutexes=4096
    - -storage.local.path=/var/prometheus/data
    - -storage.local.chunk-encoding-version=2
    - -config.file=/etc/prometheus/config/prometheus.yaml
    - -storage.local.target-heap-size=279620266
    image: quay.io/prometheus/prometheus:v1.6.3
    imagePullPolicy: IfNotPresent
    livenessProbe:
      failureThreshold: 10
      httpGet:
        path: /status
        port: web
        scheme: HTTP
      initialDelaySeconds: 300
      periodSeconds: 5
      successThreshold: 1
      timeoutSeconds: 3
    name: prometheus
    ports:
    - containerPort: 9090
      name: web
      protocol: TCP
    readinessProbe:
      failureThreshold: 6
      httpGet:
        path: /status
        port: web
        scheme: HTTP
      periodSeconds: 5
      successThreshold: 1
      timeoutSeconds: 3
    resources:
      requests:
        cpu: 100m
        memory: 400Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/prometheus/config
      name: config
      readOnly: true
    - mountPath: /etc/prometheus/rules
      name: rules
      readOnly: true
    - mountPath: /var/prometheus/data
      name: prometheus-prometheus-db
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-t2zc4
      readOnly: true
  - args:
    - -reload-url=http://localhost:9090/-/reload
    - -config-volume-dir=/etc/prometheus/config
    - -rule-volume-dir=/etc/prometheus/rules
    image: quay.io/coreos/prometheus-config-reloader:v0.0.1
    imagePullPolicy: IfNotPresent
    name: prometheus-config-reloader
    resources:
      limits:
        cpu: 5m
        memory: 10Mi
      requests:
        cpu: 5m
        memory: 10Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/prometheus/config
      name: config
      readOnly: true
    - mountPath: /etc/prometheus/rules
      name: rules
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-t2zc4
      readOnly: true
  dnsPolicy: ClusterFirst
  nodeName: gke-cluster-1-pool-1-5957ca27-5nwd
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 600
  tolerations:
  - effect: NoExecute
    key: node.alpha.kubernetes.io/notReady
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.alpha.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: config
    secret:
      defaultMode: 420
      secretName: prometheus-prometheus
  - emptyDir: {}
    name: rules
  - emptyDir: {}
    name: prometheus-prometheus-db
  - name: default-token-t2zc4
    secret:
      defaultMode: 420
      secretName: default-token-t2zc4
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: 2017-05-22T11:45:47Z
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: 2017-05-22T11:45:49Z
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: 2017-05-22T11:45:47Z
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: docker://945e9a9b23254c5d5b708637a43a3d03735129a7cec9712e2105fa3c839df147
    image: quay.io/prometheus/prometheus:v1.6.3
    imageID: docker://sha256:bc6b20b76bf998c6bb186949ef10d1bc85927e180f52a6e203438988fe051547
    lastState: {}
    name: prometheus
    ready: true
    restartCount: 0
    state:
      running:
        startedAt: 2017-05-22T11:45:48Z
  - containerID: docker://d3dc8525cecdd93edd81683ffb28f12614c4b70727dce0437cac904f5ca1ba21
    image: quay.io/coreos/prometheus-config-reloader:v0.0.1
    imageID: docker://sha256:50533ddf053d92f17f864be7ea8d30e41b62229ae75b1a0fc3f6c3dcb5a9957b
    lastState: {}
    name: prometheus-config-reloader
    ready: true
    restartCount: 0
    state:
      running:
        startedAt: 2017-05-22T11:45:48Z
  hostIP: <IP_ADDRESS>
  phase: Running
  podIP: <IP_ADDRESS>
  qosClass: Burstable
  startTime: 2017-05-22T11:45:47Z

apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubernetes.io/created-by: |
      {"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"StatefulSet","namespace":"default","name":"prometheus-prometheus","uid":"d2ef10c8-3df4-11e7-9057-42010a800061","apiVersion":"apps","resourceVersion":"789556"}}
    kubernetes.io/limit-ranger: 'LimitRanger plugin set: cpu request for container
      prometheus'
    pod.beta.kubernetes.io/hostname: prometheus-prometheus-0
    pod.beta.kubernetes.io/subdomain: prometheus-operated
  creationTimestamp: 2017-05-22T11:48:22Z
  deletionGracePeriodSeconds: 600
  deletionTimestamp: 2017-05-22T11:58:27Z
  generateName: prometheus-prometheus-
  labels:
    app: prometheus
    prometheus: prometheus
  name: prometheus-prometheus-0
  namespace: default
  ownerReferences:
  - apiVersion: apps/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: StatefulSet
    name: prometheus-prometheus
    uid: d2ef10c8-3df4-11e7-9057-42010a800061
  resourceVersion: "789591"
  selfLink: /api/v1/namespaces/default/pods/prometheus-prometheus-0
  uid: 8e9b14e7-3ee4-11e7-9057-42010a800061
spec:
  containers:
  - args:
    - -storage.local.retention=24h
    - -storage.local.num-fingerprint-mutexes=4096
    - -storage.local.path=/var/prometheus/data
    - -storage.local.chunk-encoding-version=2
    - -config.file=/etc/prometheus/config/prometheus.yaml
    - -storage.local.target-heap-size=279620266
    image: quay.io/prometheus/prometheus:v1.6.3
    imagePullPolicy: IfNotPresent
    livenessProbe:
      failureThreshold: 10
      httpGet:
        path: /status
        port: web
        scheme: HTTP
      initialDelaySeconds: 300
      periodSeconds: 5
      successThreshold: 1
      timeoutSeconds: 3
    name: prometheus
    ports:
    - containerPort: 9090
      name: web
      protocol: TCP
    readinessProbe:
      failureThreshold: 6
      httpGet:
        path: /status
        port: web
        scheme: HTTP
      periodSeconds: 5
      successThreshold: 1
      timeoutSeconds: 3
    resources:
      requests:
        cpu: 100m
        memory: 400Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/prometheus/config
      name: config
      readOnly: true
    - mountPath: /etc/prometheus/rules
      name: rules
      readOnly: true
    - mountPath: /var/prometheus/data
      name: prometheus-prometheus-db
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-t2zc4
      readOnly: true
  - args:
    - -reload-url=http://localhost:9090/-/reload
    - -config-volume-dir=/etc/prometheus/config
    - -rule-volume-dir=/etc/prometheus/rules
    image: quay.io/coreos/prometheus-config-reloader:v0.0.1
    imagePullPolicy: IfNotPresent
    name: prometheus-config-reloader
    resources:
      limits:
        cpu: 5m
        memory: 10Mi
      requests:
        cpu: 5m
        memory: 10Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/prometheus/config
      name: config
      readOnly: true
    - mountPath: /etc/prometheus/rules
      name: rules
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-t2zc4
      readOnly: true
  dnsPolicy: ClusterFirst
  nodeName: gke-cluster-1-pool-1-5957ca27-5nwd
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 600
  tolerations:
  - effect: NoExecute
    key: node.alpha.kubernetes.io/notReady
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.alpha.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: config
    secret:
      defaultMode: 420
      secretName: prometheus-prometheus
  - emptyDir: {}
    name: rules
  - emptyDir: {}
    name: prometheus-prometheus-db
  - name: default-token-t2zc4
    secret:
      defaultMode: 420
      secretName: default-token-t2zc4
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: 2017-05-22T11:48:22Z
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: 2017-05-22T11:48:28Z
    message: 'containers with unready status: [prometheus prometheus-config-reloader]'
    reason: ContainersNotReady
    status: "False"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: 2017-05-22T11:48:22Z
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: docker://84e9b301bac151097b263d1d0328e8b8d23e76d1d4dc260ca45107ae4b7f6208
    image: quay.io/prometheus/prometheus:v1.6.3
    imageID: docker://sha256:bc6b20b76bf998c6bb186949ef10d1bc85927e180f52a6e203438988fe051547
    lastState: {}
    name: prometheus
    ready: false
    restartCount: 0
    state:
      terminated:
        containerID: docker://84e9b301bac151097b263d1d0328e8b8d23e76d1d4dc260ca45107ae4b7f6208
        exitCode: 0
        finishedAt: 2017-05-22T11:48:27Z
        reason: Completed
        startedAt: null
  - containerID: docker://4a16764e09eadc7e71bc1a8d2c4e436b7df46adf12b0e63536fc2ac333a31003
    image: quay.io/coreos/prometheus-config-reloader:v0.0.1
    imageID: docker://sha256:50533ddf053d92f17f864be7ea8d30e41b62229ae75b1a0fc3f6c3dcb5a9957b
    lastState: {}
    name: prometheus-config-reloader
    ready: false
    restartCount: 0
    state:
      terminated:
        containerID: docker://4a16764e09eadc7e71bc1a8d2c4e436b7df46adf12b0e63536fc2ac333a31003
        exitCode: 2
        finishedAt: 2017-05-22T11:48:27Z
        reason: Error
        startedAt: null
  hostIP: <IP_ADDRESS>
  phase: Running
  qosClass: Burstable
  startTime: 2017-05-22T11:48:22Z

For me this also started with 0.9.1. As mentioned when the Operator isn't running after creating a Prometheus instance it works fine (= the container isn't killed).

@galexrt are you also on a GKE cluster?

@brancz I'm on a bare metal Kubernetes cluster (2 masters, 4 nodes; deployed with kubernetes/contrib Ansible; Kubernetes version: 1.5.3).

This suggests that it has to do with the config reload container crashing:
  - containerID: docker://4a16764e09eadc7e71bc1a8d2c4e436b7df46adf12b0e63536fc2ac333a31003
    image: quay.io/coreos/prometheus-config-reloader:v0.0.1
    imageID: docker://sha256:50533ddf053d92f17f864be7ea8d30e41b62229ae75b1a0fc3f6c3dcb5a9957b
    lastState: {}
    name: prometheus-config-reloader
    ready: false
    restartCount: 0
    state:
      terminated:
        containerID: docker://4a16764e09eadc7e71bc1a8d2c4e436b7df46adf12b0e63536fc2ac333a31003
        exitCode: 2
        finishedAt: 2017-05-22T11:48:27Z
        reason: Error
        startedAt: null

Also I'm unsure where these tolerations are coming from:
  tolerations:
  - effect: NoExecute
    key: node.alpha.kubernetes.io/notReady
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.alpha.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300

Although I don't think this has anything to do with it maybe you can try increasing the memory request? Depending on your cluster size 400Mi might be a little too low.

I ran into this problem just now. Where prometheus-k8s-0 was constantly restarting duo to receiving SIGTERM. I traced it down to me having an old prometheus instance running in another namespace. When i removed that one the restarting stopped.

Interesting @Karnich ! Sounds like a deployment did not go through correctly. Can you describe in more detail? Was this a Pod that was left over? A StatefulSet? Was it in terminated state, etc.?

@brancz just tried w/ requests.memory: 1000Mi on the prometheus object, same behaviour..
I can give you access to my cluster, that one is just a playground

@brancz it was a leftover deployment i believe.. I actually do not remember the details.. I just remembered seeing a prometheus pod in a namespace it did not belong to. And i think it was a deployment and replicaset but im not 100%. It was just guess work to remove it and see if it was the reason to the restarting.
It was living well with prometheus-operator 0.8 but was interfering with 0.9. weird part was that if i wanted 2 replicas.. the one with number 1 would come up but 0 would restart indefinitely

Also just deployed v0.8, it's working fine now..

Fascinating, I have multiple clusters running 0.9.1 and have not been able to reproduce. I am currently busy otherwise, does your offer of debugging on your cluster still stand @21stio ?

Same thing happens here too. I tried starting with a fresh cluster and applied the configs again. Same. Weird that as @Karnich said above, pod-0 gets killed but pod-1 runs fine.

After some investigating I found this pullreq https://github.com/coreos/prometheus-operator/pull/331
Seems to be related. After checking what it does (comparing spec), I compared the spec myself doing kubectl describe statefulset prometheus-main and kubectl describe pod prometheus-main-0.
I noticed that the pod had a default value of
Requests:
      cpu:		100m

Which the spec was missing because my spec looks like this:
  resources:
    requests:
      memory: 400Mi

After adding cpu like
  resources:
    requests:
      cpu: 100m
      memory: 400Mi

The pod is not getting killed anymore.
So, the spec/pod diff might be different for you guys but to find out what is missing just describe both.
The algorithm that was introduced in the pullreq should probably be refined to respect defaults or something like that.

Great find @codesuki! That makes a whole lot of sense, I'll make sure we fix and release ASAP.

I love how the changelog says
[ENHANCEMENT] Improved change detection to trigger Prometheus rollout.

The irony... hahaha

Well, it was meant to trigger it more often, looks like we went beyond success with that :P
But seriously, thanks for debugging – fix will follow.

Hahaha yeah, I am not criticizing. Actually had a good laugh 👍

none taken - it is indeed ironic :smile:

great :)

As @brancz pointed out, rolling update support for StatefulSet is planned work upstream (https://github.com/kubernetes/community/pull/503/files), which does basically what we would implement here – just that we have to work around a bunch of complications for that.
I'd propose rolling back the resource part of #331 for now and wait for upstream handling of this. This just means that resource adjustments need to be handled by users for the time being, by sequentially deleting the Prometheus pods, so they get restarted with the new resource requests.

This was fixed by https://github.com/coreos/prometheus-operator/pull/385 and has been released in v0.10.0.


Expose scrape duration and important metrics as Helm variable

Summary
Currently, the configuration of the scrape duration and definition of important metrics are hardcoded.
Desired Behavior
Customers should be able to set up these parameters freely according to their needs.
Possible Solution
Expose these configuration parameters as Helm variables.

Implemented with #89.


refactor: reduce try statements when ref comb obj

Builds on the PR for MSI remote references (#603) by refactoring the coalesce block that has multiple nested try statements to only a single try statement.

We wont merge it as looks like the refactoring is not catching modifcations on plan phases.


Replace use of &&& with flatMap()

In order to build XCHammer with newer dependencies, the use of the deprecated &&& operator needs to be replaced. See https://github.com/antitypical/Result/pull/220
This reduce() appears to have not been working, because it wasn't modifying the inout state.
EDIT: It seems that flatMap() is the correct operation here, not fanout() as I originally had.

@kastiglione awesome - thanks for fixing this! I'm testing it out a few times this morning and will merge shortly 👍


Detail lending trades

We need to show recall, topup, repay history for the trades, add tabs:

Repay
Topup
Recall

Now he have recall record in db, we can implement that tab @khaihkd


Windows Server 2008 R2 two sessions limit

Hi,
I can't connect more than 2 users on Windows 2008 R2 SBS.
RDP Version 6.0.6003 here. Config file: 6.0.6003.20482 and eveything is green.
Regards

You need updates of @fre4kyC0de

I have appended its ini file. Everythig green but still 2 sessions limit.
I have opened an issue there to.

don't forget the mandatory blank line at the end of the ini

I'm having the same problem but with a different config file version.

Only 5 users allowed. Everything is green. *.ini updated. Autoupdate used etc. Please help. winver 1903 latest.


search index in EMBEDDEDLIST doesn't work

Hi
I use OrientDB Server v2.0.13
when I do search in EMBEDDEDLIST field, DB returns me empty result.
Although the result is
orientdb {db=test}> create class test extends V
Class created successfully. Total classes in database now: 13
orientdb {db=test}> create property test.list embeddedlist
Property created successfully with id=1
orientdb {db=test}> ALTER PROPERTY test.list LINKEDTYPE STRING
Property updated successfully
orientdb {db=test}> create index  test.list on test (list) unique
Creating index...
Created index successfully with 0 entries in 0,042000 sec(s).
orientdb {db=test}> insert into test set list = ['one','two']
Inserted record 'test#13:0{list:[2]} v1' in 0,010000 sec(s).
orientdb {db=test}> insert into test set list = ['three']
Inserted record 'test#13:1{list:[1]} v1' in 0,006000 sec(s).
orientdb {db=test}> select from index:test.list
----+------+-----+-----
#   | @ CLASS|key  |rid
----+------+-----+-----
0   |null  |one  |#13:0
1   |null  |three|#13:1
2   |null  |two  |#13:0
----+------+-----+-----
3 item(s) found. Query executed in 0.014 sec(s).
orientdb {db=test}> select from index:test.list where key = 'one'
0 item(s) found. Query executed in 0.002 sec(s).
orientdb {db=test}> select from index:test.list where key = 'three'
0 item(s) found. Query executed in 0.002 sec(s).

this works:

 select from (select from index:test.list) where key='one'

thank you
simple when field has type string, I can get index use single query
orientdb {db=test}> select from index:test.string where key = 'qwe'
----+------+----+-----
#   | @ CLASS|key |rid
----+------+----+-----
0   |null  |qwe |#13:1
----+------+----+-----
1 item(s) found. Query executed in 0.002 sec(s).

@nagarajasr, it is definitely should work since select from index:test.list works.
I understand your message was for test purpose only, because there is no obvious reasons to use index for embedded lists then (except when full scan over index might take less IO operation comparing to 'natural' scan), I think.
Notice that notunique index over embeddedlist field has the same problem.

yes, i agree that there is an inconsistency in the behaviour between index on string property and index on embeddedlist, when using the special index:index_name query target.
while trying out a few queries related to this issue, i made some further observations which may be of help:
orientdb {db=t12db}> insert into test set list = ['one','two']

Inserted record 'test#11:0{list:[2]} v1' in 0.185000 sec(s).

orientdb {db=t12db}> insert into test set list = ['one','two']

Error: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record test{list:[2]}: found duplicated key 'two' in index 'test.list' previously assigned to the record #11:0 RID=#11:0

orientdb {db=t12db}> insert into test set list = ['one','two', 'three']

Error: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record test{list:[3]}: found duplicated key 'two' in index 'test.list' previously assigned to the record #11:0 RID=#11:0

orientdb {db=t12db}> insert into test set list = ['one']

Error: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record test{list:[1]}: found duplicated key 'one' in index 'test.list' previously assigned to the record #11:0 RID=#11:0

orientdb {db=t12db}> insert into test set list = ['two','one']

Error: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record test{list:[2]}: found duplicated key 'two' in index 'test.list' previously assigned to the record #11:0 RID=#11:0

i'm unclear what the behaviour of unique indexes should be in the case of embeddedlists. on the face of it is seems that the 3rd insert statement, with values ['one', 'two', 'three'] should be allowed, as it is technically 'not equal to' the list ['one', 'two']. likewise, the last insert statement with values ['two','one'] should also have been allowed as this is an embeddedlist, not an embeddedset (which is unordered).

Hi, that is output from 2.2 version https://gist.github.com/laa/387557a542846d984af44b6eaf80428f .
According to this output, I tread bug as fixed.


Issue in  Email validation

My very new to angular js. while exploring it , i got this issue.

**I'm submitting a ... bug report **

[ ] bug report
[ ] feature request
[ ] other (Please do not submit support requests here (see above))

Current behavior: If you are validate a email address m@g the result says its true.
Expected / new behavior: Expected
my expection is m@g have to say false. when the input contain (@ .) symbols only it have to say true.
Minimal reproduction of the problem with instructions:

Angular version: 1.x.y

Browser: [all | Chrome XX | Firefox XX | Edge XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Anything else:

Do you use   ?

According to RFC 5321 - 2.3.5:

A domain name (or often just a "domain") consists of one or more components, separated by dots if more than one appears.
[...]
These components ("labels" in DNS terminology, RFC 1035) are restricted for SMTP purposes to consist of a sequence of letters, digits, and hyphens drawn from the ASCII character set.

This means that the part appearing after the @ is allowed to have a single segment.

m@g is a correct email. If you need stricter validation, you can use pattern or use one of the techniques from the forms guide: https://code.angularjs.org/snapshot/docs/guide/forms


[Feature] Updated inference for question generation application

Description
Updated inference for question generation application
Checklist
Please feel free to remove inapplicable items for your PR.

[x] The PR title starts with [$CATEGORY] (such as [Doc], [Feature]])
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage
[x] Code is well-documented
[x] To the my best knowledge, examples are either not affected by this change,
or have been fixed to be compatible with this change
[ ] Related issue is referred in this PR
[ ] If the PR is for a new model/paper, I've updated the example index here.

will submit a new PR.


Fixed incorrect MacIntyre contraction

Fixes #2607.
Hello!

Pull Request overview
A MacIntyre contraction used for NLTKWordTokenizer and TreebankWordTokenizer was incorrectly adapted from the original. I modified two regexes that solve this issue, but this change has some other (potentially positive, potentially negative) consequences for the NLTKWordTokenizer. (In short, the NLTKWordTokenizer looks slightly more like TreebankWordTokenizer for specific cases ending with 'n)

Intro
As I described in https://github.com/nltk/nltk/issues/2607#issuecomment-701323755, and as @nmfzone pointed out, NLTKWordTokenizer and TreebankWordTokenizer incorrectly handle more'n. According to the original tokenizer by Robert MacIntyre, more'n should be split into more and 'n. However, it was split into more, ' and n. Read that issue and the comments before continuing to read this PR.
In case you're interested, this is the original tokenizer.sed by Robert MacIntyre here (converted to .txt so I could upload it here):
tokenizer.sed.txt
The issue
The contraction that handles more'n accidentally handles mor'n instead (line 25):
https://github.com/nltk/nltk/blob/5023d6b933ef1a5b1f25fba1d5ed11a8a43a47e4/nltk/tokenize/destructive.py#L13-L29
I have resolved this issue by making the following change:
r"(?i)\b(more)(?#X)('n)\b",
            ^

However, though this solved the issue for the TreebankWordTokenizer, the issue persisted in NLTKWordTokenizer.
This is because of line 49 here:
https://github.com/nltk/nltk/blob/5023d6b933ef1a5b1f25fba1d5ed11a8a43a47e4/nltk/tokenize/destructive.py#L44-L50
This regex will place a space inbetween any ' and what comes behind, unless what comes behind is whitespace or any item in the following list: re, ve, ll, m, t, s and d. So, would've or she'll stay the same, so that they can be handled by ENDING_QUOTES. However, the n from more'n is not in that list, and is converted to more' n. Then, one of the PUNCTUATION regexes will convert that further to more ' n, and the contraction regex will no longer catch it to convert it to more and 'n.
One fix for this is adding n to the list of characters for which to not add spaces. This is what I've done. This has some consequences for inputs such as "word'n":
Consequences for NLTKWordTokenizer
Old:
>>> from nltk.tokenize import word_tokenize
>>> word_tokenize("It's more'n enough.")
['It', "'s", 'more', "'", 'n', 'enough', '.'] # wrong, `'` and `n` should be grouped together
>>> word_tokenize("It's ore'n enough.")
['It', "'s", 'mor', "'", 'n', 'enough', '.'] # different from new, debatably better
>>> word_tokenize("It's wrong'n enough.")
['It', "'s", 'wrong', "'", 'n', 'enough', '.'] # different from new, debatably better
>>> word_tokenize("It's 'n enough.")
['It', "'s", "'", 'n', 'enough', '.'] # different from new, debatably better
>>> word_tokenize("It's more'd enough.")
['It', "'s", 'more', "'d", 'enough', '.'] # unaffected by this PR
>>> word_tokenize("It's mor's enough.")
['It', "'s", 'mor', "'s", 'enough', '.'] # unaffected by this PR
>>> word_tokenize("It's 'd enough.")
['It', "'s", "'d", 'enough', '.'] # unaffected by this PR

New:
>>> from nltk.tokenize import word_tokenize
>>> word_tokenize("It's more'n enough.")
['It', "'s", 'more', "'n", 'enough', '.'] # correct
>>> word_tokenize("It's ore'n enough.")
['It', "'s", "mor'n", 'enough', '.'] # different from old, debatably better
>>> word_tokenize("It's wrong'n enough.")
['It', "'s", "wrong'n", 'enough', '.'] # different from old, debatably better
>>> word_tokenize("It's 'n enough.")
['It', "'s", "'n", 'enough', '.'] # different from old, debatably better
>>> word_tokenize("It's more'd enough.")
['It', "'s", 'more', "'d", 'enough', '.'] # unaffected by this PR
>>> word_tokenize("It's mor's enough.")
['It', "'s", 'mor', "'s", 'enough', '.'] # unaffected by this PR
>>> word_tokenize("It's 'd enough.")
['It', "'s", "'d", 'enough', '.'] # unaffected by this PR

In words, 'n is now preserved and left untouched, just like 's and 'd, etc. (see the last three examples)
i.e. (.*)'n will stay as ["$1'n"], with one exception: more'n -> ["more", "'n"].
These new results are identical to the TreebankWordTokenizer.tokenize() results with the same inputs.
Consequences for TreebankWordTokenizer
Old:
>>> from nltk.tokenize import TreebankWordTokenizer as word_tokenizer
>>> wt = word_tokenizer()
>>> wt.tokenize("It's more'n enough.")
['It', "'s", "more'n", 'enough', '.'] # wrong, direct consequence of wrong contraction rule
>>> wt.tokenize("It's ore'n enough.")
['It', "'s", 'mor', "'n", 'enough', '.'] # wrong, direct consequence of wrong contraction rule
>>> wt.tokenize("It's wrong'n enough.")
['It', "'s", 'wrong', "'", 'n', 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's 'n enough.")
['It', "'s", "'", 'n', 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's more'd enough.")
['It', "'s", 'more', "'d", 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's mor's enough.")
['It', "'s", 'mor', "'s", 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's 'd enough.")
['It', "'s", "'d", 'enough', '.'] # unaffected by this PR

New:
>>> from nltk.tokenize import TreebankWordTokenizer as word_tokenizer
>>> wt = word_tokenizer()
>>> wt.tokenize("It's more'n enough.")
['It', "'s", 'more', "'n", 'enough', '.'] # correct
>>> wt.tokenize("It's ore'n enough.")
['It', "'s", "mor'n", 'enough', '.'] # correct
>>> wt.tokenize("It's wrong'n enough.")
['It', "'s", "wrong'n", 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's 'n enough.")
['It', "'s", "'n", 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's more'd enough.")
['It', "'s", 'more', "'d", 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's mor's enough.")
['It', "'s", 'mor', "'s", 'enough', '.'] # unaffected by this PR
>>> wt.tokenize("It's 'd enough.")
['It', "'s", "'d", 'enough', '.'] # unaffected by this PR

Unlike for NLTKWordTokenizer, this PR has no sideeffects beyond the intended effect of fixing the one issue for more'n.

Tests
I added the following test, which previously failed, but passes with these changes.
    >>> s11 = "It's more'n enough."
    >>> word_tokenize(s11)
    ['It', "'s", 'more', "'n", 'enough', '.']

Merging this PR should close issue #2607
Whether this PR should be merged depends on your preferences regarding the consequences for NLTKWordTokenizer. Perhaps alternative solutions without these sideeffects are possible too, if the sideeffects are deemed undesirable. However, the sideeffects might be a happy accident, depending on your preferences on the matter.
If the cure is deemed worse than the sickness, then you should still merge the changes to the contraction regex on line 25 of nltk/tokenize/destructive.py, as this will fix the TreebankWordTokenizer with no other sideeffects. (As some of the aforementioned regexes will make it impossible for either the old or the new contraction regex to be matched, for the NLTKWordTokenizer)

Tom Aarsen

Thanks @CubieDev for the careful account. I'm happy for the side effects, given that they are likely to be improvements.


our Wolfgang RoboCup Api can't handle ipv6 adresses

Our node for the RoboCup Api crashes when using an IPv6 adress as simulator IP.
Expected behavior

We should probably use everything until the last ':' for host and only the last one as port.
If this is more complicated, I would be fine if this is closed as won't fix.
Current behavior

File "/home/jonas/git/bitbots/bitbots_meta/rosws/src/bitbots_meta/wolfgang_robot/wolfgang_robocup_api/src/wolfgang_robocup_api/wolfgang_robocup_api.py", line 136, in get_connection
host, port = addr.split(':')
ValueError: too many values to unpack (expected 2)
Steps to Reproduce

set ROBOCUP_SIMULATOR_ADDR=some:ipv6:addr
rosrun wolfgang_robocup_api start.sh goalie 0
look at the error
...

Context (Environment)

[ ] RViz
[X] Simulator
[ ] Robot
[ ] Local

Possible Solution

Software not in use anymore


Prometheus Metrics

Pr fixes for #34
Creating prometheus instrumentation for FFEVM

@Philip-21 thanks for looking at adding the metrics!
Instead of using the prometheus library directly, there is a standard util in firefly-common which can help organise metrics when it grows bigger. An example usage can be found here: https://github.com/hyperledger/firefly-transaction-manager/blob/main/internal/metrics/metrics.go

Thanks for the feedback, i just cloned the repo and i am looking into it

Hey @Chengxuan  please checkout the changes I have made, I  made necessary adjustments for handling the metrics, my main issue is being able to configure the metrics server to run properly, I need your reviews on this please ?
I hope I'm doing the right thing👀

@Philip-21 Thanks for the update. I realised what I explained above wasn't very clear.
FFTM already has a metrics manager and I believe that metrics manager is the one that EVM connect should use for collecting metrics so that the custom metrics collected in EVM connect are served at the same metrics server as other metrics.
https://github.com/hyperledger/firefly-evmconnect/blob/main/cmd/evmconnect.go#L102 is where EVM connect uses FFTM to initialize the HTTP & metrics server.
There is already an example showing how Tx Handler registers and emits its custom metrics in https://github.com/hyperledger/firefly-transaction-manager/blob/main/internal/metrics/metrics.go through txHandlerMetricsManager.
Therefore, EVM connect could follow the same pattern. e.g. there can be a new evmMetricsManager, and a new interface
similar to https://github.com/hyperledger/firefly-transaction-manager/blob/main/pkg/txhandler/txhandler.go#L76

Hey @Chengxuan I have created Evm handlers for handling  and emitting metrics, Please have a look on how i defined them and configured them to run and initialize in the evmconnect.go  file

Hi @Philip-21 , Thanks for giving it another try.
The MetricsRegistry that is hooked up with the API server (which is defined in FFTM code) is created in here: https://github.com/hyperledger/firefly-transaction-manager/blob/main/internal/metrics/metrics.go#L47.
Therefore, as a consumer of that library, FF evmconnect need to find a way to emit metrics using a MetricsManager that belongs to the MetricsRegistry defined in FFTM code.
In this PR, a new MetricsRegistry is created here but it's not hooked up with any API that is defined in FFTM code, so the collected metrics will be in an isolated registry and won't be exposed to any REST API endpoint.

Hi @Philip-21 , Thanks for giving it another try.
The MetricsRegistry that is hooked up with the API server (which is defined in FFTM code) is created in here: https://github.com/hyperledger/firefly-transaction-manager/blob/main/internal/metrics/metrics.go#L47.
Therefore, as a consumer of that library, FF evmconnect need to find a way to emit metrics using a MetricsManager that belongs to the MetricsRegistry defined in FFTM code.
In this PR, a new MetricsRegistry is created here but it's not hooked up with any API that is defined in FFTM code, so the collected metrics will be in an isolated registry and won't be exposed to any REST API endpoint.

Thanks for the feedback, i will make adjustments

I've ben unable to import the metrics registry from the fftm to be used for the Evmmetrics manager, since the metric registry for the fftm is located in the internal package i am unable to import and use it, leads to an import error , i am still figuring out a better approach to this

@Philip-21 one option is to use a public interface and implement the internal object with the required methods then pass through it to evmconnect during initialization. But other proposals are welcome as well.
You might want to take a look at https://github.com/hyperledger/firefly-transaction-manager/blob/543a25094959495265d042083db8120169fcecf2/pkg/txhandler/txhandler.go#L76 , I feel that interface is generic enough to be re-used as it doesn't contain transaction handler specific knowledge.

Hey @Chengxuan , I think  its best we use the txhandler.TransactionMetrics, for handling various prometheus metrics methods. instead of creating EvmTransactionHandlerMetrics.
But does txhandler.TransactionMetrics have a way of swapping signature contents which will  initialize the Prometheus Api instance defined in FFTM code.

Hi @Philip-21 here is an example of adding event metrics in FFTM repo: https://github.com/hyperledger/firefly-transaction-manager/pull/121 which could be a useful learning point for adding metrics for EVM connect.

Hi @Philip-21 here is an example of adding event metrics in FFTM repo: hyperledger/firefly-transaction-manager#121 which could be a useful learning point for adding metrics for EVM connect.

Alright looking through ........

Closing this PR for now as it seems the work has been parked. Please feel free to re-open when you continue @Philip-21 👍


[Storage] Fix #9158: Cannot generate a working SAS key from a policy

Description

For container/blob generate-sas, if the specified policy already contains expiry or permissions info, add --expiry or --permissions in generate-sas command will generate invalid sas token.
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Storage

Storage


Create an untyped API that works on [u8] slices

Brief feature description
Create an untyped API that works on [u8] slices.
Detailed information
Add allocates method to the publisher impl like
pub fn allocate(length: usize) -> SampleMut<[u8]> {}

pub fn allocate_aligned(length: usize, alignment: usize) -> SampleMut<[u8]> {}

The subscriber shall also be able to work with slices.
This should enable us to expose &mut [u8] and have a nice compatibility with the bytes::BufMut trait from the bytes crate

@neilisaac this will not be part of v0.1 but I plan to have this as soon as possible in v0.2


Rename provider types to provider traits in database

Summary
This kicks off the concept change by renaming the database entries of
provider types to be provider traits instead. This term reflects better
the intention.
Change Type

[ ] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[x] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Outline how the changes were tested, including steps to reproduce and any relevant configurations.
Attach screenshots if helpful.
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

Moving to draft since https://github.com/stacklok/minder/pull/2275 might merge first.


Skipped Tests show empty

When a test is skipped, it still has a report generated (it shouldn't), and that report shows in the detailed log (it shouldn't)

Completed via PR #180


Is It necessary yet ?

The functionality of ModernHttpClient (i.e Native SSL/Tls) is now built into Xamarin and can now be configured at the platform level as per below links:
iOS - https://docs.microsoft.com/en-us/xamarin/cross-platform/macios/http-stack
Android - https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/http-stack?tabs=windows
is this project fulfill something further?

@candidodmv yes it does.
Xamarin HttpClient stack doesn't support:

Native Cookie handler
Timeout
Disabling caching
Web Proxy
And the more important one: Mutual TLS Authentication (MTLS).

This library also supports cleartext http and self-signed certificates which can be very useful in testing environments. Both properties help to identify if developers are shipping insecure applications while automating build pipelines.
I talked to @jamesmontemagno during the #XamarinDevSummit about merging what this branch offers into the original one. It can also means bringing it to the Xamarin Stack.

@candidodmv 230K+ downloads in Nuget, and counting.
That is saying something no?

That's great! Now after your details it's possible to figure out where this project aims to accomplish.
There's a misconception between those solutions mainly because of they are has the same name, what follows up to understand that is the same thing.
But, will be really  very important this project to atached iwth Xamarin Stack to avoid any other confusion.
moreover, another reason there's a lot of article linking to the previous version of this library https://github.com/anaisbetts/ModernHttpClient, by the way It seems was discontinued.

By this project name you can figure it out that it is a branch from the original one created by Paul Betts, which he hasn’t been able to update in a few years. That’s why i took over and created it.


Investigate implementing metrics using a single global array

Currently, any pelikan server needs to create a large struct containing all the metrics individual systems need in order for the majority of the metrics functionality to work. It would be convenient if new metrics could be registered in a more distributed fashion so that main doesn't need to know about every metrics type.
On the other hand, main and other places - such as the admin server - still need to have a way to see all the metrics.
However, if all the relevant metrics are in rust then it should be possible to use the linkme crate to build a distributed array while still letting individual implementations access metrics as-if they were globals.

is this issue still open? I am not too familiar with rust but I think this would be interesting to look into.


Migrate data from old version to this instance

We have a bunch of data for ElderPlinius, Tarvis Devor, Brec, and Dethaele in the backend of https://www.osrs-stats-visualizer.net/. This is stored in an RDS MySQL database. How to query it: https://github.com/awerchniak/viz_osrs/blob/master/src/Components/QueryCreator.jsx.
Figure out how to migrate this data into our dynamo table in this application

https://aws.amazon.com/getting-started/hands-on/break-free-from-legacy-databases/migrate-sql-server-to-amazon-dynamodb/

query reference: https://github.com/awerchniak/viz_osrs/blob/master/src/Components/QueryCreator.jsx

Performed migration for ElderPlinius between 5:40-9:00 EDT. As it took over 3 hours, I don't plan to migrate data for other users. Additionally, only skills data was migrated as activities columns have shifted and the data is thus not parsed correctly (ref #6).
See attached image for write capacity. Temporarily bumped to 20 for the migration but scaled back down to 5 following (we should have 25 for free, per article).


After export only black screen

My animation doesn't export correctly. After export there is only a black screen and nothing happens. But should be a confetti animation.
I checked animation demo in browser.
There is aep: https://www.dropbox.com/s/st49udmn1mzyvf5/Confetti_Pack copy.aep?dl=0
(Mac os, After Effects <IP_ADDRESS>, Bodymovin 4.10.1)

Hi, unfortunately bodymovin doesn't support those effects.
Sorry :/


add @hashmap.T::iter2

This PR added missing @hashmap.T::iter2

Pull Request Test Coverage Report for Build 4169
Details

7 of 8 (87.5%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.009%) to 80.833%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

hashmap/utils.mbt
7
8
87.5%

Totals

Change from base Build 4159:
0.009%

Covered Lines:
4500

Relevant Lines:
5567

💛  - Coveralls


support Catalyst v13

@anandijain , any idea why it fails on v1.6 - pull_request but works on v1.6 push? Any idea why it is the other way round for v1? I thought the only difference between pull_request and push is when the test are triggerd. But it seems there is also a difference in how these tests are run.

why it fails on v1.6 - pull_request but works on v1.6 push

I think that one is the branch and the other master after merging this.

The invalidation check seems to error at the second stage, when running on the default branch (as reference), but I'm not sure why.


Export ToCode?

Right now, I cannot write a function that uses Multibase.encode . encodeAtBase base where it takes base as an argument because I cannot write the ToCode class restriction, since that class is not exported.

You shouldn’t be able to construct a Base value for which no ToCode instance is defined, though (or that’s an oversight).
I agree this whole code-table approach poses a bit of an expression problem. The issue is that we want to unambiguously decode from an code value known only at runtime, and preserve the “open world” assumption. I can’t see an obvious way to have both, except perhaps by capturing the table itself. That is, a partial isomorphism of the set of encodings supported by an implementation / application. Would this make sense?

Jun 3, 2020 7:42:45 AM Kim Altintop<EMAIL_ADDRESS>
You shouldn’t be able to construct a Base value for which no
ToCode instance is defined, though (or that’s an oversight).

The problem is that I cannot write the type signature for my function,
not that I need to define a new instance.

Ah. That we can rectify.


explicit types

For reasons that escape me, if I add a reveal_type(deprecated_classifiers) to __init__.py, mypy says:
$ mypy src/
src/trove_classifiers/__init__.py:817: note: Revealed type is "builtins.dict[builtins.str, builtins.object]"
Success: no issues found in 2 source files

But object isn't very helpful here.  So this MR makes the types completely explicit.

Thanks!

Thanks @dimbleby for the fix upstream! And thanks @di for that extremely fast release!