add support for BLOB data in OCI8 driver

add 2 new data types in ParameterContainer class in order to manage differently BLOB from CLOB,
for oci8 driver: add a new case statement in bindParametersFromContainer() method to save data binded as BLOB

@parktrip thanks for your contribution. We need also test cases added to cover changes.
Also rebase will be required before merging (develop) as you are targeting develop branch.

dear @webimpress,
I have added test cases for oci8 and my changes.
I have 2 problems:

in Oci8FixtureLoader class I am trying to init db with data from oci8.sql, I got an ORA-00911 error line 62. I have checked the file and if I run it directly in sql+ it is working. My dba checked as wel and didn't see any potential problem
i don't know what to put in oracle_fixtures.sh as I don't have the knowledge on how to create the schema from scratch in command line.

Nevertheless, test cases for oci8 run fine ;)

@parktrip thanks for update, we can have a look on it closer before we merge it.
I can't promise when does it happen, I have it on my list but there are more PRs which need my attention before release.

dear @webimpress, I just took 5mn this morning to check travis error logs and it seems the oci_pconnect() function is not recognized. Are you sure the oci8 extension is activated in travis config file for all php versions ?

no pb I understand. I will have a look a little bit later hopefully by the end of the week

@parktrip I've tried to update it and run it on travis but it seems to be uncompleted.
We would need to address when we move to Laminas (as it is gonna happen very soon).

This repository has been closed and moved to laminas/laminas-db; a new issue has been opened at https://github.com/laminas/laminas-db/issues/2.

This repository has been moved to laminas/laminas-db. If you feel that this patch is still relevant, please re-open against that repository, and reference this issue. To re-open, we suggest the following workflow:

Squash all commits in your branch (git rebase -i origin/{branch})
Make a note of all changed files (`git diff --name-only origin/{branch}...HEAD
Run the laminas/laminas-migration tool on the code.
Clone laminas/laminas-db to another directory.
Copy the files from the second bullet point to the clone of laminas/laminas-db.
In your clone of laminas/laminas-db, commit the files, push to your fork, and open the new PR.
We will be providing tooling via laminas/laminas-migration soon to help  automate the process.


changed authinfo comparison from nil to empty struct

@MaartendeKruijf I had created a branch with the wrong prefix, so I fixed the name and created a new pull request. Also the failing tests occur on tests/integration/capability/http/http_integration_test.go, which I understood you wanted to remove?

So, many tests in unittest/utils/http/htpp_test.go leave the Auth information non specified, hence the check on empty struct alone will throw an error, because the supposed empty struct is in fact a nil.
In the overall SOARCA execution, it should never happen that authentication information is nil, but it should always be either a completely empty struct, or a non completely empty struct.
So at the moment, I just left both checks, but logically, there should never be a null authenticationInformation object passed to the http.Request util. What to do?


Hackathon on conda packaging: September 27th and 28th

Hi GalaxyP Community,
I would like to invite you to a hackathon on the September 27th and 28th. We will package as many dependencies as possible into conda packages.
Conda is a new packaging system that Galaxy can use and that enables travis tool testing, finally! Would be great if someone can join!

Hi Bjoern,
Sounds very interesting. I will follow your progress but I cant spare any time next week to participate properly.  I'm moving next week to a new city

@iracooke no problem! I will work on peptide-shaker I guess as example. Have fun moving!

@bgruening Is the issue still open? I would like to work on it.

@souravsingh this is awesome! The hackathon is over yes, but I can help you to get started anytime.

The first Galaxy-P CONDA hackathon will be held on September 27th and 28th.
Galaxy-P and proteomics tool developers will particiapte in this hackathon to "CONDA-package" some of the prioritized proteomics tools within Galaxy. The hackathon will be an online event which will start
with an introduction to Galaxy structure and CONDA packaging by Bjoern Gruening. Details soon.

ping @galaxyproteomics/developers!

Awesome! Any thoughts about cross posting to tools-iuc? This could be a great chance for anyone that missed @bgruening's first conda intro to get looped back in. Although, I wouldn't want to hijack/detract from the Proteomics priorities.

@blankenberg done!

I'm in!

Just a reminder our hackathon will start in 2 days :) Looking forward to see you all.

Hi Bjoern
I am helping in a SC course those days. If I have idle time I will try to wrap protk galaxy tools. Is there a link with a guide?
Sent from my iPhone

On 25 Sep. 2016, at 11:02 pm, Björn Grüning<EMAIL_ADDRESS>wrote:
Just a reminder our hackathon will start in 2 days :) Looking forward to see you all.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@iracooke !!!
There is the official documentation: http://conda.pydata.org/docs/building/recipe.html
But I think looking at an example is in most cases enough. For example this one: https://github.com/bioconda/bioconda-recipes/tree/master/recipes/pysamstats
Install minconda2: http://conda.pydata.org/miniconda.html create those two files and run: conda build /path/to/folder/

I will be able and happy to join 28th but not 27th (EST :) ).
Do we have a packaging agenda as to which tools are prioritized?
cheers,
—
Jorrit Boekel
Proteomics systems developer
Lehtiö lab / NBIS
Scilifelab Stockholm, Sweden

On 25 Sep 2016, at 23:47, Björn Grüning<EMAIL_ADDRESS>wrote:
@iracooke !!!
There is the official documentation: http://conda.pydata.org/docs/building/recipe.html
But I think looking at an example is in most cases enough. For example this one: https://github.com/bioconda/bioconda-recipes/tree/master/recipes/pysamstats
Install minconda2: http://conda.pydata.org/miniconda.html create those two files and run: conda build /path/to/folder/
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@bgruening I would like to join in the hackathon. Do we have a list of packages requiring a conda recipe?

@souravsingh @glormph sounds great!
We have this one: https://docs.google.com/spreadsheets/d/1C9p_XLiLyrbMoRVKS_H582TL1I5v9FKAv2dl5VAYxjw/edit#gid=0
@PratikDJagtap need to explain this to me ;)
But essentially all tools we have here in this repo!

Hello Bjoern and Conda packaging hackathon participants,
JJ has suggested that participants focus on their own tools and
applications of interest first, then help with the general list.
Ideally, the tools with priority 1 are those that would need to be tackled
first.
Thank you everyone for the participation!
Regards,
Pratik
Pratik Jagtap,
Research Assistant Professor, and
Managing Director, Center for Mass Spectrometry and Proteomics,
43 Gortner Laboratory, 1479 Gortner Avenue,
St. Paul, MN 55108
Phone:<PHONE_NUMBER>
http://cbs.umn.edu/cmsp/
On Mon, Sep 26, 2016 at 6:53 AM, Björn Grüning<EMAIL_ADDRESS>wrote:

@souravsingh https://github.com/souravsingh @glormph
https://github.com/glormph sounds great!
We have this one: https://docs.google.com/spreadsheets/d/1C9p_
XLiLyrbMoRVKS_H582TL1I5v9FKAv2dl5VAYxjw/edit#gid=0
@PratikDJagtap https://github.com/PratikDJagtap need to explain this to
me ;)
But essentially all tools we have here in this repo!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/galaxyproteomics/tools-galaxyp/issues/57#issuecomment-249549591,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKL0OnBzIGbFTF2LPTb5kM6ZNo9k_2YUks5qt7JTgaJpZM4H93nq
.

Where are the details for joining the hackathon? I.e. where do I go and at what time?

@chambm I have added a link to a hangout and one to a gitter chat room. I will be there as soon as I'm awake and will give guidance. We also will have a short presentation if this is necessary!

Added a link to quick-start slides at the top.

Let's start the Codefest in Europe! :)

If anyone needs help please ping us! We are here to help you :)

This was really fun for me!!! I hope you also enjoyed it! We wrote a little summary about this hackathon and I wanted to thank you all for your amazing contributions! I think we can do this again - next time with the focus on GalaxyP tools to make use of the conda packages?
https://gist.github.com/bgruening/97b1fa16b92f5ab30b1e7c193b286432
Again, thanks a bunch for all your help!
Bjoern

Fantastic work.  Sorry I was not able to participate. Hopefully next time

On 30 Sep. 2016, at 4:38 pm, Björn Grüning<EMAIL_ADDRESS>wrote:
This was really fun for me!!! I hope you also enjoyed it! We wrote a little summary about this hackathon and I wanted to thank you all for your amazing contributions! I think we can do this again - next time with the focus on GalaxyP tools to make use of the conda packages?
https://gist.github.com/bgruening/97b1fa16b92f5ab30b1e7c193b286432 https://gist.github.com/bgruening/97b1fa16b92f5ab30b1e7c193b286432
Again, thanks a bunch for all your help!
Bjoern
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/galaxyproteomics/tools-galaxyp/issues/57#issuecomment-250670797, or mute the thread https://github.com/notifications/unsubscribe-auth/AAVyQchi4Pb-DPzb_yJ8Iw29HqMH5VwPks5qvK5JgaJpZM4H93nq.


PR helm/charts onto kubernetes/charts

Depends on #284.
/cc @runseb

PR is in https://github.com/kubernetes/application-dm-templates/pull/9
But we need to figure out CLA issues. By bringing the history of helm/charts some authors may not have a CLA on file.

Closing this issue, since we have the PR in kubernertes/charts to track it.


latest node-mongodb-native version prevents connection

node-mongodb-native 0.9.7-2-1 prevents mongolian from creating a database connection.

The latest npm published version 0.1.14 is broken. A version bump to npm would be appreciated. Thanks.

Ignore last comment, I was mistaken. Thanks for the fix.


Move econet from climate component to new water heater component

Home Assistant release with the issue: 0.65
Architecture issue: https://github.com/home-assistant/architecture/issues/22
Component/platform:
The econet climate platform is not a climate device but a water heater. Although some functionality overlaps, they are not the same. Because of water heater support in the climate entity, we had to extend the number of supported operation modes. A third are currently for econet only: electric, high performance, heat pump and gas (also used by wink because it represents econet as a climate device).
Within Home Assistant we have always taken the stand that even if a component or platform is very similar to another one, we still make them their own component or platform. That's why Lights, Locks and Switches are all their own component. The reason we do this is that eventually all these platforms will start adding things unique for those devices/integrations and you will end up with spaghetti code that is unmaintainable.
Conclusion: Econet support needs to be part of a new entity component for water heaters. Starting today, we will no longer allow any changes to the econet climate platform. Once migrated to a new water heater component, we will allow changes to econet again.
The water heater component will need to be a new entity component and should include a demo platform and tests.
CC @w1ll1am23

@balloob I have started working on this, but I don't have access to any of the hardware to test with. I have reached out to some users in the forums to see if they can help test.  Not sure when it will get completed.

@w1ll1am23 I have an econet setup and can help test. Also, I can probably just give you access to my EcoNet account as long as you don't mess with thing too badly :)


Enhancement: Conditionally required options

There are quite some situations in our codebase where options aren't required, except when another option has a certain value. Like the --password option on m365 login, that's required for --authType password.
Another example is the people profilecardproperty <verb> commands, where --displayName is required when executed on a customAttribute.
This is unfortunate, for example because the prompt for required options does not work for these options.
💡Idea
Let's allow for conditionally required options in the CLI engine.
We can do this by changing the type of required to boolean | (args:any) => boolean, and adding an extra loop for these kinds of options after required options are validated and prompted on.
For example for the password option. This would work as follows:
{
    option: '-p, --password [password]',
    required: (args:any) => args.options.authType === 'password'
}

Can't we do this by for example creating an option set with just 1 option in it?

Interesting idea, did you try that out? It would feel like misusing the idea of option sets though... don't you think so?

If I remember it correctly we have 1 or 2 commands where we do it like this. I agree that it's not really made for this, but it should work.
The only thing we have to do maybe is change the option set error message because right now it always says specify one of the following options which is a bit weird when there's only one option. It's a track that we can look at.

I've just tried it out, and indeed it shows a 'specify one of the following options' message.
It seems to this would need work in its current state. I think we'd need to make this suitable for single options or just go the route I suggested.
In you scenario I'd propose we'd rename the optionset to OptionRules or OptionBehavior so it's clear it can accomodate more than just optionsets.
What do you think @pnp/cli-for-microsoft-365-maintainers?
I'll connect a draft PR to show how my suggestion would work.

Check out my implementation @milanholemans, @pnp/cli-for-microsoft-365-maintainers...

So the question is: do you like the route I've chosen? Or would you like it better if we updated OptionSets to accommodate 'single option-verification'.
We could rename it to initOptionRules or something like that.

Adding a separate requiredWhen property introduces yet another place to define which properties are required when. I agree with @milanholemans that it should be a part of option sets so that we've got all configuration of options and their requirements in one place.

Adding a separate requiredWhen property introduces yet another place to define which properties are required when. I agree with @milanholemans that it should be a part of option sets so that we've got all configuration of options and their requirements in one place.

Aside from requiredWhen, what does that mean for whenPrompted. That would typically fit more on option-level, as one option can be prompted differently than another.

I left a comment on one of the related issues. TL;DR: I'd prefer us to define options declaratively rather than imperatively to ensure consistency and centralize the logic.

@pnp/cli-for-microsoft-365-maintainers I think we may close this issue. From What I understand ZOD should solve this issue and for the mentioned case w should be able to add something like
 .refine(options => options.authType !== 'password' || options.password, {
    message: 'Password is required when using password authentication'
  })

which will make the password option required when authType is password.
Any feed before I close this issue? @martinlingstuyl maybe you since you are the author? am I missing something?

Perfectly fine @Adam-it, I think you're right, let's close this.


Update "Authorizing commands" section's HMAC Signature type SIGNATURE_TYPE_HMAC_PERSONALIZED

Description
Updates the protocol documentation to reference the correct Signature Type for HMAC for Command Authorization
If SIGNATURE_TYPE_HMAC is used, an MESSAGEFAULT_ERROR_INVALID_SIGNATURE is received.
Swapping for SIGNATURE_TYPE_HMAC_PERSONALIZED with no other changes causes the commands to be signed correctly and accepted.
Type of change
Please select all options that apply to this change:

[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Documentation update

Checklist:
Confirm you have completed the following steps:

[ ] My code follows the style of this project.
[ ] I have performed a self-review of my code.
[x] I have made corresponding updates to the documentation.
[ ] I have added/updated unit tests to cover my changes.

Thanks for the fix!


Request: Consider the menu bar when centering vertically.

Adding a menu bar could even have the form increase by the same amount vertically.


Avalonia 11.0.4  internal error after closing the main application window

Avalonia 11.0.4 internal error after closing the main application window.
Message: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
StackTrace:
at System.ThrowHelper.ThrowArgumentOutOfRange_IndexException()
at Avalonia.Collections.AvaloniaList`1.get_Item(Int32 index)
at Avalonia.StyledElement.OnDetachedFromLogicalTreeCore(LogicalTreeAttachmentEventArgs e)
at Avalonia.StyledElement.OnDetachedFromLogicalTreeCore(LogicalTreeAttachmentEventArgs e)
at Avalonia.StyledElement.OnDetachedFromLogicalTreeCore(LogicalTreeAttachmentEventArgs e)
at Avalonia.Controls.TopLevel.HandleClosed()
at Avalonia.Controls.WindowBase.HandleClosed()
at Avalonia.Controls.Window.HandleClosed()
at Avalonia.Win32.WindowImpl.AppWndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
at Avalonia.Win32.WindowImpl.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)

OS: [Windows 11]
Version [11.0.4]

please provide a minimal sample to reproduce.

AvaloniaBugApplication1.zip
Procedure of actions
Step 1) Switch to Group A, then click on any two elements
Step 2) Switch to Group B, then click on any two elements
Step 3) Switch to Group C, then click on any two elements
Step 4) Close the window

Not sure why it doesn't work this way, but when I remove unnecessary styles and apply templates directly to the TabControl, it works fine:
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
		xmlns:local="using:AvaloniaBugApplication1"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaBugApplication1.MainWindow"
        Title="AvaloniaBugApplication1">
	<TabControl x:Name="Commands"
				ItemsSource="{Binding ItemsSource}">
		<TabControl.ItemTemplate>
			<DataTemplate>
				<TextBlock Text="{Binding Title}" FontWeight="Bold"/>
			</DataTemplate>
		</TabControl.ItemTemplate>
		<TabControl.ContentTemplate>
			<DataTemplate>
				<ItemsControl ItemsSource="{Binding ItemsSource}">
					<ItemsControl.ItemsPanel>
						<ItemsPanelTemplate>
							<WrapPanel Orientation="Vertical"/>
						</ItemsPanelTemplate>
					</ItemsControl.ItemsPanel>
					<ItemsControl.ItemTemplate>
						<DataTemplate>
							<ToggleButton Content="{Binding Title}" Margin="5" Padding="10"/>
						</DataTemplate>
					</ItemsControl.ItemTemplate>
				</ItemsControl>
			</DataTemplate>
		</TabControl.ContentTemplate>
	</TabControl>
</Window>

Makes sense to keep this issue open though

retated to #12753 ?

Not sure why it doesn't work this way, but when I remove unnecessary styles and apply templates directly to the TabControl, it works fine:
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
		xmlns:local="using:AvaloniaBugApplication1"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaBugApplication1.MainWindow"
        Title="AvaloniaBugApplication1">
	<TabControl x:Name="Commands"
				ItemsSource="{Binding ItemsSource}">
		<TabControl.ItemTemplate>
			<DataTemplate>
				<TextBlock Text="{Binding Title}" FontWeight="Bold"/>
			</DataTemplate>
		</TabControl.ItemTemplate>
		<TabControl.ContentTemplate>
			<DataTemplate>
				<ItemsControl ItemsSource="{Binding ItemsSource}">
					<ItemsControl.ItemsPanel>
						<ItemsPanelTemplate>
							<WrapPanel Orientation="Vertical"/>
						</ItemsPanelTemplate>
					</ItemsControl.ItemsPanel>
					<ItemsControl.ItemTemplate>
						<DataTemplate>
							<ToggleButton Content="{Binding Title}" Margin="5" Padding="10"/>
						</DataTemplate>
					</ItemsControl.ItemTemplate>
				</ItemsControl>
			</DataTemplate>
		</TabControl.ContentTemplate>
	</TabControl>
</Window>

Makes sense to keep this issue open though

Yes, if you go through the TabControl, then everything works fine. But what if you need to apply the style specifically for TabItem?
With an example, everything is clear, but in a real project, this option will most likely not work.
In any case, this behavior is not normal when, due to the style, an error occurs when closing the application.

retated to #12753 ?

There is another most likely

Stuck with this bug too. I don't know how much this would helpful. I Turned off "Just my code" during debugging and found this:

Maybe some kind of race condition, don't know, but logicalChildren collections seems to be changed during enumerating
count and logicalChildren.Count are mismatched


Test Explorer discovers but fails to execute tests targeting full .NET Framework after upgrading to VS 15.8

Description
Using Visual Studio 15.7.4, I can successfully open a solution containing many test projects with a variety of TargetFramework/TargetFrameworks values, discovering and executing all tests without error.
After upgrading Visual Studio to 15.8.0, test projects which target net471, or test projects which multitarget but target net471 first, successfully discover but do not execute. Tests which do not execute disappear from Test Explorer.
Similar discrepancies appear when using dotnet vstest against the net471 build vs netcoreapp2.0 build of the same test projects.
Steps to reproduce
Sample solution which reproduces the issue: https://github.com/fixie/fixie.integration known to be reproducible as of commit 4e570de3
The solution has 19 projects. Fixie.Integration is not a test project, and Inclusive.Tests is a test project that has zero tests in it. The expectation, then, is for Test Explorer to show discovered tests for 17 projects.
Open the solution in Visual Studio 15.7.4 (suspect any 15.7.* would work). In Test Explorer, select "Show Test Hierarchy" to group discovered tests by project. Some unrelated issue may cause only the FSharp tests to appear upon first discovery. Rebuild the solution to provoke a full discovery. I get 17 discovered test projects, and Run All runs all of them. At the end of the run, all 17 remain in the Test Explorer tree. The "Tests" Output pane shows all the assemblies processed, including the full .NET Framework ones executed in a group as expected (full framework runs seem to be single-process historically, while .net core runs seem to be per-test-project historically).
Open the solution in Visual Studio 15.8.0. Rebuild to provoke discovery. The same 17 projects successfully discover tests. But, when I Run All, 3 of the test projects disappear from the UI rather than showing results. Rebuild All, and the 3 missing projects reappear as discovered (this time they'll stand out as the only projects with the blue "!" not-yet-run status indicator). Expand to any single test in these 3 projects and attempt to run it: the test disappears from the UI and the "Tests" Output pane shows:

[8/16/2018 9:40:50 PM Warning] Could not find test executor with URI 'executor://fixie.visualstudio/'.  Make sure that the test executor is installed and supports .net runtime version  .

Rebuild all again to rediscover the now-missing test. Run All one last time. The "Tests" Output pane shows the 3 problematic projects do get processed during discovery, but are silently skipped during execution.
Similarly, at the command line, execution is inconsistent depending on the target framework:
dotnet vstest src\Nested.Tests\bin\Debug\netcoreapp2.0\Nested.Tests.dll runs 2 passing tests.
dotnet vstest src\Nested.Tests\bin\Debug\net471\Nested.Tests.dll  outputs a yellow warning:

No test is available in c:\dev\fixie.integration\src\Nested.Tests\bin\Debug\net471\Nested.Tests.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.

There is a pattern to which of these tests fail to execute and which are honored. Every test project which successfully discovers and executes has either <TargetFramework>netcoreapp2.0</TargetFramework> or <TargetFrameworks>netcoreapp2.0;net471</TargetFrameworks>. Every test project which successfully discovers but fails to execute has either <TargetFramework>net471</TargetFramework> or <TargetFrameworks>net471;netcoreapp2.0</TargetFrameworks>
I know that in the case of multitargeting, Test Explorer is only expected to execute the first listed framework. So, it appears that execution of full framework assemblies has undergone a breaking change which is inconsistent from the discovery phase.
Expected behavior
All discovered tests should be executable.
Actual behavior
Full framework tests are discovered, but cannot be executed.
Diagnostic logs
"Tests" Output pane during a discovery phase and subsequent execution phase, under VS 15.8.0 (emphasis added, showing net471 assemblies processed during discovery but not execution):

[8/16/2018 10:29:08 PM Informational] ------ Discover test started ------
[8/16/2018 10:29:08 PM Warning] Test run will use DLL(s) built for framework Framework45 and platform X86. Following DLL(s) will not be part of run:
x64.Tests.dll is built for Framework Framework45 and Platform X64.
 This test is not added to the test window.
[8/16/2018 10:29:21 PM Informational] ========== Discover test finished: 61 found (0:00:12.7393338) ==========
[8/16/2018 10:29:28 PM Informational] ------ Run test started ------
[8/16/2018 10:29:29 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:29 PM Informational] Processing C:\dev\fixie.integration\src\Async.Tests\bin\Debug\netcoreapp2.0\Async.Tests.dll
[8/16/2018 10:29:30 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:30 PM Informational] Processing C:\dev\fixie.integration\src\Categories.Tests\bin\Debug\netcoreapp2.0\Categories.Tests.dll
[8/16/2018 10:29:30 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:30 PM Informational] Processing C:\dev\fixie.integration\src\DefaultConvention.Tests\bin\Debug\netcoreapp2.0\DefaultConvention.Tests.dll
[8/16/2018 10:29:31 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:31 PM Informational] Processing C:\dev\fixie.integration\src\FSharp.Tests\bin\Debug\netcoreapp2.0\FSharp.Tests.dll
[8/16/2018 10:29:32 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:32 PM Informational] Processing C:\dev\fixie.integration\src\IoC.Tests\bin\Debug\netcoreapp2.0\IoC.Tests.dll
[8/16/2018 10:29:32 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:32 PM Informational] Processing C:\dev\fixie.integration\src\LowCeremony.Tests\bin\Debug\netcoreapp2.0\LowCeremony.Tests.dll
[8/16/2018 10:29:33 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:33 PM Informational] Processing C:\dev\fixie.integration\src\MbUnitStyle.Tests\bin\Debug\netcoreapp2.0\MbUnitStyle.Tests.dll
[8/16/2018 10:29:34 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:34 PM Informational] Processing C:\dev\fixie.integration\src\Nested.Tests\bin\Debug\netcoreapp2.0\Nested.Tests.dll
[8/16/2018 10:29:35 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:35 PM Informational] Processing C:\dev\fixie.integration\src\NUnitStyle.Tests\bin\Debug\netcoreapp2.0\NUnitStyle.Tests.dll
[8/16/2018 10:29:35 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:35 PM Informational] Processing C:\dev\fixie.integration\src\Parameterized.Tests\bin\Debug\netcoreapp2.0\Parameterized.Tests.dll
[8/16/2018 10:29:36 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:36 PM Informational] Processing C:\dev\fixie.integration\src\Shuffle.Tests\bin\Debug\netcoreapp2.0\Shuffle.Tests.dll
[8/16/2018 10:29:37 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:37 PM Informational] Processing C:\dev\fixie.integration\src\Skipped.Tests\bin\Debug\netcoreapp2.0\Skipped.Tests.dll
[8/16/2018 10:29:37 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:37 PM Informational] Processing C:\dev\fixie.integration\src\Static.Tests\bin\Debug\netcoreapp2.0\Static.Tests.dll
[8/16/2018 10:29:38 PM Informational] Fixie 2.0.0
[8/16/2018 10:29:38 PM Informational] Processing C:\dev\fixie.integration\src\xUnitStyle.Tests\bin\Debug\netcoreapp2.0\xUnitStyle.Tests.dll
[8/16/2018 10:29:39 PM Informational] ========== Run test finished: 50 run (0:00:10.1505517) ==========

@AbhitejJohn @ManishJayaswal As this seems to be an IDE related change.

@plioi Can you please disable following option in Visual Studio -> Tools -> Options -> Test dialog and see if it helps:
"For improved performance, only use test adapters in test assembly folder or as specified in runsettings file"

@plioi , @Shyam-Gupta -- I was having this same issue, but I just deselected the option indicated above and the tests are now showing up.

@tdmiller , @plioi
This change was done in VS 15.8 to improve test execution perf for C# and VB projects, by limiting the number of locations Test Platform has to lookup for test adapters.
More details about this change are available at:
https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes#testadapterextension
This change requires test adapter dll to be present along with test dll and that all test projects present in the solution should reference test adapter.

Each project in the solution is expected to reference everything that it needs. Hence the test projects should reference the VS test adapter it needs for the tests to be properly discovered and executed in VS.

_Does this mean that all .NET test frameworks need to copy their test adapter dll into the build output folder of all test projects, even when the end user isn't using Test Explorer?

Yes if you would like the tests to be discovered and shown in TE windows and executed from there and you want test execution to be fast. If you do not want to use test explorer then you can ignore referencing the VS test adapters. If Test explorer window is still opened and source based discovery is on ( which it is by default) then test would still be discovered but they will not run. Our recommendation, if you plan to use test window or plan to execute tests from the editor context menu in VS, is to reference the testing framework and test adapter from every test project and make sure that they are copied over in the output folder which contains the test dll.

Thanks everyone for the troubleshooting and the background information!
The workaround works for me as well as coworkers who were experiencing the same issue, and now I know what changes to make to my own NuGet package to avoid the problem in the first place.


DPL-992 - As a long read user I would like to be able to create libraries that are not pools because this fits with our lab process and will support Revio multiplexing

User story
As a long read user I would like to be able to create libraries that are not pools because this fits with our lab process and will support Revio multiplexing
Who are the primary contacts for this story
James / Steve
Who is the nominated tester for UAT
James / Long Read
Acceptance criteria
To be considered successful the solution must allow:

[ ] when I visit the libraries page I should only see libraries and not libraries that have been created as part of pools
[ ] when I create a library it should not become part of a pool
[ ] when I edit a library it will not redirect to the pools edit page
[ ] update Resolve Operations to improve performance https://vitejs.dev/guide/performance.html

Dependencies
This story is blocked by the following dependencies:

#<issue_no.>
sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

sanger/traction-service#1137
sanger/#<issue_no.>

Additional context
Add any other context or screenshots about the feature request here.

@seenanair @stevieing to review the user-story

Closed as being done within https://github.com/sanger/traction-ui/issues/1509, https://github.com/sanger/traction-ui/issues/1511 and https://github.com/sanger/traction-ui/issues/1421


This map does not have an element with the key "null_command_unix"

I've been using this extension for a while, today I started getting these errors.  I tried deleting the entire .terraform folder to get all fresh and the results were the same as below
Not sure what has changed.  Here's some of my setup...
[greg@CM-LT-0007 pii-leaf-vm (main *%)]$ terraform --version
Terraform v1.3.8
on darwin_arm64
+ provider registry.terraform.io/hashicorp/azuread v2.36.0
+ provider registry.terraform.io/hashicorp/azurerm v3.48.0
+ provider registry.terraform.io/hashicorp/external v2.3.1
+ provider registry.terraform.io/hashicorp/null v3.2.1
+ provider registry.terraform.io/hashicorp/random v3.4.3

Here's what terraform is downloading for the extension...
Downloading registry.terraform.io/Invicton-Labs/shell-resource/external 0.4.0 for tags.shell-hostname...
- tags.shell-hostname in .terraform/modules/tags.shell-hostname
Downloading registry.terraform.io/Invicton-Labs/shell-data/external 0.4.2 for tags.shell-hostname.delete_files...
- tags.shell-hostname.delete_files in .terraform/modules/tags.shell-hostname.delete_files
Downloading registry.terraform.io/Invicton-Labs/shell-data/external 0.4.2 for tags.shell-hostname.write_command_files...
- tags.shell-hostname.write_command_files in .terraform/modules/tags.shell-hostname.write_command_files

Here's the code
module "shell-hostname" {

  source = "Invicton-Labs/shell-resource/external"

  command_unix = "hostname"
}

The error
╷
│ Error: Missing map element
│
│   on .terraform/modules/tags.shell-hostname/main.tf line 285, in resource "null_resource" "shell":
│  285:       self.triggers.command_destroy_unix == self.triggers.null_command_unix ? [
│     ├────────────────
│     │ self.triggers is map of string with 21 elements
│
│ This map does not have an element with the key "null_command_unix".
╵
╷
│ Error: Missing map element
│
│   on .terraform/modules/tags.shell-hostname/main.tf line 294, in resource "null_resource" "shell":
│  294:       dirname("/") == "\\" ? self.triggers.command_destroy_windows == self.triggers.null_command_windows : self.triggers.command_destroy_unix == self.triggers.null_command_unix
│     ├────────────────
│     │ self.triggers is map of string with 21 elements
│
│ This map does not have an element with the key "null_command_unix".

Trying out the REadme's sample module "shell_resource_hello" {
I've noticed that in version 0.3.3 the output I receive is
Outputs:

exitstatus = 0
stderr = <<EOT

EOT
stdout = <<EOT
Hello World from 2023-03-21T12:49:20Z

EOT

BUT for the output of v0.4.0
Outputs:

exitstatus = 0
stderr = ""
stdout = "Hello  from "

Maybe I just need to figure out how to move to v0.4.0

Sorry, I just read through this today. As soon as I saw the title, I knew the issue, and it looks like you identified it too.
0.4.x is not backwards-compatible with 0.3.x. The easiest fix is to do a terraform state rm of the old module and let it re-run the external code. I'll add a comment about that in the release notes.


not following template layout

I created an xfce4 terminal theme myself and was about to add it when I came across this one. This doesn't show up on the main search page at https://draculatheme.com/ - probably because it's not following the template repo layout https://github.com/dracula/template.
Think the name of this repo should also not include the dracula- prefix, but not sure if that's the thing that stops it showing up.
I can create a branch/PR in here for those suggestions if you want to add me as a contributor (my own version of this is a local only repo right now)

Thanks @davison!
I'll check and fix this as soon as possible. And PR is welcome!

Thanks @davison!
I'll check and fix this as soon as possible. And PR is welcome!

sure.. are you happy to add me as a contributor to this repo? It will save me forking/cloning. I can create a branch, push the changes I have from local direct to here and create a local PR. (I'm the author of https://github.com/dracula/midnight-commander if that helps) . If not, I'll fork/clone

sure.. are you happy to add me as a contributor to this repo? It will save me forking/cloning. I can create a branch, push the changes I have from local direct to here and create a local PR. (I'm the author of https://github.com/dracula/midnight-commander if that helps) . If not, I'll fork/clone

@davison
Thank you!👍 I added you as a member.

Thank you so much @davison. I some other changes to be 100% standardized with the rest :)
https://github.com/dracula/xfce4-terminal/commit/492e25caf38ddafc8a51176a8dd11e826302faac


Handle Multiple Member Signatures

If I have this:
public interface IWork
{
  static abstract void Work(string data);
}

public interface ITimesheet
{
  static abstract void Work(string data);
}

StaticCast<T, IWork>.Work("info");
StaticCast<T, ITimesheet>.Work("Tuesday");

This should only generate one member for both Work() methods.

Handled with the work from #9


revitalize metrics

We collect some stats but don't really utilize them. Need to collect more and bring them back into our workflow.

We got metrics and logs for anchors and derpers up on the new grafana. This will be extended in the future, but for now things are back in action.


Add tests for holocron.utils.iterfiles

Coverage increased (+2.23%) when pulling ada2d181ddbcdd844b953c5881d2583f5a405ca3 on test-iterfiles into 2e7eec23bd69076fc4fdf05b22212108b16c56a7 on master.


Fixed accessibility issue on your responsibilities page

Fixed accessibility issue on your responsibilities page regarding nested lists.
Moved nested list inside of the  tag

CI: No security warnings found


[Bug] Unity3d iOS il2cpp does not generate .xcodeworkspace project

Following error found in build logs
Begin MonoManager ReloadAssembly
Assembly 'Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll' will not be loaded due to errors:
Unable to resolve reference 'Google.VersionHandlerImpl'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Unable to resolve reference 'Google.JarResolver'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Assembly 'Assets/Firebase/Editor/Firebase.Editor.dll' will not be loaded due to errors:
Unable to resolve reference 'Google.JarResolver'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Unable to resolve reference 'Google.VersionHandlerImpl'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Unable to resolve reference 'Google.IOSResolver'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Firebase Core : v9.3.0
Firebase Analytics : v9.3.0
Firebase Crashlytics : v9.3.0
External dependency Manager = v1.2.172
Xcode : v14.0(14A309)
Pod : v1.11.3
Unity3d : v2020.3.22f1

Had some progress after changing Firebase and External Dependency Manager version I was able to generate .xcodeworkspace project but stuck with following error :
/build/intermediates/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/BuildProductsPath/Release-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises(FBLPromise.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file
/build/intermediates/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/BuildProductsPath/Release-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises' for architecture arm64
Firebase Core : v8.9.0
Firebase Analytics : v8.9.0
Firebase Crashlytics : v8.9.0
External dependency Manager = v1.2.170
Xcode : v14.0(14A309)
Pod : v1.11.3
Unity3d : v2020.3.22f1

Hi @mayur-r-d,
Bitcode has been deprecated in Xcode 14 as seen in the release notes. Turning off bitcode in your Xcode project should remove the warning you're facing.
I'll be closing this for now. Let me know if an issue arises.

Hi @paulinon ,
Tried disabling the bitcode but, still the problem is not resolved.


rkt: add service

is the service running as root ?

@zimbatm I think so, the socket is owned by root for authentication. Although we could add a rkt group similar to Docker.

I just had a look, Gentoo doesn't seem to be creating a special user1 for it and imports the unit files from the project. It looks like the upstream repo also uses socket activation and has another rkt-gc service2

gc sounds like a good idea, I've added it. Not sure about socket activation though, it's already failing for me with Docker (#11478). I think that can always be added at a later point.

:+1:

@jagajaga Ok now you can turn it off, configure the date and modify the options, which should make everyone happy. :)


High handles count growth when using ObserveOn(TaskPoolScheduler.Default)

Version: 4.1.0
Given this basic subscription
provider.Updates
              .ObserveOn(TaskPoolScheduler.Default)
              .Subscribe(PublishUpdate)

Having an issue where each time an item is pushed through the observable subject, we get new threads created for each subscriber, rather than being invoked on a thread pool thread.
As an example, if we have 10 clients connecting asking for updates which come from an IObservable, we end up with 10 threads created to service each update that comes in. Given in our case we just want to make 10 WCF calls back over a client connection, this is a little heavy. Also with server mode GC the handle count is going to about 20,000+ in a handful of seconds before the GC finally kicks in.
This is due to the fact that the ScheduledObserver will always using the TaskPoolScheduler as  ISchedulerLongRunning, and then calling ISchedulerLongRunning.ScheduleLongRunning, which results in a task with TaskCreationOptions.LongRunning being set.
I cannot find a way to indicate to RX that the subscriber is not long running, and even though the scheduler supports long running, I really dont want it to happen.
To fix our issue I have made a copy of the TaskPoolScheduler and removed the ISchedulerLongRunning interface. Using this scheduler has flat-lined the handle count of the service.

IScheduler has a DisableOptimizations extension method that can be used to suppress optimization interfaces from being used. See https://github.com/dotnet/reactive/blob/525b719f5e341a4c0cc6668028fdd15194de5559/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Wrappers.cs#L32. Does this help?

Yeah, that seems like a breaking change.
I'm not too familiar with all the changes to Rx post the v2.1 release, so I just had a look at that PR. It diverges from the initial design point where ISchedulerLongRunning should be used in an O(1) fashion with respect to the operator's lifecycle. That is, it offers up a single long-running execution unit (e.g. a thread, akin to TaskCreationOptions.LongRunning) for the lifetime of the operator (thus not O(n) in event volume) and prefers to block on it rather than spawn/exit new such long-running execution units, under the assumption that spawn/exit is more expensive than blocking. As such, it's the extreme complete opposite of fine-grained scheduling. The ICancelable parameter is used to wire cancellation down to blocking operations, to enable shutdown.
Examples include Delay and the original ObserveOn.
The irony of this change is that ISchedulerLongRunning was introduced exactly to get people out of this type of issue with Scheduler.NewThread in the v1.x days, where recursive scheduling resulted in O(n) thread creation with the same outcome as what you're observing (and terrible performance). In addition, there were use cases where one wants to rely on thread-local state on an ObserveOn-ed thread, per operator instance. Seeing that guarantee removed here is a breaking change as well, where an observer relying on TLS will see random behavior as the thread gets destroyed and recreated.
I'll defer to @akarnokd and @onovotny to look into this and restore the original behavior for ISchedulerLongRunning (and add much needed regression tests).
In your case, you should (have) be(en) fine with either original long-running behavior (no churn in thread creation, given you have a single subscription using ObserveOn) or short-time task pool work item creation (enqueue/dequeue in task pool work queues). For the second case, we also need to review why DisableOptimizations didn't provide you with a workaround (i.e. xs.ObserveOn(TaskPoolScheduler.Default.DisableOptimizations(typeof(ISchedulerLongRunning)))). Either way, there are two issues here:

ISchedulerLongRunning behavior should be as described above.
DisableOptimizations should be granted.

Yes, it was due to my changes to ObserveOn. I did not understand the purpose of the semaphore logic nor the implications of ISchedulerLongRunning and it did not trip any unit tests as far as I remember. I'll post a fix and regression test tomorrow.

Thank you for the answers bartdesmet and akarnokd. We have recently updated our solutions from Rx-2.2.5 to System.Reactive 4.1.3. As a solution we will rollback to version 4.0.0, due to performance implications. New threads are created, not preserved as before, as you have mentioned Bart.

v4.1.5 is out on NuGet now with the fix.

Does it really behave in v 4.1.5 the same as in version 4.0.0?
Here is an example for demonstration purposes:
  var d = Observable.Timer(TimeSpan.Zero, TimeSpan.FromMilliseconds(25))
    .ObserveOn(TaskPoolScheduler.Default)
    .Subscribe(_ =>
    {
      Thread.Sleep(25);
      Console.WriteLine(_);
    });

In debug output window new messages are written during the app lifecycle:
.....
The thread 0x30b0 has exited with code 0 (0x0).
The thread 0x5708 has exited with code 0 (0x0).
....
Visual Studio output with System.Reactive 4.0.0 does not contain these messages.
Thx

Maybe this affects your debug output: https://stackoverflow.com/a/18713944/61158

Szia Dávid. It seems that the older version (4.1.3) was loaded from GAC. I removed it from there with GACBrowser.
Now it works perfect. I'm confirming that the fix is correct.
Thank you all. You are great.


Add readme of cli codegen for ml

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

/azp run automation - sdk

assign to Qiaoqiao for pure az codegen change

Can one of the admins verify this patch?


Misaligned Texts on Cards in Demo Section Page

Describe the bug
On the Demo Section page of the website, the text content within each card is not properly aligned. This misalignment detracts from the visual presentation of the page and may lead to confusion or difficulty in reading the content for users.
To Reproduce
Steps to reproduce the behavior:

Navigate to the Demo Section page of the website.
Observe the text content within each card displayed on the page.
Notice that the text alignment within the cards appears inconsistent or off-center.
See error

Expected behavior:
The text content within each card in the Demo Section page should be properly aligned and visually appealing, ensuring readability and a polished appearance.
Actual Behavior:
The text content within the cards is misaligned, affecting the overall aesthetic appeal and readability of the page.
Screenshots

Additional context

The misalignment issue may vary in severity depending on the length of the text content within each card.
This issue may be present across different screen sizes and resolutions.

Please assign this issue to me.

@Akshatchaube01  please add the label of level on this issue, I have already made a PR check it out.

@Akshatchaube01  You haven't added label of difficulty level.


Auto release notes

fixes: #671

FYI @chidozieononiwu is working on a centralized solution to this issue.


App get crash while initialising the Track Player

Hello Team,
I am using react-native-track-player and react-native-video into my project. The version of my library are:-
**react-native-video:- ** 5.2.0
**react-native-track-player:- ** 2.1.2
but when i initialise the track player app get crash.
I am assuming that the expoPlayer version of react-native-track-player and react-native-video getting mismatch.
I am getting the below error at the time of crash:-

Can any one help me to fix this issue.
Thanks in advance

Facing same issue

If you manually linked react-native-video just unlink it and let the react-native automatically link it. I solved it by simply unlinking react-native-video manually.

I have tried this solution but it dose not work.
I have remove react-native-video library but still same error occured.

If you are still facing this issue, maybe this solution will help
https://github.com/DoubleSymmetry/react-native-track-player/issues/1314#issuecomment-977531114

I have completely removed the react-native-library itself from the project. but still the crash occurs with the above message.

The following seems to be the root cause of this issue. Google's maven repository doesn't contain exo player version 2.11.4 which is being specified by the track player.
source : google maven exoplayer
So when gradle builds the app, it might have fetched some other version and that version doesn't have setAttributes method on the SimpleExoPlayer class since this class (or some of its methods) are deprecated or removed in later versions.
When track player's code would be using some other versions of exo player and this would cause it to crash since this new version has different set of apis to be used.

Found a fix for this issue :
In your project build.gradle file , add the following inside the block all projects -> repositories :
 repositories {
        jcenter() {
            content {
                includeGroup("com.google.android.exoplayer")
            }
        }

        ...

And in your app/build.gradle file  , add the following code at the end of the file :
configurations.all {
    resolutionStrategy {
        force 'com.google.android.exoplayer:exoplayer-core:2.11.4'
    }
}

@nateshmbhat 👋 I have the exact same error but your proposed fix doesn't work for me.
I've tried using these versions:
"react-native-track-player": "2.1.2",
"react-native-unimodules": "0.14.6",
"react-native-video": "5.1.1",

that both use exoplayer 2.11.4, yet, the track player works but not the video player. It crashes as soon as I wanna launch the video.
One weird thing though is that it works perfectly on a simulator (Pixel 3, Android 11), but it crashes instantly on a real device (OnePlus 8T, Android 11).
During build time, the only mention of Exoplayer is here:
[13:03:21]: ▸ WARNING: [Processor] Library '/home/circleci/.gradle/caches/modules-2/files-2.1/com.google.android.exoplayer/exoplayer-ui/2.11.4/8be1e4b0aba76de3d8216633c8d9d1625fda2acf/exoplayer-ui-2.11.4.aar' contains references to both AndroidX and old support library. This seems like the library is partially migrated. Jetifier will try to rewrite the library anyway.

But I'm not sure this has anything to do with the crash 🤷 Any help would be welcome here!

Hey @nateshmbhat! Thank you for the these lines:
configurations.all {
    resolutionStrategy {
        force 'com.google.android.exoplayer:exoplayer-core:2.11.4'
    }
}

I was having problems with making it work with react-native-appodeal and force made it work!

But I went a bit deeper and tried to make it work with latest react-native-video (as it's more often case with rn-track-player) which uses exoplayer 2.13.2 as can be seen here. So I created a patch file which can be used with patch-package.
Below is the content of the patch file and here is the link to the gist:
diff --git a/node_modules/react-native-track-player/android/build.gradle b/node_modules/react-native-track-player/android/build.gradle
index a241d94..48138f9 100644
--- a/node_modules/react-native-track-player/android/build.gradle
+++ b/node_modules/react-native-track-player/android/build.gradle
@@ -60,7 +60,7 @@ dependencies {
     //noinspection GradleDynamicVersion
     implementation 'com.facebook.react:react-native:+'

-    def exoPlayerVersion = safeExtGet("exoPlayerVersion", '2.11.4')
+    def exoPlayerVersion = safeExtGet("exoPlayerVersion", '2.13.2')

     // ExoPlayer Core
     implementation "com.google.android.exoplayer:exoplayer-core:${exoPlayerVersion}"
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
index 61d17bf..c9969b5 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
@@ -132,8 +132,8 @@ public class MusicManager implements OnAudioFocusChangeListener {
                 .setLoadControl(control)
                 .build();

-        player.setAudioAttributes(new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
-                .setContentType(C.CONTENT_TYPE_MUSIC).setUsage(C.USAGE_MEDIA).build());
+        player.getAudioComponent().setAudioAttributes(new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
+                .setContentType(C.CONTENT_TYPE_MUSIC).setUsage((C.USAGE_MEDIA)).build(), false);

         return new LocalPlayback(service, this, player, cacheMaxSize, autoUpdateMetadata);
     }
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
index 37a6fbf..8e2d866 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
@@ -8,7 +8,7 @@ import com.facebook.react.bridge.Promise;
 import com.google.android.exoplayer2.*;
 import com.google.android.exoplayer2.Player.EventListener;
 import com.google.android.exoplayer2.Timeline.Window;
-import com.google.android.exoplayer2.extractor.mp4.MdtaMetadataEntry;
+import com.google.android.exoplayer2.metadata.mp4.MdtaMetadataEntry;
 import com.google.android.exoplayer2.metadata.Metadata;
 import com.google.android.exoplayer2.metadata.MetadataOutput;
 import com.google.android.exoplayer2.metadata.flac.VorbisComment;
@@ -247,7 +247,7 @@ public abstract class ExoPlayback<T extends Player> implements EventListener, Me
     public void onTimelineChanged(@NonNull Timeline timeline, int reason) {
         Log.d(Utils.LOG, "onTimelineChanged: " + reason);

-        if((reason == Player.TIMELINE_CHANGE_REASON_PREPARED || reason == Player.TIMELINE_CHANGE_REASON_DYNAMIC) && !timeline.isEmpty()) {
+        if((reason == Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED || reason == Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) && !timeline.isEmpty()) {
             onPositionDiscontinuity(Player.DISCONTINUITY_REASON_INTERNAL);
         }
     }
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
index 069cbbd..725feb9 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
@@ -1,6 +1,6 @@
 package com.guichaguri.trackplayer.service.player;

-import com.google.android.exoplayer2.extractor.mp4.MdtaMetadataEntry;
+import com.google.android.exoplayer2.metadata.mp4.MdtaMetadataEntry;
 import com.google.android.exoplayer2.metadata.Metadata;
 import com.google.android.exoplayer2.metadata.flac.VorbisComment;
 import com.google.android.exoplayer2.metadata.icy.IcyHeaders;

@pybuche this might solve your problem as well :)
if it works well for you guys, I'll create a PR.

But I went a bit deeper and tried to make it work with latest react-native-video (as it's more often case with rn-track-player) which uses exoplayer 2.13.2 as can be seen here. So I created a patch file which can be used with patch-package.
Below is the content of the patch file and here is the link to the gist:
diff --git a/node_modules/react-native-track-player/android/build.gradle b/node_modules/react-native-track-player/android/build.gradle
index a241d94..48138f9 100644
--- a/node_modules/react-native-track-player/android/build.gradle
+++ b/node_modules/react-native-track-player/android/build.gradle
@@ -60,7 +60,7 @@ dependencies {
     //noinspection GradleDynamicVersion
     implementation 'com.facebook.react:react-native:+'

-    def exoPlayerVersion = safeExtGet("exoPlayerVersion", '2.11.4')
+    def exoPlayerVersion = safeExtGet("exoPlayerVersion", '2.13.2')

     // ExoPlayer Core
     implementation "com.google.android.exoplayer:exoplayer-core:${exoPlayerVersion}"
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
index 61d17bf..c9969b5 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
@@ -132,8 +132,8 @@ public class MusicManager implements OnAudioFocusChangeListener {
                 .setLoadControl(control)
                 .build();

-        player.setAudioAttributes(new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
-                .setContentType(C.CONTENT_TYPE_MUSIC).setUsage(C.USAGE_MEDIA).build());
+        player.getAudioComponent().setAudioAttributes(new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
+                .setContentType(C.CONTENT_TYPE_MUSIC).setUsage((C.USAGE_MEDIA)).build(), false);

         return new LocalPlayback(service, this, player, cacheMaxSize, autoUpdateMetadata);
     }
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
index 37a6fbf..8e2d866 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
@@ -8,7 +8,7 @@ import com.facebook.react.bridge.Promise;
 import com.google.android.exoplayer2.*;
 import com.google.android.exoplayer2.Player.EventListener;
 import com.google.android.exoplayer2.Timeline.Window;
-import com.google.android.exoplayer2.extractor.mp4.MdtaMetadataEntry;
+import com.google.android.exoplayer2.metadata.mp4.MdtaMetadataEntry;
 import com.google.android.exoplayer2.metadata.Metadata;
 import com.google.android.exoplayer2.metadata.MetadataOutput;
 import com.google.android.exoplayer2.metadata.flac.VorbisComment;
@@ -247,7 +247,7 @@ public abstract class ExoPlayback<T extends Player> implements EventListener, Me
     public void onTimelineChanged(@NonNull Timeline timeline, int reason) {
         Log.d(Utils.LOG, "onTimelineChanged: " + reason);

-        if((reason == Player.TIMELINE_CHANGE_REASON_PREPARED || reason == Player.TIMELINE_CHANGE_REASON_DYNAMIC) && !timeline.isEmpty()) {
+        if((reason == Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED || reason == Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) && !timeline.isEmpty()) {
             onPositionDiscontinuity(Player.DISCONTINUITY_REASON_INTERNAL);
         }
     }
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
index 069cbbd..725feb9 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
@@ -1,6 +1,6 @@
 package com.guichaguri.trackplayer.service.player;

-import com.google.android.exoplayer2.extractor.mp4.MdtaMetadataEntry;
+import com.google.android.exoplayer2.metadata.mp4.MdtaMetadataEntry;
 import com.google.android.exoplayer2.metadata.Metadata;
 import com.google.android.exoplayer2.metadata.flac.VorbisComment;
 import com.google.android.exoplayer2.metadata.icy.IcyHeaders;

@pybuche this might solve your problem as well :)
if it works well for you guys, I'll create a PR.

Thanks. I'll make it easier for peeps;

Install patch-package and postinstall packages: yarn add patch-package postinstall-postinstall
Create patches directory on root and create react-native-track-player+2.1.2.patch inside patches directory with the above patch.
Add "postinstall": "patch-package" to the scripts block inside package.json
Run yarn postinstall and that should apply the patch(es);

patch-package 6.4.7
Applying patches...
<EMAIL_ADDRESS>✔

Each time, you add a new package, the postinstall script should run automatically and patch everything within patches.

Thanks @sadikyalcin is this something you could create a pull request for to fix this in RNTP?

This seems to be a duplicate of https://github.com/doublesymmetry/react-native-track-player/issues/1235#issuecomment-1098086394
I'm going to close it for now, but if I'm mistaken please let me know and I'll reopen it.

But I went a bit deeper and tried to make it work with latest react-native-video (as it's more often case with rn-track-player) which uses exoplayer 2.13.2 as can be seen here. So I created a patch file which can be used with patch-package.
Below is the content of the patch file and here is the link to the gist:
diff --git a/node_modules/react-native-track-player/android/build.gradle b/node_modules/react-native-track-player/android/build.gradle
index a241d94..48138f9 100644
--- a/node_modules/react-native-track-player/android/build.gradle
+++ b/node_modules/react-native-track-player/android/build.gradle
@@ -60,7 +60,7 @@ dependencies {
     //noinspection GradleDynamicVersion
     implementation 'com.facebook.react:react-native:+'

-    def exoPlayerVersion = safeExtGet("exoPlayerVersion", '2.11.4')
+    def exoPlayerVersion = safeExtGet("exoPlayerVersion", '2.13.2')

     // ExoPlayer Core
     implementation "com.google.android.exoplayer:exoplayer-core:${exoPlayerVersion}"
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
index 61d17bf..c9969b5 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.java
@@ -132,8 +132,8 @@ public class MusicManager implements OnAudioFocusChangeListener {
                 .setLoadControl(control)
                 .build();

-        player.setAudioAttributes(new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
-                .setContentType(C.CONTENT_TYPE_MUSIC).setUsage(C.USAGE_MEDIA).build());
+        player.getAudioComponent().setAudioAttributes(new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
+                .setContentType(C.CONTENT_TYPE_MUSIC).setUsage((C.USAGE_MEDIA)).build(), false);

         return new LocalPlayback(service, this, player, cacheMaxSize, autoUpdateMetadata);
     }
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
index 37a6fbf..8e2d866 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java
@@ -8,7 +8,7 @@ import com.facebook.react.bridge.Promise;
 import com.google.android.exoplayer2.*;
 import com.google.android.exoplayer2.Player.EventListener;
 import com.google.android.exoplayer2.Timeline.Window;
-import com.google.android.exoplayer2.extractor.mp4.MdtaMetadataEntry;
+import com.google.android.exoplayer2.metadata.mp4.MdtaMetadataEntry;
 import com.google.android.exoplayer2.metadata.Metadata;
 import com.google.android.exoplayer2.metadata.MetadataOutput;
 import com.google.android.exoplayer2.metadata.flac.VorbisComment;
@@ -247,7 +247,7 @@ public abstract class ExoPlayback<T extends Player> implements EventListener, Me
     public void onTimelineChanged(@NonNull Timeline timeline, int reason) {
         Log.d(Utils.LOG, "onTimelineChanged: " + reason);

-        if((reason == Player.TIMELINE_CHANGE_REASON_PREPARED || reason == Player.TIMELINE_CHANGE_REASON_DYNAMIC) && !timeline.isEmpty()) {
+        if((reason == Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED || reason == Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) && !timeline.isEmpty()) {
             onPositionDiscontinuity(Player.DISCONTINUITY_REASON_INTERNAL);
         }
     }
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
index 069cbbd..725feb9 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
+++ b/node_modules/react-native-track-player/android/src/main/java/com/guichaguri/trackplayer/service/player/SourceMetadata.java
@@ -1,6 +1,6 @@
 package com.guichaguri.trackplayer.service.player;

-import com.google.android.exoplayer2.extractor.mp4.MdtaMetadataEntry;
+import com.google.android.exoplayer2.metadata.mp4.MdtaMetadataEntry;
 import com.google.android.exoplayer2.metadata.Metadata;
 import com.google.android.exoplayer2.metadata.flac.VorbisComment;
 import com.google.android.exoplayer2.metadata.icy.IcyHeaders;

@pybuche this might solve your problem as well :)
if it works well for you guys, I'll create a PR.

Thanks. I'll make it easier for peeps;

Install patch-package and postinstall packages: yarn add patch-package postinstall-postinstall
Create patches directory on root and create react-native-track-player+2.1.2.patch inside patches directory with the above patch.
Add "postinstall": "patch-package" to the scripts block inside package.json
Run yarn postinstall and that should apply the patch(es);

patch-package 6.4.7
Applying patches...
<EMAIL_ADDRESS>✔

Each time, you add a new package, the postinstall script should run automatically and patch everything within patches.

Tnx @sadikyalcin your code help me to avoid app crash, but when I do that:
        await TrackPlayer.add([track]);
        await TrackPlayer.play();

nothing happen...


Black is not black anymore?

There is a black patch of screen that clipped through a solid sphere, where no light goes in, therefore it should be pitch black. The tonemapper seems to skew the blacks towards dark-gray, losing effective LDR range a bit and removing contrast from the image. After inspecting LUT in renderdoc, I've noticed that the pixel at (0, 0, 0) is not actually black, but has a value 0.00014.
LUT:

With tonemapper:

Without tonemapper:

Ah, quantization, what hast thou done?
Yeah, it would probably be a good idea to special-case that. Thanks for noticing and finding the cause!

I wonder if this could be related to the same issue I noticed a while ago and mentioned on Mastodon: https://mastodon.gamedev.place/@froyok/109921004547221001

Commenting again on this, I decided to "fix" it (well, more like compensate) in a quick and dirty way. The minimum value is 0.00018 in the LUT and the maximum 0.99805, so it's not a perfect 0-1 range, therefor I scaled the color result after the LUT is applied.
Which look something like this:
vec3 Tonemap_Tony_RemapRange( vec3 TonyColor )
{
	// Tony LUT min value is 0.00018 instead of 0.0
	// Max value is 0.99805 and not 1.0.
	const float Scale = 1.0 / ( 0.99805 - 0.00018 );
	return Saturate( ( TonyColor - 0.00018 ) * Scale );
}

Which that you get back true blacks. Haven't noticed change with highlights/pure white pixels (but that's harder to distinguish anyway).


Hydrodyn and WAMIT

Dear all,

I set the WaveHS (Significant Wave Height of Incident Waves) of the Hydrodyn module to whatever size, B1HEAVE (Displacement of the 1st Wamit Body Along the Global Z-Axis) and PTFMHEAVE (Platform Vertical Heave (Translational) Displacement) always keeps the same trend and size, I wonder is this right? These problems also manifest in SURGE and SWAY.

2.For the three degrees of freedom of rotational motion, although the trend is the same, but the magnitude is different.
3.Also, is there any correlation between changing the WaveHS in Hydrodyn and the wave height used in WaMit, and then what parameters need to be consistent between the potential flow solution and the parameters set in Hydro?
Best regards，
Tian

Dear @robytian,
I'm not sure I understand your first two questions; please clarify.  For (1), are you saying that the significant wave height set in HydroDyn is not affecting the platform-heave motion you are seeing output from HydroDyn and ElastoDyn?  Are you using a model NREL has provided or one you have developed yourself?
Regarding (3), the significant wave height is not specified as an input to WAMIT.  The output from WAMIT is independent of sea state.
Best regards,

Dear @robytian,
I'm not sure I understand your first two questions; please clarify. For (1), are you saying that the significant wave height set in HydroDyn is not affecting the platform-heave motion you are seeing output from HydroDyn and ElastoDyn? Are you using a model NREL has provided or one you have developed yourself?
Regarding (3), the significant wave height is not specified as an input to WAMIT. The output from WAMIT is independent of sea state.
Best regards,

Yeah, the point I'm trying to make is that the wave heights used for the solutions calculated in WAMIT don't affect the significant wave height that I set in the Hydrodyn module, right? And if i modify the significant wave height in Hydrodyn, is the platform motion different from the Body1 motion that WAMIT outputs?

Dear @robytian,
As I said earlier, the significant wave height is not an input to WAMIT.  WAMIT does not output motions for specific irregular sea states.  Instead, WAMIT computes the hydrodynamic properties of the floater (added mass, radiation damping, wave excitation loads, etc.) as a function of frequency.
Best regards,

Dear @robytian,
As I said earlier, the significant wave height is not an input to WAMIT. WAMIT does not output motions for specific irregular sea states. Instead, WAMIT computes the hydrodynamic properties of the floater (added mass, radiation damping, wave excitation loads, etc.) as a function of frequency.
Best regards,

Thank you for your answer. I have one more question, why is it true that Platform and B1 have the same displacement but not the same rotation? What causes this?
Best regards,

Dear @robytian,
It looks like the ElastoDyn outputs match the HydroDyn outputs (as expected), but for the rotational outputs, ElastoDyn outputs the rotations in degrees and HydroDyn outputs the rotations in radians.
Best regards,

Dear @robytian,
It looks like the ElastoDyn outputs match the HydroDyn outputs (as expected), but for the rotational outputs, ElastoDyn outputs the rotations in degrees and HydroDyn outputs the rotations in radians.
Best regards,

Thank you for your reply!
Best regards,


etchi ketchi | com si, com sa

Some modifications desired, others not desired.
Desired

requirements.txt
extra image parameters
dateformat improvements
random shuffle of urls requested
added scraping of fb responses
improved overall stability

Undesired

postgresql database
venv

Alterations

prefer sqlite with sqlcipher over postgres

Will need to Merge by hand. Also, not sure what to do about postgresql for now. Considering leaving it in, it does facilitate a desire function.


Question: TS enums

Given something like
  export interface Person {
    status: MaritalStatus;
  }

  enum MaritalStatus {
    Married = 0,
    Single = 1,
  }

Is there a way to get the enum name and literals while introspecting Person type property (getType<Person>().getProperties()[0])?
I see that the property type kind is Container which totally makes sense, but cannot find neither the enum name nor its value names.
Thanks!

Hello,
kind Container is mainly for type operations such as Union and Intersection (Type1 | Type2 & Type3), it is not intended for enums, but yeah, it makes sense it fell to this kind.
I think I haven't test enums yet; I think the new Enum kind will be needed with new special handlers for that.
Now it generates
___tst_reflect.Type.store.set(21838, {k: 6, n: "", v: 0});
___tst_reflect.Type.store.set(21839, {k: 6, n: "", v: 1});
___tst_reflect.Type.store.set(21837, {
	k: 3,
	types: [___tst_reflect.Type.store.get(21838), ___tst_reflect.Type.store.get(21839)],
	union: true,
	inter: false
});

Which is union of literals. There are values but no names,.. its under Type.types
What do you expect in Enum Type?

name of the enum
and enum itself? Or list of entries ([ {property: "Single", value: 1}, { ... } ]) or simple object ({ "Married":0, "Single":1 })?

Enum is transpiled as:
var SomeEnum;
(function (SomeEnum) {
    SomeEnum[SomeEnum["One"] = 0] = "One";
    SomeEnum[SomeEnum["Two"] = 1] = "Two";
})(SomeEnum || (SomeEnum = {}));

which gives you everything.. so reference to that enum should be enough.

indeed, reference to enum sounds good, but a discriminator is required to know it's an enum (maybe TypeKind.Enum?)

Okay, I've pushed implementation into same branch (https://github.com/Hookyns/ts-reflection/tree/feature/refactored-stores).
There is no reference to the real enum, it was quite problematic, because those enums can be in private modules (not exported) etc. and the enums would be useless without references.
So I add

Enum kind,
Type.isEnum(): boolean,
Type.getEnum(): EnumInfo

EnumInfo:
interface EnumInfo
{
	/**
	 * Get enum enumerators/items (keys).
	 */
	getEnumerators(): string[];

	/**
	 * Get values.
	 */
	getValues(): any[];

	/**
	 * Get enum entries (key:value pairs).
	 */
	getEntries(): Array<readonly [enumeratorName: string, value: any]>;
}

I've published new versions of packages with implementation:
<EMAIL_ADDRESS><EMAIL_ADDRESS>

@Hookyns confirmed!
Thanks a lot!
Great lib, really like the idea, will see if I can use it for my use case (ORM schema definition via TS)

I thank you for this issue!
Feel free to create another issues if you find something. 🙂

just did 😄


Validate cookie name and value characters

Motivation:
RFC6265 specifies which characters are allowed in a cookie name and value.
Netty is currently too lax, which can used for HttpOnly escaping.
Modification:
In ServerCookieDecoder: discard cookie key-value pairs that contain invalid characters.
In ClientCookieEncoder: throw an exception when trying to encode cookies with invalid characters.
Result:
The problem described in the motivation section is fixed.

@trustin @normanmaurer Please review.

@normanmaurer done

I'll rebase once PR is reviewed.

@trustin As we're dropping unescaping, there's no reason for Cookie#rawValue anymore. We just need a boolean to keep track of the wrapping that was used in the Set-Cookie header so we can send back the same way.
Can I change this, as it's on 4.1/master?

@slandelle Yes, you can. We also probably need to fix ClientCookieDecoder and ServerCookieEncoder?

@trustin You're right, will do.

Here's my diff that fixes my comments (to save your time)
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/ClientCookieEncoder.java b/codec-http/src/main/java/io/netty/handler/codec/http/ClientCookieEncoder.java
index 1ce59b5..530dd92 100644
--- a/codec-http/src/main/java/io/netty/handler/codec/http/ClientCookieEncoder.java
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/ClientCookieEncoder.java
@@ -121,12 +121,17 @@ public final class ClientCookieEncoder {
                 : c.value() != null ? c.value() : "";

         final String name = c.name();
-        if (containsInvalidCookieNameOctet(name, 0, name.length())) {
-            throw new IllegalArgumentException("Cookie name contains an invalid char: " + name);
+        int invalidOctetPos;
+
+        if ((invalidOctetPos = firstInvalidCookieNameOctet(name)) >= 0) {
+            throw new IllegalArgumentException(
+                    "cookie name contains an invalid char (" + (int) name.charAt(invalidOctetPos) + "): " + name);
         }

-        if (containsInvalidCookieValueOctet(value, 0, value.length())) {
-            throw new IllegalArgumentException("Cookie value contains an invalid char: " + value);
+
+        if ((invalidOctetPos = firstInvalidCookieValueOctet(value)) >= 0) {
+            throw new IllegalArgumentException(
+                    "cookie value contains an invalid char (" + (int) value.charAt(invalidOctetPos) + "): " + value);
         }

         addUnquoted(buf, name, value);
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/CookieUtil.java b/codec-http/src/main/java/io/netty/handler/codec/http/CookieUtil.java
index bec4d83..d940193 100644
--- a/codec-http/src/main/java/io/netty/handler/codec/http/CookieUtil.java
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/CookieUtil.java
@@ -137,22 +137,22 @@ final class CookieUtil {
         sb.append((char) HttpConstants.SP);
     }

-    public static Character firstInvalidCookieNameOctet(String s) {
+    public static int firstInvalidCookieNameOctet(String s) {
         return firstInvalidOctet(s, VALID_COOKIE_NAME_OCTETS);
     }

-    public static Character firstInvalidCookieValueOctet(String s) {
+    public static int firstInvalidCookieValueOctet(String s) {
         return firstInvalidOctet(s, VALID_COOKIE_VALUE_OCTETS);
     }

-    private static Character firstInvalidOctet(String s, BitSet bits) {
+    private static int firstInvalidOctet(String s, BitSet bits) {
         for (int i = 0; i < s.length(); i++) {
             char c = s.charAt(i);
             if (!bits.get(c)) {
-                return Character.valueOf(c);
+                return i;
             }
         }
-        return null;
+        return -1;
     }

     private CookieUtil() {
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/ServerCookieDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/http/ServerCookieDecoder.java
index 5d7ac67..db792e5 100644
--- a/codec-http/src/main/java/io/netty/handler/codec/http/ServerCookieDecoder.java
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/ServerCookieDecoder.java
@@ -15,8 +15,6 @@
  */
 package io.netty.handler.codec.http;

-import static io.netty.handler.codec.http.CookieUtil.*;
-
 import io.netty.util.internal.logging.InternalLogger;
 import io.netty.util.internal.logging.InternalLoggerFactory;

@@ -24,6 +22,9 @@ import java.util.Collections;
 import java.util.Set;
 import java.util.TreeSet;

+import static io.netty.handler.codec.http.CookieUtil.firstInvalidCookieNameOctet;
+import static io.netty.handler.codec.http.CookieUtil.firstInvalidCookieValueOctet;
+
 /**
  * A RFC6265 compliant cookie decoder to be used server side.
  *
@@ -138,11 +139,15 @@ public final class ServerCookieDecoder {
                 continue;
             }

-            String name = header.substring(newNameStart, newNameEnd);
+            int invalidOctetPos;

-            Character c = firstInvalidCookieNameOctet(name);
-            if (c != null) {
-                logger.debug("Skipping cookie because name '{}' contains invalid char '{}'", name, c.charValue());
+            final String name = header.substring(newNameStart, newNameEnd);
+            if ((invalidOctetPos = firstInvalidCookieNameOctet(name)) >= 0) {
+                if (logger.isDebugEnabled()) {
+                    logger.debug(
+                            "Skipping cookie because name '{}' contains an invalid char '{}'",
+                            name, (int) name.charAt(invalidOctetPos));
+                }
                 continue;
             }

@@ -156,11 +161,13 @@ public final class ServerCookieDecoder {
                 }
             }

-            String value = header.substring(newValueStart, newValueEnd);
-
-            c = firstInvalidCookieValueOctet(value);
-            if (c != null) {
-                logger.debug("Skipping cookie because value '{}' contains invalid char '{}'", value, c.charValue());
+            final String value = header.substring(newValueStart, newValueEnd);
+            if ((invalidOctetPos = firstInvalidCookieValueOctet(value)) >= 0) {
+                if (logger.isDebugEnabled()) {
+                    logger.debug(
+                            "Skipping cookie because value '{}' contains invalid char '{}'",
+                            value, (int) value.charAt(invalidOctetPos));
+                }
                 continue;
             }

Thanks.
What about moving Cookie related classes to a cookie package?

Re: moving to a new package - backward compatibility? Cookie was introduced long time ago, so I guess it's gonna be painful to make a move at this point. Please let me know if you have a good idea.

I'd personally break compatibility and move the 9 cookie related classes into a cookie package in master/Netty 5. That's what major versions are for.
But then, that's your project and users ;-)
Your call.

I think we can make a move by:

Moving the cookie classes to the cookie package
Adding the deprecated Cookie and DefaultCookie that extends cookie.Cookie and cookie.DefaultCookie for backward compatibility
Keeping the old deprecated cookie encoder/decoder as they are

Good idea!

@trustin @normanmaurer Ready for review.
I'll update the commit message later. The other changes are:

Introduce a new cookie package:

Old classes in base package are deprecated and delegate or extend the new ones.
Non RFC6265 cookie attributes are deprecated and kept in the old classes
I was not able to implement some delegating methods without copying collection input parameter, as they are invariant. Always amazed that Iterable is invariant in Java because Iterator let you mutate it...

Remove Cookie#rawValue in favor wrap.

Great job, @slandelle. Choose LOOSE or LAX, and then we should be done.

@trustin I just renamed LOOSE into LAX, thanks.
Then, I realize I didn't do anything with old io.netty.handler.codec.http.CookieDecoder. This class was wrong (assumed cookies were serialized more or less the same way client and server side).
I'm not sure what I can do with it. It feels like I'll have to duplicate, as I can't delegate to the Client decoder or the server one :(

@slandelle We could add a new method with a new boolean parameter (lax) whose default value is false?

@trustin Done. I sadly had to duplicate some code as the parsing is very different.

I'm trying to find another solution but... The point is that java visibility support sucks. Scala would let you make it visible for sub packages too.
Are you really sure you don't simply want to drop old Decoders/Encoders in 4.1? It's still in beta, and io.netty.handler.codec.http.CookieDecoder is quite foobar...

@trustin Duplication done

@slandelle we can not drop stuff in 4.1 that exists in 4.0. We can only do this in 5.0

What's the plan for this for 4.0 and 3.x?
Do you intend to backport, or should @jroper fork in Play?

@slandelle a fix needs to be backported.

Any update on this?

I've fixed all comments and squashed the commits one week ago.
The ball is in @trustin and @normanmaurer 's yard now.

@slandelle sorry that I was so late :/

@normanmaurer Thanks for reviewing! All comments done.

Ah, missed a few. Will do.

@slandelle will you also provide a pr against 4.0 ?

@normanmaurer Done!
Regarding 4.0, I'm not sure I can easily fix the original issue without introducing the whole new cookie package, which is a new feature. Are you fine with it?

@slandelle sounds good to me.

OK, will do once this one gets merged.

@slandelle let me know once you think this one is done

From my pov, it's done.

@trustin happy with it ? So we can finally merge this ?

@normanmaurer Is it possible to re-trigger build on Clinker so I know what the build issue is?

@netkins build

Thanks :)

@normanmaurer I have no idea why the PR was marked as failing the tests.
Build is all green.
Maybe it was because the test results were dropped after some time.

@slandelle yeah looks good. Let me merge this in. Can you back port to 4.0 ? I would like to cut a 4.0 release tomorrow :)

@normanmaurer I'll give it a try tonight.

@slandelle thanks!
Cherry-picked this one into 4.1 (97d871a7553a01384b43df855dccdda5205ae77a).
@slandelle could you also provide a patch for master and 3.10 ?

Regarding master, there's a good chance this same commit can be cherry-picked there.
Backporting on 3.10 requires extra effort, tons of helpers don't exist there. I will give it a try as soon as I can, but probably not before next week...

The patch did not apply on master :/

Am 07.05.2015 um 07:38 schrieb Stephane Landelle<EMAIL_ADDRESS>Regarding master, there's a good chance this same commit can be cherry-picked there.
Backporting on 3.10 requires extra effort, tons of helpers don't exist there. I will give it a try as soon as I can, but probably not before next week...
—
Reply to this email directly or view it on GitHub.

Closing as this was cherry-picked as 97d871a7553a01384b43df855dccdda5205ae77a (and released in 4.1.0.Beta5)


Patch

Pull Request Test Coverage Report for Build 5c26de54fbc0221f533ba6c47558c5af73e15c2e-PR-2
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 92.643%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/broadway/topology/producer_stage.ex
0
1
0.0%

Totals

Change from base Build 62e2be543edcd6969517722f351bf16cbe7c3bca:
0.0%

Covered Lines:
617

Relevant Lines:
666

💛  - Coveralls


Update inspectdb docs typo

Thank you @draew6

@tarsil I thank you for feature i created issue about (: came back to check out how it worked out. I will test it on serverless in next days I hope.


Rename the tests directory

As per the standard golang proyect layout 1 the directory with the tests should be called test and not tests, so we rename it here.
We should be consistent in all openstack operators repositories and follow the standard so the documentation has no discrepancies 2.

As per the standard golang proyect layout 1 the directory with the tests should be called test and not tests, so we rename it here.
We should be consistent in all openstack operators repositories and follow the standard so the documentation has no discrepancies 2.

Ok, despite most of the other projects call this directory tests, I agree we should follow the standard project layout you mentioned, hence +1 on this change.

/retest


Update to 14.04

this is for Vagrant box

retest this please

retest this please

retest this please

retest this please

@Sanchiz I would like to ask you to test this pr on your MacBook
Because I had a chance to test it only on Ubuntus


Announcement for 1.7.0.Alpha1

@gunnarmorling @Naros This is a skeleton of announcement for Monday publication.

@Naros, should you pick this one one, adding a sentence or two on 1.6.1 would be a great addition, too.

@gunnarmorling Could take re-check the latest edits?


[Windows dev workflow] Compile engine once, link prebuilt for project

Use steps:

Build engine firstly

cd adxe
cmake -B build_x86 -A Win32
cmake --build build_x86 --config Debug
cmake --build build_x86 --config Release

create new project and build with engine prebuilt libs

adxe new -p org.adxe.hellocpp -d D:\dev\projects\ -l cpp --portrait HelloCpp
cd /d D:\dev\projects\HelloCpp
cmake -B build_x86 -A Win32 "-DAX_PREBUILT_DIR=build_x86"
cmake --build build_x86 --config Debug --target HelloCpp
REM run the HelloCpp.exe
run.bat

It would be nice if this feature isn't forced, like when you create a project it asks you wither you want prebuilt linking or just normal building, because people like me want to edit the engine anytime they feel like👍

Use steps:

Build engine firstly

cd adxe
cmake -B build_x86 -A Win32
cmake --build build_x86 --config Debug
cmake --build build_x86 --config Release

create new project and build with engine prebuilt libs

adxe new -p org.adxe.hellocpp -d D:\dev\projects\ -l cpp --portrait HelloCpp
cd /d D:\dev\projects\HelloCpp
cmake -B build_x86 -A Win32 "-DAX_PREBUILT_DIR=build_x86"
cmake --build build_x86 --config Debug --target HelloCpp
REM run the HelloCpp.exe
run.bat

Will you add this "info"  to the readme or wiki too?

May be add a CMakeOptions.md is better, there a other unified options needs docs, see relative issue:
https://github.com/adxeproject/adxe/issues/578

Les goo its getting lit in here

Maybe add a CMakeOptions.md is better, there a other unified options needs docs, see relative issue: #578

Good idea.
Only a link to this CMakeOptions.md on readme or wiki is usefull.
What are you mean?

Please remove the history (only first entry is important)
Rename axde to axis

@halx99
Rename axis to axys


Issue Tracking Moved to YouTrack

The product backlog and all issue tracking are kept in the
Defend Against Fruit YouTrack instance.
Our hat is off to JetBrains for their great support of Open Source projects. YouTrack is being provided for free by JetBrains as per their OS-Project License

Do I have to create an account in order to access the issue tracker? :-1:


feat: logs in plain-text when running as CLI

Short description of what this resolves:
Both cluster-side operator logic and CLI bits are logging in JSON format. In the case of latter that might not be that helpful for the user looking at the console.
Changes proposed in this pull request:
Simplest change based on ZapLogger with minimal customization on our side would result in:
╰─ ike version
{"level":"info","ts":1567750594.5153377,"logger":"cmd","msg":"Ike Version: v0.0.1-next-b9b0a02-dirty","type":"version"}
{"level":"info","ts":1567750594.5153575,"logger":"cmd","msg":"Go Version: go1.12.9","type":"version"}
{"level":"info","ts":1567750594.5153625,"logger":"cmd","msg":"Go OS/Arch: linux/amd64","type":"version"}
{"level":"info","ts":1567750594.5153675,"logger":"cmd","msg":"operator-sdk Version: v0.10.0","type":"version"}
{"level":"info","ts":1567750594.515371,"logger":"cmd","msg":"Build Commit: b9b0a02-dirty","type":"version"}
{"level":"info","ts":1567750594.5153751,"logger":"cmd","msg":"Build Time: 2019-09-06T06:15:51Z","type":"version"}

vs
╰─ ike version
2019-09-06T08:18:04.272+0200    INFO    cmd     Ike Version: v0.0.1-next-b9b0a02-dirty  {"type": "version"}
2019-09-06T08:18:04.272+0200    INFO    cmd     Go Version: go1.12.9    {"type": "version"}
2019-09-06T08:18:04.272+0200    INFO    cmd     Go OS/Arch: linux/amd64 {"type": "version"}
2019-09-06T08:18:04.272+0200    INFO    cmd     operator-sdk Version: v0.10.0   {"type": "version"}
2019-09-06T08:18:04.272+0200    INFO    cmd     Build Commit: b9b0a02-dirty     {"type": "version"}
2019-09-06T08:18:04.272+0200    INFO    cmd     Build Time: 2019-09-06T06:17:48Z        {"type": "version"}

That works as following:

while setting up the logger we check if we run in the cluster (by inspecting if there is KUBERNETES_SERVICE_HOST defined - see kubelet env-vars)
switches to Zap dev mode to log plain-text instead of JSON

Fixes #9

@bartoszmajsak Should we remove timestamp, sublogger etc as well? Maybe at least for version

@bartoszmajsak Should we remove timestamp, sublogger etc as well? Maybe at least for version

We could, but this would mean a bit of boilerplate code to achieve that. I will have a look later today as anyway, we are using deprecated APIs after k8s deps updates.
Let's keep it open till then.

@bartoszmajsak Should we remove timestamp, sublogger etc as well? Maybe at least for version

I reworked that bit in ef88d20. The current output looks like that:
╰─ ike version
Ike Version: v0.0.1-next-ef88d20-dirty
Go Version: go1.12.9
Go OS/Arch: linux/amd64
operator-sdk Version: v0.10.0
Build Commit: ef88d20-dirty
Build Time: 2019-09-11T06:53:17Z

╰─ ike develop
Found 'telepresence' executable in '/usr/bin/telepresence'.
See 'telepresence.log' for more details about its execution.
Error: required flag(s) "deployment", "run" not set

VS
╰─ ike version
{"level":"info","ts":1568190309.169534,"logger":"cmd","msg":"Ike Version: v0.0.1-next-b98b8a1","type":"version"}
{"level":"info","ts":1568190309.169557,"logger":"cmd","msg":"Go Version: go1.12.9","type":"version"}
{"level":"info","ts":1568190309.1695647,"logger":"cmd","msg":"Go OS/Arch: linux/amd64","type":"version"}
{"level":"info","ts":1568190309.1695683,"logger":"cmd","msg":"operator-sdk Version: v0.10.0","type":"version"}
{"level":"info","ts":1568190309.1695747,"logger":"cmd","msg":"Build Commit: b98b8a1","type":"version"}
{"level":"info","ts":1568190309.1695807,"logger":"cmd","msg":"Build Time: 2019-09-11T08:24:50Z","type":"version"}

As a side-effect, I changed the way how we create loggers for commands (see ef88d20).
Instead of var log = logf.Log.WithName("cmd").WithValues("type", "develop") I do var log = logf.Log.WithName("develop"). Sticking with .WithValues results in
╰─ ike develop
Found 'telepresence' executable in '/usr/bin/telepresence'. { "type": "develop" }

meaning each extra Field added is always appended in JSON structure. To get rid off that we would need to write custom Encoder. But I'm not sure if that wouldn't add too much maintenance cost.
If you are fine with that - merge away.


Easter egg console msg

I added a fun and styled easter egg console message!! 🎉
And I wrapped app.js code in a DOM loaded handler.

looks great however it seems like you used some kind of auto formatter and that usually turns out in really bad merge conflicts :)

@BennyCarlsson I removed the indentation (grabbed it from master)  and updated the branch with latest version of master (as of right now, lol)

Great work 👍 haha yeah master updates fast here

Hooray! Thank you!!


Issue template

Is it possible to create an issue template for this repository?
I thought about something like
OS: ---
Firefox version: ---
Custom Themes: Yes/No/---
I read the installation instructions
Just because many people forget about that when raising an issue

Thanks for this suggestion - it's a good idea so I've implemented a template.
Users will need to explicitly check off 3 sanity checks when completing a bug report, so we avoid issues where people haven't followed the instructions, have made changes to the theme, or are using an outdated version. It's based on the default issue template which will prompt people to provide screenshots and steps to reproduce the problem.