2.4.0 breaks compatibility with EquipmentAndQuickSlots by RandyKnapp

While reading in the patch notes about "Fix compatibility with ComfyQuickSlots and Odin's QOL (BruceOfTheBow & Goldenrevolver)" which I think is great, unfortunately the compatibility towards EquipmentAndQuickSlots completely broke.
Since the latter based on ComfyQuickSlots (or maybe both of those share the same predecessor) I didn't expect an issue here.
When opening an inventory now, neither the equipment slot window is drawn correctly any more nor chest inventories will be rendered at all. Exception thrown is
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
BetterUI.Patches.ElementHelper.UpdateElement (GuiBar durabilityBar) (at <279117aadda34b069259cc5f4f2ca209>:0)
BetterUI.GameClasses.BetterInventoryGrid.PatchInventory (InventoryGrid& __instance, Player& player, ItemDrop+ItemData dragItem) (at <279117aadda34b069259cc5f4f2ca209>:0)
(wrapper dynamic-method) InventoryGrid.DMDInventoryGrid::UpdateGui(InventoryGrid,Player,ItemDrop/ItemData)
InventoryGrid.UpdateInventory (Inventory inventory, Player player, ItemDrop+ItemData dragItem) (at <35c0f7aa1999477788815a7bf78200d7>:0)
EquipmentAndQuickSlots.InventoryGui_Patch+InventoryGui_UpdateInventory_Patch.Prefix (InventoryGui __instance, Player player) (at :0)
(wrapper dynamic-method) InventoryGui.DMDInventoryGui::UpdateInventory(InventoryGui,Player)
(wrapper dynamic-method) InventoryGui.DMDInventoryGui::Update(InventoryGui)
For now I am going back to the 2.3.x version. I don't know if this problem has to be fixed on your side or an update in Randys mod is required. I hope this can be fixed on your side since 2.3 -> 2.4 update broke the compatibility.

I was not able to recreate this with just BetterUI and EAQS installed. Maybe a 3rd mod is involved?

@DerNap can you send your config file for BetterUI so I can make sure I'm using the same settings as you?

Seems to only be happening as a connected client and not in single player or as host.
Friend having same issue while I am hosting without issue.

@Kyamon since both BetterUI and EAQS are client side only with no server sync, it seems unlikely that being the client to a host would be a factor. I think it's more likely that you and your friend have different config settings and that is why you don't see it. Would it be possible to send your friends config files for BetterUi and EAQS?

@DerNap would you be able to try testing this version of BetterUI and see if you can reproduce the error again?

ld you be

will do

@DerNap would you be able to try testing this version of BetterUI and see if you can reproduce the error again?

will do

This should be resolved by #51. Please update to v2,4,1 and let me know if the issue is gone.


Documentation: Should the OCR-D processor run on RGB or binarized images?

Should the OCR-D processor run on a RGB or a binarized image input group?
I think it would be best if the README listed an example, e.g.:
ocrd-eynollah-segment -I <WHICH ONE?> -O SEG-LINE -P xyz abc

Should the OCR-D processor run on a RGB

Yes it should be run on the RGB image. Conventionally we call that file group OCR-D-IMG, in DFG-Viewer conventions, the best match would be MAX IIRC

If eynollah is used as a layout segmenter, I would say RGB is preferred.

So a valid workflow would be
ocrd-eynollah-segment -I OCR-D-IMG -O OCR-D-SEG-LINE -P xyz abc
ocrd-eynollah-segment -I OCR-D-SEG-LINE -O OCR-D-IMG-BIN
ocrd-some-ocr -I OCR-D-IMG-BIN -O OCR-D-OCR

Correct?

If eynollah is used as a layout segmenter, I would say RGB is preferred.

The question was about the OCR-D processor, that is relevant because, depending on the code, a run with -I OCR-IMG-BIN (= binarized image group) could still use the RGB image by retrieving a AlternativeImage. That's why I find it crucial that the README provides an example

(If RGB is preferred, the processor could also issue a warning if binarized (single-channel) input is provided)

So a valid workflow would be
ocrd-eynollah-segment -I OCR-D-IMG -O OCR-D-SEG-LINE -P xyz abc
ocrd-some-binarization -I OCR-D-SEG-LINE -O OCR-D-IMG-BIN
ocrd-some-ocr -I OCR-D-IMG-BIN -O OCR-D-OCR

Correct?

Yes but so would be
[...]
ocrd-some-binarization -I OCR-D-IMG -O OCR-D-IMG-BIN
[...]

because ocrd-some-binarization should filter out binarized images, so it should not make a difference here, it will end up with the @imageFilename (if used on page-level).

could still use the RGB image by retrieving a AlternativeImage.

We do not do that though in eynollah, we're passing on the @imageFilename directly, so as long as no processor running before eynollah changes the @imageFilename (which only ocrd-preprocess-image does IIRC), it will use the RGB image anyway.

We do not do that though in eynollah, we're passing on the @imageFilename directly, so as long as no processor running before eynollah changes the @imageFilename (which only ocrd-preprocess-image does IIRC), it will use the RGB image anyway.

Thanks I believe that clears that part up: It's OK to do binarization before ocrd-eynollah-segment because it ends up using the RGB image anyway.

Sorry if I happen to sound super pedantic here, it's just not easy to see what's happening when we apparently stick in OCR-D-IMG-BIN but the processor does not actually use the images from that group. It was a source of confusion in sbb-textline-detection too.

Sorry if I happen to sound super pedantic here, it's just not easy to see what's happening when we apparently stick in OCR-D-IMG-BIN but the processor does not actually use the images from that group. It was a source of confusion in sbb-textline-detection too.

No need to be sorry, it is important to document this so users are clear on which data gets passed where. This behavior (directly using @imageFilename) is also different from all other processors (except sbb-textline-detection ;-)) but I think we can get away with it, because it's very unlikely that eynollah would ever need to be run on presegmented input.

I've added this to the documentation - would this be sufficient @mikegerber?

Use as OCR-D processor
Eynollah ships with a CLI interface to be used as OCR-D processor. In this case, the source image file group with (preferably)  RGB images should be used as input (in fact, the image provided by @imageFilename is passed on directly):
ocrd-eynollah-segment -I OCR-D-IMG -O SEG-LINE -P models

It's a bit trickier: It's fine to put in -I OCR-D-IMG-BIN but it will still use the RGB images from the step before

OK I've amended this accordingly in https://github.com/qurator-spk/eynollah/commit/441c8566dda5cc2b37fd92a39236dc595a547298 and will close here once the PR for the README update has been merged.


[Enhancement] [WIP]optimize scan dop when shared scan

Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[ ] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:disappointed: fail : 1 / 2 (50.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/exec/scan_node.cpp
1
2
50.00%
[120]

@tracymacding some code is related to the code you submit recently, could you take a look?


BOOST_FALLTHROUGH to silence Clang -Wimplicit-fallthrough

This is incomplete. You need an '#include <boost/config.hpp>' in the file to use any Boost.Config macro.

updated


Argument passed to DatabaseUserProvider must be Hasher, instance of Application given

Laravel Version: 5.2
Adldap2-Laravel Version: 4.0
PHP Version: 5.5
LDAP Type: ActiveDirectory

I tried to use "DatabaseUserProvider" to syncronize LDAP users with local users, but I get this error:
Argument 1 passed to ...\Auth\DatabaseUserProvider::__construct() must be an instance of Illuminate\Contracts\Hashing\Hasher, instance of Illuminate\Foundation\Application given, called in ...\ProviderRepository.php on line 146

Hi @GiacomoK, I'm not sure how you're receiving this error.
How did you register the DatabaseUserProvider?

Hi,
In the config.app file i added this in the providers array:
'provider' => Adldap\Laravel\Auth\DatabaseUserProvider::class

That’s incorrect usage. You’re inserting the database user provided into the wrong configuration file.
Please follow the installation documentation:
https://github.com/Adldap2/Adldap2-Laravel/blob/master/docs/auth.md#installation


when trying test data get this error

The locus D1S1656 is under inference {1/1}:   0%|     | 0/1 [00:00<?, ?it/s]
/bin/sh: 1: None: not found
The locus D1S1656 is under inference {1/1}:   0%|     | 0/1 [00:00<?, ?it/s]
Traceback (most recent call last):
File "../nanoforenstr.py", line 196, in
args.func(args)
File "../nanoforenstr.py", line 141, in LA
seq_prefix, seq_suffix = fetch_flanking_seq(chrom, start, end, flanking_len, reference_genome, samtools)
File "../nanoforenstr.py", line 96, in fetch_flanking_seq
pre_flanking = faidx_output.split('\n')[1]
IndexError: list index out of range

Hi AbraamSa,
Sorry for the incomplete description, and I revised the readme file.
In detail, the input contains 5 parts:

the path of bam file;
the str pattern (repeat motifs) file we provide;
ID: a string for output name
ref: reference genome with samtools index, we used hg19;
the path of samtools; if you use conda to manage the computing environment, you can just use samtools as the parameter.

If you have any question, please let me know.

The locus D1S1656 is under inference {1/1}: 0%| | 0/1 [00:00<?, ?it/s]
/bin/sh: 1: None: not found
The locus D1S1656 is under inference {1/1}: 0%| | 0/1 [00:00<?, ?it/s]
Traceback (most recent call last):
File "../nanoforenstr.py", line 196, in
args.func(args)
File "../nanoforenstr.py", line 141, in LA
seq_prefix, seq_suffix = fetch_flanking_seq(chrom, start, end, flanking_len, reference_genome, samtools)
File "../nanoforenstr.py", line 96, in fetch_flanking_seq
pre_flanking = faidx_output.split('\n')[1]
IndexError: list index out of range

Hi AbraamSa,
Sorry for the incomplete description, and I revised the readme file.
In detail, the input contains 5 parts:

the path of bam file;
the str pattern (repeat motifs) file we provide;
ID: a string for output name
ref: reference genome with samtools index, we used hg19;
the path of samtools; if you use conda to manage the computing environment, you can just use samtools as the parameter.

If you have any question, please let me know.

thank u it is working now


streaming requests with tools may return a 500 error under certain prompts

Description of the bug:
package main

import (
        "context"
        "fmt"
        "log"

        "github.com/google/generative-ai-go/genai"
        "google.golang.org/api/iterator"
        "google.golang.org/api/option"
)

func main() {
        ctx := context.Background()
        client, err := genai.NewClient(ctx, option.WithAPIKey("your-api-key"))
        if err != nil {
                log.Fatal(err)
        }
        defer client.Close()

        schema := &genai.Schema{
                Type: genai.TypeObject,
                Properties: map[string]*genai.Schema{
                        "location": {
                                Type:        genai.TypeString,
                                Description: "The city and state, e.g. San Francisco, CA",
                        },
                        "unit": {
                                Type: genai.TypeString,
                                Enum: []string{"celsius", "fahrenheit"},
                        },
                },
                Required: []string{"location"},
        }

        weatherTool := &genai.Tool{
                FunctionDeclarations: []*genai.FunctionDeclaration{{
                        Name:        "CurrentWeather",
                        Description: "Get the current weather in a given location",
                        Parameters:  schema,
                }},
        }

        model := client.GenerativeModel("gemini-1.5-flash-latest")
        model.Tools = []*genai.Tool{weatherTool}
        session := model.StartChat()

        iter := session.SendMessageStream(ctx, genai.Text("write a python function that takes a list of integers and returns the sum of the list")) // googleapi: Error 500:
        //iter := session.SendMessageStream(ctx, genai.Text("hello")) // ok
        if err != nil {
                log.Fatal(err)
        }

        for {
                res, err := iter.Next()
                if err == iterator.Done {
                        break
                }
                if err != nil {
                        log.Fatal(err)
                }
                printResponse(res)
        }

}

func printResponse(resp *genai.GenerateContentResponse) {
        for _, cand := range resp.Candidates {
                if cand.Content != nil {
                        for _, part := range cand.Content.Parts {
                                fmt.Println(part)
                        }
                }
        }
        fmt.Println("---")
}

Actual vs expected behavior:
when use iter := session.SendMessageStream(ctx, genai.Text("write a python function that takes a list of integers and returns the sum of the list")):
2024/05/15 15:09:45 googleapi: Error 500:
exit status 1

if use iter := session.SendMessageStream(ctx, genai.Text("hello")):
Hello
---
! How can I help you today? 😊

---

Any other information you'd like to share?
go mod: github.com/google/generative-ai-go v0.12.0

@douglarek we're sorry this is taking a while to resolve. There's an internal issue opened about it and the team is looking at it along with other issues.
Even though this isn't really specific to the Go SDK, we can keep the issue open here for now as well.

Hi, we were just retrying this example. And I can't replicate the 500 error, I get a lot of FinishReasonRecitations, but that's working as intended. I think this is fixed.


Example for more complex console .NET Core 2 Console application

Sorry if this is being posted in the wrong place. If it is, please point me in the right direction.
I looked at the tutorial to add nlog for a .NET Core 2 console application. The example given is for a simple console application that doesn't have various class files or much complexity. I was wanting to know how to handle a situation where multiple files are involved. I assume the code I have pasted below is not the way it should be used. I didn't see a more complex example involving multiple files, so I wanted to know what the correct way is. It just seems like there would be a lot of boilerplate code at first glance so I assume I am doing it wrong.
The most likely bad way of doing it...
public class MyClass
{
    private IConfigurationRoot config { get; set; }
    public MyClass()
    {
        config = new ConfigurationBuilder()
        .SetBasePath(System.IO.Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .Build();
    }

    public void DoWork()
    {
        var servicesProvider = Program.BuildDi(config);
        using (servicesProvider as IDisposable)
        {
            var runner = servicesProvider.GetRequiredService<Runner>();

            //Do some work here.
            runner.DoAction("Finished doing some work.");
        }
    }

    public void DoSomeOtherWork()
    {
        var servicesProvider = Program.BuildDi(config);
        using (servicesProvider as IDisposable)
        {
            var runner = servicesProvider.GetRequiredService<Runner>();

            //Do some other work here.
            runner.DoAction("Finished doing some other work.");
        }
    }

    public void DoEvenMoreWork()
    {
        var servicesProvider = Program.BuildDi(config);
        using (servicesProvider as IDisposable)
        {
            var runner = servicesProvider.GetRequiredService<Runner>();

            //Do even more work here.
            runner.DoAction("Finished doing even more work.");
        }
    }
}

@DuelingCats It is fully intentionaly that the NLog NetCore Console Application is super-simple, since all focus is about adding NLog as Microsoft Extension Logging Provider with dependency injection (AddNLog)
Looks like you are not used to dependency injection. If you just want to make a simple NetCore Console Application that uses NLog, then just read the tuturial for creating NLog.config and do this:
namespace ConsoleExample
{
    internal static class Program
    {
        private static void Main()
        {
             NLog.LogManger.GetCurrentClassLogger().Info("Hello World");
             System.Console.ReadLine();
             return 0;
        }
   }
}

NLog works fine on NetCore without Microsoft Extension Logging and Microsoft Dependency Injection.

If you want help with how to write a console-application, then I think StackOverflow is a better place for questions.

Closing due to lack of input


Exclude  *.w not working + enhancement request

I'm having trouble configuring excludes in the buildPath. Running vscode over shh on linux.
Issue
    {
      "type": "source",
      "path": "git/ccesmarttools/CceSmartTools/src",
      "excludes": "*.w,*Control.cls,*Form.cls,be/cce/ccetools/SchemaInfoUI/**,be/cce/ccetools/winkit/**,be/cce/ccetools/base/**,cceinc/**,be/cce/ccetools/document/**,be/cce/ccetools/infragistics/**,be/cce/ccetools/ui/**,be/cce/ccetools/dotnet/**,be/cce/ccetools/mq/**"
    },

With the above entry, I still get compile errors reported on

.w file' s
git/ccesmarttools/CceSmartTools/src/be/cce/ccetools/infragistics/StyleLibraryHelper.cls
git/ccesmarttools/CceSmartTools/src/be/cce/dotnet/Menu/ISubDivisionDataService.cls
...

Currently, I have 10K+ problems.
If I add "includes":"*.p,*.cls", to the path entry, I get 0 problems, so I'm probably doing it all wrong.
How should I specify include/exclude ?
Related request
Our current exclude mechanism contains a lot of options. It dates back to when we used our own application compiler.
A single src can contain server-only and client-only code. It can also contain optional code that e.g. requires an optional database.
For PCT build I generate an exclude file using a progress procedure.
This exclude file is based on

exclude a source if a required db is not available
exclude if a certain application module is not active
exclude on windows, on tty, or completely

Could such a generated exclude file be taken into account by the exclude mechanism ?

There's no additional log output to debug include / exclude issues, but your excludes pattern looks good. Could you add entries one by one ?
The default include pattern is: **/*.p,**/*.cls,**/*.w,**/*.i
Regarding your extra request: do you use the excludesfile attribute of Ant fileset ?

@gquerret
**/*.w does the trick, thanks,
still struggling with
exclude of  "/usr2/cce/build/schema/git/ccesmarttools/CceSmartTools/src/be/cce/ccetools/LegacyToolsUI/InfoViewer.cls"
current path entry is
    {
      "type": "source",
      "path": "git/ccesmarttools/CceSmartTools/src",
      "excludes": "**/be/cce/ccetools/events/ShowDesktopAlert.cls,**/be/cce/ccetools/LegacyTools/**,**/be/cce/ccetools/LegacyToolsUi/**,**/*.w,**/*Control.cls,**/*Form.cls,be/cce/ccetools/SchemaInfoUI/**,be/cce/ccetools/winkit/**,be/cce/ccetools/base/**,cceinc/**,be/cce/ccetools/document/**,be/cce/ccetools/infragistics/**,be/cce/ccetools/ui/**,be/cce/dotnet/**,be/cce/ccetools/dotnet/**,be/cce/ccetools/mq/**,be/cce/SmartTools/Controls/**"
    },

For the build I use multiple excludesfile attributes.
I could put everything into a single file, or a file per path entry.
some snippets, from our build.xml
        <patternset id="compile.excludes">
            <exclude name="**/conv/**" />
            <exclude name="**/utils/**" />
            <exclude name="**/unittests/**" />
            <exclude name="**/cceinc/**" />
            <excludesfile name="${default.buildconfig}/exclude.lst" if="exclude.default.present" />
            <excludesfile name="${default.buildconfig}/exclude.${osname}.lst"
                if="exclude.default.os.present" />
            <excludesfile name="${custom.buildconfig}/exclude.lst" if="exclude.present" />
            <excludesfile name="${custom.buildconfig}/exclude.${phase}.lst"
                if="exclude.phase.present" />
            <excludesfile name="${custom.buildconfig}/exclude.${phase}.${osname}.lst"
                if="exclude.phase.os.present" />
            <excludesfile name="${custom.buildconfig}/exclude.${osname}.lst" if="exclude.os.present" />
            <excludesfile name="${buildinfodir}/cceprog_exclude.lst" if="exclude.cceprog.present" />
        </patternset>

       <patternset id="dontcompile_cw">
            <excludesfile name="${dont_compile.os.file}" />
        </patternset>

                <fileset dir="${project_SmartComponents}">
                    <patternset refid="smartcomponents.sources.smartcomponents" />
                    <patternset refid="compile.excludes" />
                    <patternset refid="dontcompile_cw" />
                </fileset>

struggle with exclude of "/usr2/cce/build/schema/git/ccesmarttools/CceSmartTools/src/be/cce/ccetools/LegacyToolsUI/InfoViewer.cls"solved,
it's case sensitive exclude be/cce/ccetools/LegacyToolsUÌ/** works.

Implemented in 1.4.25: New source directory properties: excludesFile and deployment

Is it possible that wildcards don't work when using excludesFile?
We have for instance
Consultingwerk/Windows/**

but the sources underneath still get compiled. Specifying a full name works.

The excludes attribute allows wildcards (case-sensitive), but they are not allowed in excludesFile attribute.


Increase cmake_minimum_required to 3.19

Generator expressions for multiple configurations are only supported since cmake 3.19.
When using older cmake versions, this leads to errors such as:
CMake Error at Graphics/GraphicsTools/CMakeLists.txt:90 (target_link_libraries):
Error evaluating generator expression:
$<CONFIG:Release,RelWithDebInfo>

To give more actionable error messages, the cmake_minimum_required should be increased.
Probably affects other parts of DiligentEngine as well.

Fixed in 36f46286b4542add345306d758490f0e86467d07


[BUG] Eloquent HasMany Eager Loading with custom local key

I have two models, City and Country
with this relationship on Country:
public function cities()
{
  return $this->hasMany('City', 'city_country_uncode', 'country_uncode');
}

The problem is when I eager load a Country:
return Country::with('cities')->find(78);

The generated query is:
select * from `city` where `city`.`city_country_uncode` in ('78')

But 78 is the country_id (primary key) and not country_uncode.
If I dont use Eager Loading:
$country =  Country::find(78);
return $country->cities;

I get the cities and the sql query is correctly builded:
select * from `city` where `city`.`city_country_uncode` = 'FR'

FR is the country_uncode of the country wich id is 78.

Same thing is happening in latest version:


Add cloudbeaver build & set proxy in Vertex.

Signed-off-by: Jakub Dardzinski<EMAIL_ADDRESS>Build CloudBeaver with BQ driver in separate workflow.
Add setting metadata in GCP VM to adjust to custom proxy agent.
Signed-off-by: Jakub Dardzinski<EMAIL_ADDRESS>Update inverting proxy image.
Signed-off-by: Jakub Dardzinski<EMAIL_ADDRESS>

@p-pekala I can remember we talked about this.

Wouldn't be better to delegate creating custom dbeaver image to different repository? Someting like dbeaver-images?

We agreed this should stay in this repo, however, we can fork official CloudBeaver repo and build the image there.

Maybe not fork but some kind of repo with only dockerfile and workflow for building images to gcr

@p-pekala  any thoughts on this?

@Santhin Cloudbeaver image deployment moved to this repo. Please re-review.


Design updates 2019 5

Looks great @javiercanossini Thanks for the contribution!  Here is a snapshot on my machine (using Chrome):

The Accord Project logo on the left looks a little squished
There seems to be some missing new lines between the various items on the right
The disclaimer could use a bit of margin?

Because the original fork was deleted, I'm closing this in favour of #53 which combines this with the siteConfig.js changes from #52 .
@javiercanossini @jeromesimeon Can you open separate issues / PRs for the QA items that you've found, please?


Add tests for sf::Utf

Description
These tests are incomplete and imperfect but are still a solid step forward. I made SECTIONs for all of the functions in Utf.hpp so that it's easy to tell what tests have not been written. Over time we will hopefully expand and refine these tests.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

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

Totals

Change from base Build<PHONE_NUMBER>9:
0.1%

Covered Lines:
12051

Relevant Lines:
19984

💛  - Coveralls


Add ability to include images in emails sent from OW.

What kind of an issue is this?

Feature request

What is the expected behaviour?
We would like to be able to include images in email sent to participants of events.
What is the current behaviour?
You can't and as such some emails are sent manually, not using the system.

Is it ok to have the mail as an attachment fine? Or do you wish the image to be shown in the mail

Fixed by #2228


Test workflow release 0419pm

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (d539892) 100.00% compared to head (0c3ae2f) 100.00%.
Report is 2 commits behind head on release.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##           release       #31   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            4         4
=========================================
  Hits             4         4

Flag
Coverage Δ

generic
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Support rubocop-rake

Requested in #217
I could use it in our project as well.
When I include rubocop-rake in our .rubocop.yml require section, the rubocop step in codeclimate fails with:
/usr/local/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:117:in `require': cannot load such file -- rubocop-rake (LoadError)
...

Since this code runs separately from our codebase, I realized it doesn't matter what I include in our Gemfile. This gem must be included here.

It would be great to release this in channel 0-80, do I have to open PR on that branch? Let me know ;)

@pkopac sorry this is being so late... please, do so against the latest channel branch, doing that we can keep it in the new channels moving forward.


Bug fix for issue #748, riak-debug error thrown during execution back ported to 2.1

The riak/rel/files/riak-debug file throws the following error during execution:
........E......EE......................dev2/bin/riak-debug: line 863: [: too many arguments

This error originates from the following line:
    if [ -n $exclude ]; then

To fix this, the $exclude must be in quotation marks as follows:
    if [ -n "$exclude" ]; then

The fix is applied in this PR.

-1 similar issue, think we just want 09ed9f3e8ec5c2ea447894ba55ef022898b46313


Cache busting font assets through src property

https://github.com/stackptr/grunt-cache-bust/blob/master/tasks/cachebust.js#L105
This block indicates that the only assets busted in CSS files are those referenced via the background and content properties.
In a given project I have a LESS file referencing font assets that is then compiled to a CSS file using the src property. As such, when the cache-bust task is run on this file, these assets are left intact.
Relatively simple fix, I wanted to check if there was a rationale behind this or if it was possibly a quirk of the LESS parser. Will send PR shortly.

You are correct, it only checks the background and content. I shall change this so it's more configurable, possibly having these two as the default options with the ability to extend them with more. Thanks for bring it up

Fixed in #95


dnsmasq service fails to start (is not allowed to own the service "uk.org.thekelleys.dnsmasq")

Issue description
Jul 19 18:24:21 server systemd[1]: Starting Dnsmasq Daemon...
Jul 19 18:24:21 server dnsmasq-pre-start[7723]: dnsmasq: syntax check OK.
Jul 19 18:24:21 server dnsmasq[7733]: dnsmasq: DBus error: Connection ":1.31380" is not allowed to own the service "uk.org.thekelleys.dnsmasq" due to security policies in the configuration file
Jul 19 18:24:21 server dnsmasq[7733]: DBus error: Connection ":1.31380" is not allowed to own the service "uk.org.thekelleys.dnsmasq" due to security policies in the configuration file
Jul 19 18:24:21 server dnsmasq[7733]: FAILED to start up
Jul 19 18:24:21 server systemd[1]: dnsmasq.service: Main process exited, code=exited, status=5/NOTINSTALLED
Jul 19 18:24:21 server systemd[1]: Failed to start Dnsmasq Daemon.
Jul 19 18:24:21 server systemd[1]: dnsmasq.service: Unit entered failed state.
Jul 19 18:24:21 server systemd[1]: dnsmasq.service: Failed with result 'exit-code'.

Steps to reproduce
This happens when I nixops deploy [...] a configuration containing (among other things) this expression :
	services.dnsmasq = {
		enable = true;
		servers = [ "/consul/<IP_ADDRESS>#8600" ];
	};

Technical details

System: NixOs 17.09pre110905.0eb4f6fd25 (Hummingbird)
Nix version: nix-env (Nix) 1.11.12
Nixpkgs version: 17.09pre110905.0eb4f6fd25
Sandboxing enabled: build-use-sandbox = false

As suggested by https://nixos.org/nix-dev/2017-March/023224.html, rebooting the machine (using nixops reboot [...]) makes dnsmasq start properly. But that's a workaround, not a fix.
I'm not sure if this is related to #20863

Restarting the dbus service allows dnsmasq to start, no need for a full reboot.
Could this be done automatically when the dnsmasq service is first installed ?

I had a similar issue, and restarting dbus is indeed enough.
looks like this is possible in systemd (yeay systemd)
https://stackoverflow.com/questions/38112638/can-systemd-automatically-restart-stop-dependent-services

yes, restarting dbus resolved the issue.

I’m closing this given the age and that dnsmasq works perfectly for me across multiple systems. If this is actually still an issue, please add more information.


Fixes 241: Add permissions to frontend

This adds the new repositories permissions to the front-end UI.
To test this you will need to create a new user without admin permissions.
Current Admins (Ethel created users) should have the Repositories Admin permissions seen here.
To create a new user without admin permissions:

First log into console.stage.redhat.com with your admin (ethel) account.
Navigate here
Create a user with a REDHAT EMAIL (Optionally use this method  to create more if needed)
In an incognito tab (or whatever firefox equivalent) open up the repositories app and log in with your new user.
Click reset email.
Go to email, reset password.
...
Success! 🎉

You should now have 1 user with write permissions, and 1 with read only.
You can further customize your users permissions with your admin account here if needed.
Expected Outcomes:
With no read/write access => See the no permissions page (You do not have access to Repositories)
With read access => disabled c(r)ud actions, with popups saying why (You do not have the required permissions to perform this action.)
With Read/Write => Full view.
Further reading on permission UI requirements here.

https://issues.redhat.com/browse/HMSCONTENT-241

but needs a rebase now


Decide on login page UI

Auth0 has (and recommends) a hosted login page that they allow us to customize. Our options are either to

Use that and add fields for metadata we want to store (like real name, etc.)
Write our own UI and set it up with the Auth0 API

I feel like Option 1 is preferred because they really recommend that, but let me know your thoughts. Here is the code given for the hosted login page, that we are allowed to customize:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Sign In with Auth0</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>

  <!--[if IE 8]>
  <script src="//cdnjs.cloudflare.com/ajax/libs/ie8/0.2.5/ie8.js"></script>
  <![endif]-->

  <!--[if lte IE 9]>
  <script src="https://cdn.auth0.com/js/base64.js"></script>
  <script src="https://cdn.auth0.com/js/es5-shim.min.js"></script>
  <![endif]-->

  <script src="https://cdn.auth0.com/js/lock/10.18/lock.min.js"></script>
  <script>
    // Decode utf8 characters properly
    var config = JSON.parse(decodeURIComponent(escape(window.atob('@@config@@'))));
    config.extraParams = config.extraParams || {};
    var connection = config.connection;
    var prompt = config.prompt;
    var languageDictionary;
    var language;

    if (config.dict && config.dict.signin && config.dict.signin.title) {
      languageDictionary = { title: config.dict.signin.title };
    } else if (typeof config.dict === 'string') {
      language = config.dict;
    }
    var loginHint = config.extraParams.login_hint;

    var lock = new Auth0Lock(config.clientID, config.auth0Domain, {
      auth: {
        redirectUrl: config.callbackURL,
        responseType: (config.internalOptions || {}).response_type ||
          config.callbackOnLocationHash ? 'token' : 'code',
        params: config.internalOptions
      },
      assetsUrl:  config.assetsUrl,
      allowedConnections: connection ? [connection] : null,
      rememberLastLogin: !prompt,
      language: language,
      languageDictionary: languageDictionary,
      theme: {
        //logo:            'YOUR LOGO HERE',
        //primaryColor:    'green'
      },
      prefill: loginHint ? { email: loginHint, username: loginHint } : null,
      closable: false,
      // uncomment if you want small buttons for social providers
      // socialButtonStyle: 'small'
    });

    lock.show();
  </script>
</body>
</html>

This sounds fine to me. I think the React example is still using their hosted login page, it's just wrapped in an NPM package and we'd instantiate it. This seems like a good starting point.
// src/Auth/Auth.js

import auth0 from 'auth0-js';

export default class Auth {
  auth0 = new auth0.WebAuth({
    domain: 'YOUR_AUTH0_DOMAIN',
    clientID: 'YOUR_CLIENT_ID',
    redirectUri: 'http://localhost:3000/callback',
    audience: 'https://YOUR_AUTH0_DOMAIN/userinfo',
    responseType: 'token id_token',
    scope: 'openid'
  });

  login() {
    this.auth0.authorize();
  }
}

Okay, sweet. If we send them to our HLP through that component, we should still be able to customize it however we want. Then the generated userId could then be sent to the API to create a new user object in the database.

Closing this since we're going with the hosted login page for now which doesn't really require UI decisions. We can open a new one later if we want to adjust how it looks (and incorporate our logo when we come up with one).


CPP-879 Allow remote hosts to come back up

When a host comes back up after being down, a request processor (unlike a control connection) only notifies the load balancing policy if the host is not ignored.
Sadly some policies ignore remote hosts that are down.
In combination, this means that remote hosts can never be used by a request (processor) after having once gone down.
This fix resolves this, by always notifying a policy of all host-up events, regardless of the distance of that host.
I've tested this locally, and it has the desired effect. My test case is:

Start nodes in two datacenters.
Set up a token-aware, dc-aware policy.
Take down the local DC. Observe traffic still goes to the remote DC.
Take down the remote DC. Observe traffic fails (as expected).
Bring up the remote DC. Expect traffic will start going to the remote DC.

In the last step, in 2.14.0, instead I observe that traffic continues to fail. Logs and netstat reveal the control connection is up to the remote DC, but it is not used by the request processor. This PR fixes this, so that traffic does go to the remote DC.

Nice, simple fix. LGTM!

Thanks for the PR. Sorry for the delay, I've been out. I'll work on investigating this issue today.

Hi @mpenick, could we have a minor release with this PR. Seems like an important one.

Change looks great. Thanks again.

@accelerated yes, highly likely. You're right. This is minor release worthy.

@kw217 @accelerated This fix is in recently posted release v2.14.1.


hello, can you upload dataset again ? Link expired...

hello, can you upload dataset again ? Link expired...

hello, can you upload dataset again ? Link expired...

ok, I will upload it when I back to Wuhan...

thank you very much


Lazy restoration of cached modules

Currently module analysis is restored from the database as regular analysis with dependencies is running. I.e., instead of evaluating code, result is read from the database. This allowed to integrate caching into the existing analysis workflow (the dependency walk) easily, but, unfortunately, there is a drawback.
Namely, often IO operations (i.e. reading from the database) take almost as long as the original analysis. It is not the database performance issue, raw serialization into flat binary file and reading back is not much faster than binary JSON used by the LiteDB.
Changes:

Instead of restoring everything, only main module (such as numpy) is restored. Module the claims to have no dependencies so analysis does not run on its submodules. This should provide first level of completions.
Types coming from submodules should be kept lazy – for example, class that comes from a submodule, remains lazy. When deeper member is requested, such as when user types ‘numpy.A.’ where ‘A’ is from ‘numpy.core’, then ‘numpy.core’ analysis is restored from the db, and so on – on demand.
Types that never used may never be restored yielding memory savings. Obviously, there may be hit for really complex members than chain multiple modules, but it should be one time hit.
Top-level module database will then need to store more information about inner types (such as function signature and documentation rather than relying on fetching those off the inner restored type).

The approach does not require changes to the analysis workflow. If module is cached, it will be restored and if analysis of some non-cached module requires deeper members, process is the same as if user requested said members.

WIP update: system library restored, no analysis of its dependencies was performed at all:

https://github.com/microsoft/python-language-server/issues/1753 affects couple of tests

https://github.com/microsoft/python-language-server/issues/1533 may need to be fixed for tests at least.


Use of Animated.Interpolation in Animated Region - Instead of Animated.Value

Is this a bug report?
No
Have you read the Installation Instructions?
Yes
Environment
react-native: 0.50.0
react: 16.0.0

react-native-maps: 0.17.1
Steps to Reproduce
How would one input an Animated.Interpolation (AnimatedInterpolation) in the region prop, rather than, an Animated.Value?
This would be very useful in animating the MapView with libraries such as react-native-interactable, where the library handles the gestures and updates the Animated.Value.
For example, with <Animated.View> modules, we can then change values simply, by inputting the following:
/*---- ANIMATED OPACITY EXAMPLE/TYPICAL RN FUNCTIONALITY -----*/
<Animated.View
style={{
          opacity: this.AnimatedValue.interpolate({
                                inputRange: [-100, -100, 500, 500],
                                outputRange: [1, 1, 0, 0]
                            })}}>
</Animated.View>

Reproducible Demo
Desired Functionality which correlates with other React Native Modules <Animated.View>, etc...

Does not require the use of Animated.timing({    ...    }).start()
Values can be directly interpolated in associated props

/* ----- IN CONSTRUCTOR ------*/
this._deltaY = new Animated.Value(0);

/* ------ SIMILIAR TO ANIMATEDVIEW.JS IN EXAMPLE DIRECTORY ---- */
 <MapView.Animated
            region={
                        new MapView.AnimatedRegion({
                            latitude: 37.78875,
                            longitude: -122.4324,
                            latitudeDelta: this._deltaY.interpolate({
                                inputRange: [0, BREAKPOINT1],
                                outputRange: [LATITUDE_DELTA, LATITUDE_DELTA * 0.5],
                                extrapolate: 'clamp',
                            }),
                            longitudeDelta: LONGITUDE_DELTA,
                        })}
                >

</MapView.Animated>

/* ---- INTERACTABLE.VIEW DIRECLTY MANIPULATES this._deltaY----*/
 <Interactable.View animatedValueY={this._deltaY}/ >

If we change the AnimatedRegion.js to accept AnimatedInterpolations as an input, we find the following structure for the AnimatedMapRegion.
As you can see LatitudeDelta contains the AnimatedInterpolation. This does not work

Current Package Requirements

Requires a function call to animate
Requires use of Animated.timing({     ...   }).start()

/* ----- NECESSARY TO HAVE FUNCTION CONTINUOUSLY CALLED  TO UPDATE VALUE --- */
continuouslyCalledFunction() {
 region.stopAnimation();
        this.region.timing({
          latitude: scrollY.interpolate({
            inputRange: [0, BREAKPOINT1],
            outputRange: [
              coordinate.latitude,
              coordinate.latitude - (LATITUDE_DELTA * 0.5 * 0.375),
            ],
            extrapolate: 'clamp',
          }),
          latitudeDelta: scrollY.interpolate({
            inputRange: [0, BREAKPOINT1],
            outputRange: [LATITUDE_DELTA, LATITUDE_DELTA * 0.5],
            extrapolate: 'clamp',
          }),
          longitudeDelta: scrollY.interpolate({
            inputRange: [0, BREAKPOINT1],
            outputRange: [LONGITUDE_DELTA, LONGITUDE_DELTA * 0.5],
            extrapolate: 'clamp',
          }),
          duration: 0,
        }).start();
}

/* ------  ANIMATEDVIEW.JS IN EXAMPLE DIRECTORY ---- */
 <MapView.Animated
            region={this.region}>

</MapView.Animated>

/* ---- PANRESPONDER - Insert a lot of boiler plate to handle touches.----*/
/* ---- CALLS continuouslyCalledFunction() CONTINUOUSLY IN ORDER TO ANIMATE *---/

Any help would be appreciated! Even an idea of how to potentially tackle this.

+1


Add SWR mechanism for useResponseCache

Hey there, massive thanks for the awesome work ⭐ 🚀
I've been using useResponseCache and I was thinking it would be great if there was an option to use a stale-while-revalidate policy.
I've checked out the cache argument to see if I could create my own SWR cache but it looks like that wouldn't work without changes to the library. Open to contribute if this is something you would consider 😃

Hey @andyrichardson, that sounds cool! However, that would be very HTTP specific, do you think it might be better off as a yoga plugin? There we also already support if-none-match https://the-guild.dev/graphql/yoga-server/docs/features/response-caching#http-caching-via-etag-and-if-none-match-headers

You could implement similar, simpler functionality by adding invalidateViaQuery (which would mirror invalidateViaMutation) to the options and combining that with ttl


docker-machine scp passes "-o IdentitiesOnly=yes" with no ssh keys specified

This causes the scp to always fail since there are no SSH keys specified in the command either.

How did you create the machine? Debug output would also be useful (docker-machine -debug scp ...).

I created the machine using the "--generic" flags. There are no SSH keys on the machine I initiated this from (just uses SSH agent forwarding). I saw that "-o" flag from the debug output. It's a bit hard for me to reproduce at this point, but I think just having a config where the SSH keys fields aren't set should repro it.

I don't think it's related to the scp command, is docker-machine ssh yourmachine also failing?
It looks more like an error which occurred during machine creation. Notably, docker-machine doesn't rely on ssh-agent, so using ssh agent forwarding wouldn't work, it needs to have the private key on the machine itself.

No 'docker-machine ssh' works fine. Docker machine doesn't need to care at all about whether there's an ssh agent running or not. If no proviate key was specified, it should not pass "-o IdentitesOnly=yes" for any command.

My bad, your use-case is indeed supported in the ssh command. There could be a similar check than here for the scp command. 👍

@jylin I've submitted a patch in #3681, should fix this issue!


Fix hwid_a_battery_widget background color

In some cases, if another app/widget changes the background color, hwid_a_battery_widget is drawn incorrectly.

Great - thanks for spotting and fixing this!


Failed to fetch https://packages.nlnetlabs.nl/linux/debian/dists/focal/InRelease  403  Forbidden [IP: <IP_ADDRESS> 443]

Failed to install by following the instructions in the README.md - fails at the "sudo apt update".

Per https://routinator.docs.nlnetlabs.nl/en/stable/installation.html I launched an AWS EC2 t2.micro instance (1vCPU, 1GiB RAM) running the Ubuntu 20.04 (Focal) image and followed the Ubuntu installation instructions:
$ ssh<EMAIL_ADDRESS>Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-1022-aws x86_64)
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.3 LTS
Release:	20.04
Codename:	focal
$ sudo apt update
...
43 packages can be upgraded. Run 'apt list --upgradable' to see them.
$ sudo apt install \
  ca-certificates \
  curl \
  gnupg \
  lsb-release
Reading package lists... Done
Building dependency tree
Reading state information... Done
lsb-release is already the newest version (11.1.0ubuntu2).
lsb-release set to manually installed.
ca-certificates is already the newest version (20210119~20.04.2).
ca-certificates set to manually installed.
curl is already the newest version (7.68.0-1ubuntu2.7).
curl set to manually installed.
gnupg is already the newest version (2.2.19-3ubuntu2.1).
gnupg set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 43 not upgraded.
$ curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/ubuntu \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/null
$ sudo apt update
Hit:1 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:5 https://packages.nlnetlabs.nl/linux/ubuntu focal InRelease [4324 B]
Get:6 https://packages.nlnetlabs.nl/linux/ubuntu focal/main amd64 Packages [6259 B]
Fetched 10.6 kB in 0s (22.7 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
43 packages can be upgraded. Run 'apt list --upgradable' to see them.
$ sudo apt install routinator
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  routinator
0 upgraded, 1 newly installed, 0 to remove and 43 not upgraded.
Need to get 2540 kB of archives.
After this operation, 8777 kB of additional disk space will be used.
Get:1 https://packages.nlnetlabs.nl/linux/ubuntu focal/main amd64 routinator amd64 0.10.2-1focal [2540 kB]
Fetched 2540 kB in 1s (4897 kB/s)
Selecting previously unselected package routinator.
(Reading database ... 63895 files and directories currently installed.)
Preparing to unpack .../routinator_0.10.2-1focal_amd64.deb ...
Unpacking routinator (0.10.2-1focal) ...
Setting up routinator (0.10.2-1focal) ...
Adding system user `routinator' (UID 113) ...
Adding new group `routinator' (GID 119) ...
Adding new user `routinator' (UID 113) with group `routinator' ...
Creating home directory `/var/lib/routinator/' ...
routinator.service is a disabled or a static unit, not starting it.
Processing triggers for man-db (2.9.1-1) ...
$ sudo routinator-init
Running command as user routinator: routinator --config /etc/routinator/routinator.conf init
Before we can install the ARIN TAL, you must have read
and agree to the ARIN Relying Party Agreement (RPA).
It is available at

https://www.arin.net/resources/manage/rpki/rpa.pdf

If you agree to the RPA, please run the command
again with the --accept-arin-rpa option.
Fatal error. Exiting.
$ sudo routinator-init --accept-arin-rpa
Running command as user routinator: routinator --config /etc/routinator/routinator.conf init --accept-arin-rpa
Created local repository directory /var/lib/routinator/rpki-cache
Installed 5 TALs in /var/lib/routinator/tals
$ sudo systemctl enable --now routinator
Created symlink /etc/systemd/system/multi-user.target.wants/routinator.service → /lib/systemd/system/routinator.service.
$ sudo systemctl status routinator
● routinator.service - Routinator 3000
     Loaded: loaded (/lib/systemd/system/routinator.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2022-02-08 08:41:50 UTC; 10s ago
       Docs: man:routinator(1)
   Main PID: 2470 (routinator)
      Tasks: 5 (limit: 1147)
     Memory: 130.3M
     CGroup: /system.slice/routinator.service
             └─2470 /usr/bin/routinator --config=/etc/routinator/routinator.conf --syslog server

Feb 08 08:41:49 ip-172-31-20-132 systemd[1]: Starting Routinator 3000...
Feb 08 08:41:50 ip-172-31-20-132 systemd[1]: Started Routinator 3000.
$ sudo journalctl --unit=routinator
-- Logs begin at Tue 2022-02-08 08:34:17 UTC, end at Tue 2022-02-08 08:42:12 UTC. --
Feb 08 08:41:49 ip-172-31-20-132 systemd[1]: Starting Routinator 3000...
Feb 08 08:41:50 ip-172-31-20-132 systemd[1]: Started Routinator 3000.

It will take a little while for Routinator to become ready. In the meantime:
$ curl http://localhost:8323/version
0.10.2

If I do ssh -L 8323:localhost:8323<EMAIL_ADDRESS>then browse to http://localhost:8323/ I see:

All looks good to me.
I will check the README.md next to see if that is perhaps outdated.

README.md instructions for Ubuntu also work for me (tested in a new AWS VM, not in the one I just used above).
@rebroad: Could you provide more information about what error message you saw if any and at what step the process failed for you?
Thanks,
Ximon

Hi @rebroad,
Did you get it to work or are you still encountering problems?
If it's still not working for you, if you can provide about the commands you used and error logs produced we can then try to investigate further.
Thanks,
Ximon

@rebroad I just noticed that the title of the issue says:
Failed to fetch https://packages.nlnetlabs.nl/linux/debian/dists/focal/InRelease

The fact that it says debian and focal is not right, that should be ubuntu.
The command to set up the repository, as per the manual, is:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/ubuntu \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/null

That should construct the correct URL. Could it be that you copied the wrong instructions?

Closing the issue. Don’t hesitate to re-open if you still have issues …


Introduce a PyFunction?

Inspired by the discussion in #1149 I thought it might be nice to add a native PyFunction in Rust. It seems like functions come in two flavours in CPython:
PyCFunction (defined in https://github.com/python/cpython/blob/master/Objects/methodobject.c already bound in ffi::methodobject.rs, type object PyCFunction_Type) and PyFunction (defined in https://github.com/python/cpython/blob/3.7/Objects/funcobject.c afaic unbound in pyo3) which are distinct types. PyCFunction seems to relate to built-ins and methods defined in extension modules while PyFunction is a regularly def'd Python function.
I'm not sure how we could bind PyFunction in Rust, but e.g. this would allow extracting built-in / extension functions in Rust:
#[repr(transparent)]
pub struct PyFunction(PyAny);

pyobject_native_var_type!(PyFunction, ffi::PyCFunction_Type, ffi::PyCFunction_Check);
[...]

#[pyfunction]
fn some_fun(built_in: &PyFunction) {
    // call the function, add function to module, whatever you want to do with it
}

and we would be able to change PyModule::add_function to take Fn(python: &PyModule) -> PyResult<&PyFunction> instead of the generic -> PyResult<PyObject> since we'd have a proper Rust type for functions.

I have also been looking for ways to construct such PyFunctions in Rust at runtime but didn't get too far:
pub fn new<'p, F>(module: &'p PyModule, name: &'static str, fun: F) -> PyResult<&'p PyFunction>
    where F: Fn(&PyModule, &PyTuple, &PyDict) -> PyResult<PyObject>

The issue is that we (as far as I can tell) need an extern "C" function that we put in the MethodDef, if we define this wrapper as a local method inside the fn new, we can't access it since local functions don't capture their context. To call the proper implementation, we'd need to get the correct function identifier into the method body at compile time, which is how we currently do it through proc-macros.
A (probably) possible way is to pass the function wrapper instead of building it locally as ffi::PyCFunctionWithKeywords which would mean we'd have to offer an API / macro to produce such functions. As of now we're producing these wrappers inside of __pyo3_get_function_X, so they're hidden from the user.
Then there's also the construction that we already offer: wrap_pyfunction!(function_name)(module) which returns a PyObject thats actually a &PyFunction.

I pushed a branch on my fork that implements the first half of what I discsussed above:

Interesting idea!

PyCFunction seems to relate to built-ins and methods defined in extension modules while PyFunction is a regularly def'd Python function.

Would we actually need want two types? PyCFunction and PyFunction? If I understand correctly, wrap_pyfunction!(function_name)(module) creates a PyCFunction object?
Also worth considering is #684 - last time I looked at that I think I concluded we might want to consider making our own function type. (But I can't remember clearly why.)

I think we'd need two function types if we'd want to be able to take (and construct) regular Python functions. From my understanding they're just (rightfully so) different types, a PyCFunction doesn't need its code, just a function pointer, while a PyFunction very much needs its code.

Would we actually need want two types? PyCFunction and PyFunction? If I understand correctly, wrap_pyfunction!(function_name)(module) creates a PyCFunction object?

wrap_pyfunction! just changes the Rust function identifier to the proc-macro-generated function's identifier which returns a PyCFunction object.
Although we could provide preliminary PyFunction and PyCFunction where PyFunction can only be passed from Python to Rust but not defined within Rust.  If we figure out a nice way to construct PyCFunction in Rust then we can expose that

I have also been looking for ways to construct such PyFunctions in Rust at runtime but didn't get too far:

Via PyCFunction_New?
Is it possible?
And what is it for?

I have also been looking for ways to construct such PyFunctions in Rust at runtime but didn't get too far:

Via PyCFunction_New?
Is it possible?
And what is it for?

The idea is to construct a PyFunction the same way we currently offer a way to construct PyModules.
This is currently achieved with the wrap_pyfunction!(ident)(module), but the return type is underspecified as PyObject. The linked commit above shows how this could look like if we add a PyFunction as a native type.

Yeah, but I think we can do that by casting PyObject to PyCFunction.

I think we need to define some words to figure this out: there's the PyCFunction alias in pyo3 that describes the function type that's being called by Python.
Then there's PyCFunction which describes the Python object that's used to call the actual C function. I'm interested in exposing the latter as a native type which is currently not part of the API. With the current implementations there is no (Rust) type that we can cast the PyObject to. That's why I linked the commit on my fork which adds such a type and also makes the change to the proc macro and the add_function wrapper argument.

I'm sorry for the confusion and misunderstanding: I agree with adding PyCFunction wrapper.
I was just doubtful about the definition of the constructor you wrote. It looks like trying to wrap some closures, which I think is impossible.
Looks you already pointed out it has to be a more limited one (e.g., PyCFunction::new(name: &str, meth: fn() -> ...) -> &Self) and it would work fine.

Once #1143 goes in, I'll also open a PR to get a basic PyCFunction wrapper in. I think it'd be something that would complement the other changes nicely since we'd get proper typing on both the add_X functions for PyModule. Fleshing out the Rust API for the type could happen later on.

I think the Rust API for PyCFunction::new might be a bit fiddly to set up, so I agree we can land maybe just the wrapper in 0.12 for add_submodule, and then can figure out the rest of Rust API for it as we work towards 0.13.

Yep, that was also my plan. I'll probably get around to open a PR later today. I'll also look into the non-extension PyFunctions, I think we'd want PyModule::add_function to abstract over PyFunction and PyCFunction. So native PyFunction and PyCFunction types with an additionally some wrapper enum which implements From for both could come in nicely.
If that's not straight forward to implement, we might consider restricting to PyCFunction for now or even leave it unchanged. Although, we'd end up with a somewhat inconsistent API.

#1163, I'll open a new issue to track building an API for the function types...


Suppressing HTTP logging?

Hi, thanks for all your work on this - it's a great tool! I was wondering, is it possible to suppress all the HTTP logging that TiddlyServer spits out? I'm running it as a systemd user service now and I'd rather that the logs didn't get filled with protocol debugging. I've tried setting debugLevel to a higher number but it doesn't seem to make any difference...
Cheers,

Thanks for the suggestion. This is now in master.


Appstudio update test-component-pac-fpls

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-fpls-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
13 seconds
clone-repository

✅ Succeeded
42 seconds
build-container

✅ Succeeded
23 seconds
deprecated-base-image-check

✅ Succeeded
25 seconds
inspect-image

✅ Succeeded
9 seconds
clair-scan

✅ Succeeded
46 seconds
clamav-scan

✅ Succeeded
16 seconds
sbom-json-check

✅ Succeeded
8 seconds
label-check

✅ Succeeded
9 seconds
optional-label-check

✅ Succeeded
8 seconds
show-summary

Pipelines as Code CI/test-component-pac-fpls-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
init

✅ Succeeded
14 seconds
clone-repository

✅ Succeeded
28 seconds
build-container

✅ Succeeded
11 seconds
deprecated-base-image-check

✅ Succeeded
12 seconds
inspect-image

✅ Succeeded
33 seconds
clamav-scan

✅ Succeeded
8 seconds
clair-scan

✅ Succeeded
9 seconds
sbom-json-check

✅ Succeeded
14 seconds
optional-label-check

✅ Succeeded
14 seconds
label-check

✅ Succeeded
6 seconds
show-summary


Token might be wrong

Hey!
I’m having issue while connecting my roborock s7
Says token might to wrong
I did reset the WiFi and got a new token but still says the same
Could any one point me to solve this?

Doing the inspect command will show all the info about the vacuum but in HomeKit shows no response

Can you share the logs that you get, please?

Had to completely remove the plugin and install it again, changing versions didnt help.
Now everything works fine, thank you!


style(module): lint the entire module

:muscle: you are the man :clap:

it probably pays to heed the lines including // eslint-disable-line, they tend to be things like assignments as part of logical expression etc. These are most likely harmless but could be confusing/dangerous

All tests passing, also tested this in templating-resources test suite.
Thanks @mbroadst!


Revert "boards: arm: adafruit_feather_m0_basic_proto: Set flash offset"

The PR to be reverted breaks flashing with currently used Zephyr SDK (0.11.2). The SDK uses an older version of bossac which doesn't support the ---offset argument (instead offsetting things by itself). I suspect the submitter of the original PR tested their code on a custom setup with a different version of bossac.
Reverts zephyrproject-rtos/zephyr#24738
Signed-off-by: Kuba Sanak<EMAIL_ADDRESS>

@MaureenHelm @galak is there anything else to be done with this to be merged in?

@MaureenHelm @galak is there anything else to be done with this to be merged in?

I assume there is no way to till which version of bossac is being used?

I assume there is no way to till which version of bossac is being used?

I suppose we could parse the output of bossac --help to extract the version string but that would depend on the format the help output to not change.
The sdk provides a set version of bossac to be used with west flash so we know what version to support and as such I'd say that the onus of dealing with the fallout of using other versions is on the user who decides to venture into the world of using non-zephyr SDK configurations


Using pwm as actions in the environment

Hi! I want to use an action in the environment in the form of PWM, that is, that I can pass the action = np.array(shape(4),) in the env.step() method. QuadXBaseEnv environment. Should I set env.set_mode(-1) or (7) ? And what dimensions of actions will there be?

Hi! Thanks for the interest! You would be using env.set_mode(-1) for direct PWM commands. The list of modes for QuadX are available here. M1-4 follow the convention defined in Ardupilot/PX4 for the Quad X configuration.
The dimensions of the actions are (4,) in the range of [0, 1].

Sure! All frames are essentially FLU (Front Left Up), so X points out the nose of the aircraft, Y points out the left, and Z points vertically upwards. All rotation follows standard right hand grip rules.
Essentially:

-1: motors 1 through 4 accordingn to Ardupilot/PX4 conventions, in range of [0, 1]
0: [roll rate, pitch rate, yaw rate , thrust]
1: [roll angle, pitch angle, yaw angle, climb rate]
2: [roll rate, pitch rate, yaw rate , altitude] (this is a degenerate controller and has non-feasible regimes)
3: [roll angle, pitch angle, yaw angle , altitude] (this is also a degenerate controller if you don't limit the angles)
4: [body frame x velocity, body frame y velocity, yaw rate, altitude]
5: [body frame x velocity, body frame y velocity, yaw rate, climb rate]
6: [ground frame x velocity, ground frame y velocity, yaw rate, climb rate]
7: [ground frame x position, ground frame y position, yaw angle, altitude]

Some notes:

All linear velocities are in m/s, rotational rates are in radians per second
All positions are in meters, angular positions in radians
Ground frame refers to the frame that's stuck to the world xyz=0,0,0 and does not move
Body frame refers to a frame that's stuck on the drone, with the z-axis always pointing upwards while xy is rotated according to the drone's yaw angle to keep the x-axis pointing forward out of the drone


Update docs to match implementation

Resolves a few discrepancies between the docs and the implementation. Relates to #638

Publish should return boolean, so that's a bug in code if not the case.

Updated to make publish return a boolean


How do I remove bound events?

dp.on('ended', function () {
console.log('player ended');
});
How do I remove this listening event when the component is destroyed?

I have the same problem

If you don't remove the listening event, you will console.log a error message in debug window


Add a challenge to signing and verification

The message to be signed by the vendor key is changed to be the result of a sign operation on the device's own UDI.
The verification is changed to:

load signer
ask signer to sign UDI
use result as message when verifiying vendor signature

I suggest that we actually generate and use a random challenge. As long as the user can hold of the challenge and perform cut & paste to perform verification, I don't think it would add a lot of extra hassle. I'm against reusing things like the UDI for something it is not intended for.


Dev

@DanyloVanin Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

We decided a long time ago not to have a Dockerfile in this project. Thanks for the suggestion, though, and please try mvn spring-boot:build-image to build a container.


Isn't it possible to only use gettext?

Since I'm using gettext I tried to remove every other yml translation file. Long story short I couldn't.
The closest I got was to add the prefixes of keys on the ignored keys but I ended up with an empty translation.*.yml and a populated localization.*.yml.
Env info:
ruby 2.6.0p0

rails 5.2.1

translation (1.17)
      gettext (~> 3.2, >= 3.2.5)

We weren't aware this use case could be interesting for some users, but it shouldn't be hard to implement.
Thanks for the feedback. We'll keep you in touch.

We added this feature in the last version of the gem (v1.18).
config.disable_yaml = true
See here: https://github.com/translation/rails#disable-gettext-or-yaml


Setting the background color is hard

It takes a couple of seconds to set the background color with a bunch of set calls, I think the constructor should provide an easy way of doing this.

I didn't put it in the constructor, but there is now a set-all method which should serve your purposes. It was originally excluded because there was no reasonably performant way to fill a Buf, but Rakudo has made great strides in performance since then.


Add XML docs (2)

I redid the PR because I messed up the historie of the previous branch.
This pull request adds xml documentation for the project. The xml docs will automatically be included in the engine and can be displayed in the engine (like the normal godot documentation).
This pull request also includes a github action to automatically parse the xml docs and upload them to github pages. This way documentation has to only be written once.

Btw, just my opinion, the PR Name is "Update: Add XML Docs".


Add documentaion to markdown

Thanks!
But please mention somewhere that it's very, very incomplete. It lacks a lot of features from the official markdown spec.

With "spec" you mean Grubers? Still think we should aim for CommonMark eventually ;)

Yes, I did the code reading grubers' spec and his site that generates html from markdown. But CommonMark sounds good too.

+1 to commonmark.

@asterite In case you want to know why CommonMark is important and Gruber didn't really do anything that could be called a "spec" (intentionally so btw): http://johnmacfarlane.net/babelmark2/?text=foo+bar :P

Updated the doc.

LGTM! Could you squash it into a single commit?
git remote add upstream https://github.com/manastech/crystal.git
git fetch upstream
git checkout your_branch
git rebase -i upstream/master
# Leave the first commit at pick, choose squash or fix for the others.
# If there are any conflicts git will inform you about that, resolve them for
# example with git mergetool or manually and with git add, then run
# git rebase --continue, again  watch the output since that might happen for
# each commit.
git log # Look at the updated commit history
git status # should report you're back on your branch
# We need to force push since a rebase edits the commits, effectively
# creating new ones. This is okay to do in a feature branch, the pull
# request will update.
git push -f origin your_branch # Assuming you cloned from your fork

Hint: You can also edit your last commit with git commit --amend, since that also effectively creates a new commit, you to need to force push afterwards and again you should only do it in feature branches.

Thanks for the instruction. It's my first try :+1:  Commits updated.

Thanks! For the future create topic branches so you can have multiple PRs open at the same time ;)

Sure, I'll try that out :)


How to safely re-enqueue an aborted job?

I need to perform something similar to:
await Job("id", pool).abort()
await pool.enqueue_job("func", _job_id="id")

However, sometimes this can lead to the abort of the freshly enqueued job. From my observations, this always happens if the aborted job is not found. Waiting until a key in the abort queue expires (1 minute, not configurable) seems to help. My questions are then:

Is waiting for arq.constants.abort_job_max_age guaranteed to be enough for the freshly enqueued job to not be aborted?
Is it possible to not abort a job if it's not found? Simply checking the job.status() is a race condition.

I believe I've found the culprit of my problem. Calling await Job("id", pool).abort() isn't ever safe. If the job isn't found, the specified job_id will remain in the abort_jobs_ss until a job with the specified id is run. At that point, the job will be "aborted before start".
The comment here is incorrect. Items in the abort_jobs_ss older than abort_job_max_age are not deleted. The line here seems rather confusing. The worker removes items from the abort_jobs_ss which are abort_job_max_age (60 ms) in the future. Such items can only appear if the Job.abort was called immediately after the above line but before the pipeline is executed.
If the only intended purpose here was to deliver on the abort_job_max_age comment's promise, the line should probably look like this:
pipe.zremrangebyscore(abort_jobs_ss, min=0, max=timestamp_ms() - abort_job_max_age)

I'm willing to submit a PR if the issue is confirmed and the proposed resolution is accepted by the maintainers.
Also, it seems like the value of the abort_job_max_age constant was specified in milliseconds by mistake, and the 60-second max-age was intended.

hi, did you see if your line fixes the problem?

hi, did you see if your line fixes the problem?

I did very limited testing so take it for what it's worth. But yes, the fix seems to be working for me.

@sashkent3 The enqueued job always be in queue until it taken for execution. Then how will it be not found while aborting.
Can you explain the scenario in which the job is not found

@SteniMariyaThomas well, nothing prevents the user from running await Job("id", pool).abort() while there's no job with the id "id". For example, this could be a first command on a fresh (empty) queue.


python3Packages.aioesphomeapi: 8.0.0 -> 9.0.0

Motivation for this change
https://github.com/esphome/aioesphomeapi/releases/tag/v9.0.0
home-assistant is pinned anyway, so shrug
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 137206 at 162b7df8 run on aarch64-linux 1

1 package failed to build:

home-assistant

2 packages built successfully:

python38Packages.aioesphomeapi
python39Packages.aioesphomeapi

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.


Create ADR for DNS failover

Background

We have decided not to investigate DNS failover. We should capture this is an ADR.
Acceptance Criteria

[ ] ADR created and added to site

Reference
How to write good user stories

https://operations-engineering.service.justice.gov.uk/documentation/adrs.html#architecture-decision-records


Update dependency @koa/cors to v5

Great work! Any plans to update the dependency to latest version of @koa/cors?

And this would probably be the reason: https://security.snyk.io/vuln/SNYK-JS-KOACORS-6117545

Hello lwsjs/cors team,
Can you pick this issue and update dependency of @kao/cors to v5?
We are also blackduck violations due to this vulnerability.

Thanks for letting me know and sorry about the delay, I raised an objection regarding recent breaking changes in @koa/cors but for now, since it's a trivial issue (returning either * or the passed in origin have the same effect), I'm working around it.
Fixed and released in @lwsjs/cors v4.2.1. Please update or reinstall your local-web-server.

Thank you for the quick turn around!
Will re-install and update here.


Laravel 5 and fixes

Added setDisplayableOrderComment() to AmazonFulfillmentOrderCreator class and fixed one small bug with mikevrind support for Laravel 5.

any update on this?


Allow root motion to track nodes other than skeleton root bone

Godot version:
Godot 3.1 alpha 2 64 bits
OS/device including version:
Windows 10 Intel Integrated
Issue description:
I need to import some Mixamo animated characters, they don't have a root bone for motion tracking so when setting root motion track to hip bone the animation looks distorted. I tried to solve it in two ways:
a) Added a Position3D and animated the translation to match the character movement.
b) Added a bone to the character, directly in the COLLADA file, this bone is child of Hip bone, it's not the root bone.
In both cases the root motion tracking doesn't recognize the nodes.
Steps to reproduce:
Open attached project and edit WithPosition.tscn
Select the AnimationTree and change the root motion track to root or root_doc
Minimal reproduction project:
ImportRoot.zip

Have you found any success with Root Motion at all?

I managed to apply ZX displacement and Y rotation to a new root bone, but it doesn't work as expected because I'm taking it from the hip bone, it works for animations moving forward in a straight line, but I tried  to use it with rotating animations (turn left/right) and the results were not satisfactory.
Because of that it would be nice if root motion could track other nodes, then I could add an import script or add an independent node and animate it to have an accurate transform for root motion.
I'm using Mixamo because I'm not an artist and this is an option to get new models in my game. If you are curious this is my powershell script:
Mixamo COLLADA Joiner
Upload/Choose a character, download TPose in COLLADA, individual animations should be downloaded without skin and located in the same folder as the TPose file, run script passing main TPose file and output file. If you pass a third parameter (root_rotation) then rotation will be applied but you need to install Math.Net numerics (the script expects the DLL to be located a .\MathNet.Numerics.4.7.0\lib\net40\MathNet.Numerics.dll).

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


Dining API is being deprecated

The dining api has been deprecated by the vendor and will not be supported after 03/16/2016 - please see Dining V2
https://esb.isc-seo.upenn.edu/8091/documentation/#dining
Python SDK will be returning raw values, which will need to be processed for actual use by the apps. Also, we need a migration path to ensure no users are dropped off.
Python SDK: pennlabs/penn-sdk-python#44

Fixed by #70


chinese_remainder_theorem.cpp

In number theory, the Chinese remainder theorem states that if one knows the remainders of the Euclidean division of an integer n by several integers, then one can determine uniquely the remainder of the division of n by the product of these integers, under the condition that the divisors are pairwise coprime.
What type of PR is this? (check all applicable)

[ ] 🚀 Added Name
[x] ✨ Feature
[ ] 🌟 stared the repo
[ ] 🐛 Grammatical Error
[ ] 📝 Documentation Update
[ ] 🚩 Other

Description
Add Link of GitHub Profile

hello @krishnapalS  I have participated in hacktoberfest2021 can you assign me this issue , i ll work on it using cpp


added funstuff.js for funny gifs

haha funni gifs
(responds to "you know what that means" and "yippee" with corresponding gifs on a minute cooldown)

funny 😼


I0107 log.go:151] GET /podInfo?podID=redis-master&podNamespace=default:  404

After kubecfg -h http://host:8080 -c redis-master.json create pods, I always got this 404 error in my kubelet output log. I have tried version 0.7.2, 0.6.2, 0.5.2.  You may need to use the --hostname_override flag

Does it always return 404 or just once?  It's possible there is a race
between scheduling the pod and pod creation on the machine.
--brendan
On Wed, Jan 7, 2015 at 9:59 AM, Daniel Smith<EMAIL_ADDRESS>wrote:

Check that your kubelet's hostname matches api's opinion of its hostname.
You may need to use the --hostname_override flag
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3259#issuecomment-69062532
.

Please reopen if you need more help on this.