text:
If UseWebpackDevMiddleware gets back an error from Node during app startup, it fails to surface good error information

Exception occures when adding app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions {HotModuleReplacement = true}); to Configure()
Node: 6.2.2
SpaServices: 1.0.0-beta-000009
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)    at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)    at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)    at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)    at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder app)    at Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)    at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()    at Microsoft.AspNetCore.Hosting.Internal.WebHost.Initialize()    at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()    at AurelaTestProject.Program.Main(String[] args) in D:\downloads\AurelaTestProject\src\AureliaTestProject\Program.cs:line 14

So i got this sorted. The exception is actually from here:
https://github.com/aspnet/JavaScriptServices/blob/dev/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs#L66
But it did not bubble to the surface so I could actually read the actual message, so that might be something someone should look at.

Thanks for reporting that! I'll look into whether we can better report exceptions that occur in that location.

In the current version, we do surface such errors (at least in the cases I'm aware of). If anyone can still repro disappearing error messages, please let us know!

authors: SteveSandersonMS leak

repo: aspnet/JavaScriptServices


text:
Re-rendering with serialized data sent to browser

Angular Universal indicates it can be configured to send serialized cached data to the browser.  I would love to take advantage of this feature, but cannot see where to start.
I'm assuming I understand this feature correctly. My hope is that if my first route requires DataA and DataB to be loaded, that these are queried for during the re-rendering on the server, and then somehow sent to the browser so that these do not have to be queried again.
Here's where I find the feature mentioned on Angular Universal.
https://universal.angular.io/overview/

In your boot-server.ts file, you can change the resolve call so that it also supplies a globals value, e.g:
const myData = { ... your stuff here ... };
resolve({
    html: html,
    globals: { myData }
});

Then, in boot-client.ts, you can access window.myData to get the data transferred from the server. You can use this to initialise your application however you want.
In the ReactRedux template, this is all set up for you, because there's an official "correct" way to do it. In the Angular template, it isn't set up for you, because there's no single official way to do it - the type of data you're transferring, and how to initialise your application with it, will depend on you. Hope that helps!

source: gharchive/issue

authors: SteveSandersonMS larstbone

license_type: permissive

license_source: github-api


text:
Make some new Kestrel types internal

There were some new public types added to Kestrel between 2.0 and 2.1 that don’t need to be exposed. We should make them internal to alleviate back compat concerns going forward.

@muratg This is already approved by the ship room, right? If so, I can merge #2543 once @davidfowl approves the PR.

repo: aspnet/KestrelHttpServer


text:
Simplify connection lifetime control flow [dev]

Same as #1776 but for merging into dev.

Why not just merge back from rel/2.0.0-preview1?

@cesarbs That's exactly what I plan to do. I just wanted to see the tests passing since travis and appveyor don't run for PRs merged into non-dev branches.

AllowCertificateContinuesWhenNoCertificate failed

#1776 now targets the dev branch.

source: gharchive/pull-request

authors: cesarbs davidfowl halter73


text:
Create common manifest file

Addresses: https://github.com/aspnet/MetaPackages/issues/172
This will trim additional packages such as runtime.win-arm64.runtime.native.system.data.sqlclient.sni

:up::date:

repo: aspnet/MetaPackages


text:
Cannot use nameof(XController) in asp-controller tag helper

Similar to issue #2586
I'm speaking specifically to tag helpers here, though, and I think this is something developers might reasonably expect to be possible:
About
The workaround of not using the Controller suffix on HomeController doesn't work, it just throws a CompilationFailedException with The name 'HomeController' does not exist in the current context
It seems wrong that C# 6 adds the nameof operator specifically to avoid magic string problems just like this one, and MVC 6 fails to take advantage of it, for what would surely be a quick check to see whether or not a string ends with "Controller".
It is also inconsistent, because the asp-action="@nameof(HomeController.Action)" works fine. The reason why may be obvious to some developers, but to many it won't be.

Technically asp-action="@nameof(HomeController.Action)" is problematic as well because you might have [ActionName("Foo")] on your action.
Using nameof in this way is may work in some cases (ex you name your controller "Home" instead of "HomeController") but nameof is not aware of the Application Model and so cannot work in all cases.
What we could do is consider providing an API that allows you to get the controller name or action name based on a type.

Another place where this would be really helpful is the asp-for attribute. For example <input asp-for="@nameof(Model.PropertyName)" />. As of rc1-final, I get the following exception when I try this.
System.InvalidOperationException: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
   at Microsoft.AspNet.Mvc.ViewFeatures.ExpressionMetadataProvider.FromLambdaExpression[TModel,TResult](Expression`1 expression, ViewDataDictionary`1 viewData, IModelMetadataProvider metadataProvider)
   at Microsoft.AspNet.Mvc.Razor.RazorPage`1.CreateModelExpression[TValue](Expression`1 expression)
   at Asp.ASPV__Views_Xxx__YyyPartial_cshtml.<<ExecuteAsync>b__24_0>d.MoveNext() in /Views/Xxx/_YyyPartial.cshtml:line 4
--- End of stack trace from previous location where exception was thrown ---

Closing because we have no plans to support this.

authors: Eilon danroth27 markrendle toddlucas

repo: aspnet/Mvc


text:
Append file version does not work when href/src contains a url with query string

Example:
This works

Output:

This produces 500

Expected output:

Same applies for Link and Script tag helper

6213354b85ee4b0e7c42d0eb64fc76447e28e9fb


text:
Highlight sterling performance work

I'd just like to extend my personal thanks to @rynowak and team for the amazing performance strides being made in MVC.

cc @DamianEdwards @SajayAntony
:smiley_cat:

@danroth27 should we move this to the Backlog? :smile:

Oh, and where do I log the same bug but to thank @benaadams for all his hard work and contributions???

:blush:

:+1:

:fireworks:  :+1:  :heart_eyes:

@Eilon my great hope is one day people will move past the defeatist argument that it doesn't matter because "my database is slow". That's like saying I might as well use php in interpreted mode because "my database is slow". There is so much more potential to the platform!
We were going custom for the performance; but we've come back to aspnet because of the improvements in Kestrel; and now we are coming back to to the full stack for the great strides in performance and direction of MVC. So I just wanted to say thank you.
Also saves us a bunch of work :wink:

It begins... https://stevedesmond.ca/blog/performance-is-paramount /cc @stevedesmond-ca

:+1: :yum:

LOL @ the timing of this -- I was trying to find the time to finish that post for days!
But seriously, thanks! I wish I had the cycles to contribute more directly, but you're all doing great work!

@stevedesmond-ca great blog post!

:blush:

Closing because this is an old discussion. We always appreciate the kind words 😄

authors: Eilon MJomaa PureKrome SajayAntony benaadams ctolkien rynowak stevedesmond-ca


text:
BodyModelBinder should make use of model providers when binding models

Currently only ComplexModelBinder is making use of other model binders when binding model properties, while BodyModelBinder is relying on underlying formatter to convert values.
If we have a look at the example of custom model binder described here, it will only work for route values, and not if we have a FromBody model with Author type property which has to be bound from data source.

Could probably pass <Type,IModelBinder> dictionary in InputFormatterContext, which would keep backwards compatibility with IInputFormatters that haven't implemented support for this yet.
As for json, that would create a JsonConverter that would attempt to read value as string and pass to corresponding IModelBinder, but preserving correct ModelBindingContext could be an issue.
Also, Newtonsoft.Json does not support async deserializating in JsonConvert yet.

Thanks for contacting us, @lil-Toady.
@dougbu, can you please look into this? Thanks!

Hi, @dougbu !
I'll try to explain what I'm proposing in detail:
Currently model binding from route values, query string, headers goes by getting the values from IValueProvider which comes in ModelBindingContext and instantiating corresponding models. But that is not the case when we want to bind model from body.
Say we have our models:
public class Foo {
    ...
}
public class Bar {
    public Foo Foo { get; set; }
}

and create our custom model binder FooBinder for Foo, which binds it in our own specific way (say retrieving the value from storage, as in the linked example). An action that accepts Bar will work great, as ComplexModelBinderProvider will give ComplexModelBinder all the binders required to bind properties of Bar, including our custom binder.
But that is not the case if we're trying to bind Bar from body, because BodyModelBinder will outsource all the instantiation to IInputFormatter, that will further pass it to JsonSerializer, XmlSerializer etc. as you mentioned.
Now, if I want the same Bar model to be bound from body, I need to get in depths of IInputFormatter implementation. For example, if it's json, I would have to write a custom JsonConverter that would do the same thing as FooBinder, but now retreiving values from JsonReader; and the same for all the other input formatters supported.
What I'm suggesting is letting IInputFormatters feed values to corresponding IModelBinder during deserialization, instead of letting them do all the work. So in the end when JsonSerializer hits Foo type that we know we have a IModelBinder for, instead of attempting to completely deserialize it itself, it will create an IValueProvider and ModelBindingContext for model binders to take the values they need.
Of course I'm not suggesting to do that at the level of the deserializers themselves, but rather handle at IInputFormatter implementation level, which in case if json (just as an example, again) could work by adding a JsonConverter that will do all the work of providing the values back to instances of IModelBinder that we have.

if I want the same Bar model to be bound from body, …

As long as Bar is the topmost class that's bound from body, create a custom model binder for Bar that takes an IModelBinder and have the corresponding model binder provider pass a BodyModelBinder instance.

Instead of letting IInputFormatter implementations do the model binding themselves, they should rather work as value providers for the model binding infrastructure.

It's already possible to use [FromBody] and / or BodyModelBinder to bind (input format) properties of a higher-level model. This change would fundamentally alter what a value provider is and does. And, it is not necessary for your scenario.
We have no plans to revise the way model binding uses input formatting and input formatting uses framework-provided and external serializers.

Please let us know if you hit any issues using the BarBinder approach.

Thanks for contacting us. We believe that the question you've raised have been answered. If you still feel a need to continue the discussion, feel free to reopen it and add your comments.

authors: dougbu lil-Toady mkArtakMSFT


text:
Simplify instrumentation confirmations in RazorPageExecutionInstrumentationTest

test class can now use the MvcTestFixture

#3139 part 3 of 3

dump instrumentation data at end of _Layout.cshtml

include FilePath in display
compare against new .html resource

nits:

normalize line endings to CRLF for consistency with other tests
add InstrumentionData to avoid Tuple
make TestPageExecutionContext class private
remove newly-unused actions and associated .cshtml files

/cc @pranavkm @rynowak

:shipit:

a69a7a6

authors: dougbu pranavkm


text:
Improve Angular sample project

Ideas:

Some useful 'gulp watch'-style auto-compilation
Karma-based test runner

I'll look into improving the build system after it's possible to update to a newer version of Angular 2, because then it might be possible to remove the inlineNg2Template step.

The auto-compilation is now handled via Webpack. It's not hugely useful to bring in Karma for the sample, but we should look into it for the templates instead.

repo: aspnet/NodeServices


text:
chunkingcookiemanager leaks unused chunks

There seems to be a bug in Microsoft.AspNetCore.Authentication.Cookies.ChunkingCookieManager when used in conjunction with CookieAuthentication.  What I've seen is that as the size of the Authentication cookie changes the number of chunks needed to the accommodate the cookie data will change as well.  If the number of cookies needed decreases, then chunks that are no longer needed are not being cleaned up.
Normally this isn't a big deal, but I'm currently running in a system that has a hard limit on the header size of 10240 bytes.  The specify scenario I'm running into has the Authentication cookies going from 2 chunks (3 total cookies) to 1 chunk (1 cookie).  This has the added bonus of replacing the value in the cookie that previously stored the chunk count (really small), to now storing the entire Authentication Ticket (relatively large), in turn nearly doubling the amount of header space consumed by the Authentication cookie.
It seems like it could be beneficial to have ChunkingCookieManager  expire these "vestigial" as it's setting the new chunks on the response.

What triggers the resize, a direct call to SignIn? The workaround would be to preceed that with a call to SignOut.

I haven't actually been able to diagnose that yet, because it doesn't happen consistently.  What I can say is that it's not tied to a SignIn or SignOut action because the users are in the middle of an active session using the application.  This leads me to believe/fear, that something else in one of the middle-ware's is manipulating and dropping some of the claims in the Authentication Ticket, but I can't see where.  If that's the case this becomes a different issue for me, though it doesn't necessarily take away from this issue.

I've figured out why the Authentication Cookie is changing size.  We're using OIDC and OAuth in our application, OIDC to manage login, and OAuth to call services outside the application.  For this to work, we had to implement code to perform sliding expiration on the Access Token used in the OAuth flow so that we would always have a valid access token during a valid application session.
The service we're calling to get and refresh the tokens doesn't always return tokens of the same size.  Now, it's entirely possible that such behavior is invalid, but I don't have control over that service so it is what it is at this time.  This combined with the fact that our Authentication cookie is right on the boarder of being 4K in size means that as the size of the tokens changes it could push us above or below the threshold for needing to chunk the Authentication Cookie.

As far as I know SignIn doesn't come into play.  The refresh logic happens in the OnValidatePrincipal event of the CookieAuthenticationOptions.  The tokens are then updated on the AuthenticationProperties of the CookieValidatePrincipalContext using the StoreTokens method.

Ah, you set CookieValidatePrincipalContext.ShouldRenew?

No.  We're not explicitly renewing the cookie in the event because we set SlidingExpiration to true when we setup the Cookie Authentication Middleware.  Keeping in mind that we're using OIDC to log in via an identity provider then using the AccessToken provided by that identity provider to call Api's that are external to the application, but secured by the same IdentityProvider.  The application is not using the AccessToken in the cookie to secure itself, because it doesn't need to.  We're only keeping it around to facilitate the Api calls.  As such I'm not aware of a way to tell the Oidc Middlware to maintain an unexpired cookie.  Thus why we implemented our own code inside OnValidatePrincipal.  Here's what that looks like
//properties is of type Microsoft.AspNetCore.Authentication.AuthenticationProperties passed in from the HttpContext
var refreshToken = properties.GetTokenValue(OidcConstants.TokenTypes.RefreshToken);
var expiresAt = GetExpiresAtUtc(properties);
var utcNow = DateTime.UtcNow;

if (!string.IsNullOrWhiteSpace(refreshToken) &&
    expiresAt.GetValueOrDefault(DateTime.MaxValue).Subtract(utcNow) < _renewTimespan)
{
    var tokenResponse = await RefreshAccessToken(refreshToken);

    //The initial token we get at login has an expiration that's precise to the second, so for consistency we'll do the same for renewals
    var utcNowTrimmed = new DateTime(utcNow.Ticks - (utcNow.Ticks % TimeSpan.TicksPerSecond), utcNow.Kind);
    var newExpiration = utcNowTrimmed.AddSeconds(tokenResponse.ExpiresIn).ToString(DateFormat);

    properties.StoreTokens(new List<AuthenticationToken> {
        new AuthenticationToken
        {
            Name =  OidcConstants.TokenTypes.AccessToken,
            Value = tokenResponse.AccessToken
        },
        new AuthenticationToken
        {
            Name = OidcConstants.TokenTypes.RefreshToken,
            Value = tokenResponse.RefreshToken
        },
        new AuthenticationToken
        {
            Name = OidcConstants.TokenTypes.IdentityToken,
            Value = tokenResponse.IdentityToken
        },
        new AuthenticationToken
        {
            Name = OidcConstants.TokenResponse.TokenType,
            Value = tokenResponse.TokenType,
        },
        new AuthenticationToken
        {
            Name = ExpiresAtTokenName,
            Value = newExpiration
        }});

If we've gone off the rails on the implementation here, then we're open to ways to simplify the code as well.

Updating properties is fine, but those changes arn't saved anywhere unless you call SignIn or ShouldRenew. You could get lucky and make this change on a request that naturally triggers a sliding refresh, but don't count on it.

Ah, I did find where we're calling ShouldRenew, it's just one layer up in the stack from where the code above was.  Anyway, I think we've gotten a little side tracked.  Thinking about the SingOut + SignIn workaround you mentioned, I assume SignOut will expire the old cookie followed by SignIn to issue a new one.  Are there other side effects we should be aware of if we go that route?

Note SignOut will apply a redirect in some scenarios.
I guess you could also call DeleteCookie directly:
https://github.com/aspnet/Security/blob/42dd66647dd389c242ff796a530b880c7b9d7a90/src/Microsoft.AspNetCore.Authentication.Cookies/CookieAuthenticationHandler.cs#L363-L366

This certainly sounds like a bug. It would make sense for the cookie manager to clean up unnecessary cookies as part of setting the new cookies.

Quick follow up.  For a workaround I did try using DeleteCookie prior to calling AppendCookie, I actually ended up wrapping ChunkingCookieManager in a new implementation to do this inside the new classes AppendCookieMethod and setting the new class as the CookieManager in startup.  Anyway, This worked great locally, but when we deploy to our AWS env's it caused issues.  It appears the order in which the Set-Cookie headers is sent back may not be guaranteed, or was manipulated by the AWS infrastructure.  So Calling Delete followed by Append could create multiple Set-Cookie headers for the same cookie leading to unexpected events.
So instead I created a helper method that would inspect the Request cookies and the Response cookies for a given key and remove any that existed in the Request but not the Response.   I think called this helper method in the wrapper class after calling the base AppendCookie Method.  This worked across all our envs:
public class CleanChunkingCookieManager : ICookieManager
{
	private const string ChunkSuffix = "C";

	private readonly ChunkingCookieManager _innerCookieManager = new ChunkingCookieManager();

	public void AppendResponseCookie(HttpContext context, string key, string value, CookieOptions options)
	{
		_innerCookieManager.AppendResponseCookie(context, key, value, options);
		RemoveVestigialChunkCookies(context, key, options);
	}
       ...
	private static void RemoveVestigialChunkCookies(HttpContext context, string key, CookieOptions options)
	{
		var deleteOptions = new CookieOptions
		{
			Domain = options.Domain,
			Path = options.Path,
			HttpOnly = options.HttpOnly,
			IsEssential = options.IsEssential,
			Expires = DateTime.UnixEpoch,  //Jan 1, 1970 forces deletion
			MaxAge = TimeSpan.Zero,  //Max age is zero.  Secondary value to force deletion
			SameSite = options.SameSite,
			Secure = options.Secure
		};

		string searchString = $"^{key}({ChunkSuffix}\\d+)?";
		var requestChunkNames = context.Request.Cookies.Keys.Where(k => Regex.IsMatch(k, searchString));

		var responseCookies = context.Response.Headers["Set-Cookie"];
		var responseChunkNames = responseCookies.Where(v => Regex.IsMatch(v, searchString)).Select(v => Regex.Match(v, searchString).Value);

		var vestigialChunks = requestChunkNames.Except(responseChunkNames);
		foreach (var chunkName in vestigialChunks)
		{
			context.Response.Cookies.Append(chunkName, string.Empty, deleteOptions);
		}
	}
}

authors: Eilon Tratcher patrick-hampton-avalara

repo: aspnet/Security


text:
Skip tests on Mono if KOREBUILD_TEST_SKIPMONO is set.

This change will enable us to run tests on CoreCLR on the CI.
cc @muratg @Eilon @victorhurdugaci

Why not use the FrameworkSkipConditionAttribute?

@victorhurdugaci Because I'd have to put it on every test in every repo. We want to be able to run tests on CoreCLR only across the board. The idea is to have two CIs per non-Windows system, one where we run tests on Mono and another where we run tests on CoreCLR.

Can you wait until I merge the dotnet support (1h or so) and then make the same change in _dotnet-test too?

Sure.

Ping.

:watch:

Checking for 1 or true per @Eilon's order :grin:

:shipit:

authors: cesarbs dougbu victorhurdugaci

repo: aspnet/Universe


text:
Update install section of documentation

This PR updates the install section of the documentation. The installation guide on the website should be directed to the documentation.
Questions:

Is the issue with M1-chipped Apple computers still there?
Linux is supported, but no installation guide for Linux users on the website.

Todo:

[ ] server installation docs
[ ] style troubleshooting section

Is the issue with M1-chipped Apple computers still there?

Yes. Not 100% sure, but I think there are still some issues.

Linux is supported, but no installation guide for Linux users on the website.

https://asreview.nl/download/ there is!

@J535D165 The installation guide for Linux is the same as that for macOS on the website, but Miniconda has Linux installers. Should we separate them?

Most Linux distros have Python installed. And the users are probably familiar with installing Python packages. I dont think we need any action for the website atm.

@J535D165 The issue #738 and the workaround are based on installing ASReview LAB in DEVELOPMENT mode. Is it an issue with doing pip install asreview?

Oef, yes this is super tricky now development is merged. This requires a hotfix to the docs and website indeed.

Oef, yes this is super tricky now development is merged. This requires a hotfix to the docs and website indeed.

I mean the issue states that the installation from the local git repo by pip install -e . will encounter the issue. A recent comment mentioned pip install asreview worked.

I mean the issue states that the installation from the local git repo by pip install -e . will encounter the issue.

Yes I know. That's not what we want.
I just tried to reproduce it on my M1, and still having the issue with sklearn (the main problem).

@J535D165 Another question: we instruct users to check the Python version by python --version, but Linux and macOS ship with Python 2 (if I am still right). In this case, python3 --version should be used to check the version. Also, pip3 is used. For example, see TensorFlow.

@J535D165 Is server installation a part of Install with pip?

I dont think so. True, it is usually installed with pip, but you dont want to bother 99% of the users with ports and hosts.

I dont think so. True, it is usually installed with pip, but you dont want to bother 99% of the users with ports and hosts.

Makes sense. It can also be installed with Docker on a server?

The installation guide on the website should link to the documentation showing Docker and server installation options.

Thank you for the reminder! After the release, I will update the website so that the hyperlinks do not get messed up.

Most of your changes are incorporated in #971 now. Thanks for all the valuable suggestions. If there is anything missing, please let me know.

authors: J535D165 Rensvandeschoot terrymyc

repo: asreview/asreview


text:
Prevent compiler warning when using extracting with SoftAssertions

I'm not sure about the "fix".
However, it seems we use the same way in ObjectAssert class:
https://github.com/assertj/assertj-core/blob/14cd17293c62376abc8c762084819a1e08db1520/src/main/java/org/assertj/core/api/ObjectAssert.java#L43-L48
Because SoftAssertions (Java6StandardSoftAssertionsProvider) is building a ProxyableObjectAssert I added an override on the extracting method to be able to use the annotation @SafeVarargs on it.
Check List:

Fixes #2161
Unit tests : YES
Javadoc with a code example (on API only) : NA

It seems that broke something 💥 . I will check that later.

We haven't found a good solution to get rid of these annoying warnings.
Soft assertions implementation is based on proxying and collecting the assertion errors, final method can't be proxied as bytebuddy can't replace (AFAIK) final methods or classes. Now @SafeVarargs requires methods to be final so we can't use it in the soft assertion context, we used it for regular assertions as you can see in ObjectAssert but not for soft assertions that use ProxyableObjectAssert.
One might think that extracting does not need to be proxied since it does not perform any assertions but it needs to, extracting returns an assertion instance (AbstractListAssert) that needs to be proxied so that the chained assertions error are captured.
If only @SafeVarargs was allowed on non final methods, it would be usable for soft assertions and we would have had to introduce ProxyableObjectAssert and co, this is a major pain in the ass for me just to get (partially) rid of these warnings.

Reading these comments I got a potential idea. What if we mark the method as public final and annotate it with @SafeVarargs in the AbstractListAssert and then delegate that to a new method:
protected AbstractListAssert<?, List<?>, Object, ObjectAssert<Object>> extractingForProxy(Function<? super ACTUAL, ?>... extractors) {
   // Do the same logic as before
 }

I think that ByteBuddy can then proxy the extractingForProxy method in the class that it creates. There will of course be warnings in the AssertJ codebase, but not in the user code.
We could even do it generically in the place where we create the proxies by looking for a method names <methodName>ForProx if the <methodName> is annotated with a @SafeVarargs

That's an interesting idea, worth a shot! thanks @filiphr

I've tried to implement @filiphr idea. It seems not working but I'm not sure that I understood everything 😅
I've extracted extractingForProxy protected method in AbstractObjectAssert to be able to mark the public method extracting as final.
However, the same test is failing 💥  I suppose it is related to ByteBuddy not able to proxy the protected method 🤔

@jgiovaresco have a look in the SoftProxies here. I think that you need to tell ByteBuddy not to proxy methods annotated with @SafeVarargs, or better not final methods. Not sure whether ByteBuddy handles that automatically or not.

Actually, the problem is in something else. Look at this. There is something special happening for the extracting method. I think that you need to add the extractingForProxy method there as well, and also make sure that protected such methods are also handled.
You'll need to play with the ByteBuddy interceptors

I had some spare time and went ahead and did https://github.com/assertj/assertj-core/pull/2163. That should cover all possible compiler warnings in user code. Sorry for taking it over @jgiovaresco. As I mentioned in the PR, I am completely fine in giving the entire contribution to you.

authors: filiphr jgiovaresco joel-costigliola

repo: assertj/assertj-core

license_source: bigquery


text:
DatePicker: Pas d'update de la valeur si on presse 'enter'

Description
Si on a saisie une date complète au clavier mais qu'on ne blur pas le champ, quand on appuie sur 'enter' le formulaire est soumis avec la valeur précédente (pas de valeur dans notre cas)
Comment reproduire
Mettre un date picker dans un v-form
saisir une date au clavier
ne pas quitter le champ et appuyer sur 'enter'
la valeur soumise n'est pas celle saisie
Comportement attendu
lors du enter il faut que la valeur interne soit mise a jour avant que le formulaire soit soumis
Environnement

Librairie :  @cnamts/synapse-bridge
Version : 3.0.5
Navigateur : Chrome

Priorisation

Prioritaire

Projet
GEDI Pallier 1
Contacts
Benjamin Borlet

Merci pour ton retour. Le sprint ayant déjà démarré. On embarquera cette issue dans le sprint du 26/11 au 16/12.

@bborlet Ce besoin est-il urgent et doit-il être, de ce fait, prioritaire ?
Une release du Bridge devrait être possible semaine prochaine et nous pouvons, selon la complexité rencontrée, essayer d'intégrer cette issue.

Pas de priorité par rapport a d'autre issues. Je te laisse voir avec Romain qui pourra faire l'interface avec les PO comme cela m'a été expliqué.

@bborlet : A tester sur la version 3.0.7 du DS

authors: DavidFyon bborlet valentinbecquet

repo: assurance-maladie-digital/design-system

license: MIT


text:
Default Support

Resolves #60

Thank you for the change!

Heyo @georgyangelov @AGalabov could we cut a release some time soon? Not urgent but I would love to get some of the new schema features into my repos 😃

@samchungy yup same. But having in mind it will be 3.0.0 we wanted to merge all our needs. We just need that last PR that is open.
We'll try to get it done by the end of today/week. By the way if you have any input there - please share it 😃

authors: AGalabov georgyangelov samchungy

repo: asteasolutions/zod-to-openapi


text:
patterns returned by functions used in pattern-matching contexts

Asteroid should support something like the following,
function foo
   with *g() do -- g returns a pattern that we use in the with clause.
      <something>
  end

where patterns returned from functions should be able to be used in pattern matching contexts.
Another example,
let v = x is *goo().

The variable v is either true or false depending if the term stored in x matches the pattern returned
by goo or not.

If we're planning on allowing this, would we also want:
let v = x is *my_structure @ a.
let w = x is *my_structure @ foo().

absolutely!  Basically, anything that can hold or return a value should be able to be dereferenced because it could be a pattern!

authors: lutzhamel olwmc

repo: asteroid-lang/asteroid


text:
Is there any intention of implementing IMPALA?

FAIR has an implementation in Pytorch here if it would help -- https://github.com/facebookresearch/torchbeast/

rlpyt can only be used in one single machine, from my point of view, I think rlpyt's owner will not make it run on multiple machines.
Comparing to rlpyt, the PolyBeast, which is "somewhat harder to install" according to FAIR, I think rlpyt is really too too too easy to install/setup and more friendly.

A single node implementation of IMPALA is also included, and could be helpful

Hi!  This is right that rlpyt as it stands is single-node only, and there's only one set of neural net parameters.  I'd have to go back and look more closely but I think this means the importance sampling in IMPALA would all just go to 1?  This could change if running in asynchronous mode, where there is one optimizer agent and one sampling agent, which can be slightly lagged.  This can probably be handled by PPO.  (note: async policy gradient isn't currently implemented, would need to make PPO build a replay buffer and learn from it like DQN)
Open to other thoughts/reasons, though!

@astooke I think the workflow would be to create aysnchronous sampling for PG, then implement V-trace algorithm and importance sampling. Totally fine if this is not in the roadmap. Just wondering

Ok good question!  It's crossed my mind to implement it, but is not yet a priority.
Would need to find a compelling use case (i.e. the problem is big) in policy gradient where the time spent sampling is roughly equal to the time spent optimizing, so the asynchronous mode could give up to a 2x speedup.  This was the case for the R2D2 re-implementation, where it brought experiment time down to ~140 hours.  It might also take some effort to tune replay hyperparameters to keep good learning performance...something that had been done for us already in the R2D2 work.

Yeah I think Impala is stronger for the multi-node case

Right, no immediate plans for IMPALA, closing this for now but please reopen if a new use case comes up :)

authors: astooke codelast tarungog

repo: astooke/rlpyt


text:
Cannot mount on macOS in normal mode

I'm using macOS 10.14.3 with google-drive-ocamlfuse version 0.7.3, installed by opam.
It installed normally without any error.
osxfuse is installed by macport with version 3.8.3.
However, when I execute google-drive-ocamlfuse ~/G, and ls ~/G.
It showed ls: G: Device not configured.
So I use umount -f ~/G with no error, and try google-drive-ocamlfuse -verbose ~/G.
The ~/.gdfuse/default/curl.log showed nothing, but ~/.gdfuse/default/gdfuse.log showed this.
[0.001509] TID=0: Setting up default filesystem...
[0.001567] TID=0: BEGIN: Saving configuration in /Users/tonypottera/.gdfuse/default/config
[0.001911] TID=0: END: Saving configuration in /Users/tonypottera/.gdfuse/default/config
[0.001922] TID=0: Loading application state from /Users/tonypottera/.gdfuse/default/state...done
Current version: 0.7.3
Setting up cache db...done
Setting up CURL...done
[0.009140] TID=0: google-drive-ocamlfuse didn't shut down correctly.
Cleaning up cache...done
Setting up cache db...done
...[0.017965] TID=0: Starting flush DB thread (TID=1, interval=30s)
Refresh token already present.
[0.018016] TID=0: Starting filesystem /Users/tonypottera/G
[0.070632] TID=2: init_filesystem
[0.070806] TID=2: BEGIN: Getting root folder id (team drive id=, root folder=) from server
[0.071618] TID=2: BEGIN: Getting root resource from server

And nothing happened no matter how long I wait.
ls ~/G also still showing ls: G: Device not configured.
So I use umount -f ~/G to unmount it, and try google-drive-ocamlfuse -debug ~/G.
It seems working now.
I can use ls to see files and folders in my Google Drive.
But I can only see folders in it when I use macOS built in Finder.
Please help!

I have the same issue. Do you still have the problem?

Yes, I update it by opam today, and still in same condition.

repo: astrada/google-drive-ocamlfuse

license: mit


text:
False positive with PLE4703 and immediate return / break

Not the biggest deal, but I got a false positive on this with:
λ cat x.py
def foo():
    s = {1, 2, 3}
    for e in s:
        if e >= 3:
            s.remove(e)
            return

λ ruff check --select PLE x.py --preview
x.py:3:5: PLE4703 Iterated set `s` is modified within the `for` loop
  |
1 |   def foo():
2 |       s = {1, 2, 3}
3 |       for e in s:
  |  _____^
4 | |         if e >= 3:
5 | |             s.remove(e)
6 | |             return
  | |__________________^ PLE4703
  |
  = help: Iterate over a copy of `s`

Found 1 error.
No fixes available (1 hidden fix can be enabled with the `--unsafe-fixes` option).

cc @boolean-light in case you're interested, and thanks for the new rule :-)

Thanks!

Struggling not to get sniped into fixing this.

Hmm that makes sense. It would be nice to use the control flow graph for this because I assume there are other situations where the loop exits early (continue, break, raise etc) that aren't covered and they might be more subtle.

Excuse me I'm back :D Thank you, and let me have a look on this.

I'm working on this right now, should I exclude warning for unreachable code like this?
s = {1, 2, 3}
for i in s:
    break
    s.discard(i)

Sorry, actually I don't think I can implement this one by myself. Is there some kind of support for control flow group in Ruff already?

No, there's not. That's what I meant by my comment. We probably want to wait for a more complete control flow analysis or decided to only support a very small subset of control flow patterns for now.

authors: MichaReiser boolean-light charliermarsh hauntsaninja

repo: astral-sh/ruff


text:
FURB152 should look at additional digits to reduce false positives

For example, it'll trigger on the following program
x = 2.7139914879495697

I think the rule should avoid erroring if there are additional decimal digits that do not match, so:
bad1 = 2.7182
bad2 = 2.7183
good1 = 2.71824
good2 = 2.71820001

Trying to figure out what the best approach is here. I may need to look at what other tools do. E.g., what if the user rounds at some decimal point?

Thanks! Issue description mentions how I think rounding should be done; I opened a PR for this at https://github.com/astral-sh/ruff/pull/9290

authors: charliermarsh hauntsaninja


text:
Unable to activate VIRTUAL_ENV when CONDA_PREFIX exists

I'm trying out uv, together with hatch-pip-compile (and hatch). venv creation works fine, and speed is significantly faster, great!
Except when I try to run command with created virtual env, error raises
(base)  test-hatch-pip-compile$ hatch run default1:python
error: Both VIRTUAL_ENV and CONDA_PREFIX are set. Please unset one of them.

The error message is clean, that's great, and I can fix it on my computer in 5 seconds (conda deactivate).
I just wonder if there is any difficulty makes this "user action" necessary?
Here is the hatch.toml (very likely unrelated imo since hatch is just an invoker and after I deactivated conda environment everything looks ok)
[env]
requires = [
    "hatch-pip-compile",
]

[envs.default]
path = ".venv/default"

[envs.default1]
path = ".venv/default1"
type = "pip-compile"
pip-compile-installer = "uv"
pip-compile-resolver = "uv"

Thank you!

@konstin - Thoughts?

We could have VIRTUAL_ENV take precedence over CONDA_PREFIX if the python in PATH is from that venv; I'm not sure what behavior conda users would expect.

We could have VIRTUAL_ENV take precedence over CONDA_PREFIX if the python in PATH is from that venv; I'm not sure what behavior conda users would expect.

This'd be useful, same error came up when using Rye when the global python comes from Conda.
Having a base conda/mamba env activated is useful for one-off scripts (Rye is a bit new to use everywhere).

This also happens if you try to have uv be installed globally with pixi via pixi global install uv.
The easy alternative is just to globally install uv itself, but it is nice to have pixi global be able to manage all your tools with a pixi global upgrade-all.

We could have VIRTUAL_ENV take precedence over CONDA_PREFIX if the python in PATH is from that venv; I'm not sure what behavior conda users would expect.

When conda is activated it can be considered a globally available Python, therefore when a virtual environment is activated in a conda environment it is equivalent to a virtual environment being activated when there is a system install, the virtual environment should take precedence.
This has come up a few of times on pip issues, I'll try and find the discussion .
But anecdotally when I was a heavy conda user this is what I would have expected.

authors: YuShigurey ananis25 charliermarsh konstin matthewfeickert notatallshaw

repo: astral-sh/uv


text:
Add constraints.txt export to uv export

Constraints files are a little different... Specifically, every requirement has to be named, so we can't write relative paths. (You also can't include extras, but we already don't do that.)

Hm. An export of the pyproject.toml constraints?

No, it’s an export of the lockfile in constraints.txt format. requirements.txt files support things that constraints files do not. You can’t export in requirements.txt format and pass it as constraints.

I've had this line in every rye-based Dockerfile for the last few years to work around this.
RUN sed -i '/^-e ./d' requirements.txt

@carderne -- If you structure your project as a non-package (i.e., omit a [build-system] or set package = false under [tool.uv]), that line should be omitted from the export.

Sorry maybe I crossed a wire. To be super explicit, this works:
uv init --package foo
cd foo
uv sync
uv run python -c 'import foo'

But if I set tool.uv.package = false then I obviously can't import foo.
I want foo to be installed in the venv, but I don't want it in the constraints file, as pip rejects that.
(Happy to have a thumbs up and go on my way, I might be derailing the point of this thread.)

authors: carderne charliermarsh zanieb


text:
uv equivalent to running "python -m"

I want to migrate to uv, and my actual project is under an "app/" folder, and we use python -m app.main.py to run it.
How can I achieve the same command using uv?

Generally, you'd use uv run python -m app/main.py — does that work for you?

Related https://github.com/astral-sh/uv/issues/6638

It'd be the same, but with uv run instead of poetry run.

Yes it works! sorry for not seeing the related github issue before

authors: tomaszbk zanieb


text:
fail to run  uvx --with="psycopg[binary,pool]" pgcli --help after upgrade to 0.5.0

❯ uvx --with="psycopg[binary,pool]" pgcli --help
error: Failed to parse: `psycopg[binary`
  Caused by: Missing closing bracket (expected ']', found end of dependency specification)
psycopg[binary
❯ uv --version
uv 0.5.0 (Homebrew 2024-11-07)

it works at 0.4.x

Looks like a bug although I don't think it's new in v0.5. It works for me in v0.4.20, but not in any of the ten releases between then and v0.5.

Regressed in #7909 where we started to support --with "flask, anyio".

Oh that's a disappointing side-effect.

authors: charliermarsh zanieb zuisong


text:
Prefer smaller wheels when priority is unset

Summary
Closes https://github.com/astral-sh/uv/issues/7216.

Files an issue upstream for the tensorflow problem: https://github.com/tensorflow/tensorflow/issues/75415
Imo this is blocking since it breaks tensorflow.

Is the new resolution any more wrong / right than the old?

The windows package is a stub, just forwarding to tensorflow-intel, while the unix package is a real tensorflow package that users want to install and whose deps users want to have, so i consider the unix one more correct.

That makes sense, thanks @konstin. Do you think the heuristic is a lost cause? Or should we special-case TensorFlow in some way? Something else?

Either way we choose, i believe tensorflow should consolidate their metadata, since coherent metadata is a core assumption in universal resolvers such as poetry. What we do with the PR depends on how much problems the current heuristic causes for our users: If the current behaviour causes trouble, add a workaround for tensorflow and merge. If it doesn't, i'd favor not adding package-specific workarounds and wait until tensorflow has fixed their metadata and that propagated through the ecosystem (and then doing this change).

I don't think it's necessarily causing problems. It can wait (at least for a response). But it will continue to be wrong for older versions no matter what.

authors: charliermarsh konstin


text:
Feature(cli): Add service versions to version command

The hard coded service versions will now also be printed when running the astria-go dev version command.

Tested locally and verified that both astria-go dev version and astria-go dev versions work and return
astria-go dev versions

Default Service Versions:
cometbft:         v0.38.8
astria-sequencer: v0.15.0
astria-composer:  v0.8.1
astria-conductor: v0.19.0

repo: astriaorg/astria-cli-go


text:
Update CODEOWNERS

Update CODEOWNERS based on Astronomer organizational changes and new committer.

wondering why we have 2 codeowners files?

I think the original motivation was for changes to the CI, that could incur a cost to Astronomer, to have to be reviewed by someone from Astronomer

repo: astronomer/astronomer-cosmos


text:
capitalization conventions

@duncandc - With the addition of the group aggregation calculation, it is finally an issue that we need to start using a consistent capitalization convention. The same convention should be adopted in the groups keys and the halos keys.
In particular, under what conditions should a key name contain a capitalized letter? I have been using no capital letters for any halo key, e.g., 'id' denotes the halo ID, and 'vmax' denotes V_{\rm max}.
I know this seems trivial, but this is the sort of that we should decide on now rather than wait until it becomes a bug, because it will become a bug with 100% certainty, and there will be far more code to write in the future than now.

We agreed to always use lowercase, this should now be considered resolved.

repo: astropy/halotools


text:
Update Windows install

Try if Script folder is in the path Windows, otherwise put the full path.

when will this be merged?

authors: gavinkalika hugoesb

repo: asweigart/pyautogui


text:
Fix #139 XLNet example with IMDB fails

This was due to a bug in the IMDB processor which resulted in an empty dataset being created, which caused the PyTorch built-in sampler to raise an exception.

Just a clarification, other processor's _create_examples(data_dir) (Like Yelp) which take path as argument don't face this problem, right? Other than that, this looks good to me.

@AvinashBukkittu Yes, the IMDB processor is the only one that takes a directory path. Others should be fine.

authors: AvinashBukkittu huzecong

repo: asyml/texar-pytorch


text:
async-profiler not working with alpine based containers running on graviton instances

I am trying to profile an application from inside a kubernetes pod.
Pod is running on aws graviton instances. We are using alpine base image for containers.
/app # uname -r
5.10.210-201.852.amzn2.aarch64
/app #
/app # cat /etc/alpine-release
3.17.5

When I run, i get following error:
tmp/async-profiler-3.0-linux-arm64 # cd bin/
/tmp/async-profiler-3.0-linux-arm64/bin # ./asprof 1
Target JVM failed to load /tmp/async-profiler-3.0-linux-arm64/bin/../lib/libasyncProfiler.so

java -agentpath:/tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so=start,summary,flat -version gives following output
/tmp/async-profiler-3.0-linux-arm64/bin # java -agentpath:/tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so=start,summary,flat -version
Picked up JAVA_TOOL_OPTIONS: -XX:+ExplicitGCInvokesConcurrent -Xms4G -Dkotlinx.coroutines.scheduler=off
Error occurred during initialization of VM
Could not find agent library /tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so in absolute path, with error: Error loading shared library libstdc++.so.6: No such file or directory (needed by /tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so)

After adding libstdc++.so.6, running into following error:
/tmp/async-profiler-3.0-linux-arm64/bin # java -agentpath:/tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so=start,summary,flat -version
Picked up JAVA_TOOL_OPTIONS: -XX:+ExplicitGCInvokesConcurrent -Xms4G -Dkotlinx.coroutines.scheduler=off
Error occurred during initialization of VM
Could not find agent library /tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so in absolute path, with error: Error loading shared library ld-linux-aarch64.so.1: No such file or directory (needed by /tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so)

/tmp/async-profiler-3.0-linux-arm64/bin # ls /lib/
apk/                    ld-musl-aarch64.so.1    libc.musl-aarch64.so.1  libssl.so.3             libz.so.1.2.13          modules-load.d/
firmware/               libapk.so.3.12.0        libcrypto.so.3          libz.so.1               mdev/                   sysctl.d/
/tmp/async-profiler-3.0-linux-arm64/bin # ls /lib/ld-musl-aarch64.so.1
/lib/ld-musl-aarch64.so.1

Tried adding gcompat, but it did not help.
/tmp/async-profiler-3.0-linux-arm64/bin # apk add gcompat
(1/3) Installing musl-obstack (1.2.3-r0)
(2/3) Installing libucontext (1.2-r0)
(3/3) Installing gcompat (1.1.0-r0)
OK: 318 MiB in 22 packages
/tmp/async-profiler-3.0-linux-arm64/bin # ls /lib/
apk                     ld-linux-aarch64.so.1   libapk.so.3.12.0        libcrypto.so.3          libssl.so.3             libucontext_posix.so.1  libz.so.1.2.13          modules-load.d
firmware                ld-musl-aarch64.so.1    libc.musl-aarch64.so.1  libgcompat.so.0         libucontext.so.1        libz.so.1               mdev                    sysctl.d
/tmp/async-profiler-3.0-linux-arm64/bin # java -agentpath:/tmp/async-profiler-3.0-linux-arm64/lib/libasyncProfiler.so=start,summary,flat -version
Picked up JAVA_TOOL_OPTIONS: -XX:+ExplicitGCInvokesConcurrent -Xms4G -Dkotlinx.coroutines.scheduler=off
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00000000000053a0, pid=279, tid=280
#
# JRE version:  (11.0.20.1+9) (build )
# Java VM: OpenJDK 64-Bit Server VM (11.0.20.1+9-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-aarch64)
# Problematic frame:
# C  0x00000000000053a0
#
# Core dump will be written. Default location: /tmp/async-profiler-3.0-linux-arm64/bin/core.279
#
# An error report file with more information is saved as:
# /tmp/async-profiler-3.0-linux-arm64/bin/hs_err_pid279.log
#
#
Aborted (core dumped)

How can I fix this issue? Any help is much appreciated.

Alpine/AArch64 binaries are not provided, but you may build them yourself: install g++, make and openjdk packages, then run make in the project directory.

Thank you, it helped.

repo: async-profiler/async-profiler


text:
Does not generate accurate id's for JSON Schema inputs with definitions

Describe the bug
Related to next branch.
Given this schema:
{
  "properties": {
    "browser_action": {
        "$ref": "#/definitions/action",
        "description": "Use browser actions to put icons in the main Google Chrome toolbar, to the right of the address bar. In addition to its icon, a browser action can also have a tooltip, a badge, and a popup."
    },
    "page_action": {
        "$ref": "#/definitions/action",
        "description": "Use the chrome.pageAction API to put icons inside the address bar. Page actions represent actions that can be taken on the current page, but that aren't applicable to all pages."
    },
  }
}

Two models will be created, BrowserAction and PageAction even though they should reference the same model which is whatever the model name is for  "$ref": "#/definitions/action",
This problem occurs as part of draft-4 chrome-manifest.json blackbox test.

Duplicate of https://github.com/asyncapi/modelina/issues/232

repo: asyncapi/modelina


text:
feat: integrate new ParserJS version

Description
Integrate new ParserJS version:

use new version of parser-js
update library tests and examples tests

Related issue(s)
Part of https://github.com/asyncapi/parser-js/issues/481

@jonaslagoni Done :)


text:
FileNotFoundException

Hello,
when i try to insatiate :
PianoAnalytics pa = PianoAnalytics.getInstance(getApplicationContext());
i get this error systematically :
error on ConfigStep.loadConfigurationFromLocalFile: java.io.FileNotFoundException: piano-analytics-config.json
i use this documentation :
https://developers.atinternet-solutions.com/piano-analytics/data-collection/sdks/android-java#integrate-the-library
best regards,
Kais Jaafoura

Hi @JKaiss
This is a known issue, and we'll fix it later on.
Until then, you can create a piano-analytics-config.json file in app assets (app/src/main/assets/). Example file content:
{
  "collectEndpoint": "logxxx.xiti.com",
  "siteId": 123456789,
  "pixelPath": "/event",
  "offlineMode": "never",
  "ignoreLimitedAdTracking": false,
  "crashDetection": true,
  "uuidExpirationMode": "fixed",
  "uuidDuration": 365,
  "sessionBackgroundDuration": 30,
  "storeUsers": true,
  "sendWhenOptOut": false,
  "encryptionMode": "IF_COMPATIBLE",
  "visitorIdType": "UUID"
}

Regards,
Ben

when i add the file i had a new error  :
ConfigurationKeysEnum.fromString : requested value is unknown

authors: BenDz JKaiss

repo: at-internet/piano-analytics-android


text:
🛑 Wedding HTTPS is down

In 531623f, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in 7bafda4.

repo: atatkin/milos-uptime


text:
🛑 Wedding HTTPS is down

In 66045fe, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in eaf7f21.


text:
🛑 Wedding HTTPS is down

In fb90c56, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in 839e256.


text:
🛑 Wedding HTTPS is down

In 35cf75c, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in eab7cc3.


text:
🛑 Wedding HTTPS is down

In fac8470, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in 81a041c.


text:
🛑 Wedding HTTPS is down

In 0c76426, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in accdb2d.


text:
🛑 Wedding HTTPS is down

In e02bbd5, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in 1ee2d8d.


text:
🛑 Wedding HTTPS is down

In 845f8c3, Wedding HTTPS ($WEDDINGHTTPS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wedding HTTPS is back up in cf15fc1.


text:
Could not find field action definition for action 'Split'

this occurs when there is split in integration and some bath update for example:
DB - > Split -> Datamaper -> DB(Batch update)
Step to reproduce: create mentioned integration and publish.
Edit the integration
exported integration:
asdf-export.zip

This looks like a duplicate of #1235 reported in a comment in issues.jboss.org/browse/ENTESB-11691 - should have been fixed in 1.42.4.

This is the expected behavior for one-to-many where target is a collection I can see with upstream master.

authors: igarashitm mmelko

repo: atlasmap/atlasmap


text:
MICROS-6976 PDB name should change if configuration changes

PodDisruptionBudget is immutable and can't be modified by smith, therefore if we change the config, we need to give the object a new name.

Note for future self: In playground I tested adding a second pod disruption budget with the same label selectors, and discussed it with KITT, if a new one exists for a short period of time before the old one is deleted by smith, we there won't be any major issues.

repo: atlassian/voyager


text:
⚠ AtmoLive06 Server has degraded performance

In b89dfd5, AtmoLive06 Server ($ATMOLIVE06) experienced degraded performance:

HTTP code: 200
Response time: 12200 ms

Resolved: AtmoLive06 Server performance has improved in 56e49cf.

repo: atmovantage/atmostatus


text:
Haddock experiment (WIP)

I would like to implement support for showing Haddock docstrings in tooltips alongside "info" or "type" information.
I'm hoping for some guidance both overall in the design and specifics of using the API and interfacing with the existing code.  I am totally new to Coffeescript and Atom package development.
One of the outputs of the stack haddock --no-haddock-deps command is a text file for each package that says the following at the top:
-- Hoogle documentation, generated by Haddock

The contents of the file are pretty straightforward to parse.  I wrote a function in haddock.js that generates a dictionary with symbol names as keys and haddock docstrings as values.  Actually it's a nested dictionary with module names as the outer key.
For starters, the plugin could request that the user manually run the stack haddock command before documentation can be shown.  Having even this basic functionality would be valuable for users that just need to browse through a Haskell codebase.  Perhaps later the plugin could automatically run stack in the background, but I've noticed that it takes a long time (~1:30 in my project, or ~30s with --fast option).
I was able to get the Haddock strings to print to the console when mousing over a symbol, but somehow I was not able to propagate the same string all the way to the tooltip display.  I think a short chat on IRC or something could clear up a lot of details for me.

Thanks for your efforts, that's appreciated.
You can usually find me on #ghc-mod at freenode (irc.freenode.net) -- nick's Lierdakil. Ping me and if I'm near IRC client, I'll try to answer. Bear in mind I'm on UTC+3 and usually busy in the afternoon, so 16 to 19 UTC would probably be the best time to catch me.

authors: kostmo lierdakil

repo: atom-haskell/haskell-ghc-mod


text:
Atom 1.12.2 fails to build on Slackware Linux 14.2: permissions errors

Hi,
On Slackware 14.2 with Node.js 6.9.1 and NPM 3.10.8 I get the build error for Atom 1.12.2:
Node:   v6.9.1
Npm:    v3.10.8
Installing script dependencies
Installing apm
npm ERR! Linux 4.4.14
npm ERR! argv "/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/bin/node" "/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/node_modules/.bin/npm" "dedupe"
npm ERR! node v4.4.5
npm ERR! npm  v3.10.5
npm ERR! path /tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/node_modules/npm/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/node_modules/npm/node_modules'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/node_modules/npm/node_modules']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/node_modules/npm/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/npm-debug.log
module.js:327
    throw err;
    ^

Error: Cannot find module 'node-gyp/bin/node-gyp'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.require.resolve (internal/module.js:16:19)
    at new Install (/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/lib/install.js:53:38)
    at Object.module.exports.run (/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/lib/apm-cli.js:226:18)
    at Object.<anonymous> (/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/lib/cli.js:8:7)
    at Object.<anonymous> (/tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/lib/cli.js:12:4)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
child_process.js:506
    throw err;
    ^

Error: Command failed: /tmp/SBo/atom-1.12.2/apm/node_modules/atom-package-manager/bin/apm --loglevel=error install
    at checkExecSyncError (child_process.js:483:13)
    at Object.execFileSync (child_process.js:503:13)
    at module.exports (/tmp/SBo/atom-1.12.2/script/lib/install-atom-dependencies.js:19:16)
    at Object.<anonymous> (/tmp/SBo/atom-1.12.2/script/bootstrap:28:1)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)

using this SlackBuild. The way I am building this package is via running sudo ./atom.SlackBuild where the file atom.SlackBuild is the previously linked SlackBuild. I also get the same exact error building Atom 1.12.0 using the SlackBuild provided in the official repositories here.
Thanks for your time,
Brenton

I can reproduce this problem with MarIuX64, a distribution based on Linux From Scratch using the Bee package manager.
Atom 1.10.2, and 1.12.2 show this problem.
sudo is used here, and looking at the permissions, it looks like the ID of the user running sudo are used to create the directories.
Installing Atom under the user, everything works fine.
@fusion809, are you using sudo?

@fusion809, I just saw, that you alsso use sudo in sudo ./atom.SlackBuild.

Yeah, should have used su - c "./atom.SlackBuild". Just learnt that so I'm gonna close.

The problem seems to be with script/lib/install-apm.js.
$ nl -ba script/lib/install-apm.js
     1	'use strict'
     2
     3	const childProcess = require('child_process')
     4	const path = require('path')
     5
     6	const CONFIG = require('../config')
     7
     8	module.exports = function () {
     9	  console.log('Installing apm')
    10	  childProcess.execFileSync(
    11	    CONFIG.getNpmBinPath(),
    12	    ['--global-style', '--loglevel=error', 'install'],
    13	    {env: process.env, cwd: CONFIG.apmRootPath}
    14	  )
    15	}

@fusion809, in my opinion, the installation should work without any problems using sudo. It’s a regression in my opinion from 1.9.0. So I’d keep it open, but rephrase the title.

Builds fine for me now though, I even uploaded my tgz to https://github.com/fusion809/SlackBuilds/releases/tag/atom-1.12.2.

Do you have more information on how you got it to work with sudo?

Nope, as I said I just kept trying it and eventually it worked. Dunno why but it did.

We worked around this problem with
unset SUDO_USER SUDO_UID SUDO_COMMAND SUDO_GID
start_cmd script/build
in our package build script. Needed other workarounds, because the new atom build system doesn't honor DESTDIR etc.

authors: buczek fusion809 paulmenzel

repo: atom/atom


text:
Uncaught TypeError: Cannot read property 'replace' of undefined

I find that in certain file types I get this exception thrown (Atom Beta). So far I've found it reliably does it in git commit message types (invoked by git-plus) and in Go files, but have not seen it with the same version in JS or Java files. It tends to keep throwing this error over and over as I type.
Worth noting this error was definitely not present until the latest Beta update.
Atom: 1.25.0-beta0 x64
Electron: 1.7.11
OS: Mac OS X 10.13.3
Thrown From: Atom Core
Stack Trace
Uncaught TypeError: Cannot read property 'replace' of undefined
At /Applications/Atom Beta.app/Contents/Resources/app/node_modules/autocomplete-plus/lib/autocomplete-manager.js:527

TypeError: Cannot read property 'replace' of undefined
    at AutocompleteManager.getWordCharacterRegex (/Applications/Atom Beta.app/Contents/Resources/app/node_modules/autocomplete-plus/lib/autocomplete-manager.js:527:72)
    at AutocompleteManager.getPrefix (/Applications/Atom Beta.app/Contents/Resources/app/node_modules/autocomplete-plus/lib/autocomplete-manager.js:507:43)
    at AutocompleteManager.findSuggestions (/Applications/Atom Beta.app/Contents/Resources/app/node_modules/autocomplete-plus/lib/autocomplete-manager.js:260:31)

Commands
  2x -0:09.1.0 core:move-down (input.hidden-input)
     -0:07.3.0 editor:delete-to-beginning-of-word (input.hidden-input)
     -0:06.6.0 core:backspace (input.hidden-input)
     -0:05.8.0 editor:delete-to-beginning-of-word (input.hidden-input)
     -0:04.3.0 core:move-up (input.hidden-input)

Non-Core Packages
Was able to reproduce in safe mode

This looks like an autocomplete-plus issue. Specifically, additionalWordChars is returning undefined in the following function.
getWordCharacterRegex (scopeDescriptor) {
    const additionalWordChars = getAdditionalWordCharacters(scopeDescriptor)
    let regex = wordCharacterRegexCache.get(additionalWordChars)

    if (!regex) {
      regex = new RegExp(`[${UnicodeLetters}${additionalWordChars.replace(']', '\\]')}]`)
      wordCharacterRegexCache.set(additionalWordChars, regex)
    }
    return regex
  }

Please close this issue and open one on the autocomplete-plus repo.

Oops 🤦♂ ! Good call

See https://github.com/atom/autocomplete-plus/issues/956

authors: Aerijo drorata tylerFowler


text:
Uncaught Error: The specified module could not be found./?~\AppData\Local\atom\app-1.38.1\res...

[Enter steps to reproduce:]

...
...

Atom: 1.38.1 x64
Electron: 2.0.18
OS: Microsoft Windows 10 Home
Thrown From: Atom Core
Stack Trace
Uncaught Error: The specified module could not be found.
\?\C:\Users\luci\AppData\Local\atom\app-1.38.1\resources\app.asar.unpacked\node_modules\keyboard-layout\build\Release\keyboard-layout-manager.node
At ELECTRON_ASAR.js:166

Error: The specified module could not be found.
\\?\C:\Users\luci\AppData\Local\atom\app-1.38.1\resources\app.asar.unpacked\node_modules\keyboard-layout\build\Release\keyboard-layout-manager.node
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20)
    at Object.Module._extensions..node (module.js:671:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:180:18)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:504:12)
    at Function.Module._load (module.js:496:3)
    at Module.require (/app.asar/static/index.js:60:45)
    at require (internal/module.js:11:18)
    at customRequire (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:1:688769)
    at get_KeyboardLayoutManager (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:14:2692775)
    at get_manager (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:14:2692855)
    at Object.getCurrentKeyboardLayout (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:14:2692981)
    at e.keystrokeForKeyboardEvent (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:14:1078253)
    at KeymapManager.t.exports.KeymapManager.keystrokeForKeyboardEvent (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:11:1244475)
    at KeymapManager.t.exports.KeymapManager.handleKeyboardEvent (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:11:1242460)
    at WindowEventHandler.handleDocumentKeyEvent (~/AppData/Local/atom/app-1.38.1/resources/app/static/<embedded>:11:283624)

Commands
     -1:06.5.0 core:select-all (input.hidden-input)
     -0:38.9.0 tree-view:add-file (ol.tree-view-root.full-menu.list-tree.has-collapsable-children.focusable-panel)

Non-Core Packages
atom-beautify 0.33.4
atom-html-preview 0.2.6
atom-ternjs 0.19.1
autoclose-html 0.23.0
busy-signal 2.0.1
csslint 1.2.0
emmet 2.4.3
intentions 1.1.5
language-ejs 0.4.0
linter 2.3.0
linter-eslint 8.5.5
linter-jshint 3.1.16
linter-ui-default 1.7.1
pigments 0.40.2
Sublime-Style-Column-Selection 1.7.5

keyboard layout manager.node electron_asar.js:166

Thanks for taking the time to contribute!
We noticed that this is a duplicate of https://github.com/atom/atom/issues/14461. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.

authors: Arcanemagus lumarini


text:
Uncaught Error: connect ETIMEDOUT

[Enter steps to reproduce below:]

...
...

Atom Version: 0.169.0
System: Mac OS X 10.10.1
Thrown From: Atom Core
Stack Trace
Uncaught Error: connect ETIMEDOUT
At stream.js:94

Error: connect ETIMEDOUT
  at exports._errnoException (util.js:746:11)
  at Object.afterConnect [as oncomplete] (net.js:990:19)

Commands
     -1:41.8 core:select-all (atom-text-editor.editor)
     -1:41.5 core:paste (atom-text-editor.editor)
     -1:23.5 settings-view:open (atom-text-editor.editor)
     -0:18.9 editor:consolidate-selections (atom-text-editor.editor.mini)
     -0:18.9 core:cancel (atom-text-editor.editor.mini)
     -0:00.0 grammar-selector:show (atom-text-editor.editor)

Config
{
  "core": {
    "themes": [
      "atom-light-ui",
      "atom-light-syntax"
    ],
    "projectHome": "/Users/pbondt/Downloads"
  },
  "editor": {
    "fontSize": 13,
    "softWrap": true,
    "scrollPastEnd": true,
    "invisibles": {}
  }
}

Installed Packages
# User
atom-html-preview, v0.1.3
color-picker, v1.2.6
command-toolbar, v1.0.1
file-icons, v1.4.5
file-type-icons, v0.5.3
language-freebasic, v0.0.10
language-lua, v0.9.0
language-nagios, v0.2.0
linter, v0.10.0
linter-jshint, v0.1.0
linter-lua, v0.1.3
minimap, v3.5.5
open-recent, v2.0.0

# Dev
No dev packages

Please try updating to Atom v0.174.0-this should have been fixed in that version.


text:
Large Files Cause Hangups

Hi,
Been using atom for a while now, love it and totally swapped full time from sublime, great work guys!
I have been having a few issues with large files.... I have to edit large files some times, a PHP file that has approx 5395 lines and another JS file with approx 9672 lines.... ;)
I currently have a custom theme in use (my own razor-atom-syntax-theme) and have a lot of other packages installed... linters, save-session, file-icons, highlight-selected, lesscompile, color-picker, minimap, open-recent.....
I seem to be getting really sluggish performance on these files, with the UI refresh update taking a good second or two on every key press.... The laptop is more than capable, new, plenty of ram, SSD so it is defo not the laptop as sublime is fine.
I just wondered what large file size support is like in Atom? What sizes should we be good for?
turning the linters off most certainly helps but still has a slight lag, any thoughts?
thanks
Paul

@smiffy6969 Thanks for the feedback. There's already an issue which discusses large files and such slowdown, so I'm going to close this in favor of that issue (best to have all feedback in one place so that it's not lost of forgotten). If you'd like to leave more feedback or ask more questions -- please feel free to do so there: https://github.com/atom/atom/issues/307
Also, I'm not sure if there's a clear answer for your question "What sizes should we be good for?". It kind of depends on what you consider sluggish and which packages you use. Personally, I don't even observe some slowness which other users looking at the same screen do, and as you noticed -- installing lots of packages will slow things down. Improving large file support is on the roadmap, and something we'd love to do.


text:
Difficulty building atom on Debian-like system

Ran script/build using latest version of atom.  Build failed with output:
Node: v0.10.35
npm: v2.1.17
Installing build modules...
Installing apm...
Installing modules â

scrollbar-style@2.0.0 install /media/lin/atom/node_modules/scrollbar-style
node-gyp rebuild

keyboard-layout@0.10.0 install /media/lin/atom/node_modules/atom-keymap/node_modules/keyboard-layout
node-gyp rebuild

nslog@2.0.0 install /media/lin/atom/node_modules/nslog
node-gyp rebuild

runas@2.0.0 install /media/lin/atom/node_modules/runas
node-gyp rebuild

pathwatcher@3.3.3 install /media/lin/atom/node_modules/pathwatcher
node-gyp rebuild

oniguruma@4.0.0 install /media/lin/atom/node_modules/oniguruma
node-gyp rebuild

git-utils@3.0.0 install /media/lin/atom/node_modules/git-utils
node-gyp rebuild

npm WARN cannot run in wd atom@0.188.0 node -e 'process.exit(0)' (wd=/media/lin/atom)
npm WARN engine specificity@0.1.3: wanted: {"node":"~0.8.x"} (current: {"node":"0.10.35","npm":"2.5.1"})
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/media/lin/atom/node_modules/scrollbar-style/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading tarball
gyp ERR! stack     at Request. (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/install.js:246:14)
gyp ERR! stack     at Request.emit (events.js:117:20)
gyp ERR! stack     at Request.onRequestResponse (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/request/request.js:1176:10)
gyp ERR! stack     at ClientRequest.emit (events.js:95:17)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (http.js:1693:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
gyp ERR! stack     at Socket.socketOnData (http.js:1588:20)
gyp ERR! stack     at TCP.onread (net.js:528:27)
gyp ERR! System Linux 3.9-1-mepis64
gyp ERR! command "node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /media/lin/atom/node_modules/scrollbar-style
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/media/lin/atom/node_modules/atom-keymap/node_modules/keyboard-layout/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading tarball
gyp ERR! stack     at Request. (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/install.js:246:14)
gyp ERR! stack     at Request.emit (events.js:117:20)
gyp ERR! stack     at Request.onRequestResponse (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/request/request.js:1176:10)
gyp ERR! stack     at ClientRequest.emit (events.js:95:17)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (http.js:1693:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
gyp ERR! stack     at Socket.socketOnData (http.js:1588:20)
gyp ERR! stack     at TCP.onread (net.js:528:27)
gyp ERR! System Linux 3.9-1-mepis64
gyp ERR! command "node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /media/lin/atom/node_modules/atom-keymap/node_modules/keyboard-layout
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/media/lin/atom/node_modules/nslog/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading tarball
gyp ERR! stack     at Request. (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/install.js:246:14)
gyp ERR! stack     at Request.emit (events.js:117:20)
gyp ERR! stack     at Request.onRequestResponse (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/request/request.js:1176:10)
gyp ERR! stack     at ClientRequest.emit (events.js:95:17)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (http.js:1693:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
gyp ERR! stack     at Socket.socketOnData (http.js:1588:20)
gyp ERR! stack     at TCP.onread (net.js:528:27)
gyp ERR! System Linux 3.9-1-mepis64
gyp ERR! command "node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /media/lin/atom/node_modules/nslog
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/media/lin/atom/node_modules/runas/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading tarball
gyp ERR! stack     at Request. (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/install.js:246:14)
gyp ERR! stack     at Request.emit (events.js:117:20)
gyp ERR! stack     at Request.onRequestResponse (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/request/request.js:1176:10)
gyp ERR! stack     at ClientRequest.emit (events.js:95:17)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (http.js:1693:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
gyp ERR! stack     at Socket.socketOnData (http.js:1588:20)
gyp ERR! stack     at TCP.onread (net.js:528:27)
gyp ERR! System Linux 3.9-1-mepis64
gyp ERR! command "node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /media/lin/atom/node_modules/runas
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/media/lin/atom/node_modules/pathwatcher/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading tarball
gyp ERR! stack     at Request. (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/install.js:246:14)
gyp ERR! stack     at Request.emit (events.js:117:20)
gyp ERR! stack     at Request.onRequestResponse (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/request/request.js:1176:10)
gyp ERR! stack     at ClientRequest.emit (events.js:95:17)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (http.js:1693:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
gyp ERR! stack     at Socket.socketOnData (http.js:1588:20)
gyp ERR! stack     at TCP.onread (net.js:528:27)
gyp ERR! System Linux 3.9-1-mepis64
gyp ERR! command "node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /media/lin/atom/node_modules/pathwatcher
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/media/lin/atom/node_modules/oniguruma/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading tarball
gyp ERR! stack     at Request. (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/install.js:246:14)
gyp ERR! stack     at Request.emit (events.js:117:20)
gyp ERR! stack     at Request.onRequestResponse (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/request/request.js:1176:10)
gyp ERR! stack     at ClientRequest.emit (events.js:95:17)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (http.js:1693:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
gyp ERR! stack     at Socket.socketOnData (http.js:1588:20)
gyp ERR! stack     at TCP.onread (net.js:528:27)
gyp ERR! System Linux 3.9-1-mepis64
gyp ERR! command "node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /media/lin/atom/node_modules/oniguruma
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/media/lin/atom/node_modules/git-utils/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading tarball
gyp ERR! stack     at Request. (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/install.js:246:14)
gyp ERR! stack     at Request.emit (events.js:117:20)
gyp ERR! stack     at Request.onRequestResponse (/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/request/request.js:1176:10)
gyp ERR! stack     at ClientRequest.emit (events.js:95:17)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (http.js:1693:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
gyp ERR! stack     at Socket.socketOnData (http.js:1588:20)
gyp ERR! stack     at TCP.onread (net.js:528:27)
gyp ERR! System Linux 3.9-1-mepis64
gyp ERR! command "node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /media/lin/atom/node_modules/git-utils
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
npm ERR! Linux 3.9-1-mepis64
npm ERR! argv "/media/lin/atom/apm/node_modules/atom-package-manager/bin/node" "/media/lin/atom/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/root/.atom/.apm/.apmrc" "--userconfig" "/root/.atom/.apmrc" "install" "--target=0.21.0" "--arch=x64"
npm ERR! node v0.10.35
npm ERR! npm  v2.5.1
npm ERR! code ELIFECYCLE
npm ERR! scrollbar-style@2.0.0 install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!

This looks like it was a permissions issue with the build folders: EACCES user "root" does not have permission to access the dev dir "/root/.atom/.node-gyp/.node-gyp/0.21.0"
You can clean all build folders and reset the permissions using script/clean. You can also customize the build directory using the --build-dir option to script/build to build in a custom location.
Closing this out.

authors: drbsci kevinsawicki


text:
Add Issue template and extra version info

/cc @atom/feedback for more :eyes:

Also, the whole file seems to be indented using 4 spaces and not 2...not sure if that was intentional or not.

I indent Markdown using 4 spaces habitually because some Markdown parsers require that. (It's one of the places where original Markdown isn't clear.) I can change it though.

:ok_hand:

:surfer: Will be super interesting to see how people interact with this!

Yes, it will! I'm all settled in for a long day :laughing:

authors: 50Wliu benogle lee-dohm nathansobo


text:
Support contentRegex for TextMate grammar

Requirements for Adding, Changing, or Removing a Feature

Fill out the template below. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
The pull request must contribute a change that has been endorsed by the maintainer team. See details in the template below.
The pull request must update the test suite to exercise the updated functionality. For guidance, please see https://flight-manual.atom.io/hacking-atom/sections/writing-specs/.
After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see https://github.com/atom/atom/tree/master/CONTRIBUTING.md#pull-requests.

Issue or RFC Endorsed by Atom's Maintainers

https://github.com/atom/first-mate/pull/109
Description of the Change

NOTE: Requires update on first-mate dependency to make the contentRegex property be picked up in the first place.
Adds support for the contentRegex property existing on TextMate grammars. Treats it as an Oniguruma regex, so that the TextMate grammar is consistent with itself.
Alternate Designs

Could make the contentRegex a regular JS regex, but then it would be the only regex like that for a TextMate grammar.
Possible Drawbacks

Currently it looks at the whole file, which is potentially dangerous for performace. The use case in the linked issue would be fine with 20 lines or less. Declaring how many lines it wants would require more design choices though.
Verification Process

Manually
Release Notes

Add support for contentRegex on TextMate grammars

I added some basic test coverage for the added logic. Waiting on a green build and then I will merge. Thanks for contributing this!

Argh. Got bit by a flaky build failure that I'm actively fighting on another thread. Rebuilding.

Re-triggered the build manually and it passed. Not sure why that is not indicated on the PR.

Thanks again for your contribution!

authors: Aerijo nathansobo


text:
update need

(electron) loadUrl is deprecated. Use loadURL instead

Fixed in #19 :sparkles:

repo: atom/electron-quick-start


text:
Documentation implies Squirrel checks for updates regularly, but it doesn't

The Electron documentation mentions that "Squirrel will check for an update again at the interval you specify." This doesn't seem to be true—the auto-updater seems to check for updates at launch, and again if manually invoked, but the Electron source code never calls Squirrel's startAutomaticChecksWithInterval to enable periodic checking.
I think it'd make sense to expose an API on the auto-updater module that calls through to startAutomaticChecksWithInterval, or update the docs. I'd be happy to submit a pull request if this is already on the wish list!

The misunderstanding description is already gone.

authors: bengotow zcbenz

repo: atom/electron


text:
[webContents.savePage] Is not perfect, download the file can not reach chorme 'ctrl+s'

The method appears to be very imperfect, the data is missing, and it is not normal.
Contrast test, url is 'www.baidu.com'
The [webContents.savePage] effect of elentron is:

Chrome is:

Web page and can not be offline Preview

Could you load http://baidu.com in Electron and open the Sources panel in DevTools to find recheck all the external resources? From the images, seems that the url is loaded with a baidu acount in Chrome while it isn't in electron.
The reason why web pages don't be previewed correctly is a wrong saving directory of the external resources, which is a bug of Electron.

Additionally I noticed that it will not save the content of an embedded webview... :(

I believe this has been fixed by #3128.

authors: appelgriebsch hokein zcbenz zg2013


text:
HTML5 Canvas - Rendering Problems (Chart.js)

The current Chromium: 47.0.2526.73 Version causes problems while rendering charts within the html5 canvas element.
Does anyone have a workaround for this problem?
Please see this post for better illustration:
https://code.google.com/p/chromium/issues/detail?id=567308&q=status%3Aunconfirmed&sort=-id&colspec=ID Stars Area Feature Status Summary Modified OS

No we don't have a workaround for this, the only thing we can do is to wait for Chrome to fix the bug.

authors: Bratkartoffl zcbenz


text:
Add and update Japanese translated docs.

this change includes

add translation
fix typos
improve grammer

Thanks!


text:
CRLF showing as changes when git commits them in LF

I have a file with CRLFs.
I use the git setting that automatically takes care of it, and commits files with LF instead of CRLF.
When I type git diff on that file, I don't see any changes.
Whereas in the Atom Minimap, all the lines are orange, except for the last one.
This makes it impossible to properly use this package since all lines have changes.
Maybe this package should not consider the CRLF instead of LF as a change.
What do you think ?
I already submitted this issue here, and they directed me here.

I also have this issue (albeit inverted). My files are LF and commited as CRLF.
All lines are marked as modified while git says no files are modified :(

Ill add a me too here

authors: matthieuheitz oskbor the-j0k3r

repo: atom/git-diff


text:
memo_core filesystem sync status?

First thanks for Atom, Xray, Memo, and whatever's next.
At the moment I'm particular interested in memo_core and how it plans to sync with the filesystem. The "Update" posts over the summer described lots of work related to filesystem sync. But looking at the memo README it seems like what is in memo_core right now is just the "light client" as described here:

Library: Memo provides a reference library implementation written in Rust that produces and consumes the Memo protocol messages to synchronize working trees. We plan to ship a "light client" version of the library that compiles to WebAssembly and exposes a virtual file system API

Is the next step code to sync this model with the filesystem? Any idea on how long until such code appears? Also will it depend on the underlying filesystem being a git repository? This seems to suggest that it might:

as well as a full version based on Libgit2 that synchronizes with a full replica on the local file system.

But I think it would be really useful to be able to sync memo with any local filesystem (git or not). In the case where git isn't present then it wouldn't make sense to sync memo state with multiple clients, because no shared git commit... but it would still be useful to have a single client reading memo state... that is synced with filesystem changes that are made outside of memo API.

Hi, thanks for your interest. I’m on my phone at a conference right now, so I can’t grab you the commit right now, but we did have an implementation of file system sync working in a previous iteration. In timeline.rs you can find it randomized rested against a simulated OS. When we decided to ship the light client and build more explicitly on top of Git, we dropped that work temporarily. We should be setup to handle it though and have confidence it will work based on that previous attempt. I can follow up with a more specific link later if needed.

Ah, thanks. I think I've found the latest version of timeline.rs.

We definitely intend to implement syncing once we deal with commits. I’m due for an update and will explain our present thinking. But I’m short we shouldn’t require Git, but then all paths will need to be represented via operations.

authors: jessegrosjean nathansobo

repo: atom/xray


text:
Help wanted: Optimize fragment identifiers

This is an optimization that's in my head, but I haven't performed the measurements necessary to prove that it's really worth the complexity. If you want to work on this, helping with those measurements would be an important first step.
Background
Xray's buffer is a CRDT that stores every piece of text ever inserted in a giant copy-on-write B-tree. Insertions are immutable, and each insertion is initially added to the tree in its whole form. Insertions are subsequently split into fragments whenever new text is inserted within an existing piece of inserted text. As a result, the tree ends up containing a sequence of interleaved fragments, each originating from a different original insertion.
Retaining all of these fragments and their connection back to the original insertion allows us to describe positions in the buffer logically, in terms of an (insertion_id, offset) pair that uniquely describes a position inside the immutable insertions.
To determine where such a logical position lands in the document, we need to determine which fragment of the position's specified insertion contains the position's specified offset. To enable this, each insertion is associated with an auxilarry tree via the Buffer::insertions map. These trees contain only fragments from the original insertion, and map offset ranges to FragmentIds. Once you find a fragment id for a particular (insertion_id, offset) pair, you can use it to perform a lookup in the main fragments tree which contains the full text of the document.
See the presentation I gave at InfoQ 2017 for a clearer explanation.
Dense ids
In the teletype-crdt JS library, we map from an (insertion_id, offset) pair to a fragment in the global document by making our fragments members of two splay trees simultaneously. So you can look up the tree containing all the fragments of a single insertion and seek to the fragment containing a particular offset, then use different tree pointers on that same fragment belonging to the main document tree to resolve its location. It's kind of weird, and the talk may clarify this somewhat, but it may not be mandatory to understand. In Xray, we're storing fragments in a persistent B-tree rather than a splay tree, which means we really can't associate fragments with parent pointers. This means we'll need to find a new strategy for understanding where a particular insertion fragment lives inside the main tree.
In Xray, we instead rely on representing fragment ids as dense, ordered identifiers. "Dense" essentially means that between any two of these identifiers, there should always be room to allocate another identifier. You could think of infinite precision floating point numbers as satisfying this property. Between 1 and 2 there is 1.5, and between 1.5 and 2 there is 1.75, and so on. The inspiration for this approach came from a different text-based CRDT called Logoot.
Currently, we represent a FragmentId as a vector of 16 bit integers. To compare ids, we simply compare each element of the two vectors lexicographically. When we want to create a new id that is ordered in between two existing ids, we search for the first index corresponding to elements in either vector that have a difference of at least one. Once we find one, we allocate a new integer randomly between the two ids.
The LSEQ strategy, discussed in a followup paper, seems like it could be a good source of inspiration for optimizing these ids so as to minimize their length. The longer the ids, the more memory they consume and the longer they take to compare. The linked paper has a really good discussion of the performance profile of allocating these ids based on different insertion patterns in a sequence.
One key idea in the paper is to allocate ids closer to the left or right based on a random strategy at each index of the vector. Another idea is to increase the base of each number in the id, so that the key space expands exponentially as an id gets deeper. It's all in the paper.
The next valuable optimization would build on the LSEQ work and avoid allocation whenever ids are below a certain length. We can do this with unsafe code that implements a tagged pointer. Basically, if the id is short enough, we should be able to stuff it into the top 63 bits of a pointer. If it exceeds that quantity, we can interpret those bits as a pointer to a heap-allocated vector of u16s. The comparison code can then be polymorphic over the two representations, and hopefully most of the time we wouldn't need the allocation.
It will be an experiment. Tying it to some sort of benchmarks related to editing performance will be important to ensuring this idea warrants the complexity.

@chaintip

0.00029641 BCH| ~   0.28 USD has been tipped to this issue by @DesWurstes.
To claim this bounty, get a pull request merged with @chaintip fixes #24 in the creation comment.

@chaintip

0.00714285 BCH| ~   4.55 USD has now been tipped to this issue.
To claim this bounty, get a pull request merged with @chaintip fixes #24 in the creation comment.

0 BCH| ~   0.00 USD has now been tipped to this issue.
To claim this bounty, get a pull request merged with @chaintip fixes #24 in the creation comment.

authors: DesWurstes chaintip derianalanrojas nathansobo