Added support for Swrve (http://www.swrve.com/)

@orta I updated the PR to avoid the NSMutableDictionary while still sanely handling the cases of userID and/or email being nil.

:+1: Cool, thanks!

Thanks for the quick review+merge. Would it be possible to get a version bump and republish the cocoapod?

not free till next week to do that


React Custom UI - Custom filter form with inputs, component state not updating

IMPORTANT

[X] My question is related to the samples and content within this repository. For all other issues, open a ticket with Esri Technical Support or post your question in the community forum.
[X] I have checked for existing issues to avoid duplicates. If someone has already opened an issue for what you are experiencing, please add a 👍 reaction and comment as necessary to the existing issue instead of creating a new one. You can also refer to this repo's troubleshooting guide for hints and suggestions.

Actual behavior
I've modified the custom component shown in the custom-ui example (react with vite) as a base. I've added a single text input and a single button input. When I set the state of the text input on change, this works. However, when I click the button input to clear/reset the input state to it's default (""), the custom component seemingly doesn't re-render, and the state of the text input remains.
Expected behavior
I would expect the event handler of the button click to clear/reset the state as defined below, and clear the text input:
import { useState, useEffect } from "react";
import { watch } from "@arcgis/core/core/reactiveUtils";
import "./center-component.css";
/**
 * React component that can be used in an ArcGIS JS SDK application.
 * This component dynamically displays the center of the map extent
 * @param {*} view an instance of a `Mapview` or `SceneView`
 * @param {string} id - The `id` of the components's parent HTML div element
 * @returns The components's HTML div
 */
const CenterComponent = ({ view, id }) => {
  const [center, setCenter] = useState(null);
  const [data, setData] = useState("");

  useEffect(() => {}, [data]);

  useEffect(() => {
    // Watch for changes on the View's Extent
    let handle = watch(
      () => view?.view?.extent,
      (value) => {
        const { latitude, longitude } = value.center;
        // Update the component's display
        setCenter(`${longitude.toFixed(4)}, ${latitude.toFixed(4)}`);
      }
    );
    // Clean up any handles or event listeners
    // created in useEffect method
    return () => handle.remove();
  }, [view]);

  const handleClearData = () => {
    setData("");
  };

  return (

      Center: {center}
      <input
        type="text"
        placeholder="data"
        onChange={(e) => setData(e.target.value)}
      />
      <input type="button" onClick={handleClearData} value="Clear data" />

  );
};

export default CenterComponent;

Reproduction sample
https://github.com/david-sunsyte/custom-ui-sample
Reproduction steps

Enter data in the text input in the lower right hand corner of the screen.
Click the button labeled 'Clear data'.

Reproduction browser
Version 128.0.6613.36 (Official Build) (64-bit)
Operating System (check https://whatsmyos.com)
Your OS is Windows 10* 64-bit

I should add that the overall problem I'm trying to solve for is to create a custom filter form, in which I can add a series of inputs, for example, Acreage minimum and Acreage maximum, and filter my map view based on the criteria.
So, if you could provide feedback not only on the issue listed above regarding the center component not re-rendering, but also your thoughts on what I'm proposing regarding a filter form, and if you feel there's a better way to achieve this.

This is more of a React usage question, not related the JS SDK, but I can help a bit here.
Your input is not being cleared because the input state is not reflective the 	useState property you have defined. So it's not going to clear because nothing is hooked up.
If you update your snippet like below, it will work. (you repo link does not work, may be private).

Sample code
import { useState, useEffect } from 'react';
import { watch } from '@arcgis/core/core/reactiveUtils';
import './center-component.css';

const CenterComponent = ({ view, id }) => {
  const [center, setCenter] = useState(null);
  const [data, setData] = useState("");

  useEffect(() => {
    console.log("data has changed", data);
  }, [data]);

  useEffect(() => {
    let handle = watch(
      () => view?.view?.extent,
      (value) => {
        const { latitude, longitude } = value.center;
        setCenter(`${longitude.toFixed(4)}, ${latitude.toFixed(4)}`);
      }
    );
    return () => handle.remove();
  }, [view]);

  const handleClearData = () => {
    setData("");
  };

  return (

      Center: {center}
      <input
        type="text"
        placeholder="data"
        value={data}
        onChange={(e) => setData(e.target.value)}
      />
      <input type="button" onClick={handleClearData} value="Clear data" />

  );
};

export default CenterComponent;

Ugghhh, @odoe, I literally totally spaced that....total rookie move/walk of shame for me :( Thank you!! We've actually met and worked together a few times at the dev summit so much appreciated as always!
Regarding the second part of my post, how would you go about creating a 'filter form' in this capacity? I initially set off to have this filter form composed similarly to the CenterComponent example, in which my component would be added to the view ui directly.
I'm now tossing around just adding a custom button to the view ui, which would launch my react component by itself.
Any thoughts/feedback/preference?

@david-sunsyte personally, I would keep it as simple as possible.

Will do, thank you! What I'm facing with this path is this...'initialize' below runs twice, which creates two button click listeners, and in fact two view objects.
const filterExpandButton = document.createElement("calcite-button");

view.ui.add(filterExpandButton, "top-right");

export const initialize = async (container, openFilter) => {
  view.container = container;

  filterExpandButton.addEventListener("click", openFilter);
};

I've seen in one of your other example repos (arcgis-calcite-react) where you seem to account for this by destroying the first view object that get's created when initialize runs the first time.
export async function init(container: HTMLDivElement) {
  if (app.view) {
    app.view.destroy();
  }

  const map = new ArcGISMap({
    basemap: "topo-vector",
  });

  const view = new MapView({
    map,
    container,
    center: [-118, 34],
    zoom: 8,
  });

  app.view = view;

  return cleanup;
}

How could I got about only creating a single click event listener in the same or similar fashion?

I should add that 'openFilter' is a function that's passed to my map.js from my CustomMapView component.
const openFilter = () => setOpen(!open);

 const loadMap = async () => {
   const { initialize } = await import("./utils/map");
   await initialize(mapDiv.current, openFilter);
 };

And although similar to how you approached destroying the first view that gets created, this just feels odd...
export const initialize = async (container, openFilter) => {
  view.container = container;

  if (filterExpandButton) {
    filterExpandButton.removeEventListener("click", openFilter);
  }
  filterExpandButton.addEventListener("click", openFilter);
};


Bump versions

Don't want before this remove IsA<Buildable> constraint in Builder::get_object ?

Or its just forgotten bump after 0.7 publishing?

The goal is to make the version different from crates.io to avoid that kind of confusion, not to follow semver in the master branch (that wouldn't work too well anyway).

The examples build in travis hits the limitation of cargo path overrides but the gtk part seems to build cleanly.

IMHO no way update gtk system versions without broken builds, so why just not merge all modules and update examples last for real check?

I'll take the liberty to merge this because the rest of PRs were approved and keeping this one open will just break someone's build.

Absolutely, you did well. Sorry, I didn't see it... :-/


Use yii-auth (or similar) instead of yii-rights

Yii-rights does not follow the patttern of separation of concerns and does not allow one to choose auth manager, amongst other things. Also, it is rather antiquated and more or less replaced by https://github.com/Crisu83/yii-auth
I'd like to see yii-auth in Phundament, but until Phundament uses yiistrap maybe we can use http://git.yiisoft.com/extension/authbooster/ meanwhile?

closing due to no activity


I can set the priority for an external task

Implemented in bpmn-io/bpmn-js-properties-panel#175

Got fixed via bpmn-io/bpmn-js-properties-panel#175.

Can this ticket be closed?


New plug-in to generate SnakeYAML helper code

To help SnakeYAML map between YAML (or JSON) and POJOs, SnakeYAML allows developers to write helper code that provides information that SnakeYAML cannot gather from the POJOs at runtime...such as parameterized types of collections and which classes implement the interfaces of interest. These take the form of SnakeYAML TypeDescription instances.
For OpenAPI, there are many POJO interfaces, so rather than hand-write the helper code (and hope we covered all the classes and did so correctly or automatically check the hand-written code), this plug-in generates the helper code.
The information the helper code needs to provide is available only from the Java source, so the plug-in uses the Java compiler API to build the in-memory data for the interfaces and classes and gather the information it needs from that. It then uses a mustache template to generate a single helper class that defines the TypeDescription objects for the OpenAPI interfaces so SnakeYAML can fully convert between YAML and the POJOs.
The plug-in is designed to work with any set of POJOs to be handled by SnakeYAML, not just OpenAPI. That said, there are a few sections in the mojo class commented out that will be moved to the Helidon OpenAPI module eventually but are kept (commented) for now so I don't forget about them.
Also, I had to copy MavenPluginHelper and TestHelper into this plugin because we don't have a way of sharing them across plug-ins (yet?).
The mojo configuration is pretty simple:

where are the interface Java files
where are the implementation Java files
where should the generated helper class be written

Once the plug-in is published, I will modify the Helidon OpenAPI build to:

use the depencency plug-in to extract the OpenAPI interface classes into a temporary build directory
do the same for the OpenAPI implementation classes
invoke the plug-in to analyze those and generate the helper class
include the generated helper class into the module JAR so the helper is used at runtime during SnakeYAML parsing
at last exclude the Jackson dependencies that are pulled along with our dependency on the SmallRye OpenAPI
impl (which we layer upon).

Here is example generated code. This one comes from the unit test in the plug-in build itself that uses only a few classes.
/*
 * Copyright (c) 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
package io.helidon.openapi;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import io.smallrye.openapi.api.models.TopLevelImpl;

import org.eclipse.microprofile.openapi.models.TopLevel;

import org.yaml.snakeyaml.TypeDescription;

class Types {

    private final Map<Class<?>, TypeDescription> types = new HashMap<>();

    static Types create() {
        return new Types();
    }

    Set<Map.Entry<Class<?>, TypeDescription>> entrySet() {
        return types.entrySet();
    }

    Set<Class<?>> keySet() {
        return types.keySet();
    }

    boolean containsKey(Class<?> type) {
        return types.containsKey(type);
    }

    TypeDescription get(Class<?> clazz) {
        return types.get(clazz);
    }

    private Types() {
        TypeDescription td_TopLevel = ExpandedTypeDescription.create(TopLevel.class, TopLevelImpl.class);
        td_TopLevel.addRef();
        td_TopLevel.addPropertyParameters("names", String.class);
        td_TopLevel.addPropertyParameters("stuffMap", String.class, Stuff.class);
        types.put(td_TopLevel.getType(), td_TopLevel);

    }
}

The caller (the Helidon OpenAPI module specifically but any other consumer of the plug-in) works with the Map created in the Parser class which maps the POJO type (the type to be mapped to/from JSON/YAML) to the SnakeYAML TypeDescription that the plug-in prepared for that type.


SoftDeletes "createOrRestore" macro not recognised

Larastan Version: 2.8.1
--level used: 2

Description
Calling the createOrRestore macro on an Eloquent Builder for a MorphOne relationship (whose child model implements SoftDeletes) throws errors for each model with the relationship. For example:
------ ------------------------------------------------------------------------------------------------------------------------
  Line   Models/Traits/HasIdentifier.php (in context of class App\Auth\User)
 ------ ------------------------------------------------------------------------------------------------------------------------
  92     Call to an undefined method Illuminate\Database\Eloquent\Relations\MorphOne<App\Models\Identifier>::createOrRestore().
         ✏  Models/Traits/HasIdentifier.php
 ------ ------------------------------------------------------------------------------------------------------------------------

Other SoftDeletes macros like withTrashed() etc. work as expected.
Laravel code where the issue was found
Example MorphOne relationship, which correctly returns an Identifier model withTrashed():
/** The Identifier relationship for this Model. */
public function identifier(): MorphOne
{
    return $this->morphOne(Identifier::class, 'identifiable')->withTrashed();
}

Calling the createOrRestore macro on the identifier relationship works as expected in the codebase:
$this->identifier()->createOrRestore([
    'identifiable_type' => $this->getMorphClass(),
    'identifiable_id'   => $this->getKey(),
]);

But throws the error above in Larastan.

Does the Identifer method have the correct generics?

Does the identifier method have the correct generics?
https://github.com/larastan/larastan/blob/be5870665785bad22ac5701b6527d34720a1163d/stubs/common/MorphOne.stub#L5-L9

From the error message it looks like it does. Even it doesn't have Larastan is able to handle that automatically.
The issue is that support for SoftDeleta macros are handled in a special case in Larastan. As far as I can remember, there is no logic to recognize them automatically like all the other macros.

I noticed that createOrRestore was only added to Laravel 5 months ago — perhaps the special case exception just hasn't made its way into Larastan yet?


[WIP] perf: Refactor underlying buffers for branchless access

This PR refactors the underlying InlineString and BoxString structs in a major way to allow for branch-less string accesses. It also renames these structs to InlineBuffer and HeapBuffer, treating these types strictly as "buffers". We also move string operations into Repr (e.g. pushing and popping), which de-dupes code.

Thanks for the review @NobodyXu! I'll update the PR soon with the feedback :)


QC-related question

Hi Jordan,
Thanks for providing the QC folder and I am wondering how I should evaluate it. Most of the QC files are self-explanatory, but some are harder to interpret. For example, "from-T1w_to-CITI168_regqc.png", how should I evaluate the registration between T1w data and the CITI template? I assume that the red contours should separate different tissue types, but with these many lines over the brain, it is a bit hard to tell. Would you say the registration is good or bad?

It would be nice to have some examples of what an ideal run looks like, e.g.,  https://github.com/edickie/ciftify/tree/master/docs/demo/qc_fmri
Also, for the unetf3d_dice.tsv, is there a range of dice index that we should expect from good segmentation? Like above 0.8 is good, below 0.7 is unacceptable?
Thanks,
Oliver

Great question! It seems we forgot to cover this in the Documentation, I'll keep this issue open until we can add a section there discussing this.
The registration to CITI168 is one possible source of failure in the pipeline, but I think we have it tuned well now so it almost never fails. Ideally, the red lines should perfectly overlay the different tissue boundaries in the image (e.g. skull, pial-grey-white-csf transitions, etc). Since this is a linear registration, the sulcal/gyral patterns don't perfectly line up, but we can see its overall correct. This registration is really only used to generate a bounding box and crop around the left and right hippocampi, so as long as its not badly offset then this works well, and there's certainly nothing to worry about in your case.
As for the Dice scores, a range of 0.7-0.9 is good. It will never be close to 1.0, and closer isn't necessarily better, we just want it to be >0.7.
Explanation:
When hippunfold fails, it tends to be a gross error in the UNet tissue segmentation (eg. sometimes includes large swaths of collateral sulcus, or a large chunk of hippocampus is not segmented at all). These are "catastrophic" failures, which we are trying to catch here. This dice score compares to a less precise but more conventional approach to get a whole hippocampus segmentation - nonlinear registration to a template (similar to FSL's hippocampal segmentation method). We expect the less precise to method to roughly (eg. 0.7-0.9 dice) overlap, but it should not perfectly overlap since UNet will always pick out more details (or fail catastrophically). A good practice for a large number of subjects is to simply automatically discard any subjects with a Dice <0.7 (this is typically around 1% of subjects).
I hope that helps! And I'll try to add this to the Documentation soon

Thank you so much! This is very helpful!
Oliver

Finally got to addressing this here: https://github.com/khanlab/hippunfold/pull/279


App crashes after re-entering a chat channel

To reproduce:

Open App
Go to a course (e.g, ITP)
Go to "Messages"
Click on a text channel (e.g. private channel)
Swip left/ leave channel
Click on a different text channel
The app crashes so that you see the home screen of your iPhone

Which version of the app are you experiencing this issue on? You can see the version number in iOS Settings > General > iPhone Storage > Artemis.
If this is version 1.2.0 or below, please check whether updating the app resolves the issue :)


new version of Ubooquity

The new version of Ubooquity (> 2.0) seems to have different parameters
https://github.com/htpcBeginner/AtoMiC-ToolKit/blob/master/ubooquity/ubooquity.service#L8
should be
ExecStart=/usr/bin/java -jar Ubooquity.jar -headless -remoteadmin

Also I think that the /opt/ubooquity folder needs to be wiped out before the update.
Thanks for an amazing tool though

Thanks for bringing this to my attention.
I've changed over the Execstart line for now as a quick win and will investigate the folder wipe as well later.

Also note when upgrading from 1.X to 2.X the admin port moves to 2203/admin. This fixes the "You are not authorized to access any files on this server" error.
I bashed my head against the wall for a few weeks over this!

Haha. Thanks for he Atomic guide, first of all! Working through it now with Ubooquity. Spent a bit of time trying to figure out Ubooquity/admin. The comment from thegoat saved me: port 2203 vs. 2202 (as it seemed to have been in previous versions?).

Hi thanks again for bringing this to my attention. I've puts some fixes in and hopefully made it slightly clearer there's 2 ports to use. I've also made some fixes around backups and a couple of other access detail fixes as the config file structure changed. I'm gonna leave the fact it needs a reinstall if you update from a lower version as its been a while now since that breaking change they made was put in. I also don't want to wipe it every go when most of the time we don't need to.
If anyone has anymore issues or suggestions just let me know and i'll be happy to help.


EXDEV error when attachmentStorage is set to local

Hey there,
I am not sure if this particular query is related to node.js or Linux in general. I appear to be having an issue where the bot crashes when a message includes an attachment:
  errno: -18,
  code: 'EXDEV',
  syscall: 'rename',
  path: '/tmp/tmp-23215ceiMrCssHqG0.tmp',
  dest:
   '/home/discord/modmail/src/data/../../attachments/573386030309179402' }
Error: EXDEV: cross-device link not permitted, rename '/tmp/tmp-23215ceiMrCssHqG0.tmp' -> '/home/discord/modmail/src/data/../../attachments/573386030309179402'

I found out that that the code related to tmp is found in /src/data/attachments.js. However, I am not sure if it would be wise to alter the code to meet the solutions I found on Google. The reason why I say this is because the error does not appear at all on my second Linux system, so I am certain this has something to do with my system.
While changing attachmentStorage to discord rectifies this issue, I prefer attachments being stored locally.
Any solution would be appreciated. Thank you!

Hmm, seems to be an issue when the tmp folder is on a different drive than the bot itself. I'll look into pushing a fix for this soon!

This should be fixed in v2.28.0.


Defender export provider inadvertently downloads user data when retrieving a count of users without advanced auditing

💡 Summary
Recently we noticed that when the tenant size becomes larger (e.g. 20,000 users) the Defender provider takes significantly longer to execute than previously observed and that prompted my code review which resulted in this issue.
The Defender export provider contains code with calls the server-side API associated with Get-MgBetaUser using a filter to get a count of users that do not have the advanced auditing feature enabled. The way the code is structured, the only piece of data that ends up being used is a result count value which is passed to the Rego policy checks. I manually ran the cmdlet with the same parameters used in the code against a test tenant and noticed that it not only provides data in the count variable, but the cmdlet also returns a dataset of all the users that match the filter with a comprehensive set of properties in Powershell objects. This leads me to believe that for large tenants, particularly ones that have a lot of users that are NOT assigned the advanced audit feature, this code may take some time to complete because it is downloading the dataset from the server. It could also be the case that downloading the data is fast and the query simply takes a long time to complete on the server side so that should be investigated.
I think this should be investigated and anything that we can do to improve the performance of this policy check for larger tenants should be considered. This is especially pertinent because many large tenants might not have the advanced audit feature turned on for a wide subset of users.
Here is the code that performs the count against the server using a Filter parameter.

Observe below when I ran the same command manually against a test tenant that it returns the full dataset of matching users and their properties. Even though we are not using this information in the code because the cmdlet is being piped to Out-Null, the data is still being downloaded which could take time, not to mention a Powershell object is being created for every downloaded user with a host of properties in RAM.
Get-MgBetaUser -Filter "not assignedPlans/any(a:a/servicePlanId eq 2f442157-a11c-46b9-ae5b-6e39ff4e5849 and a/capabilityStatus eq 'Enabled')" -Count UsersWithoutAdvancedAuditCount -ConsistencyLevel eventual -All

Each downloaded user gets its own Powershell object each containing 128 property keys and associated values:

Motivation and context
Improving the performance of the tool is paramount to user satisfaction. Also with larger tenants this code seems to significantly slow down our automated functional tests when running Defender so if we correct this it will enable us to test features for larger tenants without performance impacts.

I marked this as high priority because I think we should investigate to ensure that the tool performs within a reasonable time threshold against larger tenants to contribute towards higher user satisfaction.

Can you check whether adding $top=1 or some such improves performance by sending back less data?

Can you check whether adding $top=1 or some such improves performance by sending back less data?

Yes. Already got a fix working with that approach yesterday in MS Graph Explorer but now trying to replicate the fix using Cmdlets or Invoke-MgGraphRequest calls.

Size data
Based on some tests today I calculated the average downloaded size of a user record from the Get-MgBetaUser cmdlet.
1,144 users = 28,228,552 bytes
Each user's downloaded record is ~ 24,675 bytes
Therefore, if a tenant had 20k users
20,000 users = 493,500,000 or about 1/2 Gigabyte of data would be downloaded

Description of the fix
To correct the problem of downloading unnecessary data and to make the query run faster I made the following code change to the lines in ExportDefenderProvider.psm1.
I replaced "All = $true" with "Top = 1" in the query parameters when calling the Get-MgBetaUser cmdlet. This still runs the query in the back-end but only returns a single record which seems to make the operation lightning fast.

I verified that the count that is created by the query is still correct in the JSON.

In a test tenant that has 2,041 users, the new query takes 0.65 seconds.

In a test tenant that has 2,041 users, the old query (without the fix) takes 10.76 seconds.

How the fix works under the hood
If you were to run the query in MS Graph Explorer you can see how the fix works a little bit under the hood. Note that the fix requires adding a request header named ConsistencyLevel = eventual and a querystring of $count=true&$top=1. The count is returned in a variable named @odata.count inside the response body.


Making OSR space-rated

This is more of a hypothetical discussion than an actual feature request, but what modifications would need to be made for OSR to be considered "space-rated"?

The short story is that the OSR is nowhere near space-ready and we don't have any intention of making it so.  It's meant as an educational tool, not a functioning Mars rover!!
The longer story is that it's REALLY REALLY REALLY hard to make things "space-rated".  That's why it's so expensive.  The simplest guaranteed-functioning, Mars-rated robot is basically Pathfinder, the first one that JPL built.  A few of the quick issues that come to mind for "space-rating" the open source rover would be:

Radiation: all the electronics on the OSR would fry pretty quickly once they were outside of Earth's atmosphere and exposed to solar radiation (much less the additional radiation from whatever planetary body it landed on).  For reference, the flight computer on MSL (Curiosity, the current top of the line Mars rover) is a Rad750 (single core, 100-200MHz, or ~1/10 as powerful as a raspberry pi).
Vibration: the Open Source Rover wasn't really built to go road tripping.  If you vibrate and shake it for long enough, screws fall out, electronics get disconnected, and things come apart.  This can't happen for something riding on a rocket!
Temperature: The components on the Open Source Rover function well around room temperature on Earth.  You better believe that "room temperature" in orbit or on Mars is quite different!  Even on the Curiosity rover, the large temperature swings on Mars mean that it's really only safe to drive the rover heavily during the daytime.

... the above are the first 3 things that I thought of.  There are probably hundreds of challenges to overcome that I haven't even thought of yet.  The Mars rover program cost ~$2.5 billion... this one is $2,500.  Understandably, the rovers therefore have very different capabilities.


Support jsx import source (#5)

feat: Jsx import source

feat: Enable emit options to respect jsx

chore: Fix e2e tests

chore: fmt

chore: Integration tests

chore: Remove old comment

chore(deps): bump whoami from 1.4.1 to 1.5.1 (#310)

Bumps whoami from 1.4.1 to 1.5.1.

Changelog
Commits

updated-dependencies:

dependency-name: whoami dependency-type: indirect ...

chore(deps): bump h2 from 0.3.24 to 0.3.26 (#311)

Bumps h2 from 0.3.24 to 0.3.26.

Release notes
Changelog
Commits

updated-dependencies:

dependency-name: h2 dependency-type: indirect ...

chore(deps-dev): bump vite from 5.1.6 to 5.1.7 in /k6 (#312)

Bumps vite from 5.1.6 to 5.1.7.

Release notes
Changelog
Commits

updated-dependencies:

dependency-name: vite dependency-type: direct:development ...

fix: report accumulated cpu time correctly (#313)

stamp: enforce cpu time limit in evaluation stage

stamp: always use the last accumulated cpu time

stamp: adjusting wall clock limit routine

stamp: polishing

chore: add an integration test for the run computationally intensive function on top level

chore: adjust dev container base image as dev-1-bookworm (#315)

fix: unbundle command to better download function source code (#314)

fix: Fix unbundle command to better download function source code

fix: Fix tests and typo

chore: Remove test folders

chore: Fix typo

chore: Enable default and CLI options

hacking:
./scripts/run.sh

access localhost:9998 (directly you don't have to put any path)


remove bottledaemon vendoring

python-daemon has been fixed in version 2.1.1, no more need to vendor this
stuff
https://alioth.debian.org/scm/loggerhead/python-daemon/trunk/view/head:/ChangeLog#L10

Let's see what travis says.

Python 2.6 is still bust. meh :/

I'll fix and release pybuilder on monday.

Pybuilder is already fixed, just waiting for a release.


Download images and reference them in the Markdown output

See this commit for a first rough pass at this:
https://github.com/mbafford/keep-exporter/commit/43447684fd7265866bfe5bd6cd5e386594cccd3d
The images API is undocumented, but I was able to piece together how to get the image URL from looking at the image URL in Google Keep and the gkeepapi code. This commit works for all of my notes as far as I can tell, but I'm sure it fails on some other edge case.
The URL generated by the API is simply:
https://keep.google.com/u/0/media/v2/{note.server_id}/{image.server_id}

when Google Keep references the image, it also adds these parameters:
?accept=image/gif,image/jpeg,image/jpg,image/png,image/webp,audio/aac&sz=4032

There's interesting metadata available in:
note.images[0].blob, e.g.:
'kind':'notes#blob'
'type':'IMAGE'
'mimetype':'image/jpeg'
'width':3024
'height':4032
'byte_size':3162748
'extracted_text':'味全\nwei-chuart\nが\n薺菜態 蝦 .\nChinese Spinach[...]'
'extraction_status':'VSS_SUCCEEDED'

No original image filename that I can find.
TODO

check mimetype and write files with correct filenames
write the extracted OCR text to the markdown file or a sidecar JSON file?
not sure if the download has to happen through the keepAPI requests session
other types of images (drawings?) may be very different

I've tested an verified that you can use exactly the same code to download drawings, at least static representations of them - e.g., change the for loop to:
for image in note.images + note.drawings:
This will download a PNG version of the image (named jpg by this code, but most programs don't really care).
My guess is there's a vector or more complicated format available as well, since you can click on the drawing in Keep and continue editing it. I only have one drawing in my keep library that I created for testing.

I've tested an verified that you can use exactly the same code to download drawings, at least static representations of them - e.g., change the for loop to:
for image in note.images + note.drawings:
This will download a PNG version of the image (named jpg by this code, but most programs don't really care).
My guess is there's a vector or more complicated format available as well, since you can click on the drawing in Keep and continue editing it. I only have one drawing in my keep library that I created for testing.

Also commented on the pull request but I'll put it here too. Your work has been merged, I finished your todo,

mimetypes are being used to determine image extension
drawings are being downloaded
You can only have image/gifs as file attachments.

I'm still undecided about whether (and where) to save the OCR text, suggestions are welcome.

Also commented on the pull request but I'll put it here too. Your work has been merged, I finished your todo,

mimetypes are being used to determine image extension
drawings are being downloaded
You can only have image/gifs as file attachments.

I'm still undecided about whether (and where) to save the OCR text, suggestions are welcome.


App colors have shifted slightly in 1.5.3

VSCode Version: 1.53
OS Version: Windows 10

Steps to Reproduce:

Preferably use a highly color accurate monitor, and be sure your perception of colors isn't physically impaired in any way.
Open a previous version of VS Code eg: 1.52.1. Take a screenshot and paste into an image editing app.
Install and open VS Code 1.53, take a screenshot and paste over the previous screenshot in an image editing app.
Flick between the two screenshots and notice how the top left VS Code icon is now a lot more desaturated in 1.53.
Look further carefully and see that in fact, all the colours in the app window are now slightly more desturatated and slightly lighter and more dull.
Use a point sample eyedropper tool to check the color values between the images if in doubt, and see how the hex values do not match for the same pixel.

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

In the attached image I have shown the 1.52.1 on the left and 1.53 on the right. I am using a custom theme in the screenshots (Monokai Pro) however the shifted colors persist regardless of theme used or all extensions being enabled or not.

Could this be a consequence of Electron 11?

@deepak1556 nothing has changed on the theming side, guessing electron related

This was reported earlier already: https://github.com/microsoft/vscode/issues/110807

@TheWox I can confirm that in your screenshot, the colours are different, even down to the subpixel rendering.
However, I cannot reproduce the issue locally:

I'm on a Windows system:
Windows 10 Entreprise 20H2 19042.746
Windows Feature Experience Pack 120.2212.551.0

And I'm on an sRGB monitor.
Wondering what your settings are?

Hey @rzhao271 thanks for following up. I get the dull color shift on both my xps15 (9560) laptop, and on my desktop pc - both of which are affected regardless of any extensions being enabled or not.
My laptop Windows version is:
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.19041 N/A Build 19041
I don't have access to the desktop at the moment, can post that soon as I have it.

Duplicate of https://github.com/microsoft/vscode/issues/110807


Update msvc9_support.py

This module causes import setuptools to crash in mingw-w64's python, like so:
$ python -m setuptools
Traceback (most recent call last):
  File "C:/msys64/mingw64/lib/python2.7/runpy.py", line 151, in _run_module_as_main
    mod_name, loader, code, fname = _get_module_details(mod_name)
  File "C:/msys64/mingw64/lib/python2.7/runpy.py", line 109, in _get_module_details
    return _get_module_details(pkg_main_name)
  File "C:/msys64/mingw64/lib/python2.7/runpy.py", line 101, in _get_module_details
    loader = get_loader(mod_name)
  File "C:/msys64/mingw64/lib/python2.7/pkgutil.py", line 464, in get_loader
    return find_loader(fullname)
  File "C:/msys64/mingw64/lib/python2.7/pkgutil.py", line 474, in find_loader
    for importer in iter_importers(fullname):
  File "C:/msys64/mingw64/lib/python2.7/pkgutil.py", line 430, in iter_importers
    __import__(pkg)
  File "C:/msys64/mingw64/lib/python2.7/site-packages/setuptools/__init__.py", line 14, in <module>
    from setuptools.extension import Extension
  File "C:/msys64/mingw64/lib/python2.7/site-packages/setuptools/extension.py", line 11, in <module>
    from . import msvc9_support
  File "C:/msys64/mingw64/lib/python2.7/site-packages/setuptools/msvc9_support.py", line 2, in <module>
    import distutils.msvc9compiler
  File "C:/msys64/mingw64/lib/python2.7/distutils/msvc9compiler.py", line 306, in <module>
    raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION)
distutils.errors.DistutilsPlatformError: VC 6.0 is not supported by this module

This is because distutils.msvccompiler parses sys.version to get the MSVC version that compiled Python--in this case MSVC was not used to build Python and for some reason this causes it to default to 6 which makes msvc9compiler to crash at import-time.  Ouch!

I'm inclined to simply trap Exception where it currently traps ImportError and leave the rest unchanged.

Either way.


🚀 - Kosovo country code is missing from the TuiCountryIsoCode.

Which @taiga-ui/* package(s) are relevant/releated to the feature request?
i18n
Description
Please add Kosovo to the TuiCountryIsoCode so we don't have to manually inject it.

@splincode thank you for the quick PR!

@splincode
This is a little bit controversial.
Kosovo is not fully internationally recognized.
https://en.wikipedia.org/wiki/International_recognition_of_Kosovo
It's not recognized by same very large countries: Argentina, Brazil, China, India, Indonesia, Mexico, Russia and South Africa.
It means now we have to manually remove it everywhere and that is harder then for @Blend-Rugova-KodeLabs  to add it.
I think it should be removed.

@hheexx having a country code of a country does not mean you recognize the country. If we would go by that logic Taiwan should also be removed as it is not recognized by plenty of countries. Lets just be normal human beings and take politics out of professional tools.

btw. you can't take politics out of the issue that is political at it's core
You are right, we should follow Taiwan analogy. It should stay but it should be renamed to "Kosovo" instead of "Republic of Kosovo" as Taiwan is listed everywhere as "Taiwan" and not "Republic of China"
@Blend-Rugova-KodeLabs

I'd like to find a middle ground here since it's here because country phone code is different, not because of some political agenda. Without it, it would be impossible to type in properly masked phones from that region. @hheexx you suggest we completely remove it? What about the issue with country phone code being different?

@waterplea I understand the problem. It should just be renamed from "Republic of Kosovo" to just "Kosovo"

I will do it

made it https://github.com/Tinkoff/taiga-ui/pull/2382


Blank after login in, no users

Everything is setup correctly but after i login to allow sleep stats to access data, nothing is shown, no users, just blank page with a search bar?
I am using Node 5 on Linux.

Have you been running npm run scrape for some time to gather data?
Are you using any kind of ad/facebook blockers?

Uh, my bad, i miss typed command :blush: It works


drep registration certificate mixed with spo registration (clean-up)

The drep registration certificate is mixed with the stake pool registration certificate.  This needs to be cleaned up so that  drep registration-certificate  only has the options needed for pridcing the drep registration certificate
So we go from
Usage: cardano-cli conway governance drep registration-certificate
                                                                     ( ( --stake-pool-verification-key STRING
                                                                       | --cold-verification-key-file FILE
                                                                       )
                                                                       ( --vrf-verification-key STRING
                                                                       | --vrf-verification-key-file FILE
                                                                       )
                                                                       --pool-pledge LOVELACE
                                                                       --pool-cost LOVELACE
                                                                       --pool-margin RATIONAL
                                                                       ( --pool-reward-account-verification-key STRING
                                                                       | --pool-reward-account-verification-key-file FILE
                                                                       )
                                                                       ( --pool-owner-verification-key STRING
                                                                       | --pool-owner-stake-verification-key-file FILE
                                                                       )
                                                                       [ [--pool-relay-ipv4 STRING]
                                                                         [--pool-relay-ipv6 STRING]
                                                                         --pool-relay-port INT
                                                                       | --single-host-pool-relay STRING
                                                                         [--pool-relay-port INT]
                                                                       | --multi-host-pool-relay STRING
                                                                       ]
                                                                       [--metadata-url URL
                                                                         --metadata-hash HASH]
                                                                       ( --mainnet
                                                                       | --testnet-magic NATURAL
                                                                       )
                                                                     | ( --stake-verification-key STRING
                                                                       | --stake-verification-key-file FILE
                                                                       | --stake-script-file FILE
                                                                       | --stake-address ADDRESS
                                                                       )
                                                                       --key-reg-deposit-amt NATURAL
                                                                     | ( --drep-verification-key STRING
                                                                       | --drep-verification-key-file FILE
                                                                       | --drep-key-hash HASH
                                                                       )
                                                                       --key-reg-deposit-amt NATURAL
                                                                     )
                                                                     --out-file FILE

to
Usage: cardano-cli conway governance drep registration-certificate
                                                                       (
                                                                       | --drep-verification-key STRING
                                                                       | --drep-verification-key-file FILE
                                                                       | --drep-key-hash HASH
                                                                       )
                                                                       [
                                                                        --drep-metadata-url URL
                                                                        --drep-metadata-hash HASH
                                                                       ]
                                                                      --key-reg-deposit-amt NATURAL
                                                                     --out-file FILE

Roadmap:

[x] Merge https://github.com/input-output-hk/cardano-cli/pull/309
[x] Merge https://github.com/input-output-hk/cardano-api/pull/284
[x] Release cardano-api
[x] Merge https://github.com/input-output-hk/cardano-cli/pull/324
[ ] Use 284 in cardano-cli. WIP branch: https://github.com/input-output-hk/cardano-cli/tree/smelc/drep-reg-certificate-add-metadata

@CarlosLopezDeLara> as of the tip of https://github.com/input-output-hk/cardano-cli/pull/309, the API for drep registration-certificate is:
Usage: cardano-cli conway governance drep registration-certificate
                                                                     ( --drep-verification-key STRING
                                                                     | --drep-verification-key-file FILE
                                                                     | --drep-key-hash HASH
                                                                     )
                                                                     --key-reg-deposit-amt NATURAL
                                                                     --out-file FILE

  Create a registration certificate.

Available options:
  --drep-verification-key STRING
                           DRep verification key (Bech32 or hex-encoded).
  --drep-verification-key-file FILE
                           Filepath of the DRep verification key.
  --drep-key-hash HASH     DRep verification key hash (either Bech32-encoded or
                           hex-encoded). Zero or more occurences of this option
                           is allowed.
  --key-reg-deposit-amt NATURAL
                           Key registration deposit amount.
  --out-file FILE          The output file.
  -h,--help                Show this help text

Which is slightly shorter than what you had written. Which leads me to the question: did I miss something? or was your description inaccurate? Please let me know :pray:

#309 is missing the ability to pass an optional anchor (url/metadata)
See https://github.com/input-output-hk/cardano-ledger/blob/48d661803c40306dc8f58ce77ab077aecf873338/eras/conway/test-suite/cddl-files/conway.cddl#L312
So it should look like this one
Usage: cardano-cli conway governance drep registration-certificate
                                                                       (
                                                                       | --drep-verification-key STRING
                                                                       | --drep-verification-key-file FILE
                                                                       | --drep-key-hash HASH
                                                                       )
                                                                       [
                                                                        --drep-metadata-url URL
                                                                        --drep-metadata-hash HASH
                                                                       ]
                                                                      --key-reg-deposit-amt NATURAL
                                                                     --out-file FILE

@CarlosLopezDeLara> OK I understand better now. We hardcode NOT passing the anchor in cardano-api right now: https://github.com/input-output-hk/cardano-api/blob/9b17a19b12f94677a1f21e86123e1806b7b32a96/cardano-api/internal/Cardano/Api/Certificate.hs#L598 which is why I wasn't seeing it from cardano-cli.
So to implement --drep-metadata-url and --drep-metadata-hash, I will first need to remove this hardcoding in cardano-api.

Update: there is a WIP branch for the follow-up that will close this issue: https://github.com/input-output-hk/cardano-cli/tree/smelc/drep-reg-certificate-add-metadata

Here is the ready-for-review PR to close this issue: https://github.com/input-output-hk/cardano-cli/pull/330


bug: No user premission validation for decline endpoint

There is no validation that checks if the user has premission for a given onshore installation when declining a shipment. The approved endpoint has it, but not the decline
https://api-chemcom-api-dev.radix.equinor.com/api/Shipment/Offshore/decline

Frontend must show a message if permission is denied.

not able to reproduce it on from swagger or application


Terrain Painting With Hoe Tool Not Working

Not sure if this issue is specific to InfinityTools or one of your other (super awesome, indispensable, very well maintained) mods. I have trouble keeping track of which features come from which of your mods. The issue is with the terrain painting functionality on the Hoe tool, that I am pretty sure is a default option that comes from InfinityTools. I am also running the latest version of WorldEdit, ServerDevCommands, and InfinityHammer.
When I try to paint terrain with Pave, Grass, Dirt, Cultivate, etc. it paints an area that is offset about 10-20 meters away from where I clicked to paint, and it is also painting in irregular shapes instead of the typical circle shape that I have the tool set to. I've checked, and I don't have any offsets enabled. All the offset values show as 0.

Just FYI, this issue does still occur for me after installing the latest InfinityTools update you released just a few minutes ago.


publish new version

@bwilkerson, can you publish a new version?

Sure. The version number in pubspec.yaml is currently 0.2.0+1 (with the last published version at 0.2.0). Is that the version number you want to publish, or should we bump the version number first?

Publishing as is sgtm :)

Done.


Remove prefix of check ID in description

Remove the prefix of the check ID in description.
All other descriptions do not contain the ID, this is the only one which is causing inconsistent output.
For example:
[PASS] 2.11  - Ensure that authorization for Docker client commands is enabled (Scored)
[PASS] 2.12  - 2.12 Ensure centralized and remote logging is configured (Scored)
[PASS] 2.13  - Ensure live restore is enabled (Scored)

Thanks for the fix!


Getting "null" when selecting second or futher columns

Hi,
so I have e.g. the following XML file:
<root>
  <first>
    textA
  </first>
  <second>
    textB
  </second>
  <third>
    <c>textC</c>
  </third>
</root>

I load it into Spark through the DataBricks XML package, and everything looks good and loaded correctly.
When I try to select first or first.a, then I get the result correctly.
But if I try to get second or second.b, or third or third.c, then I get null.
I tried with a direct query, select function, everything, I don't know what the problem is.
The rowTag is root.
Any ideas?

This should be fixed in the master I believe.

It's working now, thanks.

Thank you for reporting this!


Use streams for receiving updates from a server

Closes #159

Reopen the PR to branch alpha, please

@dmvict apologies for that, didn't notice the compilation failure. Done.

@dmvict apologies for that, didn't notice the compilation failure. Done.

Thank you for the work.


Houdini 0.16 can't find runtime in monorepo - yarn workspaces

Describe the bug
Maybe relevant to this
We have a turbo monorepo structure for our project and attempting to migrate to houdini 0.16 and the new sveltekit, houdini is unable to find the runtime.
<root>
node_modules/houdini/xxx
apps/mysveltekitapp/houdini.config.js

Our structure is like this, where node_modules are installed in the root but the app lives in a project within the monorepo.
When running yarn workspace @project/mysveltekitapp houdini generate it failes with:
❌ ENOENT: no such file or directory, stat '/app/apps/mysveltekitapp/node_modules/houdini/build/runtime-esm'

It should be looking in the monorepo root, where the runtime exists : /app/node_modules/houdini/build/runtime-esm
Severity
blocking an upgrade
Steps to Reproduce the Bug

Setup a sveltekit project in a monorepo using yarn workspaces
Follow houdini getting started guide
Error on houdini generate in yarn workspace.

Reproduction
No response

Could you remove houdini from the root and add it in apps/mysveltekitapp/package.json?

@jycouet That is what we currently have. The workspace packages are just installed in the root project rather than in each package, this is typical of monorepos I believe.

Could you please put your monorepo/package.json and monorepo/apps/mysveltekitapp/package.json here to better understand the situation? Thx

I setup an example repo here https://github.com/bbedward/houdini-monorepo
You can run yarn install && yarn workspace web houdini generate and the error will be reproduced.


Not generating confirmations_controller routes for devise gem.

[X] I have tried upgrading by running bundle update js_from_routes.
[X] I have read the troubleshooting section before opening an issue.

Description 📖
Hey I was trying for the Rails + Vite + Vue 3 + Inertia.js combo, while comparing the Original Demo App vs your version of the Demo App, I love the gem that you built called js_from_routes its quite cool.
But I encounter a problem, for some reason the gem doesn't want to generate the users/confirmations_controller routes for Devise, it does generate the sessions, registrations, passwords but not the confirmations.
You can see at the screenshot how all the other controllers are there as Api routes.
Reproduction/Logs 🐞📜
Add the confirmations_controller in your devise example app and try to see if it generates the routes.
Screenshots 📷

Hi Daniel, please share a repo with a minimal reproduction and I'll take a look.
I tested in an app, and it generated confirmations as well:
// JsFromRoutes CacheKey d373e19a0694ae472b5b76beaad73f93
//
// DO NOT MODIFY: This file was automatically generated by JsFromRoutes.
import { definePathHelper } from '~/services/api'

export default {
  new: definePathHelper('get', '/users/confirmation/new'),
  show: definePathHelper('get', '/users/confirmation'),
  create: definePathHelper('post', '/users/confirmation'),
}

If you run bin/rails routes | grep confirmations in the app, you will notice there are no routes for confirmations, which is the reason why js_from_routes is not generating helpers.
The reason Devise is not adding those routes is probably related to the Devise configuration, you must add :confirmable to the User model.

OMG thank you so much for finding the out.


Wallet Linking UI

https://github.com/user-attachments/assets/abf70934-8070-4844-8f15-8db6ec40c116

PR-Codex overview
This PR adds the ability to link a wallet in the Connect UI.
Detailed summary

Added a new linkWallet field in locale types for various languages
Updated UI components to support linking a wallet
Introduced WalletAuth component for wallet authentication
Modified wallet selection behavior in WalletSelector component

The following files were skipped due to too many changes: packages/thirdweb/src/react/web/ui/ConnectWallet/WalletSelector.tsx, packages/thirdweb/src/react/web/wallets/shared/PassKeyLogin.tsx, packages/thirdweb/src/react/web/wallets/in-app/WalletAuth.tsx

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@gregfromstl should we show the wallet type here? (connected rainbow / cb wallet)
I guess technically that address can be connected with any wallet. wish we had a better icon tho

ideas for follow ups - merge the linked identities screen with this one


Correction for raw affiliation AMAP, Université de Montpellier, CIRAD, Montpellier, France

Correction needed for raw affiliation AMAP, Université de Montpellier, CIRAD, Montpellier, France
raw_affiliation_name: AMAP, Université de Montpellier, CIRAD, Montpellier, France
new_rors: 05kpkpg04;051escj72;020nks034
previous_rors: 05kpkpg04;051escj72
works_examples: W4400974801
contact: 1cfea7d14c1a0071aeb6a5780a67d61d:fd2fe3828e9d6440127e725cbe0cca7e295e @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-18. The new affiliations should be visible within the next 7 days.


neo4j GraphRag implementation group 17

We still have conflicts in:
server/.env.template
server/RAGHelper.py


Feature: Display the verbose name for metrics within Charts and legend.

Currently Verbose names are not shown in chart legends or tooltips if there are any groupbys, this addresses these issues and should work for all other visualizations as well as the json export, csv export, etc, as well. The names are formatted right after the queries are run.
This also allows us to get rid of the verbose name replacing all over the java script.
The problem is that some of the name formatting is currently done on the app-tier (python, e.g. joining metric name and group by name, pivoting data...) and some of it is done in Javascript (e.g. replacing verbose name).
I think we need should do all of it in one location. Either we need to return the data fairly raw to the client side and format it there (which I think would be cleaner but much more work given the current design). Or we have to do more formatting on the app-tier.
Before:

After:

Coverage increased (+0.02%) to 69.141% when pulling ba3f6fab7ea6487894b6f08ebfd3967ee12cc2f0 on tc-dc:fmenges/verbose_names_charts into 3dfdde130a88d3a12a6e084adc07d284ed6090e6 on apache:master.

Coverage increased (+0.02%) to 69.141% when pulling 6525225eae6b17a1495bec61ac4dd57054e9f4a7 on tc-dc:fmenges/verbose_names_charts into 147c12dddf0da742f1c33c6fee3b2a4b9dbd12c8 on apache:master.

I'm afraid that the verbose name can have funky characters that could be problematic (is unicode in dict keys ok in 2.7?) and can't provide the guarantees we need around it being unique within a datasource (column collision in dataframes), plus often we use the coalesce of verbose_name/actual_name. I think I'd rather replace it in the view as we display things.
Of course the downside is having to do it in every single visualization.
I'm not 100% on this but I think I'd rather go in the direction of enforcing unicity in the (non-verbose) names and not allowing funky characters in there and use those internally until the view layer.

Interesting, I'll write some unit tests for the unicode character problem and check it. I can always B64 encode the dict keys.
We can pass down flags if and how to use the verbose name to python, that way visualizations that want to do something more complex with the names can do whatever they want.
In general if feel like if users go through the trouble of manually specifying verbose names they want them to be used.
I'm not super worried about name collisions since you have to manually set verbose names anyways and it should be pretty clear to anyone who can setup a datasource that creating verbose names with collision is problematic and I don't think there is a use case for doing that.
Regardless its obviously something we can test for on data entry: "verbose name" needs to be unique and they are not allowed to collide with any of the column names.
We could try to go a different route and move logic like this into JS and the data object that the explore_json endpoint returns would have a complex Json object as series_title. However that only moves the problem to JS and doesn't really solve it.

I'm not sure if you've seen how we do it in the JS in places like here?
https://github.com/apache/incubator-superset/blob/master/superset/assets/visualizations/table.js#L45
It's pretty accessible, we kind of just need to sprinkle it around all the visualizations. We could also make a utility function that's more generic and does the coalesce. Call it something like slice.verbose(s). Assuming we'd have that function and use it everywhere in the visualizations, would that cover everything you're thinking about?

Cross referencing #3504, I reimplemented the same logic in JS but for time series charts only. One of the two should work :P


Windows read crashes if key doesn't exist yet

In the current implementation, the private Read method does return nullopt if the key doesn't exist, however, I didn't take this into account at call site, meaning I forgot to do a has_value() check before accessing value() and returning that value to the method channel. Should be an easy fix. Thanks for reporting.
Originally posted by @kennethnym in https://github.com/mogol/flutter_secure_storage/issues/263#issuecomment-897881227

Same issue on  Android 10

It's not resolved for me as I mentioned it in #290.

That is weird. I'll look into this when I'm free. @juliansteenbakker can you please reopen this issue? Thanks.

I have tried and failed to reproduce this error so don't believe this is still an issue on the develop branch.


Enphase envoy individual inverter production

Description: Enphase Envoy component, get production values from individual inverters
Pull request with documentation for home-assistant.io (if applicable): home-assistant/home-assistant.io#9600
Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
[x] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

This pull request has been mentioned on Home Assistant Community. There might be relevant details there:
https://community.home-assistant.io/t/trouble-with-enphase-envoy/67359/37

@MartinHjelmare Here's my first crack at breaking those attributes out into their own sensors.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/pull/24445?email_source=notifications&email_token=AMNH2H2JJLZMKALRINRYNJDP3ZIS7A5CNFSM4HWPSFH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYKM7LQ#issuecomment-504680366,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMNH2H4PS2SLOOU67KFJRB3P3ZIS7ANCNFSM4HWPSFHQ
.

There are some merge conflicts.

Derp, fixed conflicts. @MartinHjelmare @andrewsayre

@andrewsayre I refactored enough that I don't think any of your requested changes still apply.

@MartinHjelmare Seems like andrewsayre has ghosted me, can you merge this without his approval?

@MartinHjelmare Seems like andrewsayre has ghosted me, can you merge this without his approval?

I was not aware you were waiting on anything from me.  Martin already approved the PR.  :)


Work out a basic design

[x] typography
[x] vertical whitespace
[x] grid (applied to article page)
[ ] colours

Meeting Nick on pm of 30/9 for colours follow up.


Make schema configuration configurable

Issue:
Currently when an artifact is created(.hdbtable, hdbview ... etc) and the SCHEME property is defined, the schema is not created
Describe the solution you'd like
Make schema configuration configurable

Duplicates: https://github.com/SAP/xsk/issues/320


UPSTREAM: : OCP specific build scripts and Dockerfile

Added Openshift specific builds scripts, linter/tests/etc runners. Extended makefile with OCP specific targets.
Upstream version of lint, fmt and staticcheck pollutes go.mod and go.sum files, so, own versions of such scripts was introduced.

cc @Fedosin
Please take a look when you will have time :)


Please don't waste time

This library has not been maintained for a long time, and there are a lot of bugs. I have been wasting this library for many hours.
Currently I have encountered bugs: upload can not call end, upload error SigV4
Although it can be solved by partial hacking, this is not a good idea. Will make your code difficult to maintain.
You can use the @auth0/s3 library, which is a fixed version of s3, and the apis are the same. It runs fine on me this
Author's description: https://github.com/andrewrk/node-s3-client/pull/212#issuecomment-451028324

If everyone agrees that @auto0/s3 is the main upstream version now, perhaps we should suggest @auth0 to enable issue reporting for that repository?

Yes @auto0/s3 has no issue tracker. Also the dependencies (e.g. aws-sdk) are not up to date, last commit is 1 1/2 years old.

thanks for making this issue


Improve manual show and hide example.

Excellent!! You perfectly understand what I want to tell. Thank you so much for your great improvement for the document.


[$250] Android - Login - While login android app, a blank page slightly opens and closes

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

Version Number: 1.4.68
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Launch app
Enter email id and tap continue
Tap magic link to login

Expected Result:
Question While login android app, a blank page must not slightly open and close
Actual Result:
While login android app, a blank page slightly opens and closes
Workaround:
Unknown
Platforms:

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

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/de41ebe3-37b9-4a3a-8f97-abc5f7b38fe8
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0182c092cd87c0b915
Upwork Job ID:<PHONE_NUMBER>234457600
Last Price Increase: 2024-04-30

@johnmlee101  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

I don't think this should necessarily be a blocker, but I do think that it should be External since it has to deal with some rendering order most likely.

Thanks for holding to confirm!

My bad, thanks for catching that!

We're waiting on proposals for this one right @rayane-djouah?

Proposal
Please re-state the problem that we are trying to solve in this issue.
A blank page briefly opens after log in with magic link. This happens in iOS too.
What is the root cause of that problem?
When we use the magic link, we are doing a deep link. The deep link is handled by react-navigation and also we handle it ourselves.
https://github.com/Expensify/App/blob/935efd987bc384b0ea2166b29b1e9152c47b0056/src/Expensify.tsx#L192-L194
https://github.com/Expensify/App/blob/935efd987bc384b0ea2166b29b1e9152c47b0056/src/libs/actions/Report.ts#L2444-L2486
In this case, we are deep linking to a ValidateLoginPage. The react-navigation handles it correctly and we are able to successfully login through the magic link, but for our own deep link handler, we have a promise that waits for the user to sign in.
https://github.com/Expensify/App/blob/935efd987bc384b0ea2166b29b1e9152c47b0056/src/libs/actions/Report.ts#L2462-L2464
So, when we are successfully signed in, the "pending" deep link is handled, thus the ValidateLoginPage opens again and immediately closes. This issue happens every time we deep link to a screen that is available in both PublisScreens and AuthScreens.
What changes do you think we should make in order to solve the problem?

The manual deep link handler is made to handle a deep link (to an auth-protected screen) that is made while logged out, so the user is navigated to the screen after successfully signing in. But in our case, we are deep linking to a public screen, so it doesn't make sense to wait for the sign in to happen. So, I suggest to immediately resolve the promise if we are deep linking to a public screen.
const route = ReportUtils.getRouteFromLink(url);
const routeState = getStateFromPath(route); // import from @libs/Navigation/getStateFromPath
const publicScreens: string[] = [SCREENS.TRANSITION_BETWEEN_APPS, SCREENS.VALIDATE_LOGIN, SCREENS.CONNECTION_COMPLETE, SCREENS.UNLINK_LOGIN, SCREENS.SIGN_IN_WITH_APPLE_DESKTOP, SCREENS.SIGN_IN_WITH_GOOGLE_DESKTOP, SCREENS.SAML_SIGN_IN];
const isPublicScreen = publicScreens.includes(routeState.routes[routeState.index ?? 0].name);
const signInPromise = isPublicScreen ? Promise.resolve : Session.waitForUserSignIn;
const protectedRoutePromise = isPublicScreen ? Promise.resolve : Navigation.waitForProtectedRoutes;

We will replace the promise here with the new promise above.
https://github.com/Expensify/App/blob/935efd987bc384b0ea2166b29b1e9152c47b0056/src/libs/actions/Report.ts#L2462-L2463

Hi @rayane-djouah - Could you take a look at this proposal? Thanks!

Bump on this one @bernhardoj

Sorry, I missed it.

but when I test removing this part of the code the deep linking still working correctly

May I know the steps you took?
Below is the video without the code:
https://github.com/Expensify/App/assets/50919443/bc44560d-e8bb-4e1c-ba6f-31d33dbc2d48
and below is the video with the code:
https://github.com/Expensify/App/assets/50919443/f7be3fa8-0989-4d3c-9bb5-31288f2da2cf

Also, can you identify what PR from https://github.com/Expensify/App/issues/41266#issue-2270140489 caused this bug?

Hmm, I think the issue has been there for a long time since the code is old. Usually, QA posts a video comparison on prod, but I don't see it here. So I don't think it's a regression from recent changes. I also already noticed this issue when working on this PR (see the native recordings).

so instead of resolving the promise, can we early return for this route?

Good idea, it would simplify the code too. I guess it would work fine. We can test it more for all platforms in the PR. I have updated the proposal to include the early return and also mention to apply that public screen check only while logged out, so it's more predictable I guess.

Also, do we need to apply the solution for all public screens or only to VALIDATE_LOGIN? can you explain why?

Yes, I don't think we want to navigate before and after sign-in, right? I don't see a reason to limit it to VALIDATE_LOGIN only.

PR is ready
cc: @rayane-djouah

Payment summary:
Contributor: $250 @bernhardoj (Paid in Upwork)
Contributor+ $250 @rayane-djouah (Paid in Upwork)


Simulate scheduler with debuggable scheduler container

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
/label tide/merge-method-squash

/ok-to-test

/retest


GH-36845: [C++][Python] Allow type promotion on pa.concat_tables

Revival of https://github.com/apache/arrow/pull/12000/

Rationale for this change
It would be great to be able to do promotions when concat'ing a table, such as:
def test_concat_tables_with_promotion_int():
    import pyarrow as pa
    t1 = pa.Table.from_arrays(
        [pa.array([1, 2], type=pa.int64())], ["int"])
    t2 = pa.Table.from_arrays(
        [pa.array([3, 4], type=pa.int32())], ["int"])

    result = pa.concat_tables([t1, t2], promote=True)

    assert result.equals(pa.Table.from_arrays([
        pa.array([1, 2, 3, 4], type=pa.int64())
    ], ["int"]))

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Closes: #36845

@github-actions autotune

@pitrou I addressed your comments. I appreciated your thorough review, would you be able to do another pass?

New week, new chances. Would you have time by any chance @pitrou ? :)

@pitrou Thanks for the reviews, I appreciate it. I wonder if we're not making this too big. Casting int -> float, int -> decimal, etc doesn't make much sense to me, and I don't think people expect much more than widening of the same type, such as string -> large_string, instead of also allowing string -> binary. I'm not interested in these special cases at least, it is just in here because the original author did this, but I'm also fine with only including the obvious and getting rid of all the flags. This also makes it much simpler, WDYT?

@pitrou I took the existing code from https://github.com/apache/arrow/pull/12000 and went from there. For example, if feels to me that you always want to widen the types.

Well, we shouldn't get rid of existing functionality. So any cast that is already supported should keep being supported (unless it's a glaring mistake of course!).

Well, many formats are much more restrictive than the first iteration here. Take for example Iceberg:

If you want to do anything special, such as combining a float and integer, you first need to cast it explicitly, which seems reasonable to me.

Ahah, I see. @lidavidm Could you take a look at @Fokko 's questions above?

It's been long enough that I don't recall any particular reasoning, other than the cast being possible. You could certainly start smaller.
Though I don't believe dataset has any provision for manual casting, so if you do have (say) an int column that became a float column, this would be the only way to support it.

@lidavidm Thanks, in PyIceberg we do this by taking the field, casting them accordingly, and then turning it back into a table: https://github.com/apache/iceberg/blob/master/python/pyiceberg/io/pyarrow.py#L952-L1024 It is far from optimal, and the concat operation would be perfect.

Though I don't believe dataset has any provision for manual casting, so if you do have (say) an int column that became a float column, this would be the only way to support it.

The pa.concat_tables is about tables, and not about datasets. There is an option to cast them today: https://arrow.apache.org/docs/python/generated/pyarrow.Table.html#pyarrow.Table.cast
I think having the same safe flag on the pa.concat_tables would do the trick as well. WDYT @pitrou ?

The underlying function in C++ is used in both contexts, and was my original motivation.

Alright, doing casts during reads has its own issues (this might be faster, because it reads it right into the correct format?). Also, other folks are waiting on this, so let's push this through. I now got my c++ environment running locally for faster development 👍🏻

@Fokko I needed this small diff to get pyarrow building locally:
diff --git a/python/pyarrow/types.pxi b/python/pyarrow/types.pxi
index 68efd1375..53b1fe65b 100644
--- a/python/pyarrow/types.pxi
+++ b/python/pyarrow/types.pxi
@@ -3239,13 +3239,12 @@ def unify_schemas(schemas, *, options=None):
         c_schemas.push_back(pyarrow_unwrap_schema(schema))
     if isinstance(options, str):
         if options == "default":
-            options = CField.CMergeOptions.Defaults()
+            c_options = CField.CMergeOptions.Defaults()
         elif options == "permissive":
-            options = CField.CMergeOptions.Permissive()
+            c_options = CField.CMergeOptions.Permissive()
         else:
             raise ValueError(f"Invalid merge option: {options}")
-
-    if options:
+    elif options is not None:
         c_options = (<FieldMergeOptions> options).c_options
     else:
         c_options = CField.CMergeOptions.Defaults()

@jorisvandenbossche Thanks for letting me know. I've pushed those changes. I'm working on the c++ tests to get them all happy and green

Hey @pitrou and @jorisvandenbossche I was off last week, but it is all green again :) I went over all the comments (hope I didn't miss any). I saw the email today on the dev list on the feature freeze of 14.0.0. It would be awesome if we can get it in, do you see any chance?

It has been a week, gentle ping @pitrou and @jorisvandenbossche :)

Comparing the current branch with numpy promotion rules:
import itertools
import pyarrow as pa
import numpy as np

types = ["uint8", "uint16", "uint32", "uint64", "int8", "int16", "int32", "int64", "float16", "float32", "float64"]

for t1, t2 in itertools.combinations(types, 2):
    np_result = np.result_type(t1, t2)
    pa_result = pa.unify_schemas([pa.schema([('a', t1)]), pa.schema([('a', t2)])], options="permissive").field('a').type
    pa_result_np = np.dtype(pa_result.to_pandas_dtype())
    if np_result != pa_result_np:
        print(f"{t1} + {t2}\t:\t{np_result} (numpy), {pa_result_np} (arrow)")

uint8 + int8	:	int16 (numpy), int8 (arrow)
uint16 + int8	:	int32 (numpy), int16 (arrow)
uint16 + int16	:	int32 (numpy), int16 (arrow)
uint32 + int8	:	int64 (numpy), int32 (arrow)
uint32 + int16	:	int64 (numpy), int32 (arrow)
uint32 + int32	:	int64 (numpy), int32 (arrow)
uint64 + int8	:	float64 (numpy), int64 (arrow)
uint64 + int16	:	float64 (numpy), int64 (arrow)
uint64 + int32	:	float64 (numpy), int64 (arrow)
uint64 + int64	:	float64 (numpy), int64 (arrow)

That shows the issue of widening the bitwidth for int+uint as commented above.
Numpy also seems to go to float when combining uint64 with any signed integer (since uint64 values cannot all be held in int64). Not sure if we should also do that ..
And comparing with our numeric kernels DispatchBest (implemented in CommonNumeric, added in https://github.com/apache/arrow/pull/9294):
for t1, t2 in itertools.combinations(types, 2):
    result_merge = pa.unify_schemas([pa.schema([('a', t1)]), pa.schema([('a', t2)])], options="permissive").field('a').type
    try:
        result_dispatch= pa.compute.add(pa.array([1, 2, 3], t1), pa.array(np.array([1, 2, 3], t2), t2)).type
    except:
        continue
    if result_merge != result_dispatch:
        print(f"{t1} + {t2}\t:\t{result_merge} (MergeOptions), {result_dispatch} (DispatchBest)")

uint8 + int8	:	int8 (MergeOptions), int16 (DispatchBest)
uint16 + int8	:	int16 (MergeOptions), int32 (DispatchBest)
uint16 + int16	:	int16 (MergeOptions), int32 (DispatchBest)
uint32 + int8	:	int32 (MergeOptions), int64 (DispatchBest)
uint32 + int16	:	int32 (MergeOptions), int64 (DispatchBest)
uint32 + int32	:	int32 (MergeOptions), int64 (DispatchBest)
uint32 + float32	:	double (MergeOptions), float (DispatchBest)
uint64 + float32	:	double (MergeOptions), float (DispatchBest)
int32 + float32	:	double (MergeOptions), float (DispatchBest)
int64 + float32	:	double (MergeOptions), float (DispatchBest)

So the numeric kernels already widen the uint+int case. And they do not widen the float bitwidth in the uint+float case (that's maybe something to change in DispatchBest in a follow-up).

Widening int and float types on arithmetic is really a mistake from NumPy, IMHO, so I don't think we should imitate it.

I'm not sure what you're referring to here: https://github.com/apache/arrow/pull/36846#discussion_r1336872769
This one is being used here:
if (options.promote_decimal && is_decimal(promoted_type->id()) &&
  is_decimal(other_type->id())) {
ARROW_ASSIGN_OR_RAISE(promoted_type,
                      WidenDecimals(promoted_type, other_type, options));
return promoted_type;
}

I already implemented the logic of combining uints and ints, but there was a bug. I've fixed it and added some tests as well.

Numpy also seems to go to float when combining uint64 with any signed integer (since uint64 values cannot all be held in int64). Not sure if we should also do that ..

I agree, that's a bit awkward. If it doesn't fit, we'll get an overflow exception.

About https://github.com/apache/arrow/pull/36846#issuecomment-1735513388:

I'm not sure what you're referring to here: #36846 (comment)

I suggested to add that to the doc comment of promote_decimal (like you did in the docstring for promote_integer_sign):

Ah, I see in the code that this can be done with promote_numeric_width. Maybe mention that here in the doc comment as well? (I didn't directly think about that)

@Fokko thanks for the updates!
Going throught my previous reviews, summarizing here:
Some follow-up ideas that I don't think need to be addressed here:

Mismatching timezones: a potential option could be to actually allow promoting timezones, and with the result using UTC (the actual time points will stay the same since we store UTC under the hood, you only loose the information about the specified timezone)
Promoting bools to numeric?
Exposing the fine-grained options in python (if we actually want to do this?)
We have some logic around promoting types in kernels (DispatchBest, implemented in CommonNumeric for numeric types, added in #9294). We should look into consolidating that logic (the kernels can use the "permissive" promotion).

Then there are a few things that I would prefer to resolve here in this PR:

Do we need the pyarrow.FieldMergeOptions class? At the moment it actually doesn't really do anything, since we don't (yet) allow to tweak individual flags, only "permissive"/"default" (and the class itself actually also only exposes "permissive", not "default", as a static method to create that options object). Maybe we can just remove it for now, we can always add it back later if we want to expose individual options.
I just noticed that the repr is also failing, so if we keep it, we should fix and test that.

For concat_tables, I find it confusing that a user still has to specify promote=True when they already specified field_merge_options="permissive" (because the latter only makes sense with promote=True). Essentially the promote=False can be seen as a "no promotion" field merge option?
I think with this new promotion capability, the historically added promote keyword is unfortunately badly chosen. Essentially it means: "unify schemas" (that's also how it is called on the C++ side), and by default it hardly does any promotion (only non-existing fields or null fields to any type). If we keep promote keyword, I would expect that promote=True would do actual, permissive promotion.
To be clear, this is not caused by this PR, but I would still prefer to get a nicer API. One option is to actually rename promote to unify_schemas (which is what it does). We can still keep promote as an alias for now for backwards compatibility.
And personally, I am also wondering if we shouldn't make "permissive" the default, when schema unification is enabled (in which case the "default" merge option is badly named ..). But that would actually be a change in behaviour.

The keyword names: pa.concat_tables uses field_merge_options, pa.unify_schemas uses options. Should we try to align those names? I mentioned that I would like promote_options, which I think is more descriptive, but on the other hand deviates from the C++ termininology ..

The last two bullet points are more about the final Python API, and doesn't impact the large part of the changes in the PR (the actual C++ changes), so maybe I shouldn't block the PR on those, and I am also fine with discussing those in a follow-up.

And on the concat_tables keyword, another idea I mentioned above was to combine the promote ("unify_schemas") and field_merge_options in a single keyword. This could have options False/"none" (no unification / promotion, only exactly the same schemas are allowed, the default), "default" (unify schemas, with only null to any type promotion) and "permissive" (unify schemas, with permissive type promotion)

Thanks @jorisvandenbossche for summarizing the pending issues. I was rebasing to see if the LLVM stuff has been fixed.

Do we need the pyarrow.FieldMergeOptions class? At the moment it actually doesn't really do anything, since we don't (yet) allow to tweak individual flags, only "permissive"/"default" (and the class itself actually also only exposes "permissive", not "default", as a static method to create that options object). Maybe we can just remove it for now, we can always add it back later if we want to expose individual options.

I don't think it adds much value. Just accepting a string is much clearer to the end-user, and I think the majority of the people don't the fine-grained tuning.

For concat_tables, I find it confusing that a user still has to specify promote=True when they already specified field_merge_options="permissive" (because the latter only makes sense with promote=True). Essentially the promote=False can be seen as a "no promotion" field merge option?
I think with this new promotion capability, the historically added promote keyword is unfortunately badly chosen. Essentially it means: "unify schemas" (that's also how it is called on the C++ side), and by default it hardly does any promotion (only non-existing fields or null fields to any type). If we keep promote keyword, I would expect that promote=True would do actual, permissive promotion.
To be clear, this is not caused by this PR, but I would still prefer to get a nicer API. One option is to actually rename promote to unify_schemas (which is what it does). We can still keep promote as an alias for now for backwards compatibility.

This is a good point, and I agree that promote is poorly chosen. You could have the situation that you don't want to add null fields, but you allow the promotion of the fields. I've added the none option as you suggested, and I think this is much cleaner. Also added support for promote if people still rely on it. It will emit a warning to let users know that they should switch to promote_options.

The keyword names: pa.concat_tables uses field_merge_options, pa.unify_schemas uses options. Should we try to align those names? I mentioned that I would like promote_options, which I think is more descriptive, but on the other hand deviates from the C++ terminology ..

I like promote_options as well. Aligned the names there.

The last two bullet points are more about the final Python API, and doesn't impact the large part of the changes in the PR (the actual C++ changes), so maybe I shouldn't block the PR on those, and I am also fine with discussing those in a follow-up.

We should not merge anything that we're going to rip out anyway, but I'm happy to help with some of the follow-ups. Getting this one in would be great since it is quite big already.

Thanks @Fokko! (and @lidavidm for the initial PR)


Promote functionality of project on social media

We should promote the public interface of this project on social media.  Here are the public interface methods and what social media posts are left to make:

type_2_scd_upsert ✅
kill_duplicates
drop_duplicates_pkey
drop_duplicates ✅
validate_append ✅
append_without_duplicates ✅
delta_file_sizes ✅
show_delta_file_sizes
humanize_bytes
is_composite_key_candidate
find_composite_key_candidates
with_md5_cols

@robertkossendey - can you make a LinkedIn post on drop_duplicates_pkey?
@souvik-databricks - can you make a LinkedIn post on is_composite_key_candidate?

@MrPowers sure, do you have a template for the pictures that are always attached to your / Delta's posts on LinkedIn?
I would like to keep it in line with them.

@robertkossendey - I actually think it's best for you to develop your own style for this.  That way the audience can get another take on the concepts.  I'm sure your style will resonate better with some viewers.

Fine with me 👍

I will be making today the LinkedIn post @MrPowers

@souvik-databricks - now that you made the post, can you please update the checklist with a green check mark?  Also, the post looks amazing!

Done updated @MrPowers I will make one more post Thursday on the with_md5_cols and I will this week also complete the dlq work
@robertkossendey I will get to the test case that you mentioned in the week after that.

Awesome @souvik-databricks.  I added suggested names to the remaining posts just for tracking purposes.

@MrPowers I would like to create the post for show_file_sizes, but I realised that it is not released yet. Could we publish the latest changes to PyPi?

@robertkossendey - made a v0.3.0 release, see here: https://pypi.org/project/mack/0.3.0/
We still need a better publishing process, so you are also free to release at will and avoid getting blocked.  Will try to figure out how to make a better process.

@MrPowers thank you! :)

@MrPowers we should probably keep the list up to date. I honestly don't know which functions we already added to the latest release and what we promoted on social media yet.

@MrPowers @robertkossendey I'm happy to do some posts on my Substack https://dataengineeringcentral.substack.com/ , if you have any particular features you want to shed more light on. I can also do some on my other website https://www.confessionsofadataguy.com/ , just let me know.


Do not include v in version string

See also https://henggana.com/posts/npm-version-no-v-prefix-guide/


Add option to specify server side encryption algorithm in upload step

The s3Upload is great but I'm required to use SSE for uploaded files, ideally it should have a parameter for this purpose, like:
s3Upload file: 'a.txt', path: 'a.txt', bucket: 'b', sseAlgorithm: 'AES-256'
Thank you.

You can use KMS to encrypt using s3upload(file: 'bar-dir', bucket: 'my-bucket', path: 'path/to/target', kmsId: 'alias/bar').
I will check for AES encryption.


Add Meteor package

I've wrapped zxcvbn in a package for easy use in Meteor projects.

thanks for packaging!

Thanks!


STP-3129: top-level management network topics

Summary and Scope
Improving the top-level management network topics with edits for workflow, grammar, and formatting.
Issues and Related PRs

Resolves STP-3129

Testing
N/A
Tested on:
N/A
Test description:
N/A
Risks and Mitigations
None.
Pull Request Checklist

[ ] Version number(s) incremented, if applicable
[ ] Copyrights updated
[ ] License file intact
[ ] Target branch correct
[ ] CHANGELOG.md updated
[ ] Testing is appropriate and complete, if applicable
[ ] HPC Product Announcement prepared, if applicable

Looks like there's a merge conflict that needs to be resolved.