[Discussion] 1.6.0 Roadmap

Let's start a discussion here about the roadmap towards 1.6.0. We are looking for:
New features that are useful to your research and development.
Improvements and patches to existing features.
If you have any item that you'd like to propose to have in the roadmap, please do:
Create (or locate existing) issue/pull request for the item, note the issue/pull request number.
Comment in this issue: 1) the above issue number, 2) one sentence of what the item is about and why it's useful to you.
Indicate whether you'd be willing to help out on the item.
Share the ETA if you're driving the item and have an guesstimate on when it will be done.
Feel free to include items that weren't included in past roadmap discussions that you still wish to include in this release.
cc @apache/mxnet-committers

Can we work towards INT-64 support (Large Tensor) as DEFAULT. This would make it easy for Large Tensor use cases such as DGL, recommendation system models to use MXNet easily. Today, they need to compile from source. (CC @apeforest @access2rohit)

Can we work towards INT-64 support (Large Tensor) as DEFAULT. This would make it easy for Large Tensor use cases such as DGL, recommendation system models to use MXNet easily. Today, they need to compile from source. (CC @apeforest @access2rohit)

There are a few regressions that have been introduced since the large tensor support was added. For example, there are a few hierarchical attention networks which were training fine until 1.3.1 but since the addition of large tensor support, results in NaNs in weight vectors and gradient calculations. We probably should ensure all regressions are fixed with regard to this PR.
Related issues and PRs that might be relevant -

https://github.com/apache/incubator-mxnet/pull/11742#issuecomment-449181485
https://github.com/apache/incubator-mxnet/issues/14496
https://github.com/apache/incubator-mxnet/pull/14570

@sandeep-krishnamurthy Agree INT64 enhancements.
We plan to upgrade MKLDNN to 1.0 in r1.6 so that MKLDNN backend can work for INT64 index.

CPU related proposal for 1.6 (keep updating in the following several days).

MKL-DNN upgrade to 1.0

the proposal will be sent out soon in dev@   @TaoLv

Quantization API improvement @xinyu-intel

Agree INT64 enhancements, too.
For the regression problem, a good solution is to choose data type by the data size in the performance bottleneck.

I think MXNet needs a relocatable .dll/.so file
libmxnet.dll is too large and takes too much time to load in my Windows 10
I asked how to decrease the dll size (since there is too much archs in the single .dll file and what I want is just -arch=sm_61 for my GTX 1060)
The reply is to use nvprune, I tried it and it gives me an error:
nvprune fatal   : Input file 'libmxnet.dll' not relocatable

Make the libmxnet.dll/libmxnet.so relocatable will provides the possibility to further decrease the size of the dll file. And may further more decrease the import time.

It would be nice to add support for default checkpointing in Estimator API.
Also, can we plan to graduate Estimator API in MXNet 1.6? This is super useful API for MXNet users.
@roywei - Any comments?

We have multiple improvements to BERT inference and training speed that we would like to be part of 1.6 release:
[x] Softmax optimizations (#15545 )
[ ] Pointwise fusion for GPU (#15167 )
[ ] Eliminate common expressions (#15657 )
[ ] Bias speed improvements (#16039 )
[ ] Aggregated AdamW optimizer (not yet PR'ed)
[ ] Aggregated zeroing of the gradients (not yet PR'ed)
[ ] Aggregated sum of squares operator (also used in LARS, @Caenorst is working on a PR)
[ ] Embedding gradient optimization (not yet PR'ed)
[ ] Faster multihead attention operator (not yet PR'ed)

Moving fixing nightly failure from 1.5.1 scope to 1.6.0 as they are failing on master branch not 1.5.x branch.
https://github.com/apache/incubator-mxnet/issues/15613#issuecomment-516937546

nightly test failure need to be fixed:
#15374
http://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/NightlyTestsForBinaries/detail/master/395/pipeline/

@reminisce @haojin2 given that numpy operators would be a major topic in 1.6 release, it would be great if you could add what you intend to include in this release.

If I want to use mxnet.gluon.nn.Conv2D to get a depthwise conv layer, I need to explicit set the group argument. Can this be infered automatically?

As for NumPy compatibility, we would like to add

A set of NumPy operators mostly with CPU/GPU forward/backward supports.
A new ndarray class that replicates NumPy's ndarray in most ways. (Differences will be documented).
NumPy op integration with Gluon components, including layers, model zoo, parameters, data loaders, etc.

TRT is now working from the CPP package.  I think to consider it a released feature we'd want to update documentation and possible target the new TRT version (6).

I am working on an interface for multi threaded inference in MXNet and it would be great if it could go in 1.6.

@anirudh2290 this sounds like a larger change. Would you link to the RFC for it?

@szha yes I am planning to add a RFC this week.

For reference, users are confused that Large Tensor Support was enabled in MXNet 1.4 and then disabled again in 1.5. Reference: https://github.com/apache/incubator-mxnet/pull/13418
For 1.6, can we improve the error message to suggest people to compile with Large Tensor Support?

@leezu I am working on it. Here is the WIP PR: https://github.com/apache/incubator-mxnet/pull/16570

Hi I was doing some testing for mxnet 1.6.x and 1.5.1 and I noticed some performance issues in training you can find more details here: 16845


Firmware isn't working

Hi! Thanks for the awesome build guide however when i flashed the pro micros the formware isn't working properly.. Both of the halves behave as master when connected separately however when i connect the TRRS cable..this isn;t working anymore...only the OLED Display on the slave side lights up and displays the Corne logo... I have tried compiling my own firmware with EE_HANDS enabled and flashing both halves separately.. the result is the correct side is recognised when connected separately however still the TRRS connection isn't working.

Hey..thanks for the respond! I have already checked the TRRS connections..I have decided to just solder the boards together with a ribbon wire for now just to confirm that the firmware isn't responsible for this..later I will desolder these and buy a proper cable

I have same similar issue. When part connected with usb works as master while the second one doesn't. Nothin on the oled and no key strokes are registered. I've check the cable and connection from board pin to board pin.

OK. It works. I had to modify config.h by adding:
#define SPLIT_USB_DETECT
This changes the way how the pro micro detects the mode (if it is master or not).


Allow supplying stim_order as list of strings

Reference Issues/PRs

What does this implement/fix? Explain your changes.
Fixes #124.
Any other comments?

Looks good. Can you just update one of the existing process_ieeg tests to use a the custom list [trig_1.wav]? It shouldn't change any output


Execute transaction + rollback on primary.

Description
Documentation for the Fly.Repo.transaction + Fly.Repo.rollback functions reference that they will be executed on the primary instance due to transactions being used to modify data, yet __exec_local__ is actually called internally when the function is invoked.

Fly.Repo.transaction/2 documentation

 Runs the given function or Ecto.Multi inside a transaction.

      This defaults to the primary (writable) repo as it is assumed this is being
      used for data modification. Override to operate on the replica.

      See `Ecto.Repo.transaction/2` for full documentation.

This PR modifies these functions to call __exec_on_primary__ instead to align the described functionality with the actual behavior.
Also the Repo.load/2 function is added to the module. This function exists on Ecto.Repo and serves to map between structs + sets of columnar data. This doesn't actually hit the database so uses __exec_local__ to forward to whatever repo is being used.

We do not want the transactions to be executed on the primary. They need to be executed on the local DB.
The following code is valid and should work on the read-only replica. The goal is to let me query data with transactional consistency on the replica.
MyApp.Repo.transaction(fn ->
  # select customers to include in report
  customers = Customers.list_active_for_period(calendar_period)
  # generate report for customer
  Reports.spending_during_period(customers, calendar_period)
end)

It is important and valid to execute multiple SELECT queries inside a transaction specifically to get a consistent and fixed view of the data across multiple queries.
Transactions should always be run on the local database.
If a transaction should be run on the primary, then it should be proxied to the primary and executed there.

I understand the reasoning for this but the current behaviour (and what you have described) is the opposite of what the documentation for the function states.
https://github.com/superfly/fly_postgres_elixir/blob/main/lib/repo.ex#L341
 Runs the given function or Ecto.Multi inside a transaction.

      This defaults to the primary (writable) repo as it is assumed this is being
      used for data modification. Override to operate on the replica.

      See `Ecto.Repo.transaction/2` for full documentation.

You mention transactions with an expected usecase of data consistency on a replica database, and your documentation explicitly references transactions with an expected usecase of data modification on a primary database - these are incompatible aims.
In my experience a database transaction is typically used for handling a set of changes that you wish to deal with atomically, this may differ from what fly.io customers expect and in that case it would appear that the documentation is incorrect.

Hi @rkachowski,
Thank you for pointing out the inconsistency of the documentation and what currently happens. I will look into it!

The problem was solved in a different way in v0.3.1. The inconsistent docs that you pointed out were also updated.
Thanks!


Cleanup usage of {{ ... }}

Its a shame that we can't doctest components, otherwise we would have caught all these. Maybe I can pair with @wojtekmach on a creative solution ;)

@davydog187 thanks! ❤

It would be nice to have those changes applied to the branch v0.5 too so we could have the website updated. However, since Phoenix v1.6 is right around the corner, I think we can just wait :)


Create controller routes for the Messages model

Added routes for user chats and messages in PR #31

Changed the order of the returned messages in PR #47

Included user tables to include the user information for the senderID and receiverID fields

Tested message routes and fixed bugs in PR #50

Should add a caching system so it does not take a lot of time to load up messages between users


Fix/40 error unable to create magasin dagster

Upgrade dagster helm chart to 1.6.4
Add functionality to local-helm-chart  script of selecting port and repo folder
Fixes #51
Fixes #40

The issue was that .gitignore  included a line with instance/ and dagster helm chart includes a folder called templates/helpers/instance/. That folder was being ignored and therefore not included in the released version


[tool] Support --flavor option for flutter install.

flutter install previously forced users to specify the --flavor option if flavors were configured for a flutter project, but didn't provide the option, to begin with ( see https://github.com/flutter/flutter/issues/99607 ). We could solve this by either:

Not throwing a tool exit when running flutter install on a project with flavors configured. Users will have to use install the application binary with the --use-application-binary flag.
Adding --flavor as an option - search for that flavor's binary and install it.

Fixes https://github.com/flutter/flutter/issues/99607
Pre-launch Checklist

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Suggest also adding flutter install --flavor and flutter install --uninstall-only --flavor to the end of https://github.com/flutter/flutter/blob/master/dev/devicelab/bin/tasks/flavors_test.dart

You added Chris as me as reviewers, mark this ready for review when it's actually ready for review 🙂

I didn't test this, but here's a possible way to test install in the devicelab
    await inDirectory('${flutterDirectory.path}/dev/integration_tests/flavors', () async {
      await flutter(
        'install',
        options: <String>['--flavor', 'paid'],
      );
      await flutter(
        'install',
        options: <String>['--flavor', 'paid', '--uninstall-only'],
      );
      final StringBuffer stderr = StringBuffer();
      await evalFlutter(
        'install',
        canFail: true,
        stderr: stderr,
        options: <String>['--flavor', 'bogus'],
      );

      final String stderrString = stderr.toString();
      if (!stderrString.contains('install failed, bogus flavor not found')) {
        print(stderrString);
        return TaskResult.failure('Should not succeed with bogus flavor');
      }
    });

This caused Windows_android flavors_test_win to start failing: https://github.com/flutter/flutter/issues/115121


ad: fix a typo in the help

Codecov Report

Merging #3740 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3740   +/-   ##
=======================================
  Coverage   72.09%   72.09%
=======================================
  Files         422      422
  Lines       26259    26259
  Branches     3995     3995
=======================================
  Hits        18932    18932
  Misses       6099     6099
  Partials     1228     1228

Impacted Files
Coverage Δ

...e-cli-role/azure/cli/command_modules/role/_help.py
100% <ø> (ø)
: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 299683b...1617cf8. Read the comment docs.


Clean up release packages

Currently all packages mostly contain the same files, especially .exe are present also in MacOS and *nix packages.
The bundled files should be specific to the target platform to avoid confusion when extracting and starting the launcher.
Closes #387

We have the following .desktop file described in our wiki. Consider to ship this as TerasologyLauncher.desktop in the launcher directory for Linux. Some distributions, e.g., Ubuntu, now let you start the launcher by double-clicking the file.
This was originally provided by @BenjaminAmos.
[Desktop Entry]
Version=3.10
Type=Application
Terminal=true
Exec=sh -c 'bash "$(dirname "%k")"/bin/TerasologyLauncher'
Path=
Icon=
Name=Terasology Launcher
Comment=This is the Terasology Launcher
StartupNotify=true
GenericName[en_GB]=Game Launcher
Categories=Game;Java

See also

https://wiki.archlinux.org/index.php/Desktop_entries
https://developer.gnome.org/integration-guide/stable/desktop-files.html.en

#516 nicely cleaned up the release packages.
Remaining todo is the .desktop file for linux.
At the moment, this is not so easy. In the future, especially with #520 it should come more or less for free.


No download links found - Repeating Problem

I'm having a problem that I've had before and had to stop using UDB.
Yesterday I downloaded a lot of films and tv series. Today no download links can be found on anything.
I tried to download any film or series, no download links found
I successfully downloaded Charmed S1 yesterday so I check this, no download links found

Tried a film I've successfully downloaded yesterday - Papillon 1973, no download links found

You previously messaged it was a network issue with the src site being blocked, yet I can visit the site fine, enter the film or tv series and watch it without problems.

I've even tried using a VPN to change my IP to another country

This doesn't look like a network issue, as this happens no matter the IP I use, and the source website works fine. This is a repeating issue.
Is it possible I'm facing an API limitation?

@ZetsApocNow, Hi there, looks like the current source (vidsrc) updated their API. I am also not able to get download links which was working till date. Instead of fixing this recurring issue, I am planning to move to a different server altogether.
I will update you once it is complete. Please hang in there.

ok thanks, will do

Vidsrc is now restored. It was an encryption issue. However, I'll still proceed with the plan to add a new source.

Closing this as vidsrc is restored. There is a separate issue #15 for tracking support for other sources.


Revamped documentation

The README.md is getting quite big. We should break it down into either separate files or better organized sections.
We should have a section explaining in detail the required table structures for each type:

keymaps
commands
augroups
autocmds

And then a section on the Lua API functions, how/when to use them vs. using require('legendary').setup() etc.

tagging @tsyroid for input :)

Agreed. Like the ideas above. Will be able to provide better feedback on how I see the groups/categories fall in a day or two.

Reopening as the README.md could still use some work.

Under heading: Lua Helpers for Creating Mappings

the Lua expressions are evaluated at the time they are bound
This is developer-speak. I'm just an everyday user. Translate please.
"the Lua expressions are evaluated when the mapping expression is called by the user"? or "at the time the mapping expression is first read by nvim"? or something else?

It would be "the Lua expressions are evaluated at the time the mappings table is first read by nvim".
It has to evaluate in order to create/allocate the table.
Basically you need to give it the function by value so that the function can be called at a later time (when you press the keys specified by the mapping).

And next paragraph down:

If you need to call a function from a plugin, but do not want the require that the plugin be loaded at the time you define your keymaps (like if you're using Packer to lazy-load plugins), you can use...

If you need to call a function from Legendary [cap? or lower? it's not just a plugin; its this plugin] but don't require the plugin to be loaded when the keymaps are read (for example, if you're using Packer's lazy-loading feature), you can use...
TIP: If you want to tighten your technical (actually, any) writing up, here's one of the simplest tips I can give you. Any time you write anything, mentally scan (or physically search) for the word "that". Take it out. If the sentence still works, leave it out. If it doesn't leave it in. You will be amazed.

It would be "the Lua expressions are evaluated at the time the mappings table is first read by nvim".
It has to evaluate in order to create/allocate the table.
Basically you need to give it the function itself by reference so that the function can be called at a later time (when you press the keys specified by the mapping).

Good. Tell them (the reader) that.

hey @tsyroid just wondering if you're working on a PR or if I should start making these changes.

Ooops. Sorry Mat. Mis-communication on my part.
I’ll do it — sometime today. Finally got the tools again.
Just back from some serious dumpster diving (and nvim restructuring).
On Mar 11, 2022 at 05:32:07, Mat Jones @.***> wrote:

hey @tsyroid https://github.com/tsyroid just wondering if you're
working on a PR or if I should start making these changes.
—
Reply to this email directly, view it on GitHub
https://github.com/mrjones2014/legendary.nvim/issues/28#issuecomment-1065116227,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGTYGVHDP2VGTAEG6JTZRTU7NDNPANCNFSM5PSBJI4Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


[Azure Monitor OpenTelemetry Distro] All default auto instrumentation are disabled

Azure technology: Azure Monitor OpenTelemetry Distro
Link to the article: https://learn.microsoft.com/en-us/azure/azure-monitor/app/java-standalone-config
Description: the Application Insights development team disabled default auto instrumentation, which means that a customer must enable his instrumentation manually, for example by adding the parameter otel.instrumentation.test-ext.enabled=true for the test-ext extension. I didn't find this in the Azure Learn portal.
I asked Trask about this and he said it should be documented.
To clarify and track this beyond just within the product team, I'm creating this issue.
P.S. There is also a parameter that can ignore the predefined configuration - applicationinsights.testing.instrumentation.disabled,
but I don't think it should be documented since it has testing in its name.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: ea43b302-7793-3e32-189e-d2949d399f25
Version Independent ID: 46ac34e0-f0ad-bc1c-a170-c64305e1af9b
Content: Configuration options - Azure Monitor Application Insights for Java - Azure Monitor
Content Source: articles/azure-monitor/app/java-standalone-config.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @AaronMaxwell
Microsoft Alias: aaronmax

@progxaker Thanks for your feedback! We will investigate and update as appropriate.

As asked, Cc @trask @jeanbisutti.

Hello @AaronMaxwell. Are there plans to document this in the first half of the year?

Hello @AaronMaxwell. Have you had time to look at this?

Hello team. Are there any updates?


Refactor backends classes for dependency injection

Our backends package now is difficult to test, due to the dependency the VariantSet classes have on the filesystem. We should change the VariantSets to take objects in their constructors instead of file paths, and create these objects using a factory.

Sounds good @kerrydc.

Working on this

Closing this, as it has been effectively solved in recent developments.


fix contributor name preview

This fixes the contributor name preview after changing the
trigger name.
Tested here: https://github.com/strawberry-graphql/strawberry/pull/1139

Hi, thanks for contributing to Strawberry 🍓!
We noticed that this PR is missing a RELEASE.md file. We use that to automatically do releases here on GitHub and, most importantly, to PyPI!
So as soon as this PR is merged, a release will be made 🚀.
Here's an example of RELEASE.md:
Release type: patch

Description of the changes, ideally with some examples, if adding a new feature.

Release type can be one of patch, minor or major. We use semver, so make sure to pick the appropriate type. If in doubt feel free to ask :)


v2.0.0 (Fermion) Roadmap

Major framework update. This update will probably launch sometime in 2017 (probably sometime Q1).
Changes
Module Restructure

Merge Base and Grid into Base.
Merge Button and Checkbox (name pending) into InputControl.
Move form and table styling to base, make default, add remaining styles in there and remove the two modules entirely. (No need to use defaults if there is already a style defined and you can always turn those off).
Merge Nav, Dropdown and Tab into one module Navigation.
Merge Progress and Spinner into Progress.
Restructure both Utility modules to push some styles into other modules and merge the rest into one.
Merge Modal and most of the Utility containers, as well as Label into Container.
Merge Carousel and Collapse into Presentation.
[x] Complete the module restructure as specified in issue #14.

Responsiveness

[x] Responsive pre elements.
[x] Responsive tables.
Responsive media. Will be added later.

Component and style changes

[x] Add fancy styling for hr.
[x] uncertain Add fancy sidebar (30px wide with code icon (</>) using :before) for pre code blocks.
[x] Make contextual text work based on mark element.
[x] Change styling to a material-like design.
Rebuild dropdowns from scratch. - Removed dropdowns entirely.
[x] Rebase grid on flex.

New Modules

[x] Create component styles for checkboxes, radio buttons and switches

Other Changes

[x] Bump to Normalize v5.0.0.
Rebase modal dialog's styling using panel styling. - Removed modal dialogs entirely.
[x] Drop older browser support (specifically IE8 and older).
[x] Change navigation to be based on the nav element.
[x] Accessibility support in demos.
Javascript support library. - Might be added later down the line, not required for release.
[x] Documentation pages by version. Issue #33
[x] Browser support graph in the style of caniuse.
[x] Update README, update demo pages to use the v2 stylesheet instead of the commit one.

Released Fermion!


Build is hanging and then completing normally

Description
I have a Docker build that runs as expected when running this command from a prompt:
docker build -t myimagebname:latest -t myimagebname:$myversion .
However when I run it under Maven with this command:
mvn -X dockerfile:build
, it completes successfully but only after hanging for a few minutes:
While it's waiting it issues these two debug messages:
[DEBUG] Executing "docker-credential-desktop get"
[DEBUG] Executing "docker-credential-desktop get"

How to reproduce
Issue the build command on a machine using Windows 10, WSL 2 and Docker Desktop for Windows.
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>dockerfile-maven-plugin</artifactId>
    <version>1.4.13</version>
    <executions>
         <execution>
             <id>default</id>
              <goals>
                    <goal>build</goal>
                    <goal>push</goal>
               </goals>
          </execution>
    </executions>
    <configuration>
           <repository>myimagebname</repository>
                 <tag>latest</tag>
                 <tag>${project.version}</tag>
                  <buildArgs>
                           <!-- <arg1>${project.build.finalName}.jar</arg1> -->
                   </buildArgs>
    </configuration>
</plugin>

I would expect the MVN build to run about the same speed as the command line build, without the long delay.
I pulled your source and can find no reference to the text in the debug message.  So I have no idea who is logging that debug message.  I am hoping there's a workaround.  The alternative will be to build without your plugin.  For the record the build does run normally when the docker build command is issued by the "exec-maven-plugin".
Software:
docker version
Client: Docker Engine - Community
Version:           19.03.8
API version:       1.40
Go version:        go1.12.17
Git commit:        afacb8b
Built:             Wed Mar 11 01:23:10 2020
OS/Arch:           windows/amd64
Experimental:      false
Server: Docker Engine - Community
Engine:
Version:          19.03.8
API version:      1.40 (minimum version 1.12)
Go version:       go1.12.17
Git commit:       afacb8b
Built:            Wed Mar 11 01:29:16 2020
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          v1.2.13
GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version:          1.0.0-rc10
GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version:          0.18.0
GitCommit:        fec3683
Windows 10 build 2404
The kernel is from Microsoft, the Linux operating system is Ubuntu 18.04.
Maven 3.6.0
Docker Desktop version <IP_ADDRESS> (45519)

Spotify's dockerfile-maven version: [Add dockerfile-maven version here]

I'll be happy to recreate and capture whatever I can.

same problem
See like the problem is big file inside the build directory. Seem like a problem with WSL2, but running docker build from command line is fast.
Maybe this plugin use some "method" to send the build context to docker that badly match with docker on WSL2

I'm having the same issue, is there a way to fix this ?
( hanging for about 17min :( )
maven 3.6.3
dockerfile-maven-plugin 1.4.13
Docker version 20.10.5, build 55c4c88
Docker Desktop version 3.2.2 (61853)

switched the docker backend from WLS-2 to Hyper-V but the plugin still hangs :(

I also have this issue. It doesn't occur with version 1.4.10, so it seems something happened in v. 1.4.11

This problem is still not fixed, I am also experiencing the same issue. Going back to 1.4.10 does not work either, as it appears to be incompatible with WSL2


Uploadable Issue with no Path

Greetings,
Thank you for these great extensions. I ran into a few issues implementing the uploadable extension in Symfony. I am not sure, if these issues should be pointed at the extension, at the Doctrine Extensions Bundle, or at the guy behind the keyboard. :)
Instead of setting the default path in the annotation, I set the path in the listener. The issue I ran into were deleting old files on update. When I wanted to delete old files, it wouldn't work. Some examples of these problems occurring can be seen in the example code of my fork. https://github.com/Raistlfiren/DoctrineExtensions/commit/d41fcd50aacf9902bc6560d39296befec480db2a
My use case is as follows: A user goes to update an organization and adds a file to the form. When they upload the file, the code checks to see if the form is valid, and processes the form. I am using Symfony as the framework.
In my test case, it replicates how Symfony would handle the data. It updates the entity with the new data, and puts the file object in place of the string...

Am I handling this incorrectly?
Is this a bug, or did you answer yes to 1?

hi, I personally do not use uploadable, with symfony I have used a simple transformer which may be customized easily.
<?php

namespace AppBundle\Form\DataTransformer;

use AppBundle\Entity\Attachment;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\Exception\TransformationFailedException;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\File\File;

class AttachmentTransformer implements DataTransformerInterface
{
    private $dir;
    private $web;
    private $webroot;
    private $old;

    public function __construct($dir, $webroot)
    {
        $this->webroot = $webroot;
        $this->dir = $dir;
        $this->web = trim(str_replace($webroot, '', $dir), '/');
    }

    public function transform($attachment)
    {
        switch (true) {
        case $attachment instanceof Attachment:
            $this->old = $attachment;
            return new File($this->webroot . '/' . $attachment->getUrlPath(), true);
        case is_array($attachment):
        case $attachment instanceof Collection:
            $this->old = $attachment;
            $attachments = new ArrayCollection();
            foreach ($attachment as $el) {
                $attachments->add(new File($this->webroot . '/' . $el->getUrlPath(), true));
            }
            return $attachments;
        case null === $attachment:
            return null;
        default:
            throw new TransformationFailedException("unexpected attachment type: " . gettype($attachment));
        }
    }

    public function reverseTransform($attachment)
    {
        // there may be null elements
        // @TODO: probably need to update plugin js
        if (is_array($attachment)) {
            $attachment = array_filter($attachment);
        }

        // if empty array or null, keep old attachments
        if (!$attachment) {
            // return old which is a collection or an attachment
            return $this->old;
        }

        // finally, move uploaded file and create new Attachment
        switch (true) {
        case $attachment instanceof UploadedFile:
            return $this->create($attachment);
        case is_array($attachment):
            $new =  new ArrayCollection(array_map([$this, 'create'], $attachment));
            return new ArrayCollection(
                array_merge($this->old->toArray(), $new->toArray())
            );
        default:
            throw new TransformationFailedException("unexpected attachment type: " . gettype($attachment));
        }
    }

    private function create(UploadedFile $file)
    {
        $attachment = new Attachment();
        $attachment->setName(md5(uniqid()) . '.' . $file->guessExtension());
        $attachment->setUrlPath($this->web . '/' . $attachment->getName());
        $attachment->setOriginalName($file->getClientOriginalName());

        $file->move($this->dir, $attachment->getName());
        return $attachment;
    }
}

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @ORM\Table(name="attachments")
 */
class Attachment
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    private $id;

    /**
     * @ORM\Column
     * @Assert\File(mimeTypes={"image/jpeg", "image/png", "video/mp4"}, mimeTypesMessage="File format is not supported")
     */
    private $name;

    /**
     * @ORM\Column(nullable=true)
     */
    private $originalName;

    /**
     * @ORM\Column
     */
    private $urlPath;

    public function getId()
    {
        return $this->id;
    }

    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }

    public function getName()
    {
        return $this->name;
    }

    public function setOriginalName($originalName)
    {
        $this->originalName = $originalName;
        return $this;
    }

    public function getOriginalName()
    {
        return $this->originalName;
    }

    public function setUrlPath($urlPath)
    {
        $this->urlPath = $urlPath;
        return $this;
    }

    public function getUrlPath()
    {
        return $this->urlPath;
    }
}

<?php

namespace AppBundle\Form\Type\Attachment;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\FormBuilderInterface;
use AppBundle\Form\DataTransformer\AttachmentTransformer;

abstract class AttachmentType extends AbstractType
{
    protected $dir;
    protected $webroot;

    public function __construct($webroot, $dir)
    {
        $this->webroot = realpath($webroot);
        $this->dir = rtrim($this->webroot, '/') . '/' . ltrim($dir, '/');
    }

    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $imgDir = rtrim($this->dir, '/') . '/' . trim($options['category'], '/');
        $builder->addViewTransformer(new AttachmentTransformer($imgDir, $this->webroot));
    }

    /**
     * {@inheritdoc}
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        if ($options['multiple']) {
            $view->vars['full_name'] .= '[]';
            $view->vars['attr']['multiple'] = true;
        }
        $view->vars = array_replace($view->vars, [
            'type' => 'file',
            'value' => '',
            'caption' => $options['caption'],
            'size' => $options['size'],
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function finishView(FormView $view, FormInterface $form, array $options)
    {
        $view->vars['multipart'] = true;
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'compound' => false,
            'data_class' => 'Symfony\Component\HttpFoundation\File\File',
            'empty_data' => null,
            'multiple' => false,
            'category' => 'default',
            'caption' => '',
            'size' => 5000, // 5mb
            'required' => false,
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return $this->getBlockPrefix();
    }
}

<?php

namespace AppBundle\Form\Type\Attachment;

use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ImageType extends AttachmentType
{
    /**
     * {@inheritdoc}
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        parent::buildView($view, $form, $options);
        $view->vars = array_replace($view->vars, [
            'preview_default' => $options['preview_default'],
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        parent::configureOptions($resolver);

        $resolver->setDefaults([
            'size' => 5000, // 5mb
            'preview_default' => '/img/no-image.png',
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'image';
    }
}

<?php

namespace AppBundle\Form\Type\Attachment;

use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ImagesType extends AttachmentType
{
    /**
     * {@inheritdoc}
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        parent::buildView($view, $form, $options);
        $view->vars = array_replace($view->vars, [
            'preview_default' => $options['preview_default'],
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        parent::configureOptions($resolver);

        $resolver->setDefaults([
            'multiple' => true,
            'data_class' => 'Doctrine\Common\Collections\ArrayCollection',
            'size' => 5000, // 5mb
            'preview_default' => '/img/no-image.png',
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'images';
    }
}

and then customizing twig form blocks based on js upload library, though you may still use standard input fields for uploads.
{% block image_widget %}
  {%- set attr = attr|merge({class: (attr.class|default('') ~ ' file-loading image-upload-js')|trim}) -%}
  <input
    type="{{ type }}"
    {{ block('widget_attributes') }}
    data-caption="{{ caption }}"
    data-preview="{% if data %}{{ asset(data.urlPath) }}{% else %}[]{% endif %}"
  />
{% endblock %}

{% block images_widget %}
  {%- set attr = attr|merge({class: (attr.class|default('') ~ ' file-loading image-upload-js')|trim}) -%}
  {% set preview = [] %}
  {% if data | length > 0 %}
    {% for attachment in data %}
      {% set preview = preview | merge([{'id': attachment.id, 'url': asset(attachment.urlPath), 'title': attachment.originalName }]) %}
    {% endfor %}
  {% endif %}
  <input
    type="{{ type }}"
    {{ block('widget_attributes') }}
    data-caption="{{ caption }}"
    data-preview="{{ preview | json_encode }}"
    />
{% endblock %}

Not sure if that is good or bad solution, but it gives all options to customize. you cannot just extract this and make abstract library or framework, there would be too many options to confuse you.

Oh that is a good idea handling it with a data transformer. I was wondering how people handled the process. I ended up just creating a file uploader service with a doctrine listener to handle the file.
Although, it does make me pose the question: How should uploads be handled with Symfony and the extension since I am sure other people will also be using it. (I wasted way to much time trying to get everything working, and then I decided I should just create my own implementation... lol) Maybe they will use it in the intended way of creating a separate entity and handling everything with that entity. Even if it is handled with the separate entity, I don't believe it will work in conjunction with Symfony on update since the updated(NOT old) entity is always passed after handleRequest() is called. You would need to compute the changes between the old and new entity to delete the old file. Otherwise, the new data would be obtained from the entity, and it would return an UploadedFile instance instead of a string...

version I posted, handles file changes including deletion of old. I do not think there are good solutions, because there are too much options. it cannot be abstracted well, because there are different js libraries to handle file uploads, asynchronous uploads and so on, it needs different parameters or actions to be performed. Good extensions are nested tree, sluggable and timestampable, sortable, others my not suite your needs in some cases, because they are different and then you need custom solutions.


Use Arcade to manage .NET Core installation

Removes copies of our dotnet-install scripts in favor of a new Arcade feature that installs .NET Core runtimes for us.
(kudos to @chcosta)

Blocked on https://github.com/dotnet/arcade/issues/2725

Now blocked on https://github.com/dotnet/arcade/issues/2730

CI checks on Windows timeout after an hour, which is bizarre. It looks like the new installer is getting the right bits, but I wonder if it's also doing something that is causing .NET Core to slow down like 100x on Windows.
Don't merge yet - let's investigate what's going on. Might be related to https://github.com/dotnet/arcade/issues/2744


Should be able to modify the statusCode of the response

page.status or page.error

Page.status is included in v0.0.3


Error when convert PDF to HTML

Hi,
Im getting this error on my PDF:

504 normally means nginx issue
Please follow other 504 tickets for nginx config help


Discourage bug fixes to SDKs in provider repos

Issue details
We often get super lovely community fixes to published, generated SDKs that we cannot accept because they alter generated code.
Example: https://github.com/pulumi/pulumi-aws/pull/1873
While we say so in our CONTRIBUTING.md, we can probably stand to communicate this elsewhere as well, for example when opening a PR.
I can imagine two slightly different approaches:

automation to detect changes were made to an sdk folder and commenting on the PR with helpful info on next steps
a welcome bot on a PR that has a bright flashy warning to not change SDK files

Affected area/feature
Community Experience, User Experience, Triage and Maintenance

I built a prototype for this in #177. Per comments, discussion, and roadmap planning, we should flesh this out a bit and deploy to all providers.
The entirety of the moderating was based on the following 2 assumptions:

if there are no changes to the schema, check if there are changes to any sdk/* files
if yes, post on the PR with a warning for the submitter

Lessons and Takeaways

Do not comment on every single update to a pull request - only comment once

Instead of hand rolling the git diff we can use prior art to filter for git diffs

Prepare for the ability to auto-close PRs to codegenned files

Determine all the non-TF-bridged autogenerated file warnings across the org and apply this action everywhere

Would be great to have a branded moderator bot instead of the bland github-actions-bot (see below)
a. Either use a GitHub App (unclear if we can authenticate inside of GHA in this way)
b. Or create a new bot user on the Pulumi org and use its access token inside GHA
c. in any case have a happy pulumipus in the response rather than a cranky octocat

Add logic to prevent other Actions from running if this check returns with a warning condition
a. we have to be very careful here - we don't want to block legit CI from running
a. I put this at the end because I"m not sure how useful it is to "save" compute time on Actions at this point in our Action compute usage


MCP Migration & DB Cleanup

Environments
IMPACT has three environments in MCP: production, test, and dev

We already use the production environment, we want to keep this. We want this to appear on the primary URL that UAH is currently on, https://impact.earthdata.nasa.gov/apt/
We would like to use the test environment, right now it is an empty shell that has never been deployed to
We probably don't need the dev environment

Within UAH, there exists a production and staging environment

We would like to keep the staging environment
We would like to remove the production environment

Local -> Staging (UAH) -> Test (MCP) -> Production (MCP)
DB Cleanup
Here is the current state of data in the existing environments

Staging: dummy document data, dummy users
Production (UAH): real GEDI ATBDs that can not be lost, both real and dummy users
Production (MCP): Dummy document data, both real and dummy users

At the minimum, we need GEDI ATBDs withinUAH Production migrated to the Production MCP environment.
Ideally:

Staging stays the same
Production (MCP) data moved to Test (MCP)
Production (UAH) data moved to Production (MCP)

GEDI ATBD titles:
Algorithm theoretical basis document for GEDI footprint aboveground biomass density
Algorithm Theoretical Basis and Development of GEDI Level 2B Footprint Canopy Cover and Vertical Profile Metrics
This should be done prior to tearing down the UAH environment as described above.

Initial plan after discussing with Leo and Oliver.

Go through the UAH API to generate PDFs for the 2 following ATBDs (the front-end build appears to be broken):
Algorithm theoretical basis document for GEDI footprint aboveground biomass density
Algorithm Theoretical Basis and Development of GEDI Level 2B Footprint Canopy Cover and Vertical Profile Metrics
Destroy and re-deploy the MCP stack (includes running database setup + creating cognito groups)
Use the custom data migration scripts to copy data from UAH prod to the cleaned out MCP prod
Have Daniel re-deploy the frontend with the updated URL

We are punting on deploying a test stack in MCP. We will revisit later in the quarter.

Done as part of release v2.4.0-beta

@xhagrg  before I close this ticket I would like to know the status of APT operation.  What is on UAH?  What is on MCP?  is APT anywhere else (i.e. DevSeed)?  I would think all of APT needs to be on MCP, right?    there should be development, staging/testing, and production, correct?  Please discuss with DevSeed and sort out.  Record here what is the current architecture.  Thanks!

As far as I know:

All of prod is in MCP.
dev and staging are in devseed's account (i think).
asking for an architecture diagram from devseed.


Permission to only Edit Pages (not books) for Selected Users

Attempted Debugging

[X] I have read the debugging page

Searched GitHub Issues

[X] I have searched GitHub for the issue.

Describe the Scenario
Hi all,
is it somehow possible to enable a group of users to create and edit pages/chapters but not the containig book itself without having to micromanage every new page that gets created?
So basically have group "Admins" create new books, that group "editors" are only allowed to fill with content and a group "viewers" that can only read the content.
I tried different setups but either the Editors could edit both pages/chapters and books or neither of them.
Would be great to know if this is somehow achievable.
Thanks!
PS: Same thing goes for being able to create and edit books but not the containig shelf, so one level "higher". Could not figure out how to do that either.
Exact BookStack Version
v24.02
Log Content
No response
Hosting Environment
.

Hi @mgmwhite,
You can do this via role permissions, since you can manage those per-content type, but as soon as you start applying permissions to specific items things can become more micro-managey for what you want, since permissions will cascade (from books and chapters).

Hi @ssddanbrown
thanks for replying! I tried a few different settings, but none of them really met the requirement. I think to simply map the process, there would need to be an additional boolean field in the book permissions, maybe called "Update Content" or something like that. If this is set, the user should only be able to edit the content of a book, but not the book itself. This would be great, for example, to allow individual users to use books to publish stuff without "jeopardising" the established book infrastructure.
What do you think about this?

@mgmwhite I can see how that would help, and why you might want that option.
Personally though I don't want to add additional complexity to the permission system so I'd not be keen to add this without significant demand, of which we have not observed so far.
Another potential option for this could be via the request in #4832, for roles to become owners.
There's also some prior discussion related to that in #3964.


Re: Issue #144 - MySQL not starting with sudo.

@MikeMcQuaid @9130khz, just wanted to revive issue 144 because I just hit upon it and found a way to work around it:
I came across this article for running MySQL via brew and it worked for me.
It seems like the problem is not just "launchctl rather than brew services", but more the plist file that brew services installs when calling sudo.
Basically, a plist like this will work to run MySQL as root:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>homebrew.mxcl.mysql</string>
        <key>ProgramArguments</key>
       <array>
            <string>/usr/local/opt/mysql/bin/mysqld</string>
            <string>--bind-address=<IP_ADDRESS></string>
            <string>--user=root</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>UserName</key>
        <string>root</string>
        <key>WorkingDirectory</key>
        <string>/usr/local/var/mysql</string>
    </dict>
</plist>

@jeffreydwalter I've unlocked that issue so you can comment ehre.

Mike, I laid out the whole thing here. I'm not going to retype it. Please
feel free to fix brew services.
Cheers.
On Sat, Aug 25, 2018, 3:44 AM Mike McQuaid<EMAIL_ADDRESS>wrote:

@jeffreydwalter https://github.com/jeffreydwalter I've unlocked that
issue so you can comment ehre.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Homebrew/homebrew-services/issues/169#issuecomment-415954007,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAinB6xa_bLy0J6L9_OCggGf-NIFGCf9ks5uUQ5jgaJpZM4WMPCv
.

@jeffreydwalter This bug doesn't affect me so: no, you should feel free to fix it. If you can't be bothered to copy and paste: so be it. Please do not revive closed and locked issues in future unless you want to submit a pull request to fix them.


Revert "Add clipBehavior to widgets with clipRect"

Reverts flutter/flutter#55977
Non trivial breakages in g3.

LGTM
/cc @liyuqian FYI

This change also causes some breakages in the Fuchsia roll. @liyuqian is it possible to structure this as a soft-transition?
cc: @chaselatta

It should be possible to have a soft-transition. The old PR was supposed to be non-breaking but clearly I missed something. Can you please attach the failed log here so I can make sure that my next try won't fail on the same test?

I highly recommend that the revert of this revert be staged to g3 and tested before being merged.
@liyuqian please reach out to @renyou in internal chat to figure out how. We have tools for that kind of thing now :-).

This is the failure log on the Fuchsia side: http://shortn/_Gy8PvjWzQG

The failure on our end came from overflow being removed from the Stack widget and being replaced with clipBehavior. We would need overflow to remain until we can migrate our usage to clipBehavior


Br decoding issue

Summary
I cannot run discord.py-self
Reproduction Steps
Anytime I run ANY discord.py-self script
Code
import discord

class MyClient(discord.Client):
    async def on_ready(self):
        print('Logged on as', self.user)

    async def on_message(self, message):
        # only respond to ourselves
        if message.author != self.user:
            return

client = MyClient()
client.run('token')

Expected Results
Print out Logged on as user
Actual Results
Error in console:
aiohttp.client_exceptions.ClientPayloadError: 400, message='Can not decode content-encoding: br'
System Information

Python v3.11.0-final
discord.py-self v2.0.0-final
aiohttp v3.7.4.post0
system info: Windows 10 10.0.22621

Checklist

[X] I have searched the open issues for duplicates.
[X] I have shared the entire traceback.
[X] I am using a user token (and it isn't visible in the code).

Additional Information
No response

Fixed it.


codestyle: Integrate isort

suggested by @vltr
This PR includes:

ran isort against sanic folder
add isort check in tox -e lint

Codecov Report

Merging #1371 into master will decrease coverage by 0.05%.
The diff coverage is 93.75%.

@@            Coverage Diff             @@
##           master    #1371      +/-   ##
==========================================
- Coverage    81.5%   81.44%   -0.06%
==========================================
  Files          17       17
  Lines        1692     1692
  Branches      321      321
==========================================
- Hits         1379     1378       -1
  Misses        246      246
- Partials       67       68       +1

Impacted Files
Coverage Δ

sanic/exceptions.py
95.06% <ø> (ø)
:arrow_up:

sanic/__init__.py
100% <ø> (ø)
:arrow_up:

sanic/cookies.py
82.6% <ø> (ø)
:arrow_up:

sanic/request.py
75.66% <100%> (ø)
:arrow_up:

sanic/app.py
80.88% <100%> (ø)
:arrow_up:

sanic/router.py
92.23% <100%> (-0.46%)
:arrow_down:

sanic/handlers.py
89.52% <100%> (ø)
:arrow_up:

sanic/reloader_helpers.py
15.9% <100%> (ø)
:arrow_up:

sanic/static.py
67.18% <100%> (ø)
:arrow_up:

sanic/views.py
94.73% <100%> (ø)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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