Readme does not explain which nuget packages you need for the platform .Ext.nnn assemblies

Readme does not explain which nuget packages you need for the platform .Ext.nnn assemblies.
As far as I can tell, if you include the main nuget package, you still need to somewhere in your code call CurrentPlatform.Init(). I may be wrong, (new to all this), however it looks like this is only possible if you have referenced the appropriate .Ext.Net45 or Ext.{your-platform} assembly.
The only way I can find to get these platform specific assemblies is to build the project myself from source. This seems to defeat the purpose of having a nuget package? I'm sure I've misunderstood how it all works, however, if I'm right, then it means the Nuget package should include the assemblies, and doesn't, or doesnt in a way that means you can easily use it. Or, a the platform versions should be made available as nuget packages, and named exactly the same as the readme notes refer to it, i.e. Microsoft.WindowsAzure.Mobile.Ext.<Platform>.
Aside;
This is somewhat related to #202 and #201 ie synchronising the names of the nuget packages, the folder structure and the project and solution names. (apologies, would link to the issue directly, but they're all been submitted at the same time.)

The NuGet does include the .Ext assemblies that you need, you definitely don't need to go building from source yourself. The call to CurrentPlatform.Init is only needed for Xamarin.iOS projects, because of the way that the Xamarin linker works for iOS projects. That method does not in other platforms by design.
The details of what is included in the Ext for each platform isn't immediately obvious without digging into the details of the project structure, but as a consumer of the library, you shouldn't need to have to learn all of that. We do definitely welcome suggestions on making it easier to contribute to the library, of course.
Does that clear up this issue?  If so, please close it.

yes it does, thank you.

just a quick update; I've referenced the nuget package; and when I run my project I initially recieved the error;

d. Ensure that the current project references both Microsoft.WindowsAzure.Mobile  and the following platform-specific assembly: Microsoft.WindowsAzure.Mobile.Ext .. If you google that error you find references to try CurrentPlatform.Init().

After reading your reply, I did a grepwin for any matching assembly and eventually found the assembly referred to in the readme in : packages\Microsoft.Azure.Mobile.Client.2.1.1\lib\net45 folder of my solution.
So yes, it is included, but perhaps the notes could be more guiding and explain that you will need to manually link the appropriate dll, together with an example? (i.e. it will be a different location depending on your platform. )
For many developers not used to writing different platform code, the concept of a dll being in either place A or place B is foreign; especially if you're wanting to use this library for simple windows development. The fact that it can be used in cross platform should be irellevant.
Perhaps the nuget package should have a ps script that references the appropriate assembly automatically?
Lastly; possibly the notes could be updated to be more helpful to beginners as to where exactly you'll find the .Ext , and what the .Ext actually is, and how to reference it?
I'm leaving this as closed, as my comments are merely here for clarification. Feedback is helpful as I'm totally new to seeing how these projects work and would like to be able to contribute. Thanks again, A

Could you explain the steps you took to add the NuGet reference?  You're right that it's supposed to be added automatically. What kind of project are you working with?  I.e., Android, UWP, etc.  It could be that there's a package bug that only manifests on console apps, for instance.

Hi Lindy; unrelated note; just watched an old video on https://channel9.msdn.com/Shows/Cloud+Cover/Episode-155-Offline-Storage-with-Donna-Malayeri ( great video! ) do you have any later videos?
re: what steps did I take? below is my readme from the spike project I created;
** Alan's azure-mobile-sandbox **
Sandbox for experimenting with building xamarin android mobile apps with azure backend, with the least amount of dependancies possible, and the simplest and quickest (lightest) means of (automated?) testing of libs.
##Getting started projects and packages

A) Lib project
Class Library (Portable for iOS, Android and Windows)
packages

   install-package Newtonsoft.Json -version 6.0.4
   install-package Microsoft.Bcl -version 1.1.10
   install-package Microsoft.Bcl.Build -version 1.0.21
   install-package Microsoft.Net.Http -version 2.2.29
   install-package Newtonsoft.Json -version 6.0.4
   install-package Microsoft.Azure.Mobile.Client -version 2.1.1
   install-package Microsoft.Azure.Mobile.Client.SQLiteStore -version 2.1.1

B) Console app
net45 class library
packages

	// https://github.com/Azure/azure-mobile-apps-net-client
    install-package Microsoft.Azure.Mobile.Client -version 2.1.1
	install-package Microsoft.Azure.Mobile.Client.SQLiteStore -version 2.1.1

after installing the Mobile.Client, you will need to manually add a reference to Microsoft.WindowsAzure.Mobile.Ext.dll, which will be in the packages folder. In my project, this was in packages\Microsoft.Azure.Mobile.Client.2.1.1\lib\net45\Microsoft.WindowsAzure.Mobile.Ext.dll

me again;
I've only just notice in the log output (visible in the package console window) from NUGET when installing the package, the log contains these two lines;
If your PCL Project is part of another NuGet Package, you should add this NuGet package as a dependency.
If your PCL Project is referenced from other platform specific projects, you should install this NuGet package on each of these projects.

doh! That explains it perfectly. (ok, in my defense, who really reads the verbose output from builds, when there's no errors? ) he he. Perhaps we can include these two lines in the readme notes, I think that would be very helpful?
regards,
Alan

Thanks for the feedback!  Since this is more of a troubleshooting item, and our tutorials walk through the right steps, I've created a wiki page that outlines the basics. Feel free to suggest any information that might be missing: https://github.com/Azure/azure-mobile-apps-net-client/wiki/Portable-libraries-and-platform-specific-.ext-assemblies


Update the hotkeys (meta-issue)

Description
With the addition of emoji reactions, having a quick way to react to a message has become quite important. Hotkeys could be a good way to approach this (see #3911).
This would imply making some changes in the whole hotkey-action scheme, hence this meta-issue, that includes a list of all the hotkeys that we should update (even for actions not related to emoji reactions).
The information here is mostly taken from this topic in Zulip's development chat.
New hotkeys
Emoji reactions

[x] +/- — :+1: and :-1: emoji reactions (#3910)
[ ] = — Agree! (emoji TBD)
[ ] (TBD) — I'm on it!/Working on it! (emoji TBD; maybe :wrench:?  Feedback wanted!)
[x] : — Open the emoji reaction UI and focus the text box (#3911)

Navigation and message view interactions

[x] * — Star currently selected message
[ ] M — Mute selected topic in stream (open PR)
[ ] U — Unmute selected topic in stream (open PR)
[x] v — Open lightbox to show the first image in a given message big1
[ ] Ctrl  + j — Launch a quick jump menu to type in a stream name
[x] p — View all private messages (aka enter is:private narrow)
[ ] (TBD) — Jump/Narrow to next unread stream/topic or PM thread
[ ] (TBD) — View profile of message sender

Others

[ ] t — Create a new topic
[ ] g — Open the gear menu
[ ] d — Open drafts
[ ] h — Open help menu
[ ] (TBD) — Open stream management menu
[ ] (TBD) --- open settings
[ ] Ctrl + l — Tab to left sidebar
[ ] Ctrl + r — Tab to right sidebar
[ ] Ctrl + m — Tab to message pane

1 It could be interesting as well to allow moving between different messages' images with the arrow keys, once inside the lightbox.
Possible Vim-like hotkeys (#1679)
It's not clear we want to add these, but it has also been discussed to add a hotkey system, similar to the Vim text editor. Even though there has been some disagreement on whether this is worth adding or not, here is the list of proposed hotkeys:

[ ] gg — Jump to the top of the stream/topic
[ ] G — Jump to the bottom of the stream/topic
[ ] zc — Mute stream (zc collapses a fold in Vim) Conflicts with the M/U keys, see above!
[ ] zr — Expand collapsed message
[ ] Ctrl + e — Scroll down the stream/topic while composing a message
[ ] Ctrl + y — Scroll up the stream/topic while composing a message
[x] Ctrl + [ — Should be accepted as escape

This would be a fun one. Before anyone actually starts working on any of the hotkeys, make sure to comment here which one you will be working on AND talk on chat.zulip.org to see if we want to use it.

Just wanted to add a quick 👍 from me on G; after starting to get used to the vim-like keyboard shortcuts, I found myself tripping over the fact that I couldn't get back down to the bottom of a stream that way :).

BTW @glyph if you're coming to the SF Python sprints May 18-19, one of Zulip's plans for that weekend is to work on our hotkeys and try to clear as much of this list as possible... interested?

@timabbott I'll be there but (unfortunately?) sprinting on @twisted/twisted instead.  See you there though!

A great choice of project!  See you there :).

We added almost everything here that we're confident as to exactly what we want to do this weekend.  We should discuss the remaining ones and then perhaps break this into individual issues for the remaining work.

We've now added or opened PRs for almost all of the hotkeys in this list that we're confident would actually improve Zulip.  I opened individual issues for some of the remaining ones that are priorities; I think we may want to make a few more calls about specific hotkeys in this list, open issues for the things that we want to do soon, and then close this meta-issue since it's now a bit cluttered.

Split this into smaller issues. Closing now.


blob: Check max blob size and return err if exceeds

Blocked on core/app (cc @rootulp)

See https://github.com/celestiaorg/celestia-app/issues/2108

I think if that's a stateless check, we should add it to our validation path. Specifically in the blob constructor on our side.

The stateless check depends on a versioned constant (SquareSizeUpperBound) and a hard-coded constant (MaxBlockSizeBytes). We can add it to blob constructor on celestia-node side with the caveat that the versioned constant may change in the future.

The version, in this case, should be the one binary was built with.

The versioned constant is dependent on the app version which is currently v1 (see here) and likely will be incremented when there's a new major version of celestia-app.

Can we simply use LatestVersion constant even when It will be v2,v3...?

I think celestia-node can use LatestVersion because I would expect celestia-app v1.x.x LatestVersion to be v1 and celestia-app v2.x.x's LatestVersion to be v2.

Closing as won't do. We've improved the behavior of celestia-app's CheckTx in https://github.com/celestiaorg/celestia-app/pull/2202 so txs with a total blob size that is too large will be rejected at the mempool leve.


Build fails when previous versions use deprecated Sphinx config

I came across your repo just recently and tried to give it a shot. It seems like it's the only one to provide versioned builds that is compatible with the latest Python versions. Or are there others?
Anyway, I was having some difficulty getting this to work for a project of mine and was wondering if you could help me out.
The project I have is already a few years old and used Sphinx 3.2, which I now really need to upgrade because my old sphinx versioning code required Python 3.6, which is EOL. When using this old version back then I used app.add_stylesheet to add a custom css file, which has been deprecated in Sphinx 6.0.0 (also already a few years old) in favor of app.add_css_file. Of course I can make this change in the current branch, but when I run sphinx-versioned, it fails when trying to build the docs for those older releases because in those commits there is still app.add_stylesheet, which no longer works on the latest Sphinx.
Is there anything I can do to fix this? I can pin Sphinx < 6.0.0, but that will be a temporary solution until Python 3.10 becomes EOL. I would like to have a proper solution so I can use the latest Sphinx instead. Any help would be appreciated.
Some brain farts of mine:

Add support for monkey-patching the conf.py file
Keep track of a list of deprecated functions and their replacements and do a temporary search/replace for each checkout

Hi, yeahh, I suppose I can monkey patch the add_stylesheet method to add_css_file for now and later add other deprecated funcs.

I've added the monkey patch to the linked pr.
Could you test this once @sybrenjansen? I've tested it naively, but a more robust test will be more helpful.


Poloniex XMR_NXT - Poloniex did not return any trades.

I'm submitting a ...
[X ] bug report
[ ] question about the decisions made in the repository
Action taken (what you did)
Tried multiple history configurations.
Delete XMR_NXT database table
Re-Import History
Expected result (what you hoped would happen)
Gekko would once again write XMR_NXT candles to database and recommence live trading correctly.
Actual result (unexpected outcome)
Candles are not being written into SQL, by way of live trading. History import can write candles to SQL.
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)
History import gets written to DB, however when restarting bot - says "no usable local data..."
Live trading not saving candles for XMR_NXT
If I change currency for example XMR_LTC everything works as expected and candle data gets saved during live trading.
Issue seems to be specific to the XMR_NTX market only for me.
I use gekko successfully for multiple other markets on polo without any issue.
Stumped = not sure if it's an issue on the polo end?  Any help appreciated.
Only way I can seem to get the bot to run is by setting 'historySize' to 0
Please see below output with 'historySize ' set at 2 and 'candleSize' at 15:
admin@SomeServer01:~/gekko$ node gekko --config polo_xmr.config.js
______   ________  __    __  __    __   ______

/      \ /        |/  |  /  |/  |  /  | /
/$$$$$$  |$$$$$$$$/ $$ | /$$/ $$ | /$$/ /$$$$$$  |
$$ | $$/ $$ |_    $$ |/$$/  $$ |/$$/  $$ |  $$ |
$$ |/    |$$    |   $$  $$<   $$  $$<   $$ |  $$ |
$$ |$$$$ |$$$$$/    $$$$$  \  $$$$$  \  $$ |  $$ |
$$ _$$ |$$ |_____ $$ |$$  \ $$ |$$  \ $$ _$$ |
$$    $$/ $$       |$$ | $$  |$$ | $$  |$$    $$/
$$$$$$/  $$$$$$$$/ $$/   $$/ $$/   $$/  $$$$$$/
    Gekko v0.5.12
    I'm gonna make you rich, Bud Fox.

2018-10-04 19:41:33 (INFO):     Setting up Gekko in realtime mode
2018-10-04 19:41:33 (INFO):
2018-10-04 19:41:33 (INFO):     Setting up:
2018-10-04 19:41:33 (INFO):              Candle writer
2018-10-04 19:41:33 (INFO):              Store candles in a database
2018-10-04 19:41:33 (INFO):
2018-10-04 19:41:33 (INFO):     Setting up:
2018-10-04 19:41:33 (INFO):              Trading Advisor
2018-10-04 19:41:33 (INFO):              Calculate trading advice
2018-10-04 19:41:33 (INFO):              Using the strategy: custom_xmr_nxt
2018-10-04 19:41:33 (WARN):     TALIB indicators could not be loaded, they will be unavailable.
2018-10-04 19:41:34 (INFO):             The trading method requests 30 minutes of historic data. Checking availablity..
2018-10-04 19:41:34 (INFO):
2018-10-04 19:41:34 (INFO):             No usable local data available, trying to get as much as possible from the exchange..
2018-10-04 19:41:34 (DEBUG):            Fetching exchange data since 30 minutes ago
Gekko encountered an error and can't continue
Error:
Gekko tried to retrieve data since 2018-10-04 17:11:00, however
poloniex did not return any trades.
Meta debug info:
Gekko version: v0.5.12
Nodejs version: v9.5.0
admin@SomeServer:~/gekko$

Hmmm...  Working now.... Weird.  Not sure what I did.  I changed the import date slightly and its ticking fine...
Going to close the issue and reopen if not better tomorrow.

Hi I am having the same issue. Could you share your fix? Thanks!

Hi I am having the same issue. Could you share your fix? Thanks!

Hi.
I can't remember exactly so I'm not certain.
I think the issue was that the XMR/NXT market is fairly low volume and sometimes has long periods of zero activity.  One of the things I remember doing was checking the exchange's trade history and was able to confirm that there weren't any trades during the period gekko was requesting.
I think I lowered the historySize and kept trying until Polo returned some trades and it started ticking again.
I think that the error is maybe what it says and Poloniex isn't returning any trades,
Sorry I couldn't help more than that.  Try that and I'll let you know if I think of anything else.
Thanks

Also check your config is all correct.  I think I also created a new config file.


Running bower install before grunt vendor breaks grunt compile

@Scotchester:

It causes grunt vendor to skip its own bower install step, leaving things in the /bower_components folder. Then the LESS build breaks when it looks for imported dependencies in the wrong place.
Since many people might be in the habit of running bower install when cloning a project that uses Bower, we should set up grunt vendor so that it doesn't break if someone runs bower install prior.
An easy way to do this would be to just add a task to grunt vendor that deletes /bower_components, but maybe there's a better way out there?

@contolini:

Would having .bowerrc point to src/vendor/ fix this?

@Scotchester:

I think probably not, because the grunt-bower task also does the exportsOverride bit, so it's not just a matter of getting the stock bower components in the right place.. But it's worth trying just to be sure!

@Scotchester:

Right, so I remember why we set it up this way (why .bowerrc doesn't point to src/vendor): If we do it the way it's currently implemented, the grunt-bower task only copies the useful files into src/vendor – .less and .js files, not READMEs and package.jsons and such. If .bowerrc points to src/vendor, the entirety of each package's repo is pulled in.
Let me know if you would like me to explain that over screensharing, Chris, where it might be easier to see in action.

@Scotchester:

Going to commit the easy fix for this for now.

@himedlooff:

Is this really an issue? If people followed the instructions (or if the instructions were more clear) then they wouldn't have this problem. Why bloat our gruntfile for cases like this?
The other thought was should we submit this to the grunt-bower repo as a bug?

I believe this is no longer an issue.


Add logging when user-defined Storage resource tramples default Host storage

The implementation currently auto-configures a storage resource with the name azFuncHostStorage when no storage resource is configured. If a storage resource with the same name is already defined, it will use that one instead.
builder.AddAzureStorage("azFuncsHostStorage");

builder.AddAzureFunctionsProject<Projects.MyFuncs>("MyFuncs");

We should add a warning log when this happens to alert that user that this behavior is happening. This will have particular impact when they are publishing since only the storage resource that we allocate is configured with the StorageAccountContributor permissions that are required for blob triggers.

FYI, it can't trample, it will just throw, when resource names are duplicated.

We've taken a different approach here and are instead generated unique default host storage resource names to avoid conflicting.


The load file function is duplicating the last character read from the file being loaded.

The file-loading function is duplicating the last character being read from the file being loaded.

The part of the code causing this was the get() function which was reading in characters from the file being input into the text editor. Checking for the EOF marker proved to cause the issue. The resulting fix was to see whether or not the get() function was returning a non-zero value in the while loop. Thank you for the help, Adam.


fix typo

This is a typo that is often found. 'targetted' -> 'targeted'

Thank you for contributing to openstack/kolla!
openstack/kolla uses Gerrit for code review.
If you have never contributed to OpenStack before make sure you have read the
getting started documentation:
http://docs.openstack.org/infra/manual/developers.html#getting-started
Otherwise please visit
http://docs.openstack.org/infra/manual/developers.html#development-workflow
and follow the instructions there to upload your change to Gerrit.


i made the title better fool

OH man lol this was part of a demo and it was supposed to go to MY fork, not your repo. Sorry to bother you with this silliness.


IOU - Uneditable and Blank Amount, Description, and Date in IOU After Closing Account and Signing In Again

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Click on the plus sign and select "Request Money"
Enter the desired amount and email address for the money request
Go to the IOU and edit the Description
Go to Settings > Security > Close account, add email, and close account
Sign in again and go to the IOU of your first request before closing the account. Observe that uneditable and blank Amount,
Description, and Date are present in IOU.

Expected Result:
After closing the account and signing in again, the IOU should not show the blank amount, description, and date.The delete button should Clear the amount, description, and date
Actual Result:
After closing the account and signing in again, the IOU shows an uneditable and blank Amount, Description, and Date
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome
[ ] MacOS / Desktop

Version Number: 1.3.57-5
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/98eb4148-a405-4efa-b2ea-6c63066ec2bb
https://github.com/Expensify/App/assets/78819774/393c8a0e-097e-44ef-8243-e52ec56496fc
Expensify/Expensify Issue URL:
Issue reported by: @tewodrosGirmaA
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692302591048109
View all open jobs on GitHub

I don't think this is worth solving right now and may in fact be expected behavior based on what we store when you close an account


DraggableScrollableSheet doesn't dispatch ScrollNotification correctly.

DraggableScrollableSheet doesn't dispatch UserScrollNotification and ScrollUpdateNotification when scrolling without filling up its container.
Related PR -> #45083
Steps to Reproduce

Layout DraggableScrollableSheet.
Fling it little without filling up its container (without scrolling its content).

Also, this test case should be fixed like below.
https://github.com/flutter/flutter/blob/2dce8d14264ec857f4ff8e5a9b50eabb0fcd2a11/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart#L282
      final List<Type> types = <Type>[
        ScrollStartNotification,
        UserScrollNotification,
        ...List<Type>.filled(5, ScrollUpdateNotification),
        ScrollEndNotification,
        UserScrollNotification,
      ];

Hi @itome
I see the PR has been been merged,
are you still experiencing the issue with the latest stable or above?
Thank you

Sorry, I forgot to close.


Jump to inbox when selecting different account

Is your feature request related to a problem? Please describe.
Whenever I switch accounts I usually always want to see the inbox, no other folder. However, the side menu remains open after choosing the right account.
Describe the solution you'd like
To me it makes sense to automatically close the menu and show the inbox when pressing on / choosing an account. But this is just from my personal usage statistics. If most users close the menu right after they switched accounts, it makes sense to me to make this the default behaviour. In case I then want to navigate I can open the menu again.

Set Settings > [Account] > Folders > Auto-expand folder to Inbox.

Sweet, thanks! ☺
Default to inbox, maybe?

See #5792

Oh sweet. I love to see you took my suggestion as valuable.


Can't delete nested entity

For the brevity I've left only the code, which generates this situation.
I have two simple models:
public class Library
  {
      [Key]
      [StringLength(450)]
      public string LibraryId { get; set; }

      public string Name { get; set; }

      public Address Address { get; set; }
  }

  public class Address
  {
      [Key]
      [StringLength(450)]
      public string AddressId { get; set; }

      public string StreetName { get; set; }
  }

For example, I'm creating this models:
           var address = _dbContext.Addresses.Add(new Models.Address()
            {
                AddressId = "addressid",
                StreetName = "Test street name"
            }).Entity;
            _dbContext.Libraries.Add(new Models.Library()
            {
                LibraryId = "libraryid",
                Name = "Test library",
                Address = address
            });
            await _dbContext.SaveChangesAsync();

Then, trying to delete nested entity Address:
var library = _dbContext.Libraries.AsNoTracking().Include(x => x.Address).SingleOrDefault(x => x.LibraryId == "libraryid");
            library.Address = null;
            _dbContext.Entry(library).State = EntityState.Modified;
            await _dbContext.SaveChangesAsync();

The problem is, that there is nothing happens, entity Address still exists and connected with Library.
If change library.Address = null; to _dbContext.Addresses.Remove(library.Address);, it throws error:

The DELETE statement conflicted with the REFERENCE constraint "FK_Libraries_Addresses_AddressId". The conflict occurred in database "TestDatabase", table "dbo.Libraries", column 'AddressId'.\r\nThe statement has been terminated.

What's wrong with this, and how should I fix it?
EF Core version: ("Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
Operating system: Windows 10
Visual Studio version: VS 2015

@RepositoryNY First, you should update to the RTM release of EF Core.
Second, there are some issues with your code. You are querying with NoTracking, which means that EF isn't keeping track of the changes made. If you're going to make changes and then persist them to the database, then it would be much better to query with tracking enabled.
In the code as posted, EF has no idea that the Address navigation property has been nulled out because EF is not tracking the entity when you make the change. So when you save it, EF has no idea that there is any change to save. Even if EF was tracking the objects, the relationship is optional by default (because you don't map the FK and you don't tell EF that it is Required) and so EF would null out the AddressId FK, but would not delete the Address.
When you do the Remove call instead, EF will mark the address entity as deleted and will delete it when SaveChanges is called. But the AddressId FK on library is still referring to the Address that you are trying to delete, so the database reports a constraint violation.
This should work:
var library = _dbContext.Libraries
   .Include(x => x.Address)
   .SingleOrDefault(x => x.LibraryId == "libraryid");

_dbContext.Addresses.Remove(library.Address);
await _dbContext.SaveChangesAsync();

If you make the relationship required, then you can do library,Address = null; instead of the Remove call. If you need to do with with entities that aren't tracked, then call Attach on the library object before doing anything and then do the delete or null.

I've understood all what have been written. But one thing can't leave me alone. I understand how to delete entities in such way. But how can I delete relationship between entities? I don't want delete library and 'address', I just want separate them, delete library.address link. How should I do this?

@RepositoryNY
var library = _dbContext.Libraries
   .Include(x => x.Address)
   .SingleOrDefault(x => x.LibraryId == "libraryid");

library.Address = null;
await _dbContext.SaveChangesAsync();

@ajcvickers That's the point! I tried this code, it does nothing! I'm still have relationship between Library and Address

@RepositoryNY Here is a complete console application using your code. This application works for me with the RTM release of EF Core. Can you please look at this and make whatever changes are necessary to reproduce the issue you are seeing.
public class Library
{
    [Key]
    [StringLength(450)]
    public string LibraryId { get; set; }

    public string Name { get; set; }

    public Address Address { get; set; }
}

public class Address
{
    [Key]
    [StringLength(450)]
    public string AddressId { get; set; }

    public string StreetName { get; set; }
}

public class Program
{
    public class MyDbContext : DbContext
    {
        public DbSet<Address> Addresses { get; set; }
        public DbSet<Library> Libraries { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=LibsAndAds;Trusted_Connection=True;");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
        }
    }

    static void Main(string[] args)
    {
        using (var context = new MyDbContext())
        {
            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            var address = context.Addresses.Add(new Address()
            {
                AddressId = "addressid",
                StreetName = "Test street name"
            }).Entity;

            context.Libraries.Add(new Library()
            {
                LibraryId = "libraryid",
                Name = "Test library",
                Address = address
            });

            context.SaveChanges();
        }

        using (var context = new MyDbContext())
        {
            var library = context.Libraries
               .Include(x => x.Address)
               .SingleOrDefault(x => x.LibraryId == "libraryid");

            // Library is associated with address
            Debug.Assert(library.Address != null);

            library.Address = null;
            context.SaveChanges();
        }

        using (var context = new MyDbContext())
        {
            var library = context.Libraries
               .Include(x => x.Address)
               .SingleOrDefault(x => x.LibraryId == "libraryid");

            // Library is no longer associated with address
            Debug.Assert(library.Address == null);

            var address = context.Addresses.Single();

            // Address still exists
            Debug.Assert(address != null);
        }
    }
}


Failing to install Flynn (expired manifest)

err="tuf: failed to decode root.json: expired at 2017-02-10 16:07:43 +0000 UTC"
Same as #2436

@sdimitrov thanks for reporting, I am pushing a fix for this.

The updated manifest is being rolled out, it can take around 10 minutes for cache invalidation, I'll close this issue once it is fully rolled out.

For future reference, to bump the root manifest expiry:

add then revoke a key:

$ cd /etc/flynn/tuf

$ tuf gen-key targets
Enter root keys passphrase:
Generated targets key with ID 5d941c09ce2579fbd05475049d0bf4d3d6d85724efa6f27c2b0b14bf0824aac4

$ tuf revoke-key targets 5d941c09ce2579fbd05475049d0bf4d3d6d85724efa6f27c2b0b14bf0824aac4
Enter root keys passphrase:

verify the change is what was intended by checking the diff between the staged and committed root.json:

$ diff -Naur <(jq . repository/root.json) <(jq . staged/root.json)
--- /dev/fd/63  2017-02-10 16:58:43.875633364 +0000
+++ /dev/fd/62  2017-02-10 16:58:43.871633604 +0000
@@ -2,7 +2,7 @@
   "signed": {
     "_type": "Root",
     "consistent_snapshot": true,
-    "expires": "2017-02-10T16:07:43Z",
+    "expires": "2018-02-10T16:57:09Z",
     "keys": {
       "1741ffffe790cbcce09d23b2c69637bebf16144dfa99b8c0b777ee429199b076": {
         "keytype": "ed25519",
@@ -55,13 +55,13 @@
         "threshold": 1
       }
     },
-    "version": 8
+    "version": 10
   },
   "signatures": [
     {
       "keyid": "85bbb9f26684e5ab9adfa224eb8b79d69a094b5c514de5ccebe9f46fb81a0070",
       "method": "ed25519",
-      "sig": "8d597b4e2bc5a4c8a4c5ccd3ea5d3eb95fff3e9fdc9140b0c6986fc57379d8b2bd9c464bced8e357e714bd8b80864b673d8acd818942bcdd1b0c7cdbc34bb10e"
+      "sig": "8032dffa23051ec22696796259dffecccc14bfeacea0ee39a99475fdb8ae91f46f20c2bedd0a2995380013f1822f312f661f2263f066ad49bc95213356515903"
     }
   ]
 }

generate a new snapshot / timestamp & commit:

$ tuf snapshot
$ tuf timestamp
$ tuf commit

roll out the change:

$ cd ~/go/src/github.com/flynn/flynn
$ source script/lib/ui.sh
$ source script/lib/aws.sh
$ sync_cloudfront "/etc/flynn/tuf/repository/" "s3://flynn/tuf/"

We should probably add a tuf command to just bump the expire time.

@sdimitrov the cache invalidation is now complete, please try installing Flynn again.

Just tried it again on a clean DO droplet, still getting the same error. I'll try again later.


MainController is getting deleted from memory.

MainController is getting deleted from memory.
MainController is getting initialised in MyApp home:,
In the next page few actions of the controller are getting called, however after some time in the Log the "MainController is getting deleted from memory." is received and app crashes when Maincontroller.to.productList is called.
[GET] MainController deleted from memory
class MyAppState extends State {
@override
Widget build(BuildContext context) {
return
GetMaterialApp(
title: 'Mahavir Mills',
//theme: CustomTheme.of(context),
theme: ThemeData(
primarySwatch: Colors.blue,
),
home:
GetBuilder (
init : MainController(),
builder: (_) {
return widget._homeWidget;
},
),
    //home: MaleFemaleSelection(title: 'XYZ Emporium'),
    routes: {
      //pageRoutes.home: (context) => homePage(),
      pageRoutes.contact: (context) => contactPage(),
      pageRoutes.event: (context) => eventPage(),
      pageRoutes.profile: (context) => profilePage(),
      pageRoutes.notification: (context) => notificationPage(),
    },

  );

}
}

b4 the main controller is deleted, below logs are printed
( 9954): [GOING TO ROUTE] /
I/flutter ( 9954): [GOING TO ROUTE] null
I/flutter ( 9954): [REMOVING ROUTE] /
I/flutter ( 9954): [GET] MainController deleted from memory

kindly guide please, is it valid to initailize the Controller as below
@override
Widget build(BuildContext context) {
return
GetMaterialApp(
title: 'Mahavir Mills',
//theme: CustomTheme.of(context),
theme: ThemeData(
primarySwatch: Colors.blue,
),
home:
GetBuilder (
init : MainController(),
builder: (_) {
return widget._homeWidget;
},
),

builder: (_) {
return widget._homeWidget; /// Why are you doing this? your passing GetMaterialApp, father from GetBuilder to inside of own Getbuilder.
},
Just an addendum: GetMaterialApp needs to be inside the runApp, it cannot have any parent, at most one StatelessWidget class, without any higher hierarchy widget. This widget that will take care of your entire app, from dependency injections, to the exclusion of controllers, and you doing something like putting it into another hierarchy, will completely mess it up.

MainController was initialized on a page that was placed, if you want to keep it in memory, in addition to init: MainController(),
use autoremove: false


Sloppy animation, if playing and in the same time keyboard is appearing on screen

I've been using your lbrary for animation the burger-to-arrow icon transition, in a SerchView (SearchView back arrow animates to burger when SearchView collapses, and vice versa). The issue I experienced is: when the soft keyboard show/hide occurs in the same time with the animation, then the animation becomes jerky, loosing a lot of frames. This situation happens on every phone I have. So I did a workaround, like this
 private void animateToBurgerIcon() {
                if (mHandler == null) mHandler = new Handler();
                mHandler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (!MyFragment.this.isVisible()) {
                         toolbarMorphDrawable.animateIconState(MaterialMenuDrawable.IconState.BURGER);
                      searchMorphDrawable.animateIconState(MaterialMenuDrawable.IconState.BURGER);
                        } else {
                            mHandler.postDelayed(this, 20);
                        }
                    }
                }, 20);
            }

It checks whether the fragement I use is already visible (along with keyboard), and only then starts animation, which resolves the problem, but at the cost of strting animation a little later.
Maybe there could be some more ingenious solution for this problem?

No solution really. Software keyboards usually take a lot of resources and will jitter any animation run at the time they are opening.


how to test getInstallReferrer in local machine, it is being null when i run through emulator

const referrer = DeviceInfo.getInstallReferrer()
When i log referrer, it is being null, any extra user permissions we need to add?
We already have READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE permissions, any other thoughts would be helpful, thanks.
react-native-device-info version is 2.3.2

Use a play store emulator image, install from app store?
You should read the docs on the APIs that we call to furnish the getInstallReferrer implementation, such that you are aware of the limitations
https://developer.android.com/google/play/installreferrer/igetinstallreferrerservice


[FEA] GetJsonObject: perf test for new version of GetJsonObject

Epic issue: https://github.com/NVIDIA/spark-rapids-jni/issues/1823

Refer to the description in PR


Argo 0.3.0 Protocol Change

XML Response Format
<?xml version="1.0" encoding="UTF-8"?>
    <services  responseID=”the unique response ID” probeID=”the probeID that instigated this response”>

        <service id="the unique ID of the service instance” contractID="the contract ID that will match the probe”>

              <!— description block crap —>
              <description>The human readable description</description>
              <serviceName>The human readable short name of the service</serviceName>
              <contractDescription>human readable desc of the contract</contractDescription>
              <consumability>HUMAN_CONSUMABLE or MACHINE_CONSUMABLE </consumability>
              <ttl>expected valid lifetime of this response</ttl>

              <!— access points —>
              <accessPoints>
                  <accessPoint label=“example label - internal network”>
                     <ipAddress>Some IP Address</ipAddress>
                     <port>some port</port>
                     <url>some URL to a REST/SOAP or other access location</url>
                     <data><![CDATA[This is some CDATA text]]></data>
                  </accessPoint>

                  <accessPoint label=“example - external network or IPv6 or whatever”>
                     <ipAddress>Some IP Address</ipAddress>
                     <port>some port</port>
                     <url>some URL to a REST/SOAP or other access location</url>
                     <data><![CDATA[This is some CDATA text]]></data>
                  </accessPoint>

                  <!-- more accessPoints -->

              </accessPoints>

        </service>

       <!-- more services -->

    </services>

JSON Response Format
{
    "responseID": "the unique response ID",
    "probeID": "the probeID that instigated this response",
    "services": [
        {
            "id": "the unique ID of the service instance",
            "serviceContractID": "the contract ID that will match the probe",
            "contractDescription": "human readable desc of the contract",
            "serviceName": "The human readable short name of the service",
            "description": "The human readable description of the service instance",
            "consumability": "HUMAN_CONSUMABLE or MACHINE_CONSUMABLE",
            "ttl": "expected valid lifetime of this response in minutes",
            "accessPoints": [
                 {
                    "label": "internal network",
                    "ipAddress": "Some IP Address",
                    "port": "Some port",
                    "url": "some URL to a REST/SOAP or other access location",
                    "data": "This is some CDATA text - BASE64 encoded"
                 },
                 {
                    "label": "external network",
                    "ipAddress": "Some IP Address",
                    "port": "Some port",
                    "url": "some URL to a REST/SOAP or other access location",
                    "data": "This is some CDATA text  - BASE64 encoded",
                 }
            ]
        },

        … more services …
    ]
}

Probe Format
<?xml version="1.0" encoding="UTF-8"?>
<probe id="urn:uuid:7ea60f23-7072-4113-aff8-194f906d83d1" DESVersion="urn:uuid:55f1fecc-bfed-4be0-926b-b36a138a9943”>
    <respondToPayloadType>XML or JSON</respondToPayloadType>
    <ra>
        <respondTo>http://<IP_ADDRESS>:8181/services/probeResponse</respondTo>
        <respondTo>http://<IP_ADDRESS>:8181/services/probeResponse</respondTo>
        <!— can add more URLs here -->
    <ra>
    <scids>
        <serviceContractID>uuid:03d55093-a954-4667-b682-8116c417925d</serviceContractID>
        <!— can add more service contract IDs here -->
    <scids>
    <siids>
        <serviceInstanceID>uuid:03d55093-a954-4667-b682-8116c417925d</serviceInstanceID>
        <!— can add more service instance IDs here -->
    </siids>
</probe>

Behavior of Probe Responder is this:

Responder will try all respondTo addresses, in order, until one works, then stop.
Responder will collect all service records that match specified “scids” and “siids”.
A Probe with No “scids” and “siids” is called a “naked probe” and is considered a “select all” from a responder.  A responder can be configured with a “no browser” switch to ignore “naked probes."

re: "Responder will try all respondTo addresses, in order, until one works, then stop".  How does a Responder know whether a given address works?

Easy.  Let’s say the probe lists 2 respondTo addresses.
http://<IP_ADDRESS>/application/argo/response
http://<IP_ADDRESS>/application/argo/response
On the internal network, the Responder will try the first URL and succeed (no connection timeout).
On the external network, the Responder will hit a network timeout, then go to the next and succeed.
If it runs through all the respondTo addresses and does not succeed, that tough for the Probe, ya know what I mean?
I’m wondering if we’d need any more than 2.  One internal and one external.  The responder would try the external first and internal second (or be configured to do the opposite?).

On May 7, 2015, at 7:57 PM, Chris Bashioum<EMAIL_ADDRESS>wrote:
re: "Responder will try all respondTo addresses, in order, until one works, then stop". How does a Responder know whether a given address works?
—
Reply to this email directly or view it on GitHub.

Completed in v0.3.0-CR1


Remove dart2_constant

Summary
Client Platform is updating dependencies! Read more details at
https://wiki.atl.workiva.net/display/CP/Dependency+Upgrades
This batch is to remove uses of dart2_constant which is a remnant from the dart 2 upgrade.
For more info, reach out to #support-client-plat on Slack.
Created by Sourcegraph batch change Workiva/remove_dart2_constant.

Security Insights

(2) Vulnerable direct dependencies were detected
1 vulns in sockjs < 0.3.20 via package-lock.json
1 vulns in websocket-extensions < 0.1.4 via package-lock.json

Action Items

Review dependencies for available updates
See this Splunk dashboard for more CVE details
Review PR for security impact; comment "security review required" if needed or unsure
Verify aviary.yaml coverage of security relevant code

Questions or Comments? Reach out on Slack: #support-infosec.


Search build directory first when linking

Make sure that we look into our build directory before /usr/local/lib or any other system directories. Developer builds should use newly built libraries even if the system already has Themis installed.
If we look into /usr/local/lib first then developer builds may fail on macOS which has Themis installed to /usr/local/lib by default. This is important for correct dependency information to be recorded in the libraries (especially if the ABI changes one day).

worked for me!


Calling Bullet.launch a second time causes text to overlap if the first choice wasn't taken the first time

import bullet

b = bullet.Bullet('Choose one: ', choices=['dog', 'banana', 'telephone'])
b.launch()
b.launch()

The first time the choices are presented, choose 'telephone'
The next time, if you press the up key, 'dog' will be overwritten by 'telephone' and the prompt will be overwritten by 'banana'.

Seems like I forgot to reset the cursor position. This bug is fixed, please check!


Doesn't complete parenthesis

Does this issue occur when all extensions are disabled?: Yes

Version: 1.58.2
Commit: c3f126316369cd610563c75b1b1725e0679adfb3
Date: 2021-07-14T22:30:16.440Z
Electron: 12.0.13
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.8.0-63-generic
Steps to Reproduce:

I create file.js, and write console.log when I press ( on keyboard, it should automatically add ) too, but it doesn't even when I set in settings it should always complete parenthesis.

Do you have copilot installed?

it seems it was caused by copilot... but disabling extension doesn't help immediately, You need to restart VSCode too.

Closing as this is caused by copilot. We are working with them to fix that.


refactor: refine kdump package

Purpose:

refine kdump package

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 77.068%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
3754

Relevant Lines:
4871

💛  - Coveralls


Homework1

Homework1 ready for review!

Homework1 ready for review! I added both Jenn and Kelvin to this Repo


hashable-<IP_ADDRESS> doesn't build on GHC 8.2.1-rc2

The hashable-<IP_ADDRESS> release advertises a base package upper bound that includes GHC 8.2.1-rc2 but the most recent changes aren't supported.
Building library for hashable-<IP_ADDRESS>..
[1 of 4] Compiling Data.Hashable.Class ( Data/Hashable/Class.hs, dist/build/Data/Hashable/Class.o )

Data/Hashable/Class.hs:114:32: error:
    Module
    ‘Type.Reflection.Unsafe’
    does not export
    ‘typeRepFingerprint’
    |
114 | import Type.Reflection.Unsafe (typeRepFingerprint)
    |                                ^^^^^^^^^^^^^^^^^^

I've lowered the base bound of the <IP_ADDRESS> release on Hackage so that builds using hashable will be able to succeed as a temporary fix.

@glguy, see #140 and #142. This was a relatively recent change (https://git.haskell.org/ghc.git/commit/88263f93e0f3add38f925d5afb799eee8df32606) that only just landed in the GHC 8.2 branch - @hvr's Ubuntu PPA build of GHC 8.2 didn't rebuild with this commit until yesterday.

That makes sense. It sounds like the package doesn't need any changes then, and once a new release candidate comes out the bound can be raised.

Unfortunately, limiting the upper version bounds has the side effect of breaking all Travis builds that use that PPA to get GHC 8.2, since it's more recent than rc2: https://travis-ci.org/foxik/hashmap/jobs/218461746

Yes, I'm talking to @hvr about his PPA presently


Let EditorLog use the right call queue for thread safety

This is a complement to f61c63e3a1d525ccc204f64ad813c4ba77077468.
The current member was removed because in modern Godot you don't need to record the id of the main thread. That line comes from very long ago.

Thanks!


Expose pill log level to config; turn down in ci

Aimed at https://github.com/capitalone/cloud-custodian/issues/1082.

Lessee what drone/travis do with 1013526e7361d3c7c05d03b17fdb19ecbababeb1 ...

Turn down custodian debugging as well, @kapilt?

this isn't an issue in drone, just the travis output with py.test

i'll play around with it, i think for now just turning of the -v on py.test solves most of the verbosity.

Here's my local notes fwiw.
I think the problem is placebo output. It's too verbose.

We are getting DEBUG messages when we don't really need them.

If I run a single file or even two specific files, I get no placebo DEFAULT output.

If I run `py.test tests/`, I *do* get DEFAULT output. Hmm ...

Fascinating! Logging the debug flag to Pill shows no difference between the two
cases: both are False.

        for f in inspect.stack():
            filename = os.path.basename(f[1])
            if filename.startswith('test_'):
                break
        else:
            filename = '???'
        open('log', 'a+').write('{}  {}\n'.format(filename, debug))

looking in pill.Pill.attach, it's about handler installation:

   (Pdb) LOG.debug('foo')
    No handlers could be found for logger "placebo.pill"

The point being that I never used -v locally and I still got voluminous DEBUG output from placebo. I think -v is a red herring but happy to be proven wrong. :)

it looks like its the -s flag which is doing a different capture mode then what we're do with nose. with nose we let through stdout, where was in py.test that -s defaults to letting through stderr/stdout. simply omitting the -s flag resolves the issue.

Hmm ... thought I tried that but I can revisit. I don't use -s locally and I still get placebo debug logs.

Alright, let's see what Travis does with c55a4d3c255568ff224350e8722e1944280dfda5 ...

Well I'll be. Sorry for the runaround!
Good now, @kapilt?

lgtm, thanks. although i wonder if we do set the log levels if we can get some marginal test speeds up.


Include battery levels for connected devices

One unexpected feature I love in the app is having my phone battery level kept up to date somewhere off of my phone so I can check it without touching my phone or necessarily being near it. I'd love to also include connected device battery levels like bluetooth headphones, keyboards and mice, and smart battery cases.

That's a great idea!
I have no idea if the iOS APIs provide access to that information but it's worth looking into!

I did some digging and I don't see any way that this is possible, sorry!


Welcome Mobile Card not loading in Mobile Cards app

Hello,
Scenario URL: https://developers.sap.com/tutorials/cp-mobile-cards-welcome.html
Step 3: View card on your mobile device
Issue: After adding the subscription in the mobile app, the card is not getting loaded in the app and it says "Failed to process card from subscription Booster Welcome Card" in the activity log of the mobile app.
Labels to be added:
Landscape label: trial1
Sprint Label: SCPTest-2102A
Scenario Label:: SCPTest-mcard
Thanks,
Shubham

Hello,
I have tried the scenario again today as per the Update i received that the Services issue has been fixed.
the issue is still reproducible in EU region and also, the same is reproducible in US Region also.
Only in AP Region the Welcome card was loaded successfully.
In the log Mobile app it says "Failed to process card from subscription Booster Welcome Card"
Please look into the issue once.
labels to be added: trial2
Thanks,
Shubham

Hi @i353590,
Thank you so much for raising the issue. We need more details to discuss the same. Thus, I will set up a meeting with you to discuss these.
Thank you for your support.
Warm Regards
Sandeep T D S

Hi @i353590
Thank you so much for your time. As discussed in the call, can you please confirm the behaviour in the EU region and close the ticket?
Thank you for your support.

Hello Sandeep,
Thanks for discussion.
I have retested the same in EU region as well, and the issue was not reproducible, hence we can close the ticket.
Thanks,
Shubham


Action 'play_file' does not work with AAC and WMA files

AAC and WMA files are supported for playback by Sonos, but don't currently work with the play_file action. Needs investigation.
https://developer.sonos.com/build/content-service-add-features/supported-audio-formats/

v0.1.48 has partial support for AAC files.
Basic playback works well, but there's no display of metadata or album art, and no ability to seek within the track. This is because AAC files have to be treated like streaming radio to get Sonos to play them.

v0.1.48 has partial support for AAC files.
Basic playback works well, but there's no display of metadata or album art, and no ability to seek within the track. This is because AAC files have to be treated like streaming radio to get Sonos to play them.

v0.1.48 also adds support for WMA files.
For some reason the sample WMA file I'd been using would not play on Sonos, with the error "the file is in an unsupported format". I tried an alternative sample file (http://www.theflute.co.uk/media/BachCPE_SonataAmin_1.wma), and this played fine.
So, I'm uncertain about how robust WMA playback is because I don't have a library of WMA files, but I'm going to close this issue as I think I've done what I can from a SoCo-CLI perspective.

v0.1.48 also adds support for WMA files.
For some reason the sample WMA file I'd been using would not play on Sonos, with the error "the file is in an unsupported format". I tried an alternative sample file (http://www.theflute.co.uk/media/BachCPE_SonataAmin_1.wma), and this played fine.
So, I'm uncertain about how robust WMA playback is because I don't have a library of WMA files, but I'm going to close this issue as I think I've done what I can from a SoCo-CLI perspective.

AAC file playback is very unstable. Mostly works on macOS, but not on Linux or Windows. I'm investigating why there are differences.

AAC file playback is very unstable. Mostly works on macOS, but not on Linux or Windows. I'm investigating why there are differences.

See associated SoCo question: https://github.com/SoCo/SoCo/issues/783.

See associated SoCo question: https://github.com/SoCo/SoCo/issues/783.

Closing: won't fix.


cannot connect my device to pretixScan

Hello pretix team.
I am trying to configure pretixscan on my android device in order to use for check-in.
I am trying to connect my device in the Devices section of organizer account in the pretix backend, but I am getting the message
"Security error while trying to reach the server." This happens when using the QR code that is generated and even if I use the manual setup and enter the System URL and Token.
Thank you in advance.

Can you check if https://www.ssllabs.com/ssltest/analyze.html shows any warnings for your domain such as a broken certificate chain?

Hello,
i had the same problem.The SSL check did not show an issue in the certificate chain. In the end it was a missing https: in the url in the pretix.cfg config file. It is minor, but maybe it helps someone.

My issue was with the chain of the SSL. A great help with https://whatsmychaincert.com.


Updated Upcoming event Details

@abishekvelavan You can add the YouTube Live Link in the .md file itself.
Use
Click [Here](ytlive-link) to register

Refer this syntax guide to know how to use links in text.
Also add Form Link in Register Button


Docker+CI: More efficient build

CI was moved to GHA here: https://github.com/grafana/tanka/pull/938
However, it turns out that buildx is pretty slow when building across other archs. Improvements in this PR:

Remove apk add curl where easily doable
Download jb from Github releases rather than building it
Build tk exec outside of Docker
Bonus: Set paths filter for docs build

Result: 1.5m runtime rather than 10+m

Will close this PR as I do not have the time/desire to get it fixed (repo isn't broken, it's just slightly slow). Pick it up if you wish


remove main view controller storyboard

Task/Issue URL: https://app.asana.com/0/0/1205584556126567/f
Tech Design URL:
CC:
Description:
Note: This PR is based on #2045.
Steps to test this PR:

Clean install of the app, get through onboarding and check all buttons on the main screen work as expected
Browse to a site.  Check all buttons work as expected
Clear tabs and data. Check UI looks right and buttons work as expected
On iPad specifically in full screen and split screen configurations check UI looks and behaves as expected
Check launching app with home screen showing
Check launching app with tab open
Edit HomeRowReminder.swift and make 'showNow()' return true.  Open a new tab and perform a search.  Ensure home row banner is shown.

Orientation Testing:

[ ] Portrait
[ ] Landscape

Device Testing:

[ ] iPhone SE (1st Gen)
[ ] iPhone 8
[ ] iPhone X
[ ] iPhone 15 Pro
[ ] iPad

OS Testing:

[ ] iOS 14
[ ] iOS 15
[ ] iOS 16

Theme Testing:

[ ] Light theme
[ ] Dark theme

Internal references:
Software Engineering Expectations
Technical Design Template

Thanks @samsymons and @miasma13


Error with bright field analysis

Hi Tobias,
I am trying to quantify the heartbeat of 3dpf zebrafish using your bright field method. I have tested your fluorescent images and they work properly, however the bright field video I am trying to analyse is not working correctly.
This is the error message I am getting:
Frame parameter
Height (px):  1080.0
Width (px):  1920.0
frames per sec:  30.0
duration (sec):  13.9
Total number of images:  416
C_3dpf
C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\venv\Lib\site-packages\numpy_core\fromnumeric.py:3596: RuntimeWarning: Mean of empty slice.
return _methods.mean(a, axis=axis, dtype=dtype,
C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\venv\Lib\site-packages\numpy_core_methods.py:138: RuntimeWarning: invalid value encountered in scalar divide
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\bright_field_whole_fish.py", line 763, in
eye_center, eye_temp = find_fish_eye(image_matrix2.copy())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\bright_field_whole_fish.py", line 350, in find_fish_eye
x_start = int(eye_temp[1]) - 260
^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integer
bright_field_whole_fish.py "C:/Users/green/Videos/Test1\C_3dpf.avi" --output "C:/Users/green/Videos/Test1_Results" --name "Test1" --pixel_size 0.2 --cut_movie_at 10 --frames_per_sec 30 --image_counter 1/1  --skip_images 0 --file_format .avi
Write excel
Exception in thread Thread-3 (run_program):
Traceback (most recent call last):
File "C:\Users\green\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1073, in _bootstrap_inner
self.run()
File "C:\Users\green\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1010, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\pyHeart4Fish_App.py", line 468, in run_program
out2 = pd.concat([pd.read_csv(file) for file in glob.glob(output_folder + rf"**.csv")])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\venv\Lib\site-packages\pandas\core\reshape\concat.py", line 382, in concat
op = _Concatenator(
^^^^^^^^^^^^^^
File "C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\venv\Lib\site-packages\pandas\core\reshape\concat.py", line 445, in init
objs, keys = self._clean_keys_and_objs(objs, keys)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\green\Documents\pyHeart4Fish\pyHeart4Fish_scripts\venv\Lib\site-packages\pandas\core\reshape\concat.py", line 507, in _clean_keys_and_objs
raise ValueError("No objects to concatenate")
ValueError: No objects to concatenate
I have taken a screenshot of a video frame to show you the video setup we have:

Any help you could provide would be greatly appreciasted!
Thank you!
Michael Green

Hi Michael,
thanks for reaching out! It appears that the script is not able to find the "fish eye" because the mask is to large, which should normally remove edge artifacts (which are not present in your videos). An easy way would be to out-command or delete line 334 in your source code:
image_matrix3[mask == 255] = np.max(image_matrix3)
code  (line 328-344):
# create a mask
    x, y = np.ogrid[:len(image_matrix3), :len(image_matrix3[0])]
    mask = (x - int(len(image_matrix3) / 2)) ** 2 \
           + (y - int(len(image_matrix3[0]) / 2)) ** 2 > (len(image_matrix3) * 0.78) ** 2
    mask = 255 * mask.astype(int)

    image_matrix3[mask == 255] = np.max(image_matrix3)

    """corner = 100
    image_matrix3[:corner, :corner] = 30_000
    image_matrix3[:corner:, -corner:] = 30_000
    image_matrix3[-corner::, :corner] = 30_000
    image_matrix3[-corner:, -corner:] = 30_000"""

    eye_ = np.where(image_matrix3 < np.percentile(image_matrix3, 0.22))
    eye_ = np.asarray(eye_)
    eye_temp_ = [np.mean(eye_[0]), np.mean(eye_[1])]

How did you install pyHeart4Fish? is it possible for you to send a video to >tobias.reinberger@uni-luebeck,de< so that I can test it?
Please let me know if you need help again!
Best regards, Tobias


[Pharo 5] Javascript Interpreter NOT available

To reproduce this :
Exactly like here : https://github.com/bouraqadi/PharoJS/issues/5
Except I'm on Pharo 5.0 !

Just released a new version of PharoJS. It works fine with Ubuntu 18.
Give it a try please.

I just did by trying loadStable and loadBleedingEdge on two different images.
Doesn't change anything from yesterday.
Thanks.

Which web browser are you using?
Did you try with a fresh image?

firefox. And yes I only try with clean images, I use pharo-launcher.

I suggest to switch the discussion to Slack. Send a private message to @pharojs to receive an invitation.


Add more security invariants to the threat model

This ticket should be split into smaller ones, one for each invariant we want to add. In my draft threat model, I had:
We hope that one day, in the HONEST scenario, TYPICAL adversaries cannot:

Cause the SDK to report a balance greater than what could actually be spent.
Cause the SDK to report a transaction has been received when it hasn't.

This can happen accidentally until the reorg handling is sorted out.

in the UNTRUSTED threat model, we're not checking proof of work or other concerns that require the full block header (because the compact block only provides limited header information).

In the HONEST scenario, TYPICAL adversaries cannot learn transaction details (time, amount, recipient, etc.)


Indexed Navigations and Skip Navigations

Allow mapping navigations to indexers. Related to https://github.com/aspnet/EntityFrameworkCore/issues/13610

/cc @lajones

And owned navigations


Create objects representing the most popular English versions

ESV (multiple years)
NIV (multiple years)
KJV
NKJV
NASB
ASV

which years do you want for ESV and NIV

which years do you want for ESV and NIV

All


Drag'n'Drop/Sortable: Need a robust system

Drag gestures are becoming increasingly more popular in Web UIs, and for good reason! They're super easy to use! They extend the fluid "life-like" experience we've become accustomed to from the mobile/tablet world. Therefore, it's important that this library includes a solid and flexible drag and drop / drag sort system.
Drag/Sort systems are almost always excluded from Component libraries. The main reason is... well... because they're heavy and complicated (aka. really hard!). I believe taking on this complexity is worth it as we'll be able to provide users with an easy to use + powerful way to create highly interactive experiences - be that in Gutenberg's UI, custom Block controls, WP Admin, and beyond.
Evaluating Libraries
Below are a handful of libraries I've been evaluating.
(Note: It's been an on-going goal of mine to have a powerful + easy-to-use drag/sort system for years now. I've been following these libraries for a while)

Sortable.js
React DnD
Sortable HOC
React Beatiful DnD

Each of their strengths and weaknesses. Their feature-set (animation handling, element/window scroll coordination, native browser drag attribute support, nesting, multi-list, etc...) vary from library to library. Weaknesses are usually missing features or the library being super complicated (i.e. verbose to code/manage).
Accessibility
Also, having a11y considerations built-in (as much as possible) would be incredibly helpful. Some of the libraries above do this well, others not so much.
Supporting Other Components
Certain components can have drag/sort built right in. FlatList comes to mind! This saves the user time from having rig up and manage multiple components together.

Just made a push that prototypes s react-dnd solution:
https://github.com/ItsJonQ/g2/commit/f0360f53e3c6e3d1a3661c6e70324d92866aa367
It feels okay so far :). How... let's see if we can get some sort of animated sort/reorder solution going!

The above solution uses React DND. I'd like to explore React Beautiful DND next, as it has sortable features built in (as well as default support for mobile events)

Here's React Beautiful DND:

Neato sorting animations aside... Speaking purely from an API + dev perspective, I'm a fan. The composition, data flow, and callbacks feel easier to work with. Also, RBD has a bunch of a11y support built-in 👍
https://g2-components.xyz/iframe.html?id=components-draggable--react-beautiful-dnd
I believe we can replace <Sortable /> with RBD.
We can also use it for <Draggable /> implementation.
Now to figure out nested lists 🤔

Woo! Coming up with some neat interactions.
This was inspired by some of the block drag interaction designs from Gutenberg.

Demo:
https://g2-components.xyz/iframe.html?id=components-draggable--drag-list-context
cc'ing @shaunandrews + @MichaelArestad

I was confused at first as the what the logic was behind the text fading in-and-out on the right. I think what's happening is that the block being dragged remains unfaded, while every other block fades out. I'd actually expect the opposite behavior; The dragged block fades out (or is removed entirely) but every other block remains unchanged.

I'd actually expect the opposite behavior
@shaunandrews Ah gotcha. We can do that :). What I shared in the gif was an experiment to see if:

it even worked (lol)
see how interaction x animations can be combined from different contexts (left list + right list)

P.S. Update!
Check this example out 🔥
https://g2-components.xyz/iframe.html?id=components-draggable--drag-builder

When dragging the rendered block (on the right) there's two things that strike me:

Removing the block causes everything to shift, and I lose my desired dropzone in the shifting. Maybe the hole where the block was could still be represented? Maybe just a subtle background color in the empty space.
Dragging a huge block is really hard; I can't see where I'm moving it, as it obscures everything behind it. Perhaps the block I'm dragging could shrink down in size so I can easier see where I'm about to drop it?

Gotcha! I worked on @jasmussen  a bit on the Editor block drag interaction. We collapsed the block into a tiny "Chip" design that is dragged instead.

(For prototype purposes, I'm going to avoid coding up a toolbar)
For the interaction, there's a design decision we have to make:
a. Keep the placeholder (original empty space) the same size. Perhaps grey it out to indicate the drop zone.
b. Shrink the placeholder (using an animation to communicate the change).

Yes, we can (and should) shrink it down - into a draggable "Chip" design that @jasmussen made 👍

I can attempt these 2 updates next.
For context, the library that powers this (react-beautiful-dnd) cannot do what is described above out-of-the-box (I checked and attempted). That means, we'll have to apply some clever tinkering to achieve the desired effects.

I just tried this and it's great! @shaunandrews did a good job identifying ways to improve it. I also struggled dragging a large block where I wanted, particularly, when there isn't much content on the page. Glad to see you iterating so quickly on this.

Love it. Seems a lot less finicky than Gutenberg.

Removing the block causes everything to shift, and I lose my desired dropzone in the shifting. Maybe the hole where the block was could still be represented? Maybe just a subtle background color in the empty space.
Dragging a huge block is really hard; I can't see where I'm moving it, as it obscures everything behind it. Perhaps the block I'm dragging could shrink down in size so I can easier see where I'm about to drop it?

Important points as always, Shaun.
Dragging a huge block around was one important reason why we collapsed the block lifted into a tiny "chip". However a more important point is that we cannot show a fully opaque clone with a drop shadow as shown in this prototype. It's unfeasible (trying to avoid breaking Clarke's first law here) for a few reasons:

A theme can provide any arbitrary background color. When you "lift a block" it's essentially taken out of the flow, and in order for it to have an opaque background color, we explicitly have to add that color to the component.
This prototype (which I agree is beautiful) specifically applies a white background color. Presumably we could detect the theme background color and apply that. But what if you're dragging inside a group with a different background?
What if you're dragging it from inside a block with one background color and into one with another, should the background color on the fly?

By collapsing it into an abstract representation, we not only solve that, but we also don't cover too much of the page you're dragging things around on. It's a tradeoff, but one that to me feels worth it.
The other aspect, the layout shifting, is something I discussed a lot with @mtias back in the first version. I was in favor of the leaving a gray hole camp, and he was in the move blocks instantly camp. Since then I've come full circle to his point, because there is something immediately understandable when the block moves with your cursor rather than happening on drop. One of the bigger challenges with drag and drop, moving stretches so long the browser scrolls, is also slightly mitigated. And when you make an erroneous move, you just undo.

Hey @ItsJonQ I thought I'd check in on this - keen to see how this is progressing as I want to upgrade the drag and drop library in project I'm working on (and I try to keep in sync with the wp/gutenberg way).
My 2 cents / experiences as I've been testing a few drag and drop libraries also:
Some stuff you probably already know: I couldn't use the Gutenberg drag and and drop libraries as it was not responsive enough (ie, when dragging a block above / below another block, at the half way point, the block should move out of the way above / below, but sometimes its not responsive enough, you have to do slightly exaggerated gestures to make sure the movement is captured and the blocks move out of the way).
Anyway, this led me to creating my own kind of block editor, with another library for drag and drop (a lot of work, just to get smooth drag and drop).
I only tested 2:
React Beautiful DND - this was the best out of the box in terms of responsiveness and appearance, but doing things programmatically with the sensor API looks a bit awkward, and it doesn't look like its maintained anymore.
React DND -  I think this could be good, but there was a lot of work to get animations setup/working (I actually gave up as I didn't have the time) - however I think in React beautiful dnd a lot of the smoothness and responsive comes from performance optimizations - I think to get this working at scale would require some really clever programming to add  this one - the bonus would be though, that we would have full control over how all this works).
Anyway, my testing hasn't been that comprehensive, but I've tested these two - if you want a hand trying any of others out and I can give them a spin and provide demos / feedback.
Cheers!


Testing issue.

Cloudy checked, Cloudy approved.

Cloudy checked, Cloudy approved.

Cloudy checked :white_check_mark:, Cloudy approved :+1:

Cloudy checked :white_check_mark:, Cloudy approved :+1:.

Cloudy checked :white_check_mark:, Cloudy approved :+1:.

:white_check_mark: Assignee added.

Cloudy checked :white_check_mark:, Cloudy approved :+1:.

:white_check_mark: Assignee added (@NamedUser(login="claymcleod")).

Cloudy checked :white_check_mark:, Cloudy approved :+1:.

:white_check_mark: Assignee added (@claymcleod).

Cloudy checked :white_check_mark:, Cloudy approved :+1:.

:white_check_mark: Assignee added (@claymcleod).
:-1: You should consider adding a better description!

Cloudy checked :white_check_mark:, Cloudy approved :+1:.

Cloudy checked :white_check_mark:, Cloudy approved :+1:!

Cloudy checked :white_check_mark:, Cloudy approved :+1:!

:white_check_mark: Assignee added (@claymcleod).

Cloudy checked :white_check_mark:, Cloudy approved :+1:!

:white_check_mark: Assignee added (@claymcleod).
:x: Your description cannot be empty!

Cloudy checked... it does not approve :-1:...

I'll try again.

:x: Your description cannot be empty!

Cloudy checked... it does not approve :-1:...

:x: Your description cannot be empty!

Cloudy checked... it does not approve :-1:...

:x: Your description cannot be empty!

Cloudy checked :x:, Cloudy does NOT approve :-1:...

:x: Your description cannot be empty!

Cloudy checked :x:, Cloudy does NOT approve :-1:...

:x: Your description cannot be empty!

Cloudy checked :x:, Cloudy does NOT approve :-1:...


Multiple updates

Remove memcached dependency.
Remove brakeman gem, we are using CircleCI with the brakeman engine.
Update database.yml file.
Move rspec-rails and factory_girl_rails gems to the bundler test group.
Update circle.yml file
Move sequel configuration to application.rb, we should set the plugins and extensions
in the application.rb after_connect block
Delete the database.ci.yml no longer needed.
Require factory girl only when tests are run

Notes
There is a bug in the factory_girl_rails gem that leaks during the boot time, as a workaround disable the require from bundler.. and load manually from the spec_helper

 Remove memcached dependecy in production and replace it with memory store

 Fix sequel-rails issue with rake task


fix(composer): ensure the composer is initialised

Ensure the composer is initialised when the deployer gets built so that
the test cases can run.

bors merge

bors merge

bors merge


New Crowdin translations

Enjoy!

Codecov Report

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

@@            Coverage Diff             @@
##           master      #80      +/-   ##
==========================================
- Coverage   11.65%   11.63%   -0.02%
==========================================
  Files         172      172
  Lines        5261     5268       +7
==========================================
  Hits          613      613
- Misses       4648     4655       +7

Impacted Files
Coverage Δ

Lightning/QrCodes/LndConnectURL.swift
0% <0%> (ø)
:arrow_up:

...ficateDetail/CertificateDetailViewController.swift
0% <0%> (ø)
:arrow_up:

...ConnectRemoteNode/ConnectRemoteNodeViewModel.swift
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Supported Status for Versions

From: https://github.com/angular/angularjs.org/issues/220
Greetings -
It would be great if angularjs.org could maintain a simple page that indicates AngularJS versions and their EOL/Security Patch/LTS status.
For example, PHP has a similar page here: http://php.net/supported-versions.php
It clearly outlines the bug fix / security patch strategy for each supported version of PHP.
For angular, there are blog entries that elude to support (security fixes for 1.2.x in the 1.6.0 announcement post, for example). But even if there was just a list, not necessarily with timelines, of the most recent version of each significant release of Angular, and the current status of support for that release, it would make it simple for a developer to choose a supported version...
Or in our case, justify staying on a 1.2.x version because security patches are still maintained.
Thanks!
C

Here's another issue where this is requested in readme.md and angularjs.org, which sounds reasonable: https://github.com/angular/angular.js/issues/16458


import directly from seurat object

Hi! I was hoping you can provide some guidance on importing processed Seurat objects (that contains the metadata) directly into immunarch for exploration.
I tried importing the .txt count matrices and the saved seurat .rds files with no luck. Here is the error I get when I tried:
> immdata <- repLoad("seuratobject.rds")

== Step 1/3: loading repertoire files... ==

== Step 2/3: checking metadata files and merging files... ==

Processing "" ...
Error in parsed_batches[[batch_i]] : subscript out of bounds
>

Any suggestions?
Thank you,
Wei

Hi @wfma ,
thank you for letting us know about the issue! The immunarch package is focused on the exploration of the immune repertoire data, i.e., clonotype tables, not gene expression data. So currently we don't support loading Seurat objects into immunarch.
However, if you have clonotype tables separately from the Seurat object, you can easily upload them to the immunarch. What is your technology, is it 10X Genomics? If so, do you have "filtetered contigs annotations" files? This link may help: https://immunarch.com/articles/web_only/load_10x.html

I see! Thank you so much. Yes it is 10X. I will explore more and see what I can come up with.
Wei

Perfect, thank you! Yes, please let us know about any bugs or questions by opening the ticket here. Your input is much appreciated.

Hi - I have a similar query. For reasons outside my control my working data is simply the CDR3 sequence of TRA and TRB chains, alongside cell and sample metadata. Is it possible to import such a minimalist dataset into immunarch? I simply want to do some basic clonality/diversity calculations and leverage your great plotting API. Thanks.

Closing this issue for now.  It will be implemented in the next version of Immunarch.
More details on the next version of Immunarch are here: https://b-t.cr/t/immunarch-will-significantly-evolve-but-it-will-break-things-and-we-need-your-help/1123


Sleuth breaks Spring's strategy of looking for an Executor for @Async processing

When no AsyncConfigurer is present in the context, Sleuth autoconfigures one which initialize the Spring @Async framework with a SimpleAsyncTaskExecutor, even if an explicit TaskExecutor  has been provided by the application.
Just to remember, Spring follows the following step when looking for an executor:

use the AsyncConfigurer found in the context if any
search for a single (or annotated @Primary) TaskExecutorbean
search for a bean of type Executor named taskExecutor
If nothing is found, Spring falls back to using a SimpleAsyncTaskExecutor after logging some warning messages in the logs.

Because Sleuth creates an AsyncConfigurer itself, steps 2 and 3 are not applicable anymore. Consequence is people cannot rely on Spring's default behaviour.

Which version of Sleuth are you using? Do you have a sample project that replicates this behaviour?

Ok I think I know what you're referring... Is my comment correct?
/**
	 * Wrapper for the async executor.
	 */
	@Configuration
	@ConditionalOnMissingBean(AsyncConfigurer.class)
	@ConditionalOnProperty(value = "spring.sleuth.async.configurer.enabled", matchIfMissing = true)
	@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
	static class DefaultAsyncConfigurerSupport extends AsyncConfigurerSupport {

		@Autowired
		private BeanFactory beanFactory;

		@Override
		public Executor getAsyncExecutor() {
			// you're saying that this default shouldn't be here...
			return new LazyTraceExecutor(this.beanFactory, new SimpleAsyncTaskExecutor());
		}

	}

That's the culprit indeed.
The condition @ConditionalOnMissingBean(AsyncConfigurer.class) is not enough - it doesn't take into account the fact that Spring will also consider the TaskExecutor or Executor it may find in the context (see original description).
As a temporary workaround, we disabled Sleuth's default async configurer by setting spring.sleuth.async.configurer.enabled to false. Then we added the following configuration in our code:
@Configuration
@AutoConfigureBefore(AsyncCustomAutoConfiguration.class)
public class SchedulingAutoConfiguration {

	@Bean
	@Lazy
	@Conditional(OnNoAsyncExecutorFound.class)
	@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
	public AsyncConfigurer defaultAsyncConfigurer() {
		Logger logger = LoggerFactory.getLogger(SchedulingAutoConfiguration.class);
		logger.warn(
				"Using an unbounded SimpleAsyncTaskExecutor that fires up a new thread for each task for @Async processing. " +
				"To use another strategy, register an AsyncConfigurer, a single or primary TaskExecutor or an Executor named 'taskExecutor' in the context.");

		return new AsyncConfigurerSupport() {
			@Override
			public Executor getAsyncExecutor() {
				return new SimpleAsyncTaskExecutor();
			}
		};
	}

	private static class OnNoAsyncExecutorFound extends NoneNestedConditions {
		OnNoAsyncExecutorFound() {
	        super(ConfigurationPhase.REGISTER_BEAN);
	    }

	    @ConditionalOnBean(AsyncConfigurer.class)
	    static class OnAsyncConfigurer {
	    }

	    @ConditionalOnSingleCandidate(TaskExecutor.class)
	    static class OnTaskExecutor {
	    }

	    @Conditional(OnDefaultTaskExecutor.class)
	    static class OnDefaultExecutor {
	    }
	}

	/**
	 * Condition matching when a bean of type {@link Executor} and named {@link AsyncExecutionAspectSupport#DEFAULT_TASK_EXECUTOR_BEAN_NAME}
	 * is found in the context.
	 * <p>
	 * Similar to {@link ConditionalOnMissingBean @ConditionalOnMissingBean} except that both the type and
	 * the name must match.
	 */
	private static class OnDefaultTaskExecutor extends SpringBootCondition {
		@Override
		public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {
			String[] beanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(context.getBeanFactory(), Executor.class, true, false);
			for(String beanName: beanNames) {
				if (AsyncExecutionAspectSupport.DEFAULT_TASK_EXECUTOR_BEAN_NAME.contentEquals(beanName)) {
					return ConditionOutcome
							.match("Found Executor with name "+AsyncExecutionAspectSupport.DEFAULT_TASK_EXECUTOR_BEAN_NAME);
				}
			}

			return ConditionOutcome
					.noMatch("Did not find Executor with name "+AsyncExecutionAspectSupport.DEFAULT_TASK_EXECUTOR_BEAN_NAME);
		}
	}
}

Nice! Do you happen to have a sample that is broken? I could use it as a test that would break ATM.

I'm trying to build a sample... shouldn't be too hard.
There is another potential issue I'm thinking of atm... What would happen if my AsyncConfigurer gets the executor from the application context? My first impression is it will be instrumented twice: once because Sleuth found the executor bean in the context (by means of its post processor), and a second time because of its instrumentation of the configurer. Is that a problem? Wouldn't it cause duplicate spans?

My first impression is it will be instrumented twice: once because Sleuth found the executor bean in the context (by means of its post processor), and a second time because of its instrumentation of the configurer. Is that a problem? Wouldn't it cause duplicate spans?

If you have you own AsyncConfigurer then we don't wrap yours since the configuration has 	@ConditionalOnMissingBean(AsyncConfigurer.class).

What about what happens in AsyncCustomAutoConfiguration then ?

It's a bean post processor that wraps all of your customizers in such a way that whatever Executor you've defined, will be wrapped in a LazyTraceExecutor wrapper.

Here is a simple JUnit test case to illustrate the case.
GH1212Tests.java.zip

@brenuart thanks for the test - it helped to debug the issue. Now the logic is such that it will try to pick the proper executor and fallback to the default if necessary. Can you double check that it works as expected now?

Sounds good.
You replicated the logic found in AsyncExecutionAspectSupport instead of relying on conditions as in my proposal. It has the added benefit of logging the same warning messages as the aspect would do.
However, we should be aware that those warnings will be printed even if the async framework doesn't use the default executor. This happens if you explicitly name an executor in your @Async annotations. This may be confusing for some people...

However, we should be aware that those warnings will be printed even if the async framework doesn't use the default executor. This happens if you explicitly name an executor in your @Async annotations. This may be confusing for some people...

I have modified one of the tests to replicate that behavior and I don't see such logs.

You can check https://github.com/spring-cloud/spring-cloud-sleuth/commit/c225cadb2dfb94a91b17385b7fd6437e07c9ea1c for more details (maybe I've done sth wrong though).


Subfolder isn't created when there's no _index.md

What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.121.2-6d5b44305eaa9d0a157946492a6f319da38de154+extended darwin/amd64 BuildDate=2024-01-05T12:21:15Z VendorInfo=gohugoio

Does this issue reproduce with the latest release?
Yes
Issue
This issue was reported by someone else 5 years ago but was closed without a fix due to a "staleness" bot https://github.com/gohugoio/hugo/issues/6583
5 years later is still exhibits in the latest release, so I wanted to re-open to ask if there's a fix planned or if this is intended behaviour.
To be clear, I can get the desired behaviour by creating both an index.md and an empty dummy _index.md but I see this warning:
WARN  Content directory "<snip>/content/contact-us" have both index.* and _index.* files, pick one.

To be clear, the desired site structure here is to have:
<baseUrl>/contact-us/ --> Main contact page for general enquiries
<baseUrl>/contact-us/topic/ --> Separate contact form for specific enquiries

(and similar structure for other sections on the site)

You cannot have both index.md and _index.md in the same directory. You would be telling Hugo, "Hey, this directory is a leaf bundle, and a branch bundle," and those two are mutually exclusive.
Please use the forum (https://discourse.gohugo.io/) for questions and troubleshooting. We prefer to use GitHub for verified bugs and vetted enhancements. Thanks.

You would be telling Hugo, "Hey, this directory is a leaf bundle, and a branch bundle," and those two are mutually exclusive.

I'm sorry if I've been unclear here; the intent is definitively to have a branch bundle and NOT a leaf bundle. The bug being reported here is that both files are required to make this work (whereas as you've pointed out index.md is intended for leaf bundles only).

Please use the forum (https://discourse.gohugo.io/) for questions and troubleshooting. We prefer to

I haven't asked for any questions nor am I troubleshooting any problems: my setup functions fine with both files in place (branch bundle only). It's exhibiting a warning message that's already been documented in 2019 as a bug with Hugo (that ticket was closed by an automated bot, not by any maintainers for any stated reason).

both files are required to make this work

No, they are not.
Please create a topic on the forum to ask "How do I do xxx", and someone will be happy to help you. Thanks.


tail -f does not work properly in vim when used as source

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[ ] Linux
[x] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[ ] bash
[ ] zsh
[ ] fish

Editor

[x] Neovim

Problem / Steps to reproduce
I'm trying to asynchronously generate a file behind the scenes to use as a source while running fzf in vim.
I want to use "tail -f" to read the files, but when I use tail -f with fzf on Vim, Sink doesn't work properly, probably because the process doesn't terminate.
Is there a workaround to get it to work correctly?
Shell
$ ls > ls.txt

(Neo)vim
:call fzf#run({ 'source':  'tail -f ls.txt', 'sink': "edit" })

Well, that's before tail process doesn't terminate even when its stdout is broken. You can reproduce the problem in your shell like so
touch ls.txt
tail -f ls.txt | fzf
  # tail process doesn't finish

But according to https://unix.stackexchange.com/a/416162/62171, GNU version of tail, which you can install via brew install coreutils, properly handles the situation.
brew install coreutils
gtail -f ls.txt | fzf

I can confirm that it finishes shortly after fzf is closed.

Having said that, we can work around the problem by using process substitution instead of pipe.
fzf < <(tail -f ls.txt)

However, this only works on bash not on POSIX sh (/bin/sh), and the Vim plugin of fzf uses sh and pipe.

https://github.com/junegunn/fzf/blob/4cd621e877cb3a8e44b12ba3a7ce58709862922f/plugin/fzf.vim#L442
https://github.com/junegunn/fzf/blob/4cd621e877cb3a8e44b12ba3a7ce58709862922f/plugin/fzf.vim#L471

Similarly, to immediately kill the source process, fzf#vim#grep function of fzf.vim does this trick of temporarily changing $FZF_DEFAULT_COMMAND.
https://github.com/junegunn/fzf.vim/blob/a88311b222eb9f90fa9fa72292e61d15c6767866/autoload/fzf/vim.vim#L821-L827
But anyway, I'd love to see a better way of handling long-running input processes in Vim plugin so we don't have to do these things.

🤔
diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index ee2ee90..39dd510 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -468,16 +468,17 @@ try
     let source = dict.source
     let type = type(source)
     if type == 1
-      let prefix = '( '.source.' )|'
+      let source_command = source
     elseif type == 3
       let temps.input = s:fzf_tempname()
       call writefile(source, temps.input)
-      let prefix = (s:is_win ? 'type ' : 'cat ').fzf#shellescape(temps.input).'|'
+      let source_command = (s:is_win ? 'type ' : 'cat ').fzf#shellescape(temps.input)
     else
       throw 'Invalid source type'
     endif
+    call remove(dict, 'source')
   else
-    let prefix = ''
+    let source_command = ''
   endif

   let prefer_tmux = get(g:, 'fzf_prefer_tmux', 0) || has_key(dict, 'tmux')
@@ -500,7 +501,11 @@ try
     let optstr .= ' --no-height'
   endif
   let optstr .= s:border_opt(get(dict, 'window', 0))
-  let command = prefix.(use_tmux ? s:fzf_tmux(dict) : fzf_exec).' '.optstr.' > '.temps.result
+  let prev_default_command = $FZF_DEFAULT_COMMAND
+  if len(source_command)
+    let $FZF_DEFAULT_COMMAND = source_command
+  endif
+  let command = (use_tmux ? s:fzf_tmux(dict) : fzf_exec).' '.optstr.' > '.temps.result

   if use_term
     return s:execute_term(dict, command, temps)
@@ -511,6 +516,9 @@ try
   call s:callback(dict, lines)
   return lines
 finally
+  if len(source_command) && len(prev_default_command)
+    let $FZF_DEFAULT_COMMAND = prev_default_command
+  endif
   let [&shell, &shellslash, &shellcmdflag, &shellxquote] = [shell, shellslash, shellcmdflag, shellxquote]
 endtry
 endfunction

Thank you.
Is it possible to use the fzf vim plugin to support this in the near future?

Can you help testing the patch in various environments and scenarios?

I only have a Mac, but I think I can use Docker to try it on Ubuntu and other systems.

Thanks. I'm not completely confident that the patch doesn't have any side effects (e.g. conflicts with other plugins) so I'm going to use this on my local machine for a few days and see if it's safe to merge to master.

Turns out the above patch has a bug of keeping temporary FZF_DEFAULT_COMMAND if the variable was not defined.
diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index ee2ee90..cbdceb5 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -465,19 +465,19 @@ try
   endif

   if has_key(dict, 'source')
-    let source = dict.source
+    let source = remove(dict, 'source')
     let type = type(source)
     if type == 1
-      let prefix = '( '.source.' )|'
+      let source_command = source
     elseif type == 3
       let temps.input = s:fzf_tempname()
       call writefile(source, temps.input)
-      let prefix = (s:is_win ? 'type ' : 'cat ').fzf#shellescape(temps.input).'|'
+      let source_command = (s:is_win ? 'type ' : 'cat ').fzf#shellescape(temps.input)
     else
       throw 'Invalid source type'
     endif
   else
-    let prefix = ''
+    let source_command = ''
   endif

   let prefer_tmux = get(g:, 'fzf_prefer_tmux', 0) || has_key(dict, 'tmux')
@@ -500,7 +500,11 @@ try
     let optstr .= ' --no-height'
   endif
   let optstr .= s:border_opt(get(dict, 'window', 0))
-  let command = prefix.(use_tmux ? s:fzf_tmux(dict) : fzf_exec).' '.optstr.' > '.temps.result
+  let prev_default_command = $FZF_DEFAULT_COMMAND
+  if len(source_command)
+    let $FZF_DEFAULT_COMMAND = source_command
+  endif
+  let command = (use_tmux ? s:fzf_tmux(dict) : fzf_exec).' '.optstr.' > '.temps.result

   if use_term
     return s:execute_term(dict, command, temps)
@@ -511,6 +515,13 @@ try
   call s:callback(dict, lines)
   return lines
 finally
+  if len(source_command)
+    if len(prev_default_command)
+      let $FZF_DEFAULT_COMMAND = prev_default_command
+    else
+      unlet $FZF_DEFAULT_COMMAND
+    endif
+  endif
   let [&shell, &shellslash, &shellcmdflag, &shellxquote] = [shell, shellslash, shellcmdflag, shellxquote]
 endtry
 endfunction

This seems to break vimtex's vimtex#fzf#run() with certain fzf#run options.
vimtex#fzf#run() uses the following
function! vimtex#fzf#run(...) abort
  let l:opts = extend({
      \ 'source': <sid>parse_toc(a:0 == 0 ? 'ctli' : a:1),
      \ 'sink': function('vimtex#fzf#open_selection'),
      \ 'options': "--ansi --with-nth 3.. --delimiter '\u2007'",
      \}, a:0 > 1 ? a:2 : {})

  call fzf#run(l:opts)
endfunction

E.g. vimtex#fzf#run('ctli', {'left': '20%'}) now opens up an empty list. However, something like vimtex#fzf#run('ctli', { 'window': { 'width': 0.9, 'height': 0.6 } }) works fine.
I don't know if this is a particular issue due to how vimtex implements the source function parse_toc, both of the above examples work before commit 7411da8 however. Could you provide some insights?


Enhancement/#28 da api invoicing

Pull Request
Description

update project status to indicate that the new endpoint that supports automatic invoicing (da-api.gkvi.de) works!
Closes

closes #28

not sure why the build fails: it works fine locally. possibly cache related, no time to fix right now