Build menu

Basic Information
Mission version: 0.962
Map used: Takistan
Mods used: @advanced Towing, @advanced Urban Rappelling, @blastcore Edited (standalone version), @CBA_A3, @cup Terrains - Core, @cup Terrains - Maps, @enhanced Movement, @project OPFOR, @rhsafrf, @rhsusaf.
Dedicated or local game? Local game
GitHub or Workshop mission file? Steam Workshop
Individual Things
Did you edit anything within the mission files? No.
If yes, what did you edit exactly? -
Short Issue Description
Build menu buttons won't work after selecting the infantry squads build menu. After spawning a vehicle, the menu works, but only spawns the first infantry squad of the list, even if selecting another one.
If I open the build menu, all options will work until I click on the infantry squads menu. To make it possible to spawn a squad, first it's needed to try building a vehicle.
On 0.961 it was working fine. I tested both missions to check before the official update, when I was working on the portuguese localization.
Expected Behaviour
After clicking the options, the buttons should work fine.
This was happening before the official release of 0.962.
Steps to Reproduce the Issue
1. Hosted the mission, selected the commander slot and spawned on FOB Alpha;
2. Opened the build menu, selected infantry squads build. All options appear unavaiable. Unit cap is 25/50;
3. Opened the build menu again, selected infantry squads option, still not working - Buttons are grey;
4. Reopened the build menu, selected any vehicle to spawn. Spawning vehicles works;
5. After trying to spawn a vehicle, the infantry squads build button works;
6. Tried to select a paratrooper squad: It spawns the first squad only, light infantry. I had resources to create all of them;
7. Repeated step 4 and 6. You can only spawn a specific infantry squad if it was already selected on the last try.
Screenshots, Serverlog or any other helpful Information
https://www.youtube.com/watch?v=XJ8UswkQP6Y&t=42s
Ps.: Sorry for the low quality.
EDIT: On the video, the squad menu won't work. It only works after opening again directly on the squad menu. If I switch to another tab, it bugs.
Liberation 0.962 .rpt file - Build menu issue.zip

Thanks for the exemplary issue report.
I'll have a look at this issue in the next days, as I don't have time this evening anymore.
But as far as I know @Applejakerie want to try to reproduce this.
So if anyone can also reproduce this issue, I would be glad for more information. Personally I've never experienced that issue, but as you say it only happened since 0.962 for you.

Yes, and even after the official release.
I switched to english to see if the portuguese localization had anything to do, but it still happens.
Tonight I'll try to reproduce that on Tanoa. Couldn't do today as I didn't have enought resources ingame.
Thanks for you time.

Hosted the mission. Commander slot. FOB Alpha.

Opened build. Selected infantry squads tab. All are available. (ERROR HERE).

Purchased light infantry squad, got recon squad.

Opened infantry squads tab again. All are available. (ERROR HERE).

Purchased recon squad, got light infantry squad.

Can swap between all tabs perfectly fine.

Opened infantry squads tab again. All are available. (ERROR HERE).

Purchased AT squad, got AA squad. (ERROR HERE).

Went over unit cap, deleted squads with zeus, unit cap is back at 1/25.

Opened infantry squads tab again. All are locked with no reason to be, possibly doesn't know the unit cap is low again? Error on scripts\shared\functions\F_kp_isClassUAV.sqf.

Can't swap any tabs anymore either.

17:23:53 Error in expression <( getNumber(configFile >> "CfgVehicles" >> _vehicleclass >> "isUav") == 1 && (ty> 17:23:53   Error position: <>> _vehicleclass >> "isUav") == 1 && (ty> 17:23:53   Error >>: Type Array, expected String
Arma3_x64_2017-12-13_16-57-11 - Copy.txt

Woops. I think I'm responsible for this bug.

Can you guys remove the @enhanced from the bug info, that pulls me into the
thread.
On Wed, Dec 13, 2017 at 11:15 AM, Filip Maciejewski <
<EMAIL_ADDRESS>wrote:

Woops. I think I'm responsible for this bug.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Wyqer/kp_liberation/issues/299#issuecomment-351476042,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGUFWiqv1Ep5zvFjFD24k4Lpffjvjguks5tABQ5gaJpZM4RA3Zl
.

Issue resolved.
Closing it now.
Thanks Apple, Wyqer and everyone involved!


Speed-up the dipole magnetic field by ~25x

Remove the numpy array creation from the dipole magnetic field calculations to achieve a speed-up of approximated 25x. Array creation happened when making the r (distance) vector and in the multiple component case when producing the final field with numpy-based calculations. Replace by using 3 variables and explicitly calculating each component separately.
Running this benchmark script:
# Copyright (c) 2022 The Choclo Developers.
# Distributed under the terms of the BSD 3-Clause License.
# SPDX-License-Identifier: BSD-3-Clause
#
# This code is part of the Fatiando a Terra project (https://www.fatiando.org)
#
import choclo
import numpy as np
import time
import numba

@numba.jit
def calc(dummy, moment):
    for i in range(dummy.size):
        dummy[i] += choclo.dipole.magnetic_e(
            dummy[i], dummy[i], dummy[i],
            1, 1, -1, moment,
        )
    return dummy

@numba.jit
def calc_full(dummy, moment):
    for i in range(dummy.size):
        be, bn, bu = choclo.dipole.magnetic_field(
            dummy[i], dummy[i], dummy[i],
            1, 1, -1, moment,
        )
        dummy[i] += be
        dummy[i] += bn
        dummy[i] += bu
    return dummy

def timeit(func, *args):
    times = []
    for _ in range(20):
        start = time.time_ns()
        func(*args)
        duration = (time.time_ns() - start) * 1e-9
        times.append(duration)
    print(f"mean: {np.mean(times):.6f} s")
    print(f" std: {np.std(times):.6f} s")

dummy = np.linspace(0, 1, 1000000)
moment = np.array([1, 1, 1])

# Jit compile first
calc(dummy, moment)
calc_full(dummy, moment)

print("Single component:")
timeit(calc, dummy, moment)
print("\nFull vector:")
timeit(calc, dummy, moment)

produced:
main branch
-----------
Single component:
mean: 0.137531 s
 std: 0.002517 s

Full vector:
mean: 0.140477 s
 std: 0.002112 s

this PR
-------
Single component:
mean: 0.005826 s
 std: 0.000318 s

Full vector:
mean: 0.006058 s
 std: 0.000411 s

Relevant issues/PRs:

Thanks for tackling this @leouieda. It was on my todo list! Merging since this is super clean, as always.

❤


Property scrollEl doesn't work

There is no possibility to use custom scrollEl the following issue is showing in the browser console.
Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '[object HTMLDivElement]' is not a valid selector.
I suppose, after your commit https://github.com/dollarshaveclub/stickybits/commit/50d47c70e9c032298fd2e1f1f46c0de71c5250aa, you have added this line of code
https://github.com/dollarshaveclub/stickybits/blob/50d47c70e9c032298fd2e1f1f46c0de71c5250aa/src/stickybits.js#L61
and forgot to remove this, or vise versa
https://github.com/dollarshaveclub/stickybits/blob/50d47c70e9c032298fd2e1f1f46c0de71c5250aa/src/stickybits.js#L165

Seems so.

Please provide a codepen so we can test this.

Here is an example hosted by codesandbox: https://codesandbox.io/s/y5k2oo0xx.
I found that this issue exist when useStickyClasses: true, otherwise everything works correct.

Here is an example hosted by codesandbox: https://codesandbox.io/s/y5k2oo0xx.
I found that this issue exist when useStickyClasses: true, otherwise everything works correct.
P.S. But if I don't use useStickyClasses: true it doesn't work at all. Element does not follow the page while scrolling.

Mh, is this reproducible with normal setups and codepens using the latest version?

@DanielRuf, I've created another example by using codepen: https://codepen.io/mahotskyi/pen/vdJGBR. Take a look when you will have a little time.

@enheit Thank you for catching this!!!


Netflix command always opens in new tab

n opens Netflix in new tab
n;<query> works fine

Maybe this has to do with the Open in a new tab command being n

I'm almost positive it does

Fixed in 4e246da31b11a93805f5548a6e431d5e03040935


Submit a Kivy MD Kitchen Sink demo app to Apple App store and Google Play

I noticed KivyMD is flying under the radar a bit and there are lots of complaints with Kivy's look and feel of the default UI and most people don't know what KivyMD is capable of.  It wouldn't be too much work to get the kitchen sink demo into Google and Apple's app store to help show case off what a material design app can look like in Kivy.  It would be great way to introduce kivy to potential users with out them having to go through the struggles of buildozer to get a working app and see what KivyMD is capable of. I wouldn't mind helping out getting it into the app stores as I have a mac and linux machine that can get builds into the app stores with the required credentials for each.  I just wouldn't want to step on peoples toes and submit their work as my own but it looks like nobody is actively maintaining it and not sure who should I get approval from?

Yes having it on the store is a good idea, feel free to go ahead and do it :+1:

Got a release waiting for approval for Android and ios.   I named them "KivyMD Demo" in both app stores.  I'll provide links later once the app is approved and in the app stores.

For Android https://play.google.com/store/apps/details?id=org.kivymd.kivymd
ios might take a day or two.

Awesome! Thanks

Well it looks like Apple wont allow demo apps...  So I don't think I'll be able to get it approved.  But I can upload it to test flight and if users want to try it out on an ios they can sign up for test flight and email me for access.

Well you can have a public invite link for Testflight so that should solve it. You'd need to refresh the build every 90 days though.

Pretty annoying, but in any case this Material Design so I don't think it targets iOS users anyway

You'd be surprised! I find material design is pretty universal - it is very prevalent on the iOS ecosystem. Almost everything is based on material design, but with some custom flows per app. At least that's what it feels like for me.
A suggestion might be a video-walkthrough of the various widgets? That would probably be equally valuable as an actual demo-app?

Yes making a video is a pretty good idea too!
I remember I made a gif in the past to demo some apps e.g. https://github.com/kivy-garden/garden.zbarcam

https://testflight.apple.com/join/VxqQHYJN. I just made a test flight build that anyone can use.  I'll just have to update it every 90 days.

Nice! Thanks for sharing!
I'll update some apps to run on F-Droid pretty soon. So I guess I could do it for KivyMD too :)

For Android https://play.google.com/store/apps/details?id=org.kivymd.kivymd
ios might take a day or two.

Hi ! @GoBig87
Can you please provide the source code and also spec file of your project?


A shape problem

Description
I ran a tensorrt_plan model in trt server,and it was all OK.Then I wanted to add the image preprocess part into the trt server( libimagepreprocess.so was built from offical source), error showed:
Invalid argument: in ensemble preprocess_ensemble, ensemble tensor preprocessed_image: inconsistent shape: [3,1280,1280] is inferred from model image_preprocess while [1,3,1280,1280] is inferred from model retinanet_plan.
As the  tensorrt_plan I used can not support dynamic batching,so I can not change the input shape in the config file of tensorrt_plan.And the output of preprocess can only support 3 dimensions,so I can not change the output shape in the config file of preprocess.
I added reshape:{shape:[1,3,1280,1280]} in the  output part in config file of preprocess,and it did not work.
all 3 config.pbtxt files was below:
1: image_preprocess
platform: "custom"
input {
name: "INPUT"
data_type: TYPE_STRING
dims: 1
}
output {
name: "OUTPUT"
data_type: TYPE_FP32
dims: 3
dims: 1280
dims: 1280
}
default_model_filename: "libimagepreprocess.so"
parameters {
key: "format"
value {
string_value: "NCHW"
}
}
parameters {
key: "scaling"
value {
string_value: "INCEPTION"
}
}
2: preprocess_ensemble
platform: "ensemble"
input {
name: "INPUT"
data_type: TYPE_STRING
dims: 1
}
output {
name: "scores"
data_type: TYPE_FP32
dims: 1
dims: 100
dims: 1
dims: 1
}
output {
name: "boxes"
data_type: TYPE_FP32
dims: 1
dims: 400
dims: 1
dims: 1
}
output {
name: "classes"
data_type: TYPE_FP32
dims: 1
dims: 100
dims: 1
dims: 1
}
ensemble_scheduling {
step {
model_name: "image_preprocess"
model_version: -1
input_map {
key: "INPUT"
value: "INPUT"
}
output_map {
key: "OUTPUT"
value: "preprocessed_image"
}
}
step {
model_name: "retinanet_plan"
model_version: -1
input_map {
key: "input.1"
value: "preprocessed_image"
}
output_map {
key: "boxes"
value: "boxes"
}
output_map {
key: "classes"
value: "classes"
}
output_map {
key: "scores"
value: "scores"
}
}
}
3: retinanet_plan
platform: "tensorrt_plan"
input {
name: "input.1"
data_type: TYPE_FP32
dims: 1
dims: 3
dims: 1280
dims: 1280
}
output {
name: "scores"
data_type: TYPE_FP32
dims: 1
dims: 100
dims: 1
dims: 1
}
output {
name: "boxes"
data_type: TYPE_FP32
dims: 1
dims: 400
dims: 1
dims: 1
}
output {
name: "classes"
data_type: TYPE_FP32
dims: 1
dims: 100
dims: 1
dims: 1
}

Dose your custom model also not support batching? Beside that, I think reshape should work, but note that for output, reshape specifies the shape produced by the model, and the dims for the output is the shape expected by Triton, so you should try the following for your custom model:
output {
name: "OUTPUT"
data_type: TYPE_FP32
dims: [1, 3, 1280, 1280]
reshape {
shape: [3, 1280, 1280]
}
}

Dose your custom model also not support batching? Beside that, I think reshape should work, but note that for output, reshape specifies the shape produced by the model, and the dims for the output is the shape expected by Triton, so you should try the following for your custom model:
output {
name: "OUTPUT"
data_type: TYPE_FP32
dims: [1, 3, 1280, 1280]
reshape {
shape: [3, 1280, 1280]
}
}

I tried this,and it showed :
E0619 00:57:32.671869 2133 dynamic_batch_scheduler.cc:252] Initialization failed for dynamic-batch scheduler thread 0: initialize error for 'image_preprocess': (7) expected single output with 3 dimensions, each dimension >= 1
I0619 00:57:32.672121 2133 custom_backend.cc:90] ~CustomBackend::Context image_preprocess_0_gpu0
E0619 00:57:32.673093 2133 model_repository_manager.cc:840] failed to load 'image_preprocess' version 1: Internal: Initialization failed for all dynamic-batch scheduler threads

Is that the preprocess sample provided with Triton? That is a simple example of a specific use case and thus not really portable. You may want to modify the source code of the preprocess custom example to suit your need.

Is that the preprocess sample provided with Triton? That is a simple example of a specific use case and thus not really portable. You may want to modify the source code of the preprocess custom example to suit your need.

OK,thank you


Object.basename is deprecated.

Arguments to path.basename must be strings
Object.basename (C:\Users\sbrow\AppData\Local\atom\app-1.21.1\resources\app.asar\src\electron-shims.js:31:10)
Object.getHeaderText (C:\Users\sbrow\.atom\packages\header-42\lib\header-42.coffee:74:23)
Object.getHeader (C:\Users\sbrow\.atom\packages\header-42\lib\header-42.coffee:88:27)
Object.insert (C:\Users\sbrow\.atom\packages\header-42\lib\header-42.coffee:129:21)
HTMLElement.subscriptions.add.atom.commands.add.header-42:insert (C:\Users\sbrow\.atom\packages\header-42\lib\header-42.coffee:52:26)
CommandRegistry.handleCommandEvent (<embedded>:22450:36)

please do a PR.

I have reproduced this bug.
When the file is new and not saved, null is not an string.
NodeJS has recently added a throw if the Object.basename(arg1) arg1 is not a type of Strings.
The workaround actually is to save the file, then add the header


Test new builder

Don't merge, just open for testing purposes.
https://github.com/neondatabase/build/pull/62

I'd say this is a success.


[closes #318] Create camel-lwm2m component

thx @trohovsky could you please add RHIOT license header ?

@gautric license header added to all classes ;-)

btw. do you have any policy for code formatting and imports ordering? Some profile for IDEA/Eclipse.

we use the ASF Camel project convention
we custom our LICENSE header only

sorry @trohovsky
you missed LICENSE header for log4j.propeties, pom.xml and lwm2m files

license header added

Hi,
Many thanks for your work! Looks good.
There is one thing that is missing for now. We should be able to specify class of the device enabler, like here [1]. Otherwise we won't be able to call operations on a connected device. So the URI should look like lwm2m:leshan.eclipse.org:5683:com.example.MyDevice. The device class might be optional.
Would you be so kind an issue an another pull request that will enable us to specify device class?
PS Also please note that this is gateway component, so it should be located in gateway/components directory. I will move it there.
Cheers!
[1] https://github.com/rhiot/rhiot/blob/712b877d90641f0751a2b666f1b14dfdc32100b4/cloudlets/device/default/src/main/groovy/com/github/camellabs/iot/cloudlet/device/client/LeshanClientTemplate.groovy#L70

Hi,
true, it should be possible to configure deviceClass. There are other things that can be configured - for example instances of LwM2mInstanceEnabler. Because ObjectInitializer's API enables configuration of multiple classes/factories by setClassForObject/setFactoryForObject as well as instances of LwM2MInstanceEnabler by setInstancesForObject. All of this is just to provide a list of LwM2mObjectEnabler objects. I suggest to add an option objectEnablersFactory, where the value would contain implementation of ObjectEnablersFactory interface:
public interface ObjectEnablerFactory {
    public List<LwM2mObjectEnabler> getObjectEnablers();
}

This would make configuration of LeshanClient flexible and lwm2m endpoint URI would stay simple. What do you think?
Cheers,
Tomas

I would say that we should support both enablers factory and specifying class on the URI level (as this is very popular use case).
What do you think?

Ok, it makes sense.


Email claim with WindowsAzureActiveDirectoryBearerAuthentication

@jmprieur
When using UseWindowsAzureActiveDirectoryBearerAuthentication is the only way to get the email claim by using a Graph call?
I was expecting email to already be in the default claims under ClaimsPrincipal object after a user was successfully authenticated.
Thanks

@jrmcdona ; did you try with the following claim: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn ?
(User.FindFirst(ClaimTypes.Upn))?.Value

@jmprieur
Just tried that and it comes back null.   I am getting the bearer token from a front end project which uses
UseOpenIdConnectAuthentication and authority of https://login.microsoftonline.com/common
In that project I get all the claims.
However, taking that bearer token and authorizing in my Web Api proejct does authorize fine, but claims I need are not there.
I must have something messed up in my set up or currently the Web Api piece isn't whitelisted correctly to get full claims.


Coverage seems to be incorrect

I am using karma-coverage and I am getting like 98%+ coverage on all of my files and I know my tests don't exercise that much of the code. Any idea why the coverage is falsely high?
It's like it's only reporting for what the tests run for and not the remainder of the JS in each file.

I'm using this
https://github.com/ColCh/isparta-instrumenter-loader
I got the same problem, some of my components (it's a react app) are 100% covered but are not even used in the tests?
// Karma configuration
// Generated on Sun Sep 13 2015 12:16:34 GMT+0800 (SGT)
var webpack = require("webpack"),
    path = require("path");

module.exports = function (config) {
    config.set({

        // base path that will be used to resolve all patterns (eg. files, exclude)
        basePath: '',

        // frameworks to use
        // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
        frameworks: ['jasmine'],

        // list of files / patterns to load in the browser
        files: [
            './node_modules/phantomjs-polyfill/bind-polyfill.js',
            './test/**/*.js'
        ],

        // list of files to exclude
        exclude: [],

        // preprocess matching files before serving them to the browser
        // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
        preprocessors: {
            "./test/**/*.js": ["webpack"]
        },

        webpack: {
            module: {
                preLoaders: [
                    {
                        test: /\.js?$/,

                        exclude: /(test|node_modules)/,
                        loader: 'isparta-instrumenter-loader'
                    }
                ],
                loaders: [
                    {
                        test: /\.js?$/,
                        exclude: /(node_modules)/,
                        loader: 'babel'
                    },
                    {
                        test: /\.scss$/,
                        loader: 'style!css!sass'
                    },
                    {
                        test: /\.(eot|woff|woff2|ttf|svg|png|jpg)$/,
                        loader: 'url-loader?limit=30000&name=[name]-[hash].[ext]'
                    },
                ]
            },
            plugins: [],
            resolve: {}
        },
        webpackMiddleware: {
            noInfo: true
        },
        plugins: [
            require("karma-webpack"),
            require("karma-jasmine"),
            require("karma-junit-reporter"),
            require("karma-coverage"),
            require("karma-phantomjs-launcher")
        ],

        // test results reporter to use
        // possible values: 'dots', 'progress'
        // available reporters: https://npmjs.org/browse/keyword/karma-reporter
        reporters: ['progress', 'junit', 'coverage'],

        coverageReporter: {
            type: 'cobertura',
            dir: 'reports',
            subdir: './'
        },

        junitReporter: {
            outputDir: 'reports', // results will be saved as $outputDir/$browserName.xml
            outputFile: '', // if included, results will be saved as $outputDir/$browserName/$outputFile
            suite: '' // suite will become the package name attribute in xml testsuite element
        },

        // web server port
        port: 9876,

        // enable / disable colors in the output (reporters and logs)
        colors: true,

        // level of logging
        // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
        logLevel: config.LOG_INFO,

        // enable / disable watching file and executing tests whenever any file changes
        autoWatch: true,

        // start these browsers
        // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
        browsers: ['PhantomJS'],

        // Continuous Integration mode
        // if true, Karma captures browsers, runs the tests and exits
        singleRun: true
    })
};

I'm closing this for now. Feel free to reopen it if you still have this issue.

I also have the same problem with a similar setup, components that have no unit tests yet being reported as 100% coverage

Same here...

Are you guys looking for the --include-all-sources flag?
--include-all-sources
        instrument all unused sources after running tests, defaults to false

I still have this issue (browserify-istanbul 0.2.1 and istanbul 0.3.22). @jedmao how can I use that option with browserify-istanbul?

@carneiror I've never used browserify-istanbul, so I couldn't tell you, but I would just refer you to their documentation. However you can provide istanbul options.

I fixed my problem and now isparta is working perfectly fine. Basically, in my webpack config, I was using the "exclude" keyword to select the files to "pack" then I replaced by "include" instead.
include: [path.resolve(__dirname, 'src')],


Add checks for not #general and no reactions, bump old to 3d

This is arguably orthogonal to code freeze since it's all behind a disabled feature flag.


XmlHalMediaTypeFormatter cannot be used as the default XML serializer

The JsonFormatter can be used as the default JsonFormatter:
GlobalConfiguration.Configuration.Formatters.JsonFormatter
if I add it like so:
GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonHalMediaTypeFormatter());
It would be convinent to be able to do the same with the XmlHalMediaTypeFormatter like so:
GlobalConfiguration.Configuration.Formatters.Insert(0, new XmlHalMediaTypeFormatter());
but the GlobalConfiguration.Configuration.Formatters.XmlFormatter stays the same. Is it possible to change this?

Before adding both formatters, it would be a good idea to clear existing formatters by:
GlobalConfiguration.Configuration.Formatters.Clear()

Then just simply add both, not insert them.

closing stale issue


Moving utility functions to external python package (hosted in pypi)

Description of PR

As we are growing the amount of modules having to maintain different utility folders that do the same is a lot of a boilerplate code. For that reason we moved the utility functions on a different package called artemis-utils that is hosted on PyPI.
⚠ This PR should be checked after #444 ⚠
What component(s) does this PR affect?

[x] Back-End (Database, Detection/Configuration/etc. Microservices)
[ ] Front-End (Flask, API, UI, etc)
[x] Monitor (RIPE RIS, BGPStream RV/RIS/CAIDA, etc.)
[ ] Docs (incl. wiki)
[x] Build System

Does the PR require changes on other components? If yes, please mark the components:

[ ] Back-End (Database, Detection/Configuration/etc. Microservices)
[ ] Front-End (Flask, API, UI, etc)
[ ] Monitor (RIPE RIS, BGPStream RV/RIS/CAIDA, etc.)
[ ] Docs (incl. wiki)
[ ] Build System

Related Issue

Resolves #
Solution

Type

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Docs update
[ ] None of the above

Checklist:

[x] I have read the contributing guide and my code conforms to the guidelines.
[x] This change requires a change in the documentation.
[x] I have updated the documentation accordingly.

Will review after https://github.com/FORTH-ICS-INSPIRE/artemis/pull/444 is properly checked and merged.

Looks good to me, however: should we pay attention to anything else in the utils package?
Will it get everything from the .env without problems (have you tried checking if an .env change is properly reflected in the changed modules)?
Will the serialization for ujson still be registered properly?

The only thing that changes is that it uses an external package. The code is exactly the same and used the same way. The only problem that we could had was if we were using relative paths that were not it he package which is not the case.
For the future, we can add unit tests and make it compile with cython.


It does not work for Silex 2.0.x

ERROR:
ClassNotFoundException in OpauthExtension.php line 11:
Attempted to load interface "ServiceProviderInterface" from namespace "Silex".
Did you forget a "use" statement for "Pimple\ServiceProviderInterface"?
 How to fix it (adapt)?

hey @AVBIT, I'm not sure how to help you. There are no plans to upgrade this package, but if you want you can give it a try, because it shouldn't be too hard to do an upgrade.
thank you.


deprotonate=False not working?

Hi, I'm probably not understanding something correctly but I'm setting deprotonate to False and still get deprotonation happening:
        self.graphein_config = ProteinGraphConfig(granularity='atom',
                                                  deprotonate=False,
                                                  edge_construction_functions= [
                                                                                add_peptide_bonds,
                                                                                add_atomic_edges,
                                                                                #add_hydrogen_bond_interactions,
                                                                                #add_hydrophobic_interactions,
                                                                                add_bond_order,
                                                                                #partial(add_distance_threshold, long_interaction_threshold=5, threshold=10.)
                                                                                #partial(add_k_nn_edges, k=3, long_interaction_threshold=0)
                                                                                ],
                                                  node_metadata_functions= [amino_acid_one_hot, expasy_protein_scale])
        print(self.graphein_config.dict())

and run using:
                   graph_list.append(construct_graph(config=self.graphein_config, path=file_path))
output:
2024-03-13 13:12:00,703 - INFO - Initialising data loader.
{'granularity': 'atom', 'keep_hets': [], 'insertions': True, 'alt_locs': 'max_occupancy', 'pdb_dir': None, 'verbose': False, 'exclude_waters': True, 'deprotonate': False, 'protein_df_processing_functions': None, 'edge_construction_functions': [<function add_peptide_bonds at 0x7f4ace2c7ec0>, <function add_atomic_edges at 0x7f4ace2d1120>, <function add_bond_order at 0x7f4ace2d1260>], 'node_metadata_functions': [<function amino_acid_one_hot at 0x7f4ace2d2f20>, <function expasy_protein_scale at 0x7f4ace2d2b60>], 'edge_metadata_functions': None, 'graph_metadata_functions': None, 'get_contacts_config': None, 'dssp_config': None}
2024-03-13 13:12:00,703 - INFO - Building graphs with batch_size 5
                    DEBUG    Deprotonating protein. This removes H atoms from the       graphs.py:188
                             pdb_df dataframe

if I'm reading this correctly it is applied out of this graphs.py, where I see deprotonate's default value is true so I'm not assigning it properly somehow?
def process_dataframe(
    protein_df: pd.DataFrame,
    atom_df_processing_funcs: Optional[List[Callable]] = None,
    hetatom_df_processing_funcs: Optional[List[Callable]] = None,
    granularity: str = "centroids",
    chain_selection: str = "all",
    insertions: bool = False,
    alt_locs: bool = False,
    deprotonate: bool = True,

I've also tried simply copying and running the code in https://graphein.ai/notebooks/atom_graph_tutorial.html to see if deprotonation=False works there.
But I get a TypeError: construct_graph() got an unexpected keyword argument 'pdb_code'
Is the documentation site out of date?

Hi @l-Dr-MR-l thanks for finding this. It appears the argument was not wired up. I've made a PR; would you be able to test it out & see if it resolves your issue? #375

Re docs, yes they're a little out of date at this point. I've been meaning to get around to updating them. Is the error with pdb_code or pdb_path? pdb_path was renamed to just path but pdb_code shouldn't have been touched for some time.

Hi, yes. I've not pushed a new version to PyPI yet (will be doing so today) as there were a few other PRs I was hoping to squeeze in. You can try the change if you pip install from the github repository though pip install git+https://github.com/a-e-j/graphein

Cheers that worked, it is now corrently following the deprotonate argument.


C++ MacOS AsyncEnd2end/AsyncEnd2endTest.AsyncNextRpc Flake

2021-04-20 09:05:46,912 FAILED: cmake/build/async_end2end_test --gtest_filter=AsyncEnd2end/AsyncEnd2endTest.AsyncNextRpc/13  GRPC_POLL_STRATEGY=poll

https://source.cloud.google.com/results/invocations/8a16684d-57e1-4c1d-a3dd-cc7c5f9c6150/log

I'm going to assume this is obsolete.  We can reopen if we see it again.


Can I use this on Linux or is it for Windows only?

Can I use this on Linux or is it for Windows only?

The Python source will definitely run in Linux.  The executable will run too if you use Wine.

Hi, can I suggest you finalize (for a fee) this script for the new social network?


Exploit common configurations for recovery/release images

This is tested only to the point that I prepared some release assets with make-binary.sh and did an lsinitrd on the release and recovery EFI bundles to confirm that some contents are expected.

The artifacts need testing, but I revamped the workflow and dropped drm.


Documentation update for setAckOnError method

In what version(s) of Spring for Apache Kafka are you seeing this issue?
2.8.6 (latest)
Describe the bug
The current documentation for Spring Kafka references setAckOnError method that was probably removed earlier:
https://docs.spring.io/spring-kafka/docs/current/reference/html/#default-eh
@Bean
public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {
    ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory();
    factory.setConsumerFactory(consumerFactory());
    factory.getContainerProperties().setAckOnError(false);
    factory.getContainerProperties().setAckMode(AckMode.RECORD);
    factory.setCommonErrorHandler(new DefaultErrorHandler(new FixedBackOff(1000L, 2L)));
    return factory;
}

I couldn't find it in the latest source version:
https://github.com/spring-projects/spring-kafka/blob/main/spring-kafka/src/main/java/org/springframework/kafka/listener/ContainerProperties.java
Expected behavior
Usage of this method should be removed from the documentation.

There's one more code block in the documentation that fails to compile:
DeadLetterPublishingRecoverer recoverer = new DeadLetterPublishingRecoverer(template,
        (r, e) -> {
            if (e instanceof FooException) {
                return new TopicPartition(r.topic() + ".Foo.failures", r.partition());
            }
            else {
                return new TopicPartition(r.topic() + ".other.failures", r.partition());
            }
        });
ErrorHandler errorHandler = new DefaultErrorHandler(recoverer, new FixedBackOff(0L, 2L));

It seems to me that ErrorHandler should be replaced with CommonErrorHandler here.

Thanks! Back-ported to affected branches.


is there documentation?

Thanks for filing this issue, not sure what you mean by documentation
This extension is used to render outputs for Jupyter Notebooks in VS Code
Uses the VS Code API to contribute renderers for different mime types
Perhaps you are running into some issue hence looking for some documentation
Pelase could you describe the reason why you are looking for documentation, is it to contribute or to figure out what this extension does (perhaps you are new to Jupyter Notebooks or the like)

Which renderer are you adding? How do we use this in a notebook?

You do not need to do anyting specific to use renderers in a notebook.
If you run a cell in Jupyter and you get output such as text/html, then vscode will select a text/html rendere and display that.
This extension supports renderers for gif, png, jpg, svg, vega, plotly and other mime types.
Png, svg renderers are already supported in vscode, however jupyter ntoebooks might require addtional changes, hence the custom renderers
Again this only applies to Jupyter notebooks in VS Code

Which renderer are you adding?

Will update the REDME to document this.

Is there a way to render SQL Output (or CSV) in a grid view?

Is there a way to render SQL Output (or CSV) in a grid view?

Unfortunately no, you might want to look for other VS Code extensions or jupyter notebook magics or packages that make this possible.

oidkksjyeootiugkopuflskks;;

kkoiuyfpiuelsbbioeus
@dnfclas slall

uuuuuuuu


ORC-1354: [C++] remove whitespace before the scope resolution operator

What changes were proposed in this pull request?
remove whitespace before the scope resolution operator
Why are the changes needed?
though spaces are allowed before/after the scope resolution operator, but this
is bad for the following case:
CompressionStrategy ::CompressionStrategy_SPEED
How was this patch tested?
It doesn't introduce new features and passed all test cases.

Unfortunately, I have not found a way to enforce it by clang format.

Yeah, clang-format can remove the spaces after ::, but for the spaces before the ::, it always keeping one space.

If we are unable to enforce this, is this worth for a JIRA and PR?
Sorry, but I'd recommend to ignore this kind of instances in C++ in the future, @wgtmac and @zhjwpku .

If we are unable to enforce this programatically, is this worth for a JIRA and PR? Sorry, but I'd recommend to ignore this kind of instances in C++ in the future, @wgtmac and @zhjwpku .

Sure, agree. PR closed.


Units not moving

Hi @npruehs,
I've been following your work for some time and decided to take a stab at using your plugin (release branch). Big fan of the work you've been doing here :)
I've been working through your usage guide (specifically the units component) and upon reaching the order binding section for smart orders, I've noticed that units are not moving when given orders.
I've created a unit derived from RTSCharacter with all relevant components (Character Movement component added by default).
Please feel free to request any additional information if needed :)
Thanks!

I've been testing your demo project to look for inconsistencies with my own project.

I noticed that you spawn a unit on the player start location, where do you manage the logic for that?

If I add another unit into your level and set it's team index to match the spawned unit, I find it's selectable but does not move on order (similar to what I'm experiencing in my game).

Hope this helps in making the problem clearer :)

Hi @npruehs,
Just a quick update, I've managed to reproduce unit movement on a unit derived from the RTSPawn class. Still unable to reproduce movement for a unit derived from the RTSCharacter class.

Hey @JaredP94 !
Thanks for the warm words :)
Just to be sure that we're on the same page:

In the demo project, does movement work there?
Have you generated the navigation mesh for your level, and verified it looks as expected?
Is the log showing any warnings or errors?

Hi @npruehs,
Sorry, I meant to update this issue earlier. I noticed the logs weren't outputting any "Ordered Actor" messages when issuing commands to the RTSCharacter unit. That led me to realise that it was being controlled by the incorrect AI Controller. After that, all worked as expected!
Hope you didn't spend much time looking into this in the interim :)
Keep up the great work!


merge from arlac77/template-github,arlac77/template-kronos-module

package.json

chore(package): add ^12.2.0 remove ^12.1.4 (devDependencies.documentation)

:tada: This PR is included in version 7.5.10 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


xUAC: added AlwaysNotifyAndAskForCredentials option (Fixes #8)

Hi @kwirkykat  @Zulgrib
My PR contains:
A new option AlwaysNotifyAndAskForCredentials for xUAC which can be used to configure UAC to always ask for credentials.
Let me know if there are any issues.

This change is

Hi @machgo, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@machgo, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Any chance of getting any movement with this PR?  I don't currently use this resource but will do once this PR is merged.

@machgo ?

This resource is being moved to the module ComputerManagementDsc and will be deprecated in this module. These changes has hopefully been added to the new resource. Closing this PR now. Thank you for your work on this!


Move DifferentiableDensityModel out of AHMC

The current implementation of the AbstractMCMC.jl-interface uses the
https://github.com/TuringLang/AdvancedHMC.jl/blob/7cad9f02e6eb4095ad8b2e7ef06d3474dfb19135/src/abstractmcmc.jl#L47-L52
as the AbstractMCMC.AbstractModel type for this package. But such a model is useful elsewhere too, hence it's unfortunate that we tie to AHMC in this way.
Maybe this should go to AbstractMCMC.jl itself?

That sounds good to me. What do you think @cpfiffer @devmotion ?

I made an issue for the "Maybe this should go to AbstractMCMC.jl?"-question in the AMCMC repo: https://github.com/TuringLang/AbstractMCMC.jl/issues/81/.


timer.c already move to src

compiled passed with updated libuv code

libuv already move timer.c to src
compiled passed under vs 2019, and ubuntu


docs: update README and add guide for deploying FrankenPHP on Digital…

Hello @dunglas,
I've opened a merge request that adds comprehensive FrankenPHP deployment documentation for DigitalOcean. The documentation covers first step for run FrankenPHP on DigitalOcean. This addition aims to simplify the deployment process and enhance the overall user experience.
Your feedback on this MR is appreciated.

Hi, thanks for your contribution! I integrated it in #471!


add architecture and previews guide to docs menu sections

As mentioned in https://github.com/netlify/netlify-cms/pull/1366#issuecomment-390075964.

Deploy preview for cms-demo ready!
Built with commit 2e049792c9b4f45b03238d792d4b60d027353732
https://deploy-preview-1368--cms-demo.netlify.com

Deploy preview for netlify-cms-www ready!
Built with commit 2e049792c9b4f45b03238d792d4b60d027353732
https://deploy-preview-1368--netlify-cms-www.netlify.com

LGTM!


[BUG] opensearch gradle utility plugin doesn't resolve transient dependencies

What is the bug?
OpenSearch gradle plugin seems to be avoiding resolution of transient dependencies for implementation/api configurations.
This results in NoClassFound exceptions and other classes missing during operation.
How can one reproduce the bug?
./gradlew :oci-repository-plugin:run
then attempt to create a repository
curl -XPUT "http://localhost:9200/_snapshot/oci_repository" -H 'Content-Type: application/json' -d"
{
  \"type\": \"oci\",
  \"settings\": {
    \"client\": \"default\",
    \"region\": \"${OCI_REGION}\",
    \"endpoint\": \"https://objectstorage.${OCI_REGION}.oraclecloud.com\",
    \"bucket\": \"${OCI_BUCKET}\",
    \"namespace\": \"bmc_siem_prod\",
    \"forceBucketCreation\" : true,
    \"bucket_compartment_id\": \"${OCI_BUCKET_COMPARTMENT}\",
    \"userId\" : \"ocid1.user.oc1..aaaaaaaa5vtbkg4omdvni7t67izxphsvmqdnkfhhspn54hvo7n5no65332yq\",
    \"tenantId\" : \"ocid1.tenancy.oc1..aaaaaaaafi4l6qecddifs7kew5uzc24xwvtraosoiyvjgc5rq26nciigrhtq\",
    \"fingerprint\" : \"89:36:28:98:a4:ed:0b:ad:46:90:a8:12:7d:2e:1a:a1\",
    \"credentials_file\": \"${CREDENTIALS_FILE_PATH}\"
  }
}
"

open search logs will show errors such as:
Caused by: java.util.NoSuchElementException: No http provider available; add dependency on one of the oci-java-sdk-common-httpclient-* choices, e.g. oci-java-sdk-common-httpclient-jersey

What is the expected behavior?
expected behavior is for everything in the readme.md examples to just work
What is your host/environment?
will happen on any environment
Do you have any additional context?
It seems that during the tests the transient dependencies from the fixture compensate, therefore it means we will have to add an IT class that perform an external test.

PR merged https://github.com/opensearch-project/opensearch-oci-object-storage/pull/36


Exclude PMD rule for OnlyOneReturn

I would like to exclude the PMD rule for OnlyOneReturn. It is perfectly possible for a method to have more than one return statements.
https://pmd.github.io/pmd-6.5.0/pmd_rules_java_codestyle.html#onlyonereturn
Instead this rule should be replaced by sonar's rule for method should not have too many return statements.
https://rules.sonarsource.com/java/RSPEC-1142

Thanks! Yea now when people start getting these rules in their face (github) it's time to work on them. They're almost the default until now.
Even after improving these rules, there is also the request to make specific overrides in their projects. I haven't looked into how to do it for each tool yet but should be possible to have these rules as the base and then have build.gradle config take priority for additional rule config

Even after improving these rules, there is also the request to make specific overrides in their projects. I haven't looked into how to do it for each tool yet but should be possible to have these rules as the base and then have build.gradle config take priority for additional rule config

I agree. Overrides via build.gradle should suffice. Also, can we just replace pmd config with sonar rules?


[DO_NOT_MERGE]  Trigger node event when node ip changes

Replace 'minion' with 'node' or 'nodeIP' based on the context
Testing is in progress...
Related to https://github.com/rajatchopra/openshift-sdn/pull/2

@rajatchopra PTAL

@rajatchopra Updated and tested the changes, please review/merge


Fixes #1902

Uses "Python -m pytest" to fix the issue with flaskr being unavailable in the tutorial.

The problem appears to be that your pytest is cached to be something outside your venv, probably because you tried to run pytest, then activated the venv, then tried to run it again. hash -r will fix that (or rehash on zsh). The fact that python -m pytest works just means that you didn't mistakenly try to run python itself outside the venv, otherwise you'd run into the same issue. That's an issue with how Bash caching works, not with the tutorial.
I am absolutely sure that if you follow the tutorial as written currently, it works on Bash, so I don't plan to change this.


Problem installing new plugin

I just created a plugin https://github.com/mipmip/cerebro-open-in-iterm by following the docs.
Issue
While developing everything worked. I published the plugin to npmjs, but now I have problems installing it with Cerebro.

OS version and name: High Sierra 10.13
Cerebro.app version: 0.3.0
Relevant information from devtools:

[npm] Install package cerebro-open-in-iterm
main.bundle.js:1 Version: 0.1.2
main.bundle.js:1 Extract https://registry.npmjs.org/cerebro-open-in-iterm/-/cerebro-open-in-iterm-0.1.2.tgz to /Users/pim/Library/Application Support/Cerebro/plugins/node_modules/cerebro-open-in-iterm
main.bundle.js:1 Download and extract to temp path: /var/folders/q_/p2wkrhdx4wv3k41clnfjmcfr0000gp/T/cerebro-open-in-iterm
main.bundle.js:1 Move /var/folders/q_/p2wkrhdx4wv3k41clnfjmcfr0000gp/T/cerebro-open-in-iterm to /Users/pim/Library/Application Support/Cerebro/plugins/node_modules/cerebro-open-in-iterm
main.bundle.js:1 Add package to dependencies
main.bundle.js:1 Load plugin: cerebro-open-in-iterm
main.bundle.js:1 Path: /Users/pim/Library/Application Support/Cerebro/plugins/node_modules/cerebro-open-in-iterm...
main.bundle.js:1 Error requiring /Users/pim/Library/Application Support/Cerebro/plugins/node_modules/cerebro-open-in-iterm
main.bundle.js:1 Error: Cannot find module '/Users/pim/Library/Application Support/Cerebro/plugins/node_modules/cerebro-open-in-iterm'
    at Module._resolveFilename (module.js:470)
    at Function.Module._resolveFilename (/Users/pim/Desktop/Cerebro.app/Contents/Resources/electron.asar/common/reset-search-paths.js:35)
    at Function.Module._load (module.js:418)
    at Module.require (module.js:498)
    at require (internal/module.js:20)
    at f (main.bundle.js:1)
    at setTimeout (main.bundle.js:1)
main.bundle.js:1 Plugin is not valid, skipped

@mipmip Hey! How did you build and publish your plugin? main key in your package.json is dist/index.js, but you have only src directory, there is no dist folder published to npm.
You can check i.e. cerebro-basic-apps – it has prepublish key in package.json that clears dist folder and starts build script. And publishes your package only after that.
Also you have npmignore file, that should be merged into .npmignore (just copy content to the end of your file)

I'm closing this as an outdated issue. It is not really a "cerebro" issue but as a plugin issue.


[Issue 82] Adding Home Page Styles for Mobile

This PR adds base styles and styles that are specific to the mobile view for the site. I'm taking a mobile first approach to styles, so these will be the base stylse and media queries will change the styles for the larger view types. This doesn't include styles for the nav-bar because that is a separate component. Changes in this PR include:

adding gray color to common stylesheet
adding home stylesheet for home page
updating classes and html to work with home stylesheet

Closes #82

:tada: This PR is included in version 1.3.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add support for Immutable libraries

We should implicitly check whether a prop value has a .toJS method and call it.

How would I then pass an Immutable.js object as a prop and maintain its immutability? I often use Immutable.Record or even pass an Immutable.Map or Immutable.Set to children and would prefer that it not be coerced to normal Objects and Arrays.

thanks for the comment. I think you're misinterpreting what the issue means
to suggest. They would maintain their immutability until just before they
are turned into a vnode. Passing them to composite component children would
not affect them.
On 30 Sep 2015 19:08, "Cameron Knight"<EMAIL_ADDRESS>wrote:

How would I then pass an Immutable.js object as a prop and maintain its
immutability? I often use Immutable.Record or even pass an Immutable.Map or
Immutable.Set to children and would prefer that it not be coerced to normal
Objects and Arrays.
—
Reply to this email directly or view it on GitHub
https://github.com/BrewhouseTeam/yolk/issues/13#issuecomment-144594506.

How soon are we thinking either Immutable.js or Redux support will be landing? I think this is the last missing piece to start running on Yolk.

@jadbox added support for objects that define .toJS() to transform themselves into "plain" JavaScript types (see Immutable/Freezer). Also updated the todo mvc app to use Immutable.


ci(postman): disable merge_group trigger

Type of Change

[x] CI/CD

Description

This PR disables postman-collection-runner.yml in merge-queue since it is found to be having issues with running in local host that is affecting other PRs. So, commenting it now.
Motivation and Context

I  don't want to hurt other's progress / productivity.
How did you test it?

CI failing in GH Actions
Checklist

[x] I reviewed submitted code

Disabled the workflow from GithubActions tab, so, no need of this PR


Adding work-in-progress debugging guide.

Adding a draft debugging guide to the project references.

@bouzaghrane @hassanobeid1994
Please take a look y'all!
In particular, this is the process (or something very close to it) that I'm hoping we'll all take when debugging during this project.
It is more work than one usually thinks of, but should hopefully lead to faster debugging times and lower chances of re-making such errors in the future.
Please let me know if any parts of this look unreasonable or if you know of better processes that we should use instead!

And as we discussed in the video call, yes tracking is def important even if you don't need to use every single step (or any steps) from the guide to actually fix the issue.

I am good with it @timothyb0912 . whenever @hassanobeid1994 gets a chance to review on his end we can merge.


Update stm32f4 SDIO register fields and values

Documentation and limits for the sdio register values.

I only added it to the f405 for now. But if this change looks OK to you, I can add the sdio peripheral to all other f4 devices as well. Just wanted to make sure it was the right approach.

Thank you for the review, and sorry for the field length errors, I should have double checked them. Will do that next time!
I updated the branch with your fixes and ran matchperipheral.py and let it add the peripheral to the devieces and added the FIFOData field to the SDIO_FIFO.
I didn't plan to bother with the interrupt register fields. As they are all bit fields, I didn't think it was worth the effort. But I can be convinced to do a follow up patch.

Great, thanks!

I didn't plan to bother with the interrupt register fields. As they are all bit fields, I didn't think it was worth the effort. But I can be convinced to do a follow up patch.

Since they are all simple fields you might be able to do something very simple like:
SDIO_MASK:
    "*IE":
        Disabled: [0, "Interrupt disabled"]
        Enabled: [1, "Interrupt enabled"]
SDIO_ICR:
    "*C":
         _write:
              Clear: [1, "Clear flag"]

I think it might be worth doing the STA register fully though as I expect a lot of driver code will regularly be polling that register so it's much nicer if they can use the enumerated values (e.g. rxdavl().data_available() rather than rxdavl().bit_set()).

Will try to find some time to look at this later this week. So lets keep this open for the time being.

Updated with interrupt field value documentation.


Changing the plugin context values

I have tried to change the context values but it doesn't seem to be possible inside the plugin :
module.exports = function (context, options) {
    context.siteConfig.presets....docs.sidebarPath = ...;
}

What do you want to achieve? Please fill out the issue strictly according to the opened template, only this way we will help you.


Add RSS and JSON formats

When a user goes to the index of the website there should be a way to pull data via RSS and JSON formats. This should be handled by the request format.
The JSON and RSS should include fields from the job posting and be ordered by the publish date in descending order so newest items show first.

Title
Logo/Image
Description
Publish Date
Company
Job Board
URL

Users should also be able to view the individual posting in this format.
http://localhost:3000/?format=json
http://localhost:3000/?format=rss
http://jobbyjobjob.net/post/28133.json
http://jobbyjobjob.net/post/28133.rss
http://localhost:3000/?utf8=✓&query=ruby&format=json
http://localhost:3000/?utf8=✓&query=ruby&format=rss
JSON format should follow the JSON API
The pages should include a link in head of the html with the link to the rss feed.
<link rel="alternate" type="application/rss+xml" title="Subscribe to Jobby Job Job Feeds" href="http://localhost:3000/?format=rss" />

There should also be a link to the rss feed on the top right side under the view history with a link for users to subscribe to the feed. The links should point to the individual feeds for rss and json.

Please let me know if you have any questions.

let me know if you have any questions or need any clarifications.


Non-optional property with default value is not translated to a non-nullable field in sqlalchemy

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the SQLModel documentation, with the integrated search.
[X] I already searched in Google "How to X in SQLModel" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to SQLModel but to Pydantic.
[X] I already checked if it is not related to SQLModel but to SQLAlchemy.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from typing import Optional
from sqlmodel import SQLModel, Field, create_engine

class Test(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    a: str
    b: Optional[str] = None
    c: str = Field(default="Hey")
    d: str = "hey"

sqlite_url = ""  # define a path here
engine = create_engine(sqlite_url, echo=True)
SQLModel.metadata.create_all(engine)

Description
The above code example issues the following create table sql command:
CREATE TABLE test (
	id INTEGER,
	a VARCHAR NOT NULL,
	b VARCHAR,
	c VARCHAR,
	d VARCHAR,
	PRIMARY KEY (id)
)

whereas I would expect columns c and d to be marked as NOT NULL as well.
I think the documentation also points to my point of view as stated here.
Operating System
Linux
Operating System Details
No response
SQLModel Version
0.0.4
Python Version
3.8.5
Additional Context
No response

Shouldn't it result in:
CREATE TABLE test (
	id INTEGER,
	a VARCHAR NOT NULL,
	b VARCHAR,
	c VARCHAR DEFAULT "hey" NOT NULL,
	d VARCHAR DEFAULT "hey" NOT NULL,
	PRIMARY KEY (id)
)

?

@ChielWH: No, default values provided in SQLModel/SQLAlchemy columns through the default parameter are invoked client-side by SQLAlchemy before data is passed to the database, and are not part of the table's DDL definition. To create a server-side default value that is part of the table's definition, the server_default parameter must be used instead.
See: https://docs.sqlalchemy.org/en/14/core/defaults.html.

Thanks for the detailed report and fix @van51! :bow: :cake:


Update Post “2020-10-14-draft-example”

Automatically generated by Netlify CMS

👷 Deploy Preview for vigorous-darwin-e81d1f processing.
🔨 Explore the source changes: f578e5b01ca56c3112e17d86bf428ab6b07259b1
🔍 Inspect the deploy log: https://app.netlify.com/sites/vigorous-darwin-e81d1f/deploys/61ce2253cacc690008c2d85d


FR: webcam support

Hi, it would be nice if the app also had an option to the use the camera or webcam to scan qr codes

Hi. Yes I agree. I was planning to add that but it turned out a bit more complicated because dealing with native APIs across the thousands of configurations on Linux is a nightmare. I'm currently very busy with work but I will review any PRs.


Helmchart for Kubernetes

Would fit contributing with helm chart from Kubernetes workloads?
I have a very simple one that is very portable.

@rednafi closing is a no?

Accidentally closed this, apologies. Unfortunately, I'm not too familiar with Kubernetes workflow and would like to keep this as thin as possible.

@rednafi Let me send a small PR so you can review. I can follow the thin as possible idea with it.

@ayr-ton Let's do that and try to keep it as decoupled as possible. We can iterate from there if you're interested.

No progress here. Closing.


[$500] Edit private note form doesn't submit by enter key

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

Action Performed:

Open a report that has the private note option
Click on the header > Private notes
Select a private note to open the edit page
Edit the private note and press enter key

Expected Result:
The private note should be saved and go back to the previous page
Actual Result:
The input adds a new line
Workaround:
unknown
Platforms:

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

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

Version Number: 1.3.77-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/38435837/b1d8e259-db93-4d60-b4f3-6a9023667312
https://github.com/Expensify/App/assets/38435837/b5062afb-b3d6-4a58-a5f8-8dfacdb595af
https://github.com/Expensify/App/assets/38435837/5e238552-2eea-41a2-9fc7-3261d4e5faff
Expensify/Expensify Issue URL:
Issue reported by: @dukenv0307
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1696405348401729
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01114e9ac4dbe61472
Upwork Job ID:<PHONE_NUMBER>583115776
Last Price Increase: 2023-10-04

Proposal by @dukenv0307
Please re-state the problem that we are trying to solve in this issue.
Edit private note form doesn't submit by pressing enter key
What is the root cause of that problem?
We don't add submitOnEnter prop to allow the submission of the form by pressing the enter key
https://github.com/Expensify/App/blob/447d87e9204578ccaf5c8e3a6887b97de531457e/src/pages/PrivateNotes/PrivateNotesEditPage.js#L142
We should add submitOnEnter prop to the text input to make the form can be submitted by pressing enter key
https://github.com/Expensify/App/blob/447d87e9204578ccaf5c8e3a6887b97de531457e/src/pages/PrivateNotes/PrivateNotesEditPage.js#L142
What alternative solutions did you explore? (Optional)
NA
Result
Screencast from 04-10-2023 15:19:04.webm

Looks like it is intended behavior. Since notes might be multiline

Proposal
Please re-state the problem that we are trying to solve in this issue.
Enter button is not submitting privates notes form.
What is the root cause of that problem?
Root cause of the problem is we have policy about when form should be submitted on pressing enter and when we should add a new line on pressing shift+enter. There is prop for multiline inputs that allow us to handle form like this
https://github.com/Expensify/App/blob/6d86d5aecc47096bffdfbf59dcaefcb5dd0a0509/src/components/TextInput/baseTextInputPropTypes.js#L89
it is not added
What changes do you think we should make in order to solve the problem?
Add submitOnEnter={!Browser.isMobile()} prop here
https://github.com/Expensify/App/blob/6d86d5aecc47096bffdfbf59dcaefcb5dd0a0509/src/pages/PrivateNotes/PrivateNotesEditPage.js#L142
Above change will ensure that enter behavior gets updated for desktop browsers and for mobile apps only.
What alternative solutions did you explore? (Optional)
N/A

@ayazalavi Does it do any harm to add submitOnEnter for mobile browsers too? Don't we support a rare but possible scenario like an Android phone/tablet with a Bluetooth hardware keyboard + mobile Chrome?

I asked also on Slack

@cubuspl42, I believe this form submission behavior is intended for platforms other than mobile browsers. Mobile browsers have different form submission behavior due to the lack of implementation for interactions between soft keyboards and HTML forms in the app. Please take a look at this issue for more information: Link to Issue #28569.

I agree with @cubuspl42 and I believe this page is being revamped anyways, so let's close this for now.


Use a specific font for emojis

Basically, this pr introduces an emojifont font in the opening to solve any potential bbox / char shape mismatch issues.  All emojis are rendered with this font.  It also changes a lot of the plot! signatures to convert_arguments which allows the user to update with any supported type.
This is not yet complete, but I did this in the web editor so putting it out there.

I guess this is basically what I wanted to do.  The framework for the Cairo special case is there but commented out, since I tried to use Cairo to draw colored emojis and it didn't (even though the docs explicitly list colored emojis as being supported).  We could still draw the SVGs using Rsvg there though.

I think direct rendering of emojis will also require support for variation sequences from FreeTypeAbstraction.jl to extract the code point from the font files. Without that, you don't even get passed layout_formatted_text.
Also: The font not working could be related to the note made on the release page of OpenMoji, but not 100% sure: https://github.com/hfg-gmuend/openmoji/tree/master/font

:warning: The OpenMoji fonts work in all operating systems, but will currently only show color glyphs in Mozilla Firefox and Adobe CC. This is not a limitation of the generated fonts, but of the operating systems and applications.

Don't quote me on this, but I think I remember reading somewhere that unicode standards can have different implementations and that Firefox's and Adobe's implementations did have something in common or so. Perhaps that is the reason ...

We could still draw the SVGs using Rsvg there though.

Why not use PNGs instead? We already use those for GLMakie rendering.

Don't quote me on this, but I think I remember reading somewhere that unicode standards can have different implementations and that Firefox's and Adobe's implementations did have something in common or so. Perhaps that is the reason ...

I think this is what I remebered:

SVG in Open Type is a standard by Adobe and Mozilla for color OpenType and Open Font Format fonts.

Taken from https://github.com/DeeDeeG/noto-color-emoji-font#examples

I spent some more time on trying to understand how unicode variation sequences work and how to possibly render emojis from a font file. Here is a brief summary:

FreeType's variation sequence interface (https://freetype.org/freetype2/docs/reference/ft2-glyph_variants.html) as provided by FreeType.jl works or at least returns no error codes when used with the Noto Emoji Font https://github.com/googlefonts/noto-emoji (see example below). However, using it with the .ttf files provided by OpenMoji I could not query any variation selectors at all (FT_Face_GetVariantSelectors(face) returns a null pointer).
As mentioned above and also discussed here https://github.com/hfg-gmuend/openmoji/issues/93 the OpenMoji files seem to be not working perfectly any app. I am still wondering how Firefox is able to render them, given that the ttf files miss the variation selectors. But perhaps they can use the underlying tables directly, because they know the right glyph index already? Wild speculations here ...
Assuming variation selectors would work, there is then the question on how to render the glyphs. FreeType supports rendering to bitmaps and SVGs, the latter requiring an extra dependency that takes care of the rendering itself. From what I read SVGs are superior to bitmaps because they allow arbitrary scaling. Not sure if possible and how much work it would be to set this up from within Julia using Rsvg and FreeType alone (one has to set some callbacks in FreeType, see https://freetype.org/freetype2/docs/reference/ft2-svg_fonts.html)

Experiments
Here are my experiments with the FreeType library. Mainly adding it here for my own reference. Interesting note: the germany flag below is automatically rendered, whereas in my editor I entered it through the unicode sequence \u1f1e9\u1f1ea.
using FreeTypeAbstraction
using FreeType

# Unicode variation sequence methods imported from `FreeType.jl`.
#
# function FT_Face_GetCharVariantIndex(face, charcode, variantSelector)
#     ccall((:FT_Face_GetCharVariantIndex, libfreetype), FT_UInt, (FT_Face, FT_ULong, FT_ULong), face, charcode, variantSelector)
# end
#
# function FT_Face_GetCharVariantIsDefault(face, charcode, variantSelector)
#     ccall((:FT_Face_GetCharVariantIsDefault, libfreetype), FT_Int, (FT_Face, FT_ULong, FT_ULong), face, charcode, variantSelector)
# end
#
# function FT_Face_GetVariantSelectors(face)
#     ccall((:FT_Face_GetVariantSelectors, libfreetype), Ptr{FT_UInt32}, (FT_Face,), face)
# end
#
# function FT_Face_GetVariantsOfChar(face, charcode)
#     ccall((:FT_Face_GetVariantsOfChar, libfreetype), Ptr{FT_UInt32}, (FT_Face, FT_ULong), face, charcode)
# end
#
# function FT_Face_GetCharsOfVariant(face, variantSelector)
#     ccall((:FT_Face_GetCharsOfVariant, libfreetype), Ptr{FT_UInt32}, (FT_Face, FT_ULong), face, variantSelector)
# end

function get_variant_selectors(font::FTFont)
  selectors = UInt32[]
  ptr_selectors = FT_Face_GetVariantSelectors(font)
  ptr_selectors == Ptr{UInt32}() && return selectors
  idx = 1
  v = unsafe_load(ptr_selectors, idx)
  while v != 0
    push!(selectors, v)
    idx += 1
    v = unsafe_load(ptr_selectors, idx)
  end
  return selectors
end

function get_charcodes_of_variant(font::FTFont, variantSelector::UInt32)
  charcodes = UInt32[]
  ptr_charcodes = FT_Face_GetCharsOfVariant(font, variantSelector)
  ptr_charcodes == Ptr{UInt32}() && return charcodes
  idx = 1
  v = unsafe_load(ptr_charcodes, idx)
  while v != 0
    push!(charcodes, v)
    idx += 1
    v = unsafe_load(ptr_charcodes, idx)
  end
  return charcodes
end

function get_variantselectors_of_charcode(font::FTFont, charcode::UInt32)
  selectors = UInt32[]
  ptr_selectors = FT_Face_GetVariantsOfChar(font, charcode)
  ptr_selectors == Ptr{UInt32}() && return selectors
  idx = 1
  v = unsafe_load(ptr_selectors, idx)
  while v != 0
    push!(selectors, v)
    idx += 1
    v = unsafe_load(ptr_selectors, idx)
  end
  return selectors
end

function get_charcode_variantselector_default(font::FTFont, charcode::UInt32, variantSelector::UInt32)
  return FT_Face_GetCharVariantIsDefault(font, charcode, variantSelector)
end

function get_charcode_variantselector_index(font::FTFont, charcode::UInt32, variantSelector::UInt32)
  code = FT_Face_GetCharVariantIndex(font, charcode, variantSelector)
  return code == 0 ? nothing : code
end

# fontname = "/home/florian/.fonts/openmoji/OpenMoji-Black.ttf"
# fontname= "/home/florian/.fonts/openmoji/OpenMoji-Color.ttf"
# fontname= "/tmp/OpenMoji-Color.ttf"
fontname = "/home/florian/.fonts/NotoColorEmoji.ttf"
font = FTFont(fontname)
display(font)

selectors = get_variant_selectors(font)
# println(selectors)
charsofvariant = get_charcodes_of_variant.(Ref(font), selectors)
# println(length.(charsofvariant))
# println.(charsofvariant)
# variantsofchar = get_variantselectors_of_charcode.(Ref(font), first(charsofvariant))

### returns non-sense
# s = first(selectors)
# c = first(first(get_charcodes_of_variant.(Ref(font), selectors)))

emoji_flagde = "🇩🇪"
cp_emoji_flagde = [ convert(UInt32, codepoint(emoji_flagde[i])) for i in eachindex(emoji_flagde) ]
println(cp_emoji_flagde)
# println(cp_emoji_flagde[1] in first(charsofvariant))
# println(cp_emoji_flagde)
# println(s in selectors)
# println(get_charcode_variantselector_index.(Ref(font), cp_emoji_flagde, selectors[1]))

emoji_info = '\U2139'
cu_info = convert(UInt32, emoji_info)
# println(convert(UInt32,emoji_info))
println(cu_info in first(charsofvariant))
vs_glyphindex_info = get_charcode_variantselector_index(font, cu_info, first(selectors))
ft_face = getfield(font, :ft_ptr)
err = FreeType.FT_Load_Glyph(ft_face, vs_glyphindex_info, FreeType.FT_LOAD_NO_SCALE)
display(err)

# summary:
# it appears that glyph loading itself is not implemented in FreeTypeAbstraction,
# alhtough, this sounds wrong because how would people then load all the characters for
# text rendering? Only with FT_Load_Char?
# I think the problem is that the variation sequence methods of FreeType return
# a glyph index in the end, instead of a character code (makes sense since we started
# with a VS character code), but FT_Load_Char expects a character code.

Moving forward, we should settle on using PNGs and/or SVGs for now.
Ideally, I would like to only use one format at all, but from what I understand right now GLMakie prefers PNGs and CairoMakie SVGs, correct?
If it is possible to use PNGs also with CairoMakie, then we should do so for the moment. Reasons are that 1) frankly we have more important features to implement for a release (global slide elements, performance issues, etc.) and 2) we have PNGs already working for GLMakie.

I think that last commit might be unnecessary - CairoMakie should be able to render this as is without any external intervention.  It's only if you want SVG output in vector graphics that you need this kind of overload.

Using only
function CairoMakie.draw_plot(scene::Scene, screen::CairoMakie.CairoScreen, fmttxt::T) where T <: FormattedText

    txt = fmttxt.plots[1]
    CairoMakie.draw_plot(scene, screen, txt)

    if length(fmttxt.plots) > 1
        scttr = fmttxt.plots[2]
        CairoMakie.draw_plot(scene, screen, scttr)
    end
end

gives me the following error:

Stacktrace
```julia
julia> include("examples/mwe.jl")
ERROR: LoadError: MethodError: no method matching draw_marker(::Cairo.CairoContext, ::Matrix{ColorTypes.RGBA{Float32}}, ::Vec{2, Float32}, ::Vec2{Float64}, ::ColorTypes.RGBA
{Float32}, ::Float32, ::Vec2{Float64}, ::Quaternionf)
Closest candidates are:
  draw_marker(::Any, ::Circle, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) at ~/.julia/packages/CairoMakie/gU5me/src/primitives.jl:281
  draw_marker(::Any, ::GeometryBasics.HyperRectangle, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) at ~/.julia/packages/CairoMakie/gU5me/src/primitives.jl:305
  draw_marker(::Any, ::Char, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) at ~/.julia/packages/CairoMakie/gU5me/src/primitives.jl:231
Stacktrace:
  [1] (::CairoMakie.var"#30#31"{Scene, Cairo.CairoContext, typeof(identity), StaticArrays.SMatrix{4, 4, Float32, 16}, StaticArrays.SMatrix{4, 4, Float32, 16}, FreeTypeAbstra
ction.FTFont, Symbol, Symbol})(point::Point{2, Float32}, col::ColorTypes.RGBA{Float32}, markersize::Vec{2, Float32}, strokecolor::ColorTypes.RGBA{Float32}, strokewidth::Floa
t32, m::Matrix{ColorTypes.RGBA{Float32}}, mo::Vec{2, Float32}, rotation::Quaternionf)
    @ CairoMakie ~/.julia/packages/CairoMakie/gU5me/src/primitives.jl:224
  [2] macro expansion
    @ ~/.julia/packages/Makie/bJ9rD/src/utilities/utilities.jl:198 [inlined]
  [3] broadcast_foreach(::CairoMakie.var"#30#31"{Scene, Cairo.CairoContext, typeof(identity), StaticArrays.SMatrix{4, 4, Float32, 16}, StaticArrays.SMatrix{4, 4, Float32, 16
}, FreeTypeAbstraction.FTFont, Symbol, Symbol}, ::Vector{Point{2, Float32}}, ::ColorTypes.RGBA{Float32}, ::Vector{Vec{2, Float32}}, ::ColorTypes.RGBA{Float32}, ::Float32, ::
Vector{Matrix{ColorTypes.RGBA{Float32}}}, ::Vector{Vec{2, Float32}}, ::Quaternionf)
    @ Makie ~/.julia/packages/Makie/bJ9rD/src/utilities/utilities.jl:184
  [4] draw_atomic_scatter(scene::Scene, ctx::Cairo.CairoContext, transfunc::Function, colors::ColorTypes.RGBA{Float32}, markersize::Vector{Vec{2, Float32}}, strokecolor::Col
orTypes.RGBA{Float32}, strokewidth::Float32, marker::Vector{Matrix{ColorTypes.RGBA{Float32}}}, marker_offset::Vector{Vec{2, Float32}}, rotations::Quaternionf, model::StaticA
rrays.SMatrix{4, 4, Float32, 16}, positions::Vector{Point{2, Float32}}, size_model::StaticArrays.SMatrix{4, 4, Float32, 16}, font::FreeTypeAbstraction.FTFont, markerspace::S
ymbol, space::Symbol)
    @ CairoMakie ~/.julia/packages/CairoMakie/gU5me/src/primitives.jl:209
  [5] draw_atomic(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Scatter)
    @ CairoMakie ~/.julia/packages/CairoMakie/gU5me/src/primitives.jl:201
  [6] draw_plot(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Scatter{Tuple{Vector{Point{2, Float32}}}})
    @ CairoMakie ~/.julia/packages/CairoMakie/gU5me/src/infrastructure.jl:251
  [7] draw_plot(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, fmttxt::Combined{MakieSlides.formattedtext, Tuple{Markdown.Paragraph}})
    @ MakieSlides ~/wd/MakieSlides.jl/src/formattedtext.jl:262
  [8] cairo_draw(screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, scene::Scene)
    @ CairoMakie ~/.julia/packages/CairoMakie/gU5me/src/infrastructure.jl:192
  [9] save(name::String, presentation::Presentation; aspect::Tuple{Int64, Int64})
    @ MakieSlides ~/wd/MakieSlides.jl/src/MakieSlides.jl:234
 [10] save(name::String, presentation::Presentation)
    @ MakieSlides ~/wd/MakieSlides.jl/src/MakieSlides.jl:219
 [11] top-level scope
    @ ~/wd/MakieSlides.jl/examples/mwe.jl:159
 [12] include(fname::String)
    @ Base.MainInclude ./client.jl:451
 [13] top-level scope
    @ REPL[20]:1
in expression starting at /home/florian/wd/MakieSlides.jl/examples/mwe.jl:159
```

I thought that was the problem you mentioned here https://github.com/fatteneder/MakieSlides.jl/pull/15#issuecomment-1137875735.
But now that you say it, it might be enough to just implement the draw_marker method for Matrix{RGBAf} overload.

Yeah that's what would have to happen.  We could implement it here for now and upstream it to CairoMakie...see the implementation of the fast path in the heatmap draw_atomic for how you need to do it.

Got it to work.
Only thing is that I now convert the Matrix{RGBAf} pixels first to Matrix{ARGB32} and then create a CairoSurface with it.
I tried to do avoid this by using Cairo.move_to and Cairo.set_source_rgba but could not get it work. Do you know of a more efficient solution?

AFAIK that solution is optimal since Cairo wants UInt32 color.  It would have been converted either way.
Overall it looks good to me.  Thanks for pushing it this far!  I am on vacation now but feel free to upstream the method you implemented to CairoMakie.


Build(deps): Bump @patternfly/react-table from 5.1.1 to 5.1.2 (#5429)

Pull request opened by the merge tool on behalf of #5429

Merged in 09d02e470a707fc0d919adbf17a50488878a050c


Declarative bulk sub with policy def nil fix

Description
This change in just to pin to 2 latest dapr/dapr changes, for which PRs are yet to be merged in dapr/dapr.
Without https://github.com/dapr/dapr/pull/5725 specifically, few Cert tests are failing.
2 dapr/dapr PRs:
https://github.com/dapr/dapr/pull/5725
https://github.com/dapr/dapr/pull/5662
In case above mentioned PRs are merged in dapr runtime before this one, this PR need not be merged. This one can then be closed and I will open separate PR referring to latest dapr master rather.
But, in the meantime, this PR can be merged in contrib to make cert tests pass.
https://github.com/DeepanshuA/components-contrib/actions/runs/3892093861/jobs/6643111290
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

/ok-to-test

Hi @DeepanshuA I pushed a commit with a fix for the issue, however it won't work until https://github.com/dapr/dapr/pull/5743 is merged (and you'll have to merge it into your fork)

Closing as it is not required anymore.


Task: replace the default branch of the repository

This is something many organizations (including GitHub) have been making over the last year or so in order to be a more inclusive place.
Specifically moving away from master which has many harmful associations, and to main which is much more neutral.
For GitHub specifics: https://github.com/github/renaming
For some other industry examples: https://www.zdnet.com/article/ibm-microsoft-staff-rally-to-remove-racially-insensitive-language-from-products/
Affected Functionality
This should not impact any actual code behavior.

Done! Thanks for bringing attention to this :)


Improve docs for Training Operator 1.8

On the recent AutoML and Training WG call we discuss how we can improve the documentation for Training Operator and onboarding for new contributors.
We identify several action items that we can work before the release:

[ ] Add section Why using Kubeflow Training Operator ? Where we can explain user stories and how Training Operator can manage distributed training for various ML framework in a single place. So ML Engineers can easily train their ML models using unify operator.
[x] Add detailed architecture diagram for Training Operator in addition to this one.
[ ] Identify which docs should live on GitHub  and which on Kubeflow Website..
[ ] Automate SDK doc generation for TrainingClient, ref issue in Katib repo: https://github.com/kubeflow/katib/issues/2081

Please let me know if we should add something else @kubeflow/release-managers @kubeflow/wg-training-leads @tenzen-y @shashank-iitbhu.

Thank you for raising this great issue!
Describing all features in the doc would be great.
For example, we don't have any doc for TFJob with enableDynamicWorker.
So, as a first iteration, we should identify which feature we don't have any document.

cc @andreeamun

@andreyvelich @tenzen-y As discussed, I looked into the training operator docs and I want to propose an initial refactoring to better align with best practices in how technical docs are organized.
A little premise to my porposal: in general you want tech docs to be organized in macro sections that roughly address

"Overview/Installation/GettingStarted"
"HowTOs/UserGuides"
"Reference" (Anything from autogen API docs, to arch diagrams, implementation details, etc.)
"Explanation" (anything that concerns explaining in free form why the project took some decisions, or discussions ecosystem, integrations, etc.

In our case we may also want to consider a "Developer" section, particularly useful for OSS projects.
Now, I can see clear ways to improve the current doc structure to better align with that model. Here are some suggestions:

Split "Overview" into

"Overview" - trimmed down to only contain an intro to the project, how it fits within the ecosystem, who should care and why
"Getting Started" - a (one or two) simple example to experiment with the training operator. No explanation required, something that just works end to end
"Installation" - particularly important for those who want to install without Kubeflow Platform
Move the Architecture part to a new section "Reference"

Move "Job Scheduling" under a new section called "User Guides", with the name "Advanced Scheduling". The main page provides an overview and then we have two child pages respectively called "Volvano" and "Scheduler Plugins"
Revisit each framework page with the following process:

Create a “<framework_name> Training>” under “User Guides” -> all the “how do I do something” goes here
Create a “<framework_name>” under “Reference” -> all the CRD reference + implementation details go here.

This doesn't have to happen all in one PR, that's why I split into sequential steps. Let me know what you think. We can start iterating on some of these points in draft PRs and I am happy to get this started.

Thank you so much for this @StefanoFioravanzo, I really like your ideas.
A few questions:

Should we order Installation before Getting Started page ? Like in Model Registry docs.
Do we want to separate guides between Users, Administrators, and Developers like in KServe docs or Jupyter Docs or we can do it in the next iteration ?

For example, initially we can move all guides to the User Guides.

all the CRD reference + implementation details go here.

We don't have CRD reference right now, how should we split these sections?
@kubeflow/wg-training-leads what are your thoughts ?

@andreyvelich

Should we order Installation before Getting Started page ?

Yes let's keep installation before getting started. It makes sense for folks who need to go through the installation before getting their hands on.

Do we want to separate guides between Users, Administrators, and Developers

I am in favour of having additional grouping based on the persona. But, as a first step, I recommend limiting the amount of change. So, as you suggest, let's move all how-tos/guides to a generic "user guides" section. Once we go through this initial restructuring exercise, we can further refine.

We don't have CRD reference right now, how should we split these sections?

I think we do. I think I saw some generic CRD reference for some of the frameworks. If we don't have enough details, we can still add a "TBD" under a framework's reference/API guide.

@StefanoFioravanzo I think, we have only this one: https://github.com/kubeflow/training-operator/blob/master/docs/api/kubeflow.org_v1_generated.asciidoc, but I am not sure if we keep this doc updated.
Isn't it @kubeflow/wg-training-leads ?

@andreyvelich since we merged https://github.com/kubeflow/website/pull/3719, can we revisit the first comment of this issue? What do we want to address for training operator 1.8 (Kubeflow 1.9)?

I think, as part of Kubeflow 1.9 we completed all items.
Let me close this issue.


Fix ArrowWriter closes stream at exit

Current implementation of ArrowWriter does not properly release the stream resource (by closing it) if its finalize() method is not called and/or an Exception is raised before/during the call to its finalize() method.
Therefore, ArrowWriter should be used as a context manager that properly closes its stream resource at exit.

Hopefully this gives a better experience on windows on which it's super important to close stuff.

Exactly! On Windows, you got:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process

when trying to access the unclosed stream file, e.g. by with incomplete_dir(self._cache_dir) as tmp_data_dir.
The reason is: https://docs.python.org/3/library/os.html#os.remove

On Windows, attempting to remove a file that is in use causes an exception to be raised; on Unix, the directory entry is removed but the storage allocated to the file is not made available until the original file is no longer in use.

The test passes on my windows. This was probably a circleCI issue. I re-ran the circleCI tests

NICE! It passed!


ObjectPattern to OPN

Override toString functions of the Matchable and ArrayMatchable components to return the corresponding OPN serialization of the pattern they represent.
From https://github.com/xaviervia/sydney/issues/8

Done in 798c53e


Some suggestions

Hi @mrsinham - great you're using my Jennifer project! I had a few suggestions on how you could re-arrange the code...

Uses PackageComment to add a comment above the package line.
Uses BlockFunc and Do to inline logic instead of building []Code slices
General re-arrangement to de-couple hasUnexportedField from doOne
Uses Dot() instead of Op(".").Id()
Corrected minor mistakes in writeType and write

A lot of this is totally optional - I'm not really sure in this instance if it makes the code much clearer, but I try to use the Do and xxxFunc functions to inline logic as much as possible rather than pre-building lists.
Feel free to take as much or as little as you like from this PR!

Hello, first of all, thanks for the time you took on this project that is still under development :+1: !
I'm still learning ast / type / jennifer and this tool is my support to learn them. With your PR it helps a lot :)
I'm currently reviewing the changes but LGTM until now :)
And finally I think jennifer is a great project, far less ugly than using templates.. especially on imports management.


Setting setAutoDeriveColumnNames(true) in some kind of "global" level

Following the idea of having some kind of global configuration (issue #157), it would be also nice to set  setAutoDeriveColumnNames on a more broad configuration (sql2o instance?).
Since DBs usually follows a naming convention (snake case, camel case, etc.), it is pretty boring (and error prone) to keep setting this on every createQuery.
Regards.

I created a merge request for this feature. Please see here:
https://github.com/aaberg/sql2o/pull/321


Linter server stuck at 100% CPU usage

Currently, the pylint process is stuck at 100% CPU usage, i.e.,
I'm not sure how to reproduce this, so perhaps you might just have to close this, but I thought I'd raise in case you have some ideas.
$ py-spy dump --pid 54576
Process 54576: C:\Users\james.duley\AppData\Local\Programs\Python\Python38\python.exe c:\Users\james.duley\.vscode\extensions\ms-python.pylint-2022.1.2164271317-dev\bundled\linter\linter_server.py
Python v3.8.10 (C:\Users\james.duley\AppData\Local\Programs\Python\Python38\python.exe)

Thread 11516 (active): "MainThread"
    _get_settings_by_document (linter\linter_server.py:110)
    _lint_and_publish_diagnostics (linter\linter_server.py:131)
    did_open (linter\linter_server.py:213)
    _execute_notification (pygls\protocol.py:223)
    decorator (pygls\protocol.py:77)
    _execute_notification (pygls\protocol.py:223)
    _handle_notification (pygls\protocol.py:316)
    _procedure_handler (pygls\protocol.py:368)
    data_received (pygls\protocol.py:455)
    aio_readline (pygls\server.py:75)
    _run (asyncio\events.py:81)
    _run_once (asyncio\base_events.py:1859)
    run_forever (asyncio\base_events.py:570)
    run_forever (asyncio\windows_events.py:316)
    run_until_complete (asyncio\base_events.py:603)
    start_io (pygls\server.py:204)
    <module> (linter\linter_server.py:231)
Thread 17852 (active): "ThreadPoolExecutor-0_0"
    _worker (concurrent\futures\thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:932)
    _bootstrap (threading.py:890)
Thread 16100 (active): "ThreadPoolExecutor-0_1"
    _worker (concurrent\futures\thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:932)
    _bootstrap (threading.py:890)

I checked the file and seems I have an older version where this line is while True: .
I'll update and try again.

Yeah, that fixed it.


ToothPick and the Java Platform Module System

Are you guys planning on supporting the Java Platform Module System?
At the moment I get various errors when I attempt to add toothpick to my module-info.java file.
If I add,
requires toothpick;
requires toothpick.runtime;
requires.toothpick.compiler;
I get
module-info.java:[1] error: module coolproject reads package toothpick from both toothpick and toothpick.runtime
However, if I remove any of the requires, the project doesn't compile as it can't find required classes.

Hi there, TP packages have a dependency system. You can look at the poms of
the various artifacts. TP-runtime already depends on TP, you might be able
to declare only TP-runtime as required. The annotation processor
(TP-compiler) will still be required.
Note that both maintainers are primarily Android devs and we are not so
familiar with JPMS. We don't use java features above java 8.. and now the
whole Android platform is moving to kotlin. We are gonna do even less pure
java.
We would be glad to accept PRs that would make it easier to use JPMS.
Though, I feel that I should also share our best practices. DI is rarely
shipped in a library, IOC is usually done manually in libraries. And if you
ship TP in a lib, don't use the default scope, you would definitely prevent
your users to use TP properly. For this reason, among others, it is
advisable not to use any DI lib in a module / lib you share.
On Mon, Nov 18, 2019, 03:48 jasons2000<EMAIL_ADDRESS>wrote:

Are you guys planning on supporting the Java Platform Module System?
At the moment I get various errors when I attempt to add toothpick to my
module-info.java file.
If I add,
requires toothpick;
requires toothpick.runtime;
requires.toothpick.compiler;
I get
module-info.java:[1] error: module coolproject reads package toothpick
from both toothpick and toothpick.runtime
However, if I remove any of the requires the project doesn't compile as it
can't find required classes.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/stephanenicolas/toothpick/issues/385?email_source=notifications&email_token=AAN7PXP6C3NWD25R7HFWLCDQUJ6HDA5CNFSM4JOSHF4KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H2ANNNQ,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAN7PXKPLKQJ2DXLPFIPF3TQUJ6HDANCNFSM4JOSHF4A
.


Set up CI with Azure Pipelines - merge with yml

[skip ci]

Hi Microsoft,
@microsoft-github-policy-service agree


Feature/enhanced palworld settings

Context

Providing convenience for modifying ini files (presented in a visible json format, with hints and setting ranges)
Managing descriptions in multiple languages
(Planned) Simplifying configuration changes and restarts by implementing a basic admin server
(Planned) Managing server backup schedules
(Planned) Detecting memory leaks and managing automatic restarts
(Planned) Managing periodic server message sending features

Choices

Please feel free to decline if this is not desired.
I developed this for personal use and sharing, but sharing it as it takes too much time to develop everything on my own.

Test instructions

So far, testing has only been conducted locally, and Docker testing is planned for this week to update it soon (1d ~ 3d)
I tried to remove as much Korean as possible, but due to it being 03:33 AM Korean time, some might have been missed as I need to leave for work.

Checklist before requesting a review

[x] I have performed a self-review of my code
[ ] I've added documentation about this change to the README.
[x] I've not introduced breaking changes.

Hi @NERDHEAD-lab, first of all I want to thank you for taking the time to create this PR.
However I do believe this is a much too complex change to merge into the codebase. I do not have the knowledge/time to support a Python script for advanced config generation.
I do however appreciate the time you took writing this and encourage you to open your own repository building on top of my repository

Hi @NERDHEAD-lab, first of all I want to thank you for taking the time to create this PR. However I do believe this is a much too complex change to merge into the codebase. I do not have the knowledge/time to support a Python script for advanced config generation. I do however appreciate the time you took writing this and encourage you to open your own repository building on top of my repository

Thx for comment @thijsvanloef
Given the extensive modifications required to integrate ini parsing, decryption, and JSON provisioning capabilities directly,
I'm planning to address this by deploying a separate Docker container. This container will leverage the rcon port and mounted volumes for file manipulation, thereby reducing coupling.
Apologies for the delayed acknowledgment, and I appreciate your patience and review.


scaffolder action fetch:template does not preserve file permissions

When creating a template using this action file permissions in github are not kept. Particularly, executable files are just read write when the new repository is created.
Expected Behavior
Permissions in the template's git repository match the output repository

Current Behavior
Permissions are not preserved when creating a project from a template

Possible Solution
I was gonna create a pull request but I need advice on how to write the tests. If this is a possible solution, how best to test this?
https://github.com/twonds/backstage/commit/652a2e9276e0e359aaaf7339fd4dc02510a7169c
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts
index 425623d15..13dfb2486 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts
@@ -262,8 +262,9 @@ export function createFetchTemplateAction(options: {
             );
             await fs.copy(inputFilePath, outputPath);
           } else {
+            const statsObj = await fs.stat(inputFilePath);
             ctx.logger.info(
-              `Writing file ${location} to template output path.`,
+              `Writing file ${location} to template output path. mode: ${statsObj.mode}`,
             );
             const inputFileContents = await fs.readFile(inputFilePath, 'utf-8');
             await fs.outputFile(
@@ -272,6 +273,7 @@ export function createFetchTemplateAction(options: {
                 ? templater.renderString(inputFileContents, context)
                 : inputFileContents,
             );
+            await fs.chmod(outputPath, statsObj.mode);
           }
         }
       }

Steps to Reproduce

Create template repository with executable files that are not binary
Create project from this template in backstage using fetch:template action
Newly created project's files do not have executable files

Context
If a project wants to have a grade wrapper or some script wrapper that must be executable then the template will fail to create it.

Your Environment
The docker image in backstage backend and macos but I believe this happens in any environment.

Yep, as mentioned on discord, this sounds like it makes a lot of sense. I don't know if there might be any ill effects on windows or other non-posix systems; it may be the case that the stat+chmod should be run in a best-effort try-catch that just silently ignores issues? I am not 100% sure honestly, just thinking out loud

Thanks for flagging this and offering to contribute the fix! The tests for fetch:template are written using mock-fs, which provides a mock file system that the action reads from during the tests. It looks like it's possible to include files with custom flags using mock.file.
It also looks like it should be possible to set the permissions when running outputFile by passing a custom options object, so maybe worth exploring that before adding a separate call. See the fs-extra docs.

Fix from #7051 is now released, thank you @twonds!


WIP-Deployment cleanup continuation

Closing as work was done by other PRs - please re-open if anything is still missing


billing: Reflect plan_type on /plans.

The one thing remaining here is that "Buy Premium" on the root domain should do something better (Vishnu has some work on it, but it's not in this PR).
Would be great to get a careful review of the (few lines of) changes to home.py and the CSS.

Merging this, but leaving it open since it would still be great to get a post-merge review of the changes to home.py and the CSS.

Closing, thanks @rishig!