fix TS resolution for CJS package types

Fixes #28
TS resolution failed for CJS packages as shown by Are The Types Wrong.
This fix changes the bundle outputs to dist/module/regex.js and dist/commonjs/regex.js for ESM and CJS respectively and adds a postbuild script which does two things for each dist type:

copy the generated types into the dist folder
generate a package.json file with only the type field set

Running npx attw --pack . now produces the following result:
regex v4.4.0

Build tools:
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>
💀 Import failed to resolve to type declarations or JavaScript files. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/NoResolution.md

⚠ A require call resolved to an ESM JavaScript file, which is an error in Node and some bundlers. CommonJS consumers will need to use a dynamic import. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/CJSResolvesToESM.md

┌───────────────────┬──────────┬──────────────────────────────┐
│                   │ "regex"  │ "regex/atomic"               │
├───────────────────┼──────────┼──────────────────────────────┤
│ node10            │ 🟢       │ 💀 Resolution failed         │
├───────────────────┼──────────┼──────────────────────────────┤
│ node16 (from CJS) │ 🟢 (CJS) │ ⚠ ESM (dynamic import only) │
├───────────────────┼──────────┼──────────────────────────────┤
│ node16 (from ESM) │ 🟢 (ESM) │ 🟢 (ESM)                     │
├───────────────────┼──────────┼──────────────────────────────┤
│ bundler           │ 🟢       │ 🟢                           │
└───────────────────┴──────────┴──────────────────────────────┘

It still errors for regex/atomic with a node10 module option, but I believe this is irrelevant since the exports field and subpaths are not supported by Node 10 anyway.
I tried to integrate the attw check into the test script but it would deadlock since attw calls npm pack which in turn calls npm prepare which calls npm test.
Edit:
Forgot to mention that I changed the TS dependency to patch range since TS is known for not following semver and introducing breaking changes in minor versions.

Thanks for the PR! This is very helpful since CJS and TS are both moderately unfamiliar areas for me.
It's unfortunate that this added complexity is needed. I'd almost rather make it ESM only, but I guess this is the right path at least for now. I'm curious, are you personally trying to use this library from a CommonJS module, or just helping out?

generate a package.json file with only the type field set

Can you confirm that this is necessary for it to work? Can import types and require types not point to the same file?

I tried to integrate the attw check into the test script but it would deadlock since attw calls npm pack which in turn calls npm prepare which calls npm test.

Would changing the current prepare to instead use prepublishOnly enable adding attw to test? If so, I think that would be worthwhile.

It's unfortunate that this added complexity is needed. I'd almost rather go ESM only, but I guess this is the right path. I'm curious, are you personally trying to use this library from a CommonJS module, or just helping out?

Yeah, TypeScript support for dual packages does feel unnecessarily complex. I'm trying to use regex in a library which I publish as a dual package myself. I'd love to drop CJS support but I'm currently keeping it because VSCode extensions need to be shipped as CJS. Node 24 will likely ship with the ability to load ESM modules via require() calls from CJS, maybe it'll also get backported. So when VSCode ships with a Node version that supports this I'll most likely drop CJS support, or when they support extensions to load as ESM.

Can you confirm that this is necessary for it to work? Can import types and require types not point to the same file?

Unfortunately it is necessary for TypeScript's resolution algorithm. I am not very good at explaining stuff, but I'll try as best as I can: So, in the case of regex the package.json's type field is set to module, i.e. Node will load .js files as ESM by default. Import statements in the sources with .js extensions are kept as is by TS. When TS tries to resolve the library from a CJS package it will encounter the exports entry pointing to a .cjs file and type definitions for ESM because of the type: module field. That's why Are The Types Wrong list the issue "Masquerading as ESM". Explicit CJS type definitions would require .d.cts files. Unfortunately, as far as I'm aware, TS is unable to produce both .d.cts and .d.mts from a single source. That's why tools like tshy exist.
Now, nested package.json files in the dist folder for each type is a possible solution to the problem. When loading JS files, Node will use the closest package.json to determine if it's ESM or CJS. That way using simply .js and .d.ts extensions works as expected.
I hope that was somewhat clear, I know it's a mess. 😅

Would changing the current prepare to instead use prepublishOnly enable adding attw to test? If so, I think that would be worthwhile.

I think so, will try it and update.
Do you intend to keep support for Node 14? It's EOL for over a year now. If so I will have to address the failing CI check.

Do you intend to keep support for Node 14? It's EOL for over a year now. If so I will have to address the failing CI check.

What would it take to address the failing check? And which version of Node supports the fs.cp function you're using?
I don't particularly care about Node 14, but I like running tests on it because it's the first version that supports all the JavaScript features I use within the library (e.g. including the ?. operator), so testing with it ensures I'm not changing the list of 2020-era browsers that this library supports.

Based on this thread, fs.cp was added in Node 16.7, and it looks like maybe the best alternative that isn't unmaintained is fs-extra. Okay, why don't we go ahead and test on Node 16 instead of 14 in order to make this work as is.

Some minor-ish follow-ups in https://github.com/slevithan/regex/commit/d18b974dbd62d45f2fc1fcc2acbe87f32c6768f6, including moving CI to Node 16.

Now published in v5.0.0.

For future reference, here's one ATTW-passing example that generates separate d.cts and d.mts files, and uses the typesVersions property in package.json.


[edge] Weird output from builder

Version
~v1.4.0~
nuxt-edge@latest
Reproduction link
https://github.com/Freakspot/nuxt-edge-broken
Steps to reproduce
Just run node app.js.
"Test" will never be seen in the console, only "Test 2" will. Imo console.logs prior to the builder should not be cleared.
Additionally, I sometimes get huge empty chunks of whitespace, which I think sometimes happens after rendering new pages? Definitely not 100% reproducable. Also, when the builder is done doing its magic, I'll have a lot of "Compiling..." in the console which imo also shouldn't happen. See this gif: https://gph.is/2v17gSP
What is expected ?
Clean output
What is actually happening?
Unnecessary clutter, whitespace and deletion of console.logs

This bug report is available on Nuxt community (#c7448)

I've seen this behaviour as well, we will look at it with @clarkdo, thank you @Freakspot

Possibly related: https://github.com/nuxt/webpackbar/issues/13

@Freakspot I suggest you using consola which is the default log utility of Nuxt and it's automatically included by Nuxt.
const { Nuxt, Builder } = require('nuxt-edge');
const nuxt = new Nuxt();
const consola = require('consola')

consola.log('Test');

async function build() {
	const builder = new Builder(nuxt);
	await builder.build();
}

build();

consola.log('Test 2');

If this doesn't solve your problem, please feel free to ping me, I'll reopen the issue.

@clarkdo Unfortunately you can't always control which logger will be used (example:other plugins/modules) :|

Using consola does indeed solve my problem in this case, but I have heard other complaints about this, too, and imo using consola is more of a workaround than an actual solution to this problem, similar to how @manniL stated. (console.log is also included with nuxt. :stuck_out_tongue:)
Thanks for providing this workaround tho, I really appreciate it!


fix(curriculum): description change of learn-css-variables-by-building-a-city-skyline

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[X] My pull request targets the main branch of freeCodeCamp.
[X] I have tested these changes either locally on my machine, or GitPod.

Closes #47555

learn-css-variables-by-building-a-city-skyline description changed as per comment

There's a duplicate of the issue with some more suggestions I like a little better. "Center the parts of your building by turning the .bb1 element into a flexbox parent. Use the flex-direction and align-items properties to center the children." is the example I gave there.

I agree with Tom, again sorry @nayabatir1 for the confusion

Hello there,
Please edit this PR title to match our recommended title format: https://contribute.freecodecamp.org/#/how-to-open-a-pull-request

Hello there,
Please edit this PR title to match our recommended title format: https://contribute.freecodecamp.org/#/how-to-open-a-pull-request

Done

Done

This is not a documentation change... the automatically applied label  scope: curriculum Lessons, Challenges, Projects and other Curricular Content in curriculum directory. could be an hint toward the scope
Please consult our contributing documentation, specifically How to open a Pull Request (PR)

Updated

The linked issue is still with https://github.com/freeCodeCamp/freeCodeCamp/labels/scope%3A curriculum and has not been opened to contributions, as such I am blocking this until consense ahs been reached.

Hey @ieahleen is there anything that is pending from my end, do let me know as I'm not clear what needs to be done here.

You have opened the PR prematurely, the issue was not open for contributions and is still being discussed


GH-39707: [Java] Enable local build cache for Maven/Java build

Rationale for this change
This change has two main benefits:
Enabling local build caching
Enabling local build cache can speed up builds that occur on the same machine by skipping the execution of certain deterministic goals, such as Java compilation, when no change has occurred.
In the future, https://ge.apache.org will support remote build caching as well so that results can be shared between builds (e.g. ephemeral CI build agents).
Enabling build scans
This change enables the publishing of build scans of the Apache Arrow project to the Develocity instance at ge.apache.org, hosted by the Apache Software Foundation and run in partnership between the ASF and Gradle. This Develocity instance has all features and extensions enabled and is freely available for use by the Apache Arrow project and all other Apache projects. Currently, Maven-built projects such as Pulsar, IoTDB, Ozone, and others are using this instance.
On this Develocity instance, Apache Arrow will have access not only to all of the published build scans but other aggregate data features such as:

Dashboards to view all historical build scans, along with performance trends over time
Build failure analytics for enhanced investigation and diagnosis of build failures
Test failure analytics to better understand trends and causes around slow, failing, and flaky tests

What changes are included in this PR?

Adds the Develocity Maven Extension to enable local caching
Publishes build scans to ge.apache.org from CI builds and authenticated local builds
Adds the Common Custom User Data Maven Extension to enhance build scans with more metadata

Are these changes tested?
No (these changes are for the build and do not affect the code)
Are there any user-facing changes?
No

Closes: #39707

Thank you @clayburn! This is an exciting improvement. For local build execution, would we have to change anything in our developer docs[1] on how to build Arrow java in order to take advantage of this?
[1]https://arrow.apache.org/docs/developers/java/building.html#building-java-modules

@clayburn I have approved the CI runs, I assume that only builds on main will be able to upload data due to the use of secrets? For similar things I have used a two step process in the past where the unprivileged workflow creates the data/artifacts and a second privileged workflow that doesn't run any user code would upload the data. Is this something gradle could support? Or maybe data for each PR build would be a bit much ^^

Thank you @clayburn! This is an exciting improvement. For local build execution, would we have to change anything in our developer docs[1] on how to build Arrow java in order to take advantage of this?
[1]https://arrow.apache.org/docs/developers/java/building.html#building-java-modules

@danepitkin - For caching, there is no action needed. The one stipulation that should be noted is that the local cache is machine local, so with some of your containerized builds, it would be local to the container itself without any special handling. The local cache by default is located at $HOME/.m2/.gradle-enterprise/build-cache.
For build scans, you won't see any changes unless you explicitly authenticate to https://ge.apache.org. Instructions to do so are here. All ASF committers can authenticate to ge.apache.org with LDAP credentials. Contributors cannot authenticate, so they won't see anything regarding build scans. The access key is either stored in ~/.m2 or pulled from an env var, so again, the containerized builds may not authenticate easily without intention from the user.

@clayburn I have approved the CI runs, I assume that only builds on main will be able to upload data due to the use of secrets? For similar things I have used a two step process in the past where the unprivileged workflow creates the data/artifacts and a second privileged workflow that doesn't run any user code would upload the data. Is this something gradle could support? Or maybe data for each PR build would be a bit much ^^

Build scans will only be produced for builds that run from the apache/arrow repo. In other words, not from forks. Forked builds will still build just fine, but will not produce a scan. We are working on methods to handle this in the way you described, performing the upload of the scan in a "trusted" environment, but this is not yet ready.
The caching functionality will work without the secret, although the benefits may not be apparent in your CI builds since they are presumably running on ephemeral agents and the cache is machine local. This is where the remote cache will help more, which we hope to enable in the future.

The local cache by default is located at $HOME/.m2/.gradle-enterprise/build-cache.

Can it be directed to another directory using an environment variable? In C++ we direct ccache data to a custom directory which is then persisted as Docker volumes. This is then used together with GHA caching to shorten CI times.

The local cache by default is located at $HOME/.m2/.gradle-enterprise/build-cache.

Can it be directed to another directory using an environment variable? In C++ we direct ccache data to a custom directory which is then persisted as Docker volumes. This is then used together with GHA caching to shorten CI times.

I think this is plausible. I'll give it a shot and update back here.

@pitrou - Looking through the workflow, you are already caching the right directory. It's all of $HOME/.m2, but it will include the default build cache directory. The cache key there being constructed by all files under java/** may be overly specific for the build cache, but the restore-keys configuration should handle it. We can see as you publish build scans and generate that data.
I've pushed two changes to further optimize this:

One that enables the local cache. It also adds the clean lifecycle to the CI invocations of Maven, as the build cache is in read-only mode when clean isn't used.
One that defines some normalizations so that, for example, a change to a properties file that exists in a runtime classpath won't cause a cache miss.

@github-actions crossbow submit java

@lidavidm Done ✅

For caching, there is no action needed. The one stipulation that should be noted is that the local cache is machine local

@clayburn If you could help me with doubts regarding local development, I would appreciate it:

I am running $ mvn clean install and seeing that /.m2/.gradle-enterprise is populating with information. If I run $ mvn clean install again and haven't made any changes to my Java module projects, should it use the last cache?
Is there a list of tasks that will be fetched from the cache before building it again (e.g. compile,...)?

I would like to identify/map what the new advantages will be for developers on their loca machines.
Thank you in advance for your support.

@davisusanibar - So sorry for losing track of this:

Yes, such a build will use the cache. It also isn't necessarily even the "last" cache (i.e. the last build). It could be the case that you use cache entries from older builds as well. This can help, for example, when switching back and forth between feature branches.

We document the default cacheable goals here. It is possible to add goals if needed. We can explore this in the future to see if any in your project make sense to add.

@github-actions crossbow submit -g java

@danepitkin @vibhatha A potential CI improvement might be to have a post-run step that captures and uploads dump files like these so we can get to the bottom of this instability.
Error:  Caused by: org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Error:  Command was cmd.exe /X /C "C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\11.0.22-7\x64\bin\java --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED -jar C:\Users\runneradmin\AppData\Local\Temp\surefire832983470661055534\surefirebooter-20240322025403947_28.jar C:\Users\runneradmin\AppData\Local\Temp\surefire832983470661055534 2024-03-22T02-53-37_914-jvmRun2 surefire-20240322025403947_24tmp surefire_6-20240322025403947_26tmp"

Verification failure is unrelated. However, another improvement might be to run mvn -B in our verification script; I don't think we need to see the entire download progress in logs and it makes scanning the log much harder...

Hmm, I mightve found the culprit.. DEBUG messages are enabled in the build now causing a huge amount of logging.

Do we want to revert, or do you think disabling the log is good enough?

I think disabling DEBUG logs should be good enough. I'll try it out.


Baseserver send

WIP, and also waiting for #197 to be merged, hence the first seemingly spurious commit.

Okay, I just merged #197
Like I said, please tackle #204 and #205 before working on this.
#204 is essential functionality, and #205 will change the way this is implemented.

Closing this.  Once /login works, let's take another stab at it.
I like the idea, just want to clean up the approach.


feat: supports mulitple filters in samples endpoint

SUMMARY

In order to support drill to detail with filters, adds DRILL DETAIL query type and supports arbitrary filters in /datasource/samples endpoints
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

pure backend codes change, so screenshots are not suitable
TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

reset


FEATURE REQUEST: operatorhub.io could also double as a golang module repo

FEATURE REQUEST: operatorhub.io could also double as a golang 1.11 module repo. I would like a nice central place to import the apimachinery CRD code associated with an operator.

@jwalters-gpsw We appreciate the suggestion for additional features. However, I'm not sure how this would work. Right now, OperatorHub.io stores operator bundles for installing operators onto kubernetes clusters via OLM (operator-lifecycle-manager).
We're not storing any go code in this repo, so I'm not sure what modules we'd be organizing. We are simply aggregating operator manifests; the operator source code is stored in external repositories.

Could not we close this one?
@jwalters-gpsw could you raise this in the suggested repos?


Zoom in on click to mouse position

Is your feature request related to a problem? Please describe.
I need to zoom in on images with single click, instead of double click. I kind of achieved this by using zoomIn() method, however this both interferes with panning (which I found a workaround with onPanning() method) and also only zooms in the centre of image instead of the mouse position. Double click on the other hand, zooms in wherever the mouse position is.
Describe the solution you'd like
There can be a singleClick option which imitates the doubleClick action.
Describe alternatives you've considered
I have considered using zoomIn() as a click event, but it only zooms in the centre.

When could this be added? Anytime soon hopefully? 🙏

Damn, I actually solved it with some help from a friend. If anyone is looking for something similar, you my solution here

import dynamic from 'next/dynamic'
import type { NextPage } from 'next'
import { Grid, GridItem, VStack, SkeletonCircle } from '@chakra-ui/react'
import React, { useEffect, useState } from 'react'
import 'swiper/css/pagination'
import 'swiper/css'
import 'swiper/css/zoom'
import 'swiper/css/navigation'
import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch'
import ScrollIcon from 'components/icons/scrollIcon'
import PiImage from 'components/ui/piImage'
import PersonalizationImage from 'components/personalization/personalizationImage'
const ProductShare = dynamic(() => import('./productShare'), {
ssr: false,
loading: () => ,
})
const ProductImage: NextPage = ({
assets,
personalizations,
personalizationTexts,
likeHandler,
liked,
...props
}) => {
const [myArray, setMyArray] = useState(assets)
const [scale, setScale] = useState(assets?.map(() => 1))
useEffect(() => {
setMyArray(assets)
}, [assets])
return (
<>
  <Grid w="full" position="relative" display={{ sm: 'grid', xxs: 'none' }} {...props}>
    <VStack zIndex={10} position="absolute" right={6} top={3} spacing={4} gap={4}>
      <ProductShare aria-label="Social Media Share" />
    </VStack>
    <Grid
      templateColumns="repeat(2, 1fr)"
      style={{ padding: '5rem' }}
      w="full"
      display={{ sm: 'grid', xxs: 'none' }}
      gap={2}
      {...props}
    >
      {myArray?.map((asset: any, index: any) => (
        <GridItem
          key={asset?.id}
          position="relative"
          display={'flex'}
          alignItems={'center'}
          justifyContent={'center'}
          background={'white'}
          cursor={'auto'}
          _hover={{ cursor: scale?.[index] < 3 ? 'zoom-in' : 'zoom-out' }}
          sx={{ '& > svg': { display: 'none' } }}
        >
          <TransformWrapper
            initialScale={1}
            initialPositionX={0}
            initialPositionY={0}
            wheel={{ disabled: scale?.[index] === 1 }}
            maxScale={3}
            onTransformed={(e: any) => setScale({ ...scale, [index]: e?.state?.scale })}
          >
            {({ zoomIn, zoomOut }) => (
              <React.Fragment>
                <div onClick={() => (scale?.[index] < 3 ? zoomIn(3) : zoomOut(3))}>
                  <TransformComponent>
                    {index !== 0 && index !== 1 ? (
                      <PiImage
                        src={asset}
                        alt={asset?.alt || 'Product Image'}
                        width={'350'}
                        height={'370'}
                        style={{ width: '100%', height: '100%', objectFit: 'contain' }}
                      />
                    ) : null}
                    {index === 0 ? (
                      <PersonalizationImage
                        customTexts={personalizationTexts?.FRONT}
                        mockupUrl={asset}
                        personalizations={personalizations?.FRONT}
                      />
                    ) : null}
                    {index === 1 ? (
                      <PersonalizationImage
                        customTexts={personalizationTexts?.BACK}
                        mockupUrl={asset}
                        personalizations={personalizations?.BACK}
                      />
                    ) : null}
                  </TransformComponent>
                </div>
              </React.Fragment>
            )}
          </TransformWrapper>

          <ScrollIcon position={'absolute'} right={1} bottom={1} />
        </GridItem>
      ))}
    </Grid>
  </Grid>
</>

)
}
export default ProductImage
hi how to add your code to my code

hi where to add this code
const wrapper = document.getElementsByClassName('react-transform-wrapper')?.[0];
const x = wrapper?.getBoundingClientRect().left;
const y = wrapper?.getBoundingClientRect().top;
const coordinates = {
x: x - e.clientX,
y: y - e.clientY,
};
setTransform(
(coordinates.x + wrapper?.clientWidth / (MAX_SCALE * 2)) * MAX_SCALE,
(coordinates.y + wrapper?.clientHeight / (MAX_SCALE * 2)) * MAX_SCALE,
MAX_SCALE
);

Damn, I actually solved it with some help from a friend. If anyone is looking for something similar, you my solution here

Actually, the code zooms to the indicated part, but it does not take into consideration the image limits, which results in a sharp jump to the limit at the moment of a movement.
I figured out a way to zoom respecting those limits, inspired by this W3S example.
The code is as follows:
const calculateZoomPosition = (dimension, scale, mousePosition) =>
    Math.min(
        Math.max(
            (mousePosition + dimension / (scale * 2)) * scale,
            dimension * (1 - 1 * (2 - scale)) * -1
        ),
        0
    );

setTransform(
    calculateZoomPosition(width, MAX_SCALE, coordinates.x),
    calculateZoomPosition(height, MAX_SCALE, coordinates.y),
    MAX_SCALE
);


Test run on more program ids with new hst pipeline under hst dir

Replace https://github.com/SETI/pds-hst-pipeline/pull/71

Update based on Rob's feedback on the task queue manager:
    - Modify the architecture to spawn all the subprocesses at a center location (inside run_pipeline function). Each subtask would queue its successor, but not run it. It would then just exit. The top-level pipeline_run would be in a loop waiting for a subprocess slot to become open, and then read the next task from the table (for any program id) and run it.
    - Update setup document with commands to run the program.
    - Update & clean up the code based on Rob's feedback in queue_manager/__init__.py, queue_manager/config.py and queue_manager/task_queue_db.py
    - Change all 'mast' and 'Mast' to 'MAST' for files under HST/
    - Re-org files, move the old files under archive/
    - Update requirements.txt to work with python 3.11
    - Remove ending periods in logger messages.
    - Turn off sqlalchemy terminal console messages.
    - Fix pipeline programs file names in the ArgumentParser's descriptions.
    - Add max subprocesses and max allowed time to command line options.
    - Remove pds-tools from PYTHONPATH, use pip-installable versions of julian, textkernel, pdslogger and pdstemplate.
    - Setup requirements.in using pip-compile from pip-tools to auto generate requirements.txt
    - Add a step in `retrieve_hst_visit.py` to remove the corresponding trl file when downloading MAST files has failed. That way in query_hst_products task, we know that the MAST downloading for a specific propsal id & visit is not done, and the files of that visit will be treated as new files waiting to be downloaded in the next task.
    - Replace task number with task name string, and create TASK_INFO dictionary to replace the TASK_*_MAPPING constants

Example commands:
python pipeline/pipeline_run.py --prog-id 07885 7315 08659 06328 8218 13736 05167 10341 14930 16310 9256 7309 15406 10095 6621 5392 6736 9985 7239 10156 --max_subproc 30 --max_time 1860

Update based on feedback, here are example commands:

Run with the full ids (pre-fetch from MAST with True moving target flag):

python pipeline/pipeline_run.py

Query MAST with True moving target flag to get the latest ids, and then run pipeline with them:

python pipeline/pipeline_run.py --get-ids

Run with one proposal id:

python pipeline/pipeline_run.py --prog-id 07885

Run with multiple proposal ids:

python pipeline/pipeline_run.py --prog-id 13736 05167 10341 14930 06679

Run with specific number of subprocesses and max allowed running time for each task (in sec):

python pipeline/pipeline_run.py --prog-id 07885 13736 --max-subproc 30 --max-time 1860

Updates based on comments:

Remove *pdscache.py and *translator.py in .coveragerc
Remove --prog-id in the command line arguments, use --proposal-id and
--proposal-ids correspondingly
Update command line argument --visit-li to --visit-list to be more clear and remove its shorter version --vi
Update setup.md due to command line arguments changed
For shutil.rmtree:

HST/retrieve_hst_visit.py:              shutil.rmtree(files_dir) --> this is to removed the mastDownload dir when there is a failure during MAST downloading
HST/query_hst_products.py:              shutil.rmtree(dir_path) --> this is to removed the mastDownload dir when there is a failure during MAST downloading
HST/query_hst_products.py:              shutil.rmtree(staging_dir + '/mastDownload') --> Move to final clean up function clean_up_staging_dir
HST/organize_files.py:                  shutil.rmtree(staging_prod_dir) --> this is in the final clean up function clean_up_staging_dir
HST/tests/test_get_program_info.py:     shutil.rmtree(self.download_dir) --> use in teardown function for testing, remove the download dir used in the test
HST/tests/test_retrieve_hst_visit.py:   shutil.rmtree(testing_dir) --> use in teardown function for testing, remove the download dir used in the test
HST/tests/test_label_creations.py:      shutil.rmtree(testing_dir) --> use in teardown function for testing, remove the download dir used in the test

Remaining issues:

Label errors from the validation tool https://github.com/SETI/rms-hst-pipeline/issues/56 (Looking at it now)
Issues related to label versioning, details in https://github.com/SETI/rms-hst-pipeline/issues/53
Issues happen during label creation caused by missing files from MAST (currently we log the error and continue the pipeline), details in:

https://github.com/SETI/rms-hst-pipeline/issues/65
https://github.com/SETI/rms-hst-pipeline/issues/66

Issue related to undetermined wavelength, expand FILTER_EXCEPTIONS or FILTER_REGEX? Details in https://github.com/SETI/rms-hst-pipeline/issues/70
Issue related to unrecognized EXTNAME, expand dictionaries of DESCRIPTIONS or EXTRA_DESCRIPTIONS? Details in https://github.com/SETI/rms-hst-pipeline/issues/67
Put SPICE kernel to the final bundle, details in:

https://github.com/SETI/rms-hst-pipeline/issues/78
https://github.com/SETI/rms-hst-pipeline/issues/72

Add labels for browse products, details in https://github.com/SETI/rms-hst-pipeline/issues/73
Corner case: handle the case for a target body with multiple names & types, details in https://github.com/SETI/rms-hst-pipeline/issues/60

Change command line argument "--visit-list" to "--visits"

Fixed some errors caused by validator.

Modifications:

In PRODUCT_LABEL.xml

Change hst:moving_target_keyword to hst:moving_target_keywords
Remove attribute nilReason in hst:gain_setting tag (attribute is not allowed)
Remove attribute unit in hst:plate_scale tag (attribute is not allowed)
Remove attribute nilReason in hst:spectral_resolution tag (attribute is not allowed)
Remove attribute nilReason in hst:center_filter_wavelength tag (attribute is not allowed)
Remove attribute nilReason in hst:bandwidth tag (attribute is not allowed)
Add unit="byte" to record_length, field_location, and field_location tags

In hst_dictionary_support.py

Change hst:observation_type from SPECTROSCOPIC back to SPECTROGRAPHIC
Change Array_1D to Array

In PRODUCT_LABEL.xml

Change File_Area to File_Area_Ancillary tag if processing level is "Ancillary"

In all labels templates, keep logical_identifier tag and its content in one line to avoid validator complaining about the unexpected carriage returns

Issues that needs to be reviewed/discussed:

hst:gain_setting, hst:spectral_resolution, hst:center_filter_wavelength, and hst:bandwidth values need to match this pattern r'(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|[^aFIN,]* ', what should we put if it's not applicable? Remove the tag? (empty string is not a valid value)
No child element allowed for these tags" hst:visit_id & hst:Processing_Parameters
For hst:observation_type, it must exists, and the validator requires the value to be one of these: 'IMAGING', 'SPECTROGRAPHIC', 'TIME-SERIES', so 'UNK' will fail the validator.
For data class, these are the available values: {Array, Array_2D, Array_2D_Image, Array_2D_Map, Array_2D_Spectrum, Array_3D, Array_3D_Image, Array_3D_Movie, Array_3D_Spectrum, Checksum_Manifest, Encoded_Header, Encoded_Image, Header, Stream_Text, Table_Binary, Table_Character, Table_Delimited}. Should we modify DATA_CLASS_TO_NOUN in hdu_data_descriptions.py? What value should we put for Array_1D_Spectrum?

Current changes: (updates after 1/19/24 meeting)

In PRODUCT_LABEL.xml

Change hst:moving_target_keyword to hst:moving_target_keywords
Add unit="byte" to record_length, field_location, and field_location tags

In hst_dictionary_support.py

Change hst:observation_type value SPECTROSCOPIC to SPECTROGRAPHIC
Change File_Area to File_Area_Ancillary tag if processing level is "Ancillary"

In all labels templates, keep logical_identifier tag and its content in one line to avoid validator complaining about the unexpected carriage returns

Pending items:

Get HST dicitonary definition update

Details of the new updates in https://github.com/SETI/rms-hst-pipeline/issues/56 (comments on 06/17/24)

Details of the new updates in #56 (comments on 06/17/24)

Yes, those look good.  So do all the tests pass now?

06/21/24 updates:
When creating the target label that doesn't exist in https://pds.nasa.gov/data/pds4/context-pds4/target/ , obtain the correct type and name from lid for the target label.


.github: add triggering on versioned tags

Small update to include running the CI on versioned tags, i.e. any tag starting with a v.
This allows for tagging release candidates manually.

Codecov Report

Merging #1237 (d439da2) into main (738b69f) will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1237      +/-   ##
==========================================
+ Coverage   55.64%   55.69%   +0.05%
==========================================
  Files         160      160
  Lines        9862     9862
==========================================
+ Hits         5488     5493       +5
+ Misses       3838     3834       -4
+ Partials      536      535       -1

Impacted Files
Coverage Δ

share/ipld/get.go
90.22% <0.00%> (-1.34%)
:arrow_down:

das/coordinator.go
92.64% <0.00%> (+1.47%)
:arrow_up:

fraud/service.go
77.02% <0.00%> (+2.02%)
:arrow_up:

fraud/proof.go
82.75% <0.00%> (+13.79%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Inherit from pathlib_abc.PathBase

To improve maintainability when new Python versions are released and to integrate better with upstream as well as downstream libraries, we're moving to pathlib_abc.PathBase as our base class for UPath.
This draft PR makes UPath inherit from PathBase, introduces PureUPath, and a "parser" (formerly 'flavour') based on ParserBase.
There's still quite a bit of work to be done to make all tests pass, but I'm pushing this here for people to follow along.
This PR will close #114, close #193, close #221 and close #245

A lot of the path parsing in PurePathBase depends on the correct behavior of ParserBase.split. I should write tests for all supported filesystems how split should behave.


Empty invalid and not_found_in_database translations for all languages

With the current blank translations I can't show invalid messages for my users who fail to login.
invalid and not_fonud_in_database translations were removed with #114, but now Devise is settled on using Invalid %{authentication_keys} or password. for en, should we update all languages to this format?
zh-TW for example:
invalid: "%{authentication_keys}或密碼是無效的。"
not_found_in_database: "%{authentication_keys}或密碼是無效的。"

This repo's English strings are a copy of devise's English strings. Strings in other languages should say the same thing as the English strings, unless there's a good, language-specific reason not to.

Could you clarify by "should say the same thing as the English strings"? Did you mean other languages should also display the English version of the strings?

If I use devise-i18n without adding my customized zh-TW yaml, when I failed to login the flash message will show translation missing: zh-TW.devise.failure.sales_user.not_found_in_database.
But if I add a devise.views.zh-tw.yml and fill in a string for key not_found_in_database, then the flash will properly display the string.
Does this mean should not have empty keys for translations?

Could you clarify by "should say the same thing as the English strings"?
The meaning of the message should be the same in all languages, unless there is a reason for them not to be.

If I use devise-i18n without adding my customized zh-TW yaml, when I failed to login the flash message will show translation missing: zh-TW.devise.failure.sales_user.not_found_in_database.

Some languages are not complete in this project. If you want to contribute translations they would be very welcome. Short of doing that, your options are:

Defining a custom file, like you did.
Defining a fallback language, so that the messages show in e.g. English if they are not available in your chosen language.
Live with the missing translations.

Done in ed81f295b9f04fe5bb8dbf35089a200f8249a223. 謝謝!

Thanks!


feat: support import.meta.* for webpack

🔗 Linked issue
Fixes: https://github.com/nuxt/bridge/issues/1295

❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[x] ✨ New feature (a non-breaking change that adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
This PR supports import.meta.* in webpack mode.
webpack 4 does not support import.meta, so we need to create a plugin.
I'm not sure whether to opt-in.
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

In vite mode there may be cases where import.meta.* cannot be used.
https://github.com/nuxt/bridge/actions/runs/10561840303/job/29258454861?pr=1298
https://github.com/nuxt/bridge/pull/1298/commits/e4b1a6368015d81aaf31dad62becb956fe3ac460
This will be investigated later.


fix build settings

Codecov Report

Merging #45 into master will not change coverage.

@@           Coverage Diff           @@
##           master      #45   +/-   ##
=======================================
  Coverage   94.37%   94.37%
=======================================
  Files          58       58
  Lines         818      818
  Branches       44       33   -11
=======================================
  Hits          772      772
  Misses         46       46

Continue to review full report at Codecov.

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

Thanks!


Bug? No sorting with collection helpers

I use yogiben:admin (which uses tabular).
When I add a collection helper row, this row is not sortable nor searchable.
Not sure if this is a tabular bug or an admin bug.

This may be a feature request.

Possible duplicate of #114

See https://github.com/aldeed/meteor-tabular/issues/162#issuecomment-121276002

This is an important feature for usability and 'robustness'. In effect, users will not differentiate between columns created by collection helpers, and may need to sort based on that data.

Yes. Right now we add a "(NO SORT)" label to these columns which is really sad.


[Bug]: Incorrect reference error is displayed for function that is present in a promise call

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Incorrect reference error is displayed on console for functions that are called within a promise

Steps To Reproduce

Go to app at link and observe errors on console.

Environment
Release
Version
Cloud

Execution is not affected by the errors displayed on the console. These errors are displayed as a result of how JS and API's are handled when app is loaded hence deprioritising this to low

Reopening this issue since we still see ReferenceError on console.

@ramsaptami would you please share the app link again? The one shared above does not work anymore

Is it same as https://github.com/appsmithorg/appsmith/pull/12683 ? @ramsaptami

@Rishabh-Rathod this isn't the same error we see as the one in #12683. I can't seem to find the app that has this issue so I'm trying to repro this. I'll post the link here when I do


Outlook Pay Broken Link

Hey Guys
The KB on the OutlookPayEnabled parameter is broken and returns a 404.
https://docs.microsoft.com/en-us/outlook/payments/
Thanks,

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

ID: 9e3ab3f0-cc05-e279-8876-6da0b323bcac
Version Independent ID: bfb49814-d60b-564a-25cc-f902dfa42b10
Content: Set-OrganizationConfig (exchange)
Content Source: exchange/exchange-ps/exchange/organization/Set-OrganizationConfig.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@officedocsbot assign @yogkumgit

@chrida please merge this PR #4908 Thanks

@dariomws306  Thank you very much for the contribution and updating the documentation with PR. @scottclarke1 Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Remove some obsolete TODOs

I left a few in where they seemed to be still unresolved, or where it wasn't clear (the latter was particularly in table_interpolator.py and unstructured_interpolator.py).

@kosack the CI run fails because the job from your fork doesn't have access to SONAR_TOKEN.
Which is really not good and we should have noticed earlier... how to we proceed here? Convert the SONAR_TOKEN from a secret to a simple env variable? Doesn't seem like a good idea.

Which is really not good and we should have noticed earlier... how to we proceed here? Convert the SONAR_TOKEN from a secret to a simple env variable? Doesn't seem like a good idea.

I could also just push it to upstream and re-open the PR.  But it is a general problem if people develop in their own forks. Not sure how that is usually dealt with? In larger open-source projects, I can't imagine everyone sets up sonar tokens for their own forks

See the issue I created: #2577  and an attempt at a fix I found in the sonarqube forums: #2578

You could leave this open here so we can test after merging #2578

sonarqube reporting should work again now, let's see

FINALLY


Apply Simplified Design for Timetable Grid Items Without Speakers

Idea Description
The design for timetable grid items without speakers (such as Welcome Talks) is currently the same as items with speakers. A more suitable design for speaker-less items is available in Figma and needs to be applied.
Reference images and links
Please refer to the following Figma link for the new design: https://www.figma.com/file/MbElhCEnjqnuodmvwabh9K/DroidKaigi-2023-App-UI .

Can I work on this task?

@takahirom
I have a question about hall colors! ✋
It seems that only the light theme is defined, not the light theme and the dark theme.
Is it OK to add the respective colors in this Issue?
Screenshot

Light
Dark

Is it OK to add the respective colors in this Issue?

That would be great! 🙏


[RaisedButton][FlatButton] Fix the default value of labelPosition

Fix https://github.com/callemall/material-ui/issues/1958 and https://github.com/callemall/material-ui/issues/3114.

Looks good to me.

The only thing we could improved now with this property is the coherence with the switches where the possible values are left and right :+1: instead of after and before:-1:

possible values are left and right

Rtl will suffer with these values :grin:

Rtl will suffer with these values

Do you think after / before are better for the RTL? Well, as long it's coherent, I'm ok with it.

Actually we have the same issue with LeftNav and it's openRight. with RTL, it should be RightNav and openLeft :grin: so left, and right don't fit well with rtl. I don't mind changing the names. but I think left and right will confuse developers who want to support rtl languages.

Another API standardisation issue! :)
In addition to Nav, AppBar has icon[]Left, icon[]Right. MenuItem has leftIcon, `rightIcon'. I didn't do an exhaustive search, but you get the idea.
If there's an RTL neutral terminology that we can standardise on, I think we should consider it.

@mbrookes I don't think we can use a single terminology. LeftNav can be renamed to SideNav (this is what we voted for right?) with it's openRight renamed to openSecondary. AppBar should be composable enough so that it won't even need those props :grin: MenuItem too. it should be composable. Let's just solve naming issues as if we don't have naming issues. 'cause you know, naming things is NP-Complete :laughing: :laughing:

Hi! Seems, this PR breaks example with input="file" in DOCs ( http://www.material-ui.com/#/components/raised-button ). We'll need to add labelPosition="before" then in example.
Thx.

@khadorkin You are right, this PR wasn't supposed to be released before v0.15.0. Sorry about this.

@oliviertassinari It's not released. I excluded this from the release O.o @khadorkin Do you see this on master, or 0.14.4 release?

@alitaheri It's in release 0.14.4 ( installed from npm ). It reproduces in DOCs, which already in production.

Oh, I see. There was a mix up, The release branch got merged into master by mistake before release.


Remove a buffer from a Line

Hi.  I hope this will be an easy question to answer.  Just started using geoman today.  Testing to see if it will work in a new mapping application I am putting together for the client.  Was working with the Leaflet Draw tool but it does not work when you add buffers to items drawn on the map.
Using Turf.js I added a buffer to a line that  was drawn on the map, like this:
                        const buffered = turf.buffer(<<line>>.toGeoJSON(), 25, {units: 'miles'});                         const bufferedLayer = L.geoJSON(null);                         bufferedLayer.addData(buffered);                         bufferedLayer.addTo(map);
This works just fine.    Now, when the user clicks the "Edit Layers" button I want to remove the buffers and leave them with the original Line that was drawn that they could then do whatever they want to do, otherwise, with the buffer still in place, when the buffer is moved (by mouse drag) the original Line is not moved, it stays where it was originally set.   To remove the buffer I'm thinking I would need to intercept the click event of the "Edit Layers" button but I have not found any binding for this.
Is there a binding for the "Edit Layers" or even the "Drag Layers" click events?
Thank you

A layer which is actived for editing fires on the layer pm:enable.
After editing (moving, draging, rotating) always pm:edit is fired. Else you can listen directly on a vertex drag with pm:markerdrag. Or on the layer drag witv pm:drag
I would solve your issue like that:
Edit:

listen on the pm:enable to remove the buffer
on pm:disable add the buffer to the layer back again
while editing is no buffer visible

Drag:

listen on pm:dragstart to remove the buffer
on pm:dragend add the buffer to the layer

Thank you for your response.
Unfortunately none of those events are fired.
This is how I have these events coded in my React.js file:
`            map.on('pm:dragstart ', function(x) {
console.log('dragstart', x)
});
        map.on('pm:edit', function(x) {
            console.log('edit', x)
        });

        map.on('pm:enable', function(x) {
            console.log('enable', x)
        });

        map.on('pm:disable', function(x) {
            console.log('disable', x)
        });`

After adding the buffer to the Line, I then click on "Edit Layers" and move my cursor over the buffer area the buffer and the line have handles on them to move parts of the buffer as well as the Line itself, but the pm:enable did not fire.  Also when I click on the "Drag Layers" button the pm:dragstart did not fire.
I must be missing something to make these events fire.
Thanks again for any suggestions.

you need to add the events to the layer:
map.on('pm:create',(e)=>{
  e.layer.on('pm:enable', (x)=>{
    // do stuff
  }
  e.layer.on('pm:edit',(x)=>{
    // du stuff
  }
}


Mid-script Args

nps version: latest
node version: latest
npm version: latest

Problem description:
Since we're improving on npm scripts, it would be awesome to be able to pass script args somewhere in the middle of the script.
e.g. passing an environment to a script like ENV={env} webpack --config webpack.config.{env}.js
Suggested solution:
Would love to begin a discussion about potential approaches and challenges. My first thought is to use template literals for interpolating script args into scripts in order to form the string that finally gets executed.

No worries, thanks for the heads up!

@kentcdodds just out of curiosity, what you guess is the effort level for maintaining this project? I've never maintained an open source project, but potentially interested or might know someone that would be.

It's all in how much you want to put into it. I haven't done much with this project in about a year and it's still getting 11k downloads per month 🤷♂

Can't you just do
process.env.ENV = 'production'
the script: 'webpack --config webpack.config.${ENV}.js'

lol, I think you may be right; I'm going to feel dumb if that works 😂

Maintainership could be managed like styled-components - anybody that has a PR merged gets write access if they want, via a bot, and then the top-level maintainers cut releases every once in a while.

This is how it works, except without the bot.
The fact is, nobody I've given commit rights to has taken up the responsibilities of a maintainer.

The fact is, nobody I've given commit rights to has taken up the responsibilities of a maintainer.

:-/
I can do PR reviews and merges for nps and nps-utils. What are your expectations for maintaining? What kind of changes are ok to do/reject?

Because I'm not using the project anymore, I'm not the one to say. I'd just ask that maintainers follow server and get feedback from users before making large changes.
Once someone takes the role of maintainer and proves they can handle it, I'll personally bow out and grant release rights.

Ok, works for me. Sign me up.
Out of interest, how come you're no longer using the project, is it no
longer your domain or do you do things differently now?
On Mon, Aug 13, 2018 at 4:38 PM Kent C. Dodds<EMAIL_ADDRESS>wrote:

Because I'm not using the project anymore, I'm not the one to say. I'd
just ask that maintainers follow server and get feedback from users before
making large changes.
Once someone takes the role of maintainer and proves they can handle it,
I'll personally bow out and grant release rights.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kentcdodds/nps/issues/177#issuecomment-412541030, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AADWlkFzl0R2e9U0c2W8ntEBkox8knxRks5uQY9bgaJpZM4Ub1aK
.

Now I write a CLI that encapsulates most of the scripts that my projects need: https://blog.kentcdodds.com/automation-without-config-412ab5e47229
Go ahead and start making PRs/helping in issues and I'll give you commit access :)

Ah yes in nps I don't have a PR yet but in nps-utils I do.

Here is a scenario I would love this "mid-script args" to solve.  I am using Nrwl NX monorepo with tons of angular apps inside.  I want to create an NPS shortcut for each app to get into the NG Angular cli for that app.  I want to type nps wiki.ng to use any NG command in the context of the wiki app.  For example to generate a new component in the wiki app I woulf run nps "wiki.ng generate compoment xyz".  This is equivalent to running ng g generate compoment --project=wiki-app.
This could work if I could only tell nps WHERE to place the "quoted paramaters".  By default nps just places them at the END of your command.  But that does not work because --project=wiki-app must be AFTER generate compoment xyz.
NPS shouldn't assume I want my "quoted params" at the end.  It should let me pick where they get injected.  Something like this
script: "ng %params% --project=wiki-app"
Now the params of compoment generate xyz are added inline.

@mreschke the problem is encoding the given parameters.
Since nps always expects to generate shell code, I propose that the literal "$@" is replaced with the shell-quoted arguments, $* with the arguments as-is, and $1 etc with the shell-quoted positional argument.
Now, currently the only way to pass arguments is to call nps "name arg1 arg2" so $@ and $* will be the same. If that is changed to be nps name arg1 arg2 then there can be a difference (see #139)


Support curl-cffi

While the client currently forges a Mozilla user-agent, Python is still distinguishable from real browser requests due to its OpenSSL usage. To provide some protection against Twitter implementing TLS fingerprinting against its GraphQL API, could you add optional support for curl-cffi, a wrapper for curl-impersonate / curl-impersonate-win?

Thanks for the feedback. Twitter seems to have very few bot detection mechanisms in place so this hasn't been necessary. I suspect when TLS fingerprinting becomes an issue, there will also be far greater issues that arise alongside it as well. Trying to proactively enumerate and evade all possible bot detection mechanisms will bloat the package severely, so I decided to keep things as simple as possible until a glaring issue arises.


declared 2 containers in fig.yml, but sudo docker ps shows only one of them

I have a fig.yml like this:
db:
  image: tutum/mysql
  volumes:
    - data/:/var/lib/mysql
  environment:
    - ...=...
  ports:
    - 8091:3306
wp:
  build: .
  ports:
    - 8092:80
  links:
    - db:mysql
  volumes:
    - wordpress/:/var/www/html/
  environment:
    - ...=...

but if I run sudo docker ps after sudo fig up only the second container is started.

Well I am realizing that is because the first container fails and shuts down. Going to investigate furthe...

check your sudo docker ps output. your container must have exited with some status code

Sounds like you figured this out, going to close the issue.


Do not throw a confusing error if a datatype specified as a changelog parameter is not expanded

Description
If a user specifies something that looks like a changelog parameter but doesn't match a specified parameter, liquibase simply users it as-is.
However, the DataType.fromDescription function that is used to determine the actual datatype to return cannot correctly handle a datatype that is formatted like a changelog parameter.
This fixes the datatype handling so it handles a datatype that looks like ${ ... } as just a datatype it doesn't understand.
Example Problem Changeset
<createTable tableName="test_table">
    <column name="id" type="${invalid}"/>
</createTable>

Current behavior
Throws an ArrayIndexOutOfBoundsException exception
Fixed behavior
Fails with an error like Syntax error in SQL statement "CREATE TABLE test_table (id ${INVALID } which allows the user to recognize that they did not correctly set the changelog parameter

Fix is straightforward and improves user experience.
New unit test added.
No additional testing necessary.

These changes have no impact on harness or functional tests.


Improving Csr::strategy_type

Currently, all strategies for CSR are tailored for CUDA, which is fine for the most part.
However, also the names are CUDA specific (see Csr::cusparse), which should be changed in my opinion since we want to support multiple platforms. I would prefer to go with a more neutral name like Csr::sparse_library in  that case (maybe there is even an OpenMP sparse library we could use for that).
Also, automatical only works on CUDA devices and even requires a CudaExecutor to work. I would prefer a solution where it is possible to also adapt to certain OpenMP properties (which we should have as soon as we have a more sophisticated SpMV there).
Additionally, I am not sure why we use an std::shared_ptr for these strategies. Currently, we always have to call std::make_shared to generate a strategy, which is both not intuitive and not necessary since there is not much stored inside a strategy object (at most an std::string and an int64_t). I think copying the object would be faster than allocating memory on the heap, although it should not really matter much (the more important part for me is the intuitiveness).
We could also encapsulate the strategies in a class named strategy, so it is clear that Csr::spmv_strategy::automatical is an SpMV strategy.
In summary, I think the following changes should be introduced:

Change the names of the strategies to more neutral ones, e.g. cusparse -> sparse_library
Make automatical to actually be automatical and dependent on the executor (CUDA vs. OpenMP vs. Reference) without requiring a CudaExecutor
Change the type of the strategy from std::shared_ptr to just a plain object since the most one of these objects contain is an int64_t and an std::string
put all strategy classes in a separate class spmv_strategy (or similar), so you call it with Csr::spmv_strategy::automatical, which is more descriptive

The strategy automatical or  load_balance compute the srow for the GPU kernel but the matrix is maybe on the host memory.
strategy creates a CUDA handle to take the parameter of GPU code
bechmark/spmv does not pass the executor to strategy when reading the matrix data. code
This implementation leads that read matrix of benchmark/spmv still uses device 0 when we set device_id=1.
I think using make_srow only when creating the matrix on GPU should be okay.

I think it would be better if we had a kernel call to make_srow and call the kernel that matches the executor where the matrix is stored. Just using make_srow for CUDA is the wrong approach in my opinion, since we want to support all platforms we support with Ginkgo.
Currently, the strategy is limited to only Nvidia GPUs, while we might want to have support for specialized OpenMP kernels, or for AMD GPUs, which we will also support in the near future.


syz-manager: bind: address already in use

Some syz-ci-managed managers episodically exit with:
2019/03/28 04:43:39 failed to listen on :50012: listen tcp4 :50012: bind: address already in use

Can the old manager still be running? Do we use reuseaddr?

net package uses reuseaddr. We've switched from KillMode=process to KillMode=mixed in systemd configs. Let's see if it helps.


Added double quantization by default for int4 finetuning

This PR adds Double Quantization as a default to Int4 finetuning based on results in Table 3 in https://arxiv.org/pdf/2305.14314.pdf.

I dont see a comparison with not using DQ in that paper. Personally I would leave it at False by default.

Any specific reason why DQ is being defaulted to False?

Because it is an extra setting that could potentially have side effects.
It is also False by default in HF
https://github.com/huggingface/transformers/blob/v4.32.1/src/transformers/utils/quantization_config.py#L173
We will add settings to enable it via https://github.com/h2oai/h2o-llmstudio/issues/374

Understood, thank you for sharing additional context. Closing the PR.


GLSL Support

Caiman currently uses the version of wgsl that works with wgpu 0.12.  However, wgsl is unstable, poorly documented, and very incompatible in newer versions of wgpu.  As such, any examples we write will have a very short shelf-life and it's both unknown how many bugs we might find and also very probable that we will find them.
wgpu offers a SPIR-V pathway that would be easy to enable.  This would allow us to use the more mature GLSL (or HLSL).
Let's just start with the minimal support required to use GLSL instead of WGSL.  Compilation will be less direct than it is for WGSL, so the GLSL cannot be directly included in the IR or human-friendly IR.  Instead, we will need to manually invoke the glsl compiler (glslang) to generate SPIR-V ahead of running caimanc and link the SPIR-V in upon loading the .ron file.

[ ] Add SPIR-V support in the backend/IR (ir.rs, codegen.rs, shadergen.rs)
[ ] Add external SPIR-V file import capability to parsing of IR from .ron (frontend.rs)
[ ] Pipeclean with caiman-test

Would it be useful to generate SPIR-V from GLSL as part of caimanc and then deploy that the output location? I wrote some code back in June which could pretty easily be adapted to do this. It's mildly "hacky" since it's basically just a wrapper around the Vulkan SDK but it makes it pretty easy to do runtime compilation of GLSL and HLSL.


plugins not working with rc3

i tried to import plugins for my asyncLoad function as follows
import api from '~/plugins/api'
The Problem ist he is trying to load the plugin both client and server side. The code is run in the asyncData method but i can see it is also run on the client side resulting in an error

Hi. Please provide more information about your expected and happening contidion. Is api.js exporting a function?

I think the Problem is on my side here. Are plugins provided both client and server side? There is some code i only want to have on my server side but it is also always compiled server-side which results in an error because it is missing some variables like NODE_ENV etc...

why has this been closed?


vdk-core: Replacement of imp module with importlib (#1353)

[x] Repacled imp module with importlib
[x] used exec_module method as loader.load_module is deprecated

Thanks for fixing that! This has been on our backlog in https://github.com/vmware/versatile-data-kit/issues/1353
If you want you can join our slack channel for more real time conversation

Currently our CICD (based on Gitlab) doesn't work with forks unfortunately.
I've invited you as a writer to the repo. After accepting.
Would you mind pushing a branch (instead of a fork) and re-opening the PR from that?
If you'd like to contribute something else - this is the issue about the CICD not working with forks - Issue 2762

Raised a pr regarding this same issue as you have discussed.


Is it possible to restrict a node to have only incoming edges and no outgoing edges?

Yes. For example, if you want to restrict node 5, you would have to fix the 5th row of W to zero in the optimization.
This is simpler to do for linear models, for MLPs it would get more tricky but I think is doable.


moves govuk_crawler_worker rabbitmq to 'mirrorer'

The crawler has been known to crash the production rabbitmq.
It has beed decided to move the rabbitmq process away from
the rabbitmq cluster and to create a local rabbitmq instance
on the mirrorer app server. This will effectively make the
govuk_crawler_worker app self contained and should lighten
the load on the rabbitmq cluster

On second thoughts I wonder whether we shouldn't parameterise the hostname at all? We're very unlikely to need to change it in the future and it defaulting to rabbitmq-1 means that if our hieradata wasn't being applied correctly it would default to the publishing RabbitMQ.

As we discovered yesterday, there's also a reference to rabbitmq-1.backend in one of the seed scripts - we should use a lookup in the hieradata to ensure that those 2 values are always set to the same thing.

@jonauman: I've updated your commit with this diff, hope that's ok:
commit d08f293039c1ee3248ec5d843f5e5cb00f392192
Author: Alex Muller<EMAIL_ADDRESS>Date:   Tue Apr 26 17:46:32 2016 +0100

    fixup

diff --git a/hieradata/class/mirrorer.yaml b/hieradata/class/mirrorer.yaml
index 678f887..7fa621b 100644
--- a/hieradata/class/mirrorer.yaml
+++ b/hieradata/class/mirrorer.yaml
@@ -1,9 +1,10 @@
 ---
 govuk_crawler::mirror_root: '/mnt/crawler_worker'

+govuk::apps::govuk_crawler_worker::amqp_host: "%{hiera('govuk_crawler::amqp_host')}"
+
 govuk::node::s_base::apps:
   - govuk_crawler_worker
-govuk::apps::govuk_crawler_worker::amqp_host: 'localhost'

 icinga::client::checks::disk_time_warn: 150 # milliseconds
 icinga::client::checks::disk_time_critical: 250 # milliseconds
diff --git a/hieradata/common.yaml b/hieradata/common.yaml
index 590f8fc..688b9a1 100644
--- a/hieradata/common.yaml
+++ b/hieradata/common.yaml
@@ -433,7 +433,7 @@ govuk_cdnlogs::service_port_map:
   assets: 6515
   bouncer: 6516

-govuk_crawler::amqp_host: 'rabbitmq-1.backend'
+govuk_crawler::amqp_host: 'localhost'
 govuk_crawler::site_root: 'https://www.gov.uk'

 govuk_elasticsearch::repo::apt_mirror_hostname: "%{hiera('apt_mirror_hostname')}"
diff --git a/modules/govuk/manifests/apps/govuk_crawler_worker.pp b/modules/govuk/manifests/apps/govuk_crawler_worker.pp
index b4be230..2c392f3 100644
--- a/modules/govuk/manifests/apps/govuk_crawler_worker.pp
+++ b/modules/govuk/manifests/apps/govuk_crawler_worker.pp
@@ -36,7 +36,7 @@ class govuk::apps::govuk_crawler_worker (
   $airbrake_api_key = '',
   $airbrake_endpoint = '',
   $airbrake_env = '',
-  $amqp_host = 'rabbitmq-1',
+  $amqp_host = 'localhost',
   $amqp_pass = 'guest',
   $blacklist_paths = [],
   $enabled   = false,
@@ -94,5 +94,7 @@ class govuk::apps::govuk_crawler_worker (
       command            => './govuk_crawler_worker -json',
       health_check_path  => '/healthcheck',
     }
+
+    include govuk::apps::govuk_crawler_worker::rabbitmq
   }
 }
diff --git a/modules/govuk/manifests/node/s_mirrorer.pp b/modules/govuk/manifests/node/s_mirrorer.pp
index 84c9407..03b6802 100644
--- a/modules/govuk/manifests/node/s_mirrorer.pp
+++ b/modules/govuk/manifests/node/s_mirrorer.pp
@@ -1,11 +1,6 @@
 # Node defintion for mirrorer-?.management boxen
 class govuk::node::s_mirrorer inherits govuk::node::s_base {
-
   include govuk_crawler
-  include nginx
-
   include govuk_rabbitmq
-
-  include govuk::apps::govuk_crawler_worker::rabbitmq
-
+  include nginx
 }

Would you mind reviewing the overall commit and making sure it's ok?

@alexmuller Yes looks good. I concur it is better to move the variable dependency for govuk_crawler::amqp_host from the module to hieradata.


Make session data reliable / explicit

The SessionInterface and Session class idea is great!
Still it needs some work to really fulfil the requirements of an interface, which is a contract. This contract isn't detailed enough here, yet :)
What's missing is the reliability on the session values / keys.
TL;DR: The magic methods have to be removed and replaced by either
a) a SessionData value object containing all used values as properties (think this might be a bit better)
or
b) explicit getters and setters for these values on the Session object.
The problem is otherwise that the Interface can never tell, which values / keys exist reliably for code using the session.
You can see these implicit keys here:
    /**
     * This will clear the set hashes, and reset the icon
     * request counter and last clicked icon.
     */
    public function clear()
    {
        $this->session['icons'] = [];
        $this->session['iconIds'] = [];
        $this->session['correctId'] = 0;
        $this->session['requested'] = false;
        $this->session['completed'] = false;
        $this->session['attempts'] = 0;
    }

    /**
     * Destroys the captcha session.
     */
    public function destroy()
    {
        unset($_SESSION[$this->key][$this->id]);
    }

    /**
     * Loads the captcha's session data based on the earlier set captcha identifier.
     */
    public function load()
    {
        if (self::exists($this->key, $this->id)) {
            $this->session = $_SESSION[$this->key][$this->id];
        } else {
            $this->session = [
                'icons' => [], // The positions of the icon on the generated image.
                'iconIds' => [], // List of used icon IDs.
                'correctId' => 0, // The icon ID of the correct answer/icon.
                'mode' => 'light', // The name of the theme used by the captcha instance.
                'requested' => false, // If the captcha image has been requested yet.
                'completed' => false, // If the captcha was completed (correct icon selected) or not.
                'attempts' => 0, // The number of times an incorrect answer was given.
            ];
        }
    }

@JPustkuchen Please do not open new issues regarding the same topic as #15, instead add a comment on that issue.

@fabianwennink thanks, okay! :)
I thought that might be too much in one issue.
Idea: Shouldn't we instead use milestones and labels for issues perhaps to target a release / branch and still separate issues?

Referenced in other issue (15), closed to keep the discussion in just that issue.


PWM features.

Hi,
Firstly I'm loving On/Off... for me it works the best out of all the others that I tried.
Is there any chance you can add PWM features... I was looking at Webiopi and they use PWM ratio and PWM angle and was wondering if it was something you would be able to add.
Many Thanks

@fivdi Haven't changed your mind yet? :p Trying out pi-blaster, but would be great to have it all in one package.

@sebastiaanluca I didn't change my mind. However, pigpio is very likely to be exactly what your looking for.

Ooh, neat! Didn't find that through Google, thanks.


Add diff section tool

Fixes #186
The PR adds support for a new tool called license diff.

@Ugtan So this is a new tool? Weren't we planning to add this api to submit license page also?

@Ugtan Let's update the PR and close this.

As mentioned on https://github.com/spdx/spdx-online-tools/pull/323, not sure if the generated swagger specs are correct or are we missing anything, closing this one.

Continued work on this with https://github.com/spdx/spdx-online-tools/pull/324

Merged the changes with #345 to python3 branch. Thanks @Ugtan for the work.


Dotnet Core 2.0

Getting an Error with asp dotnet core 2.0:

Exception has occurred: CLR/System.TypeLoadException
An unhandled exception of type 'System.TypeLoadException' occurred in System.Private.CoreLib.dll: 'Could not load type 'Microsoft.AspNetCore.Identity.UserManager`1' from assembly 'Microsoft.AspNetCore.Identity, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'.'
at WebApplication1.Startup.ConfigureServices(IServiceCollection services) in C:\Users\davidk\Desktop\WebApplication1\WebApplication1\Startup.cs:line 49
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()
at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
at WebApplication1.Program.BuildWebHost(String[] args) in C:\Users\davidk\Desktop\WebApplication1\WebApplication1\Program.cs:line 21
at WebApplication1.Program.Main(String[] args) in C:\Users\davidk\Desktop\WebApplication1\WebApplication1\Program.cs:line 17

Any ideas it's happening when calling .AddUserManager<Justin.AspNetCore.LdapAuthentication.LdapUserManager>()

@Dave3of5, this is the same as #2; I published version 2.0.0-preview00 (link bellow) yesterday morning targeting .NET Standard 2.0 / ASP.NET Identity 2.0 to resolve this issue. Can you see if this works for you, it resolved the same problem for the OP in that case. I'll remove the preview tag from the version if I know it's working for both of you.
https://www.nuget.org/packages/Justin.AspNetCore.LdapAuthentication/2.0.0-preview00

HI that's great thank it now runs. Is there anyway to determine if the _signInManager is being created with the custom manager. When debug it won't authenticate correctly but I can't see why.

OK I can see that the usermanager for my signinmanager is of the type:
Justin.AspNetCore.LdapAuthentication.LdapUserManager
But PasswordSignInAsync still tries to access the Db rather than via Ldap.
Not quite sure why this would be the case, any ideas ?

@Dave3of5, that is odd. I just tested this on a File->New Project ASP.NET Core website and it works. Could you provide the contents of your ConfigureServices() method in the Startup class?

It seems that the user needs to be registered within the system before it will authenticate using Ldap :-(

I also see that it requires the "Normalised User Name" to be set to the dn of the AD user. Hopefully I'm almost there :-)

Do you have an example of create a custom user store that implements it's own GetDistinguishedNameAsync ?

@Dave3of5,
I'll try to address some of your questions here and then close this issue since the original reported problem is fixed:
GetDistinguishedNameAsync() is a method on IUserLdapStore which is defined in this library. It's purpose is to allow you to change what DN is used in the bind call to the LDAP host which is used to validate the user's password. For most MS Active Directory scenarios, the default implementation I have provided will work, if the user types their UPN (userPrincipalName LDAP attribute) or plain username (sAMAccountName LDAP attribute). As you discovered, this assumes they are registered with ASP.NET Identity in the database first.
To create a custom user store implementing IUserLdapStore, thus enabling you to override GetDistinguishedNameAsync(), you could create a new class that inherits from whatever the user store you are using (I'm assuming the Entity Framework Core based one?) and then implement the IUserLdapStore interface and then the GetDistinguishedNameAsync() method. Something like (but not exactly) this:
public class MyCustomUserStore<TUser> : Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<TUser>, Justin.AspNetCore.LdapAuthentication.IUserLdapStore<TUser>
{
  // constructor goes here

  public Task<string> GetDistinguishedNameAsync(TUser user)
  {
  // return what should be used as the DN
  }

}

You would then register this user store in ConfigureServices() using services.AddIdentity()...
Here is the documentation on customizing ASP.NET Core Identity with custom stores. This is much more exhaustive than anything I can type out here.
It should be pretty straightforward to implement an entire User Store that implements only the minimum required methods to get the user signed in and bypass the need to register the user in the database entirely, but I'm not sure if that is the scenario you are going for anyway.
I hope this helps.


Get an illegal Stateexception from Ceilands

Here is the issue ->
https://mclo.gs/uxspB63
[13:01:56] [main/WARN]: Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode
java.util.concurrent.ExecutionException: java.lang.IllegalStateException:

===== An error occurred loading registries =====

Registry 'minecraft:worldgen/biome':

Parsing Error: Not a JSON object: null missed input: {"creature":[{"type":"minecraft:pig","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:cow","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:sheep","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:chicken","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:horse","maxCount":2,"minCount":1,"weight":3},{"type":"minecraft:rabbit","maxCount":4,"minCount":2,"weight":6},{"type":"minecraft:sniffer","maxCount":1,"minCount":1,"weight":1},null]}
  at 'spawners'
  at 'ceilands:worldgen/biome/luzawood_forest' defined in 'ceilands'

-----

        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) ~[?:?]
        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) ~[?:?]
        at net.minecraft.server.Main.main(Main.java:229) [server-intermediary.jar:?]
        at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480) [fabric-loader-0.16.5.jar:?]
        at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.16.5.jar:?]
        at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23) [fabric-loader-0.16.5.jar:?]
        at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69) [fabric-loader-0.16.5.jar:?]
        at net.fabricmc.installer.ServerLauncher.main(ServerLauncher.java:69) [fabric-server-mc.1.21.1-loader.0.16.5-launcher.1.0.1.jar:1.0.1]
Caused by: java.lang.IllegalStateException:

===== An error occurred loading registries =====

Registry 'minecraft:worldgen/biome':

Parsing Error: Not a JSON object: null missed input: {"creature":[{"type":"minecraft:pig","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:cow","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:sheep","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:chicken","maxCount":4,"minCount":2,"weight":20},{"type":"minecraft:horse","maxCount":2,"minCount":1,"weight":3},{"type":"minecraft:rabbit","maxCount":4,"minCount":2,"weight":6},{"type":"minecraft:sniffer","maxCount":1,"minCount":1,"weight":1},null]}
  at 'spawners'
  at 'ceilands:worldgen/biome/luzawood_forest' defined in 'ceilands'

-----

        at com.alcatrazescapee.cyanide.core.RegistryLoader.load(RegistryLoader.java:108) ~[cyanide-fabric-1.21.1-5.0.0.jar:?]
        at MC/net.minecraft.registry.RegistryLoader.handler$ccf000$cyanide$loadAndReportErrors(RegistryLoader.java:1524) ~[server-intermediary.jar:?]
        at MC/net.minecraft.registry.RegistryLoader.loadFromResource(RegistryLoader.java) ~[server-intermediary.jar:?]
        at MC/net.minecraft.server.SaveLoading.loadDynamicRegistryManager(SaveLoading.java:62) ~[server-intermediary.jar:?]
        at MC/net.minecraft.server.SaveLoading.withRegistriesLoaded(SaveLoading.java:66) ~[server-intermediary.jar:?]
        at MC/net.minecraft.server.SaveLoading.load(SaveLoading.java:32) ~[server-intermediary.jar:?]
        at net.minecraft.server.Main.method_43612(Main.java:184) ~[server-intermediary.jar:?]
        at MC/net.minecraft.util.Util.waitAndApply(Util.java:1018) ~[server-intermediary.jar:?]
        at MC/net.minecraft.util.Util.waitAndApply(Util.java:1012) ~[server-intermediary.jar:?]
        at net.minecraft.server.Main.main(Main.java:182) ~[server-intermediary.jar:?]
        ... 5 more

What Minecraft and mod version? And which loader are you on?

Oh sorry, i'm on Fabric 1.21.1 with 0.16.5 loader and fabric api 0.105.0
I'm using cyanide for registry errors, thats the issue from cyanide.
Without i could start the server.
It is an dev enviroment, to fix issues on the server side.
If you need an log, i will come with it later

Thats cyanide
https://modrinth.com/mod/cyanide

Thank you, I found the offending json error and it will be resolved with next update.

Thank you, I found the offending json error and it will be resolved with next update.

Sorry, had sendet the last answer with E-mail. Thanks for your work :)

It's no problem. I've uploaded a new version 0.7 for 1.21.1, does that fix the issue?

Hey, i will look today on it, i'm yet on work and will look later. :) thanks :)

Uh i had forgottrn to close the issue, thanks, it work now without issues


[IBC] Prevent Potential Overflow in Event Channel of Bus

Problem:
In the current bus.go file, the PublishEventToBus() function pushes events into the channel without checking if the channel is already at capacity. If the rate of incoming events exceeds the channel's capacity to process them, it could potentially lead to deadlock or unhandled panic.
Solution:
The solution involves adding a check in the PublishEventToBus() function to ensure that the event channel isn't already at capacity before attempting to publish an event. If the channel is at capacity, a warning message is logged, and the event is dropped.
This change helps ensure the stability of the application by preventing potential channel overflow issues. It effectively guards against scenarios where a rapid influx of events could cause the application to lock up or crash.

@innocent-saeed36 would you mind writing a test that fails on main but passes on this branch?

@innocent-saeed36 would you mind writing a test that fails on main but passes on this branch?

Huge ➕  to what @bryanchriswhite suggested


Underline style corrupted

RubyXL writes an invalid XLSX file if an underline style is present.  Any underline style gets written as  to the stylesheet file xl/styles.xml.
This has two effects:

Double underline is converted to single underline
The .xslx file written is not valid OOXML and cannot be loaded by openpyxl (though Excel can still load it).

Steps to reproduce
Using Excel, I created a new spreadsheet containing an underlined cell: initial.xlsx and another spreadsheet containing a double underlined cell: double_underline.xlsx.  In the stylesheet file xl/styles.xml files I see  for the single underline and  for the double underline.  These load fine in openpyxl:
pip install openpyxl
python
import openpyxl
openpyxl.load_workbook("initial.xlsx")
openpyxl.load_workbook("double_underline.xlsx")

Then I load and save the files in RubyXL:
gem install rubyXL
irb
require 'rubyxl'
wb = RubyXL::Parser.parse("initial.xlsx")
wb.write("after_rubyxl_parse_write.xlsx")
wb = RubyXL::Parser.parse("double_underline.xlsx")
wb.write("dunder_after_rubyxl_parse_write.xlsx")

This creates after_rubyxl_parse_write.xlsx and dunder_after_rubyxl_parse_write.xlsx.
In both output files, the stylesheet file xl/styles.xml contains  in the  element.
after_rubyxl_parse_write.xlsx loads correctly in Excel, but dunder_after_rubyxl_parse_write.xlsx Sheet1!A1 now has a single underline instead of a double underline.
openpyxl chokes on both files:
openpyxl.load_workbook("after_rubyxl_parse_write.xlsx")
...(stack trace omitted)...

ValueError: Value must be one of {'singleAccounting', 'single', 'double', 'doubleAccounting'}

Suggested fix
In font.rb, change the type of font.u from RubyXL::BooleanValue to RubyXL::StringValue, to match other enum fields e.g. vertAlign.
The valid val attribute values for the  element in stylesheets are single, double, singleAccounting, doubleAccounting and "none", according to OpenXML docs.  It seems that the val attribute can also be omitted, implying single.  RubyXL writes  which is not valid.  Excel seems to tolerate this - it interprets it as single underline.

Good catch!

This still isn't quite working.  It's now producing , which is invalid according to
XSD and openpyxl.

I don't seem to be able to reopen this issue, but it is not fixed (see previous comment)


Trying to delete folder while child directory is open in column view prompts for admin rights and still fails

Description
Trying to delete a folder while another directory within the folder is already open in column view will make the app request for admin privilege, but still fails the operation.

Steps To Reproduce

Open any directory in column view.
Now open any folder within the previously open folder.
Now try deleting the root folder.

Expected behavior
The selected folder should be deleted.
Files Version
v<IP_ADDRESS>
Windows Version
Windows 11 22H2 22616
Relevant Assets/Logs
debug.log
debug_fulltrust.log

This issue no longer is applicable since the whole flow of navigation in the column view has changed.
Unlike previously when a tree of directories opened in column view & you clicked/selected the root directory, the child folders still remained open. With the new version of Files, when you attempt to select the root folder of another folder that is open in column view, it automatically closes all folders hierarchically until the root folder.
I do not know if this change is intentional, but the new behavior has been a bummer for me & the column view is no longer as useful as it was previously.

The changes were intentional, the previous implementation had many issues (including this one). For what it's worth, the new behavior is similar to the way it works in Finder.


Omit azureml from regression checks

Till we iron out a few more of their test cases at least.
FYI @xiangyan99

/check-enforcer override


How to run example on MacOS?

Example on main README produces error: Gtk-WARNING **: cannot open display on MacOS Sierra. When I can found documentation to run example on this platform? Thank you for advance!

I found this: https://github.com/gotk3/gotk3/wiki/Installing-on-OSX
Its doesn't work for me, but as I understand, the problem not in gotk3. I must use Cocoa for mac, gtk not usable. Who can ask users to do X11 installation instruction for run small program?


Security Mode: traffic segregation

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #(issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Test A
[ ] Test B

/build

If you are ok, can you please help us to understand what does it mean by network traffic segregation means? Thanks

/test

/build

/test

/test

/test

/test

/test

/rebase test=true

@Sharathmk99 sorry for the wait in response, you can find documentation here: #2060

/merge


installation error

Collecting lap
Using cached lap-0.4.0.tar.gz (1.5 MB)
Building wheels for collected packages: lap
Building wheel for lap (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\user\appdata\local\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py'"'"'; file='"'"'C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\USER\AppData\Local\Temp\pip-wheel-586napi7'
cwd: C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap
Complete output (37 lines):
Partial import of lap during the build process.
C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py:223: DeprecationWarning:
`numpy.distutils` is deprecated since NumPy 1.23.0, as a result
of the deprecation of `distutils` itself. It will be removed for
Python >= 3.12. For older Python versions it will remain present.
It is recommended to use `setuptools < 60.0` for those Python versions.
For more details, see:
  https://numpy.org/devdocs/reference/distutils_status_migration.html

from numpy.distutils.core import setup

Generating cython files
running bdist_wheel
running build
running config_cc
INFO: unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
INFO: build_src
INFO: building extension "lap.lapjv" sources
INFO: building data_files sources
INFO: build_src: building npy-pkg config files
running build_py
creating build
creating build\lib.win-amd64-3.9
creating build\lib.win-amd64-3.9\lap
copying lap\lapmod.py -> build\lib.win-amd64-3.9\lap
copying lap_init.py -> build\lib.win-amd64-3.9\lap
running build_ext
INFO: No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
INFO: customize MSVCCompiler
INFO: customize MSVCCompiler using build_ext
INFO: CCompilerOpt.cc_test_flags[1073] : testing flags (/O2)
error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
INFO: CCompilerOpt.cache_flush[857] : write cache to path -> C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\build\temp.win-amd64-3.9\Release\ccompiler_opt_cache_ext.py
ERROR: Failed building wheel for lap
Running setup.py clean for lap
Failed to build lap
Installing collected packages: lap
Running setup.py install for lap ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\user\appdata\local\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py'"'"'; file='"'"'C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\USER\AppData\Local\Temp\pip-record-2_f3phsd\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\user\appdata\local\programs\python\python39\Include\lap'
cwd: C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap
Complete output (37 lines):
Partial import of lap during the build process.
C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py:223: DeprecationWarning:
  `numpy.distutils` is deprecated since NumPy 1.23.0, as a result
  of the deprecation of `distutils` itself. It will be removed for
  Python >= 3.12. For older Python versions it will remain present.
  It is recommended to use `setuptools < 60.0` for those Python versions.
  For more details, see:
    https://numpy.org/devdocs/reference/distutils_status_migration.html

  from numpy.distutils.core import setup
Generating cython files
running install
running build
running config_cc
INFO: unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
INFO: build_src
INFO: building extension "lap._lapjv" sources
INFO: building data_files sources
INFO: build_src: building npy-pkg config files
running build_py
creating build
creating build\lib.win-amd64-3.9
creating build\lib.win-amd64-3.9\lap
copying lap\lapmod.py -> build\lib.win-amd64-3.9\lap
copying lap\__init__.py -> build\lib.win-amd64-3.9\lap
running build_ext
INFO: No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
INFO: customize MSVCCompiler
INFO: customize MSVCCompiler using build_ext
INFO: CCompilerOpt.cc_test_flags[1073] : testing flags (/O2)
error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
INFO: CCompilerOpt.cache_flush[857] : write cache to path -> C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\build\temp.win-amd64-3.9\Release\ccompiler_opt_cache_ext.py
----------------------------------------

ERROR: Command errored out with exit status 1: 'c:\users\user\appdata\local\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py'"'"'; file='"'"'C:\Users\USER\AppData\Local\Temp\pip-install-n2v7wwew\lap\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\USER\AppData\Local\Temp\pip-record-2_f3phsd\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\user\appdata\local\programs\python\python39\Include\lap' Check the logs for full command output.

Also facing this issue.

This is due to a recent change in setuputils that has broken a lot of packages: https://github.com/pypa/setuptools/issues/3693
(it affected us as well.). The solution appears to be to stop using distutils, unfortunately.

To solve this problem you got to install the Microsoft Visual C++ 14.0 + tools from Visual Studio Build Tools.

I edited the file setup.py, there are some path in 'open' part that can't be read (i replace the file with complete path and add '' so the slash in the path turn to '\') and i changed license_file in setupcfg.py to license_files

anyone fixed it ? iam facing this issue as well need helo

Me too . Its the same issue with I am facing .

omg i also have same problem

This should be resolved with the new version of lap released today.


feat(docs): update README.md + add docs files

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

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 89.516%

Totals

Change from base Build<PHONE_NUMBER>5:
0.04%

Covered Lines:
222

Relevant Lines:
248

💛  - Coveralls


New intro to staking page

[ ] remove existing intro
[ ] Change title to "Staking"
[ ] Remove steps 1 and 2.
[ ] Remove header for Step 3.
[ ] User should be able to see validators table even if they are not connected to a Vega or Eth wallet
[ ] Epoch count down always shown
[ ] New staking intro component can be dismissed forever by user (local storage/drop cookie)
[ ] 4 steps are editable content in i18n
[ ] button links to Staking explanation: https://docs.vega.xyz/docs/concepts/vega-chain

Green area in ticket #xyz

Note: table to be done in: https://github.com/vegaprotocol/token-frontend/issues/1273


apparmor: Support new stacking syntax

Signed-off-by: Stéphane Graber<EMAIL_ADDRESS>

@brauner this should be good to go


Update edit command and add more test cases

Update edit command and add more test cases

Codecov Report

Merging #187 (c1630eb) into master (dca65a6) will increase coverage by 1.20%.
The diff coverage is 90.69%.

@@             Coverage Diff              @@
##             master     #187      +/-   ##
============================================
+ Coverage     72.04%   73.24%   +1.20%
- Complexity      755      776      +21
============================================
  Files           102      101       -1
  Lines          2332     2388      +56
  Branches        261      270       +9
============================================
+ Hits           1680     1749      +69
+ Misses          561      545      -16
- Partials         91       94       +3

Impacted Files
Coverage Δ

...java/seedu/address/logic/commands/EditCommand.java
91.89% <90.24%> (+9.28%)
:arrow_up:

.../address/model/person/interests/InterestsList.java
81.03% <100.00%> (+12.51%)
:arrow_up:

...edu/address/logic/parser/DisplayCommandParser.java
80.64% <0.00%> (-19.36%)
:arrow_down:

...rc/main/java/seedu/address/logic/LogicManager.java
39.47% <0.00%> (-2.20%)
:arrow_down:

...ava/seedu/address/logic/commands/ClearCommand.java
100.00% <0.00%> (ø)

...ss/commons/exceptions/DataConversionException.java
100.00% <0.00%> (ø)

src/main/java/seedu/address/model/tag/Tag.java

Continue to review full report at Codecov.

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


Rerun compat bounds for DelimitedFiles and Statistics

@vchuravy Could you post (or add to the PR description) the Julia commands that I would run if I wanted to create this PR from scratch myself?

using UUIDs

STDLIBS = [
    "DelimitedFiles" => UUID("8bb1440f-4735-579b-a4ab-409b98df4dab"),
    "Statistics" =>  UUID("10745b16-79ce-11e8-11f9-7d13ad32a3b2")
]

import StdlibRegistryCompatUpdater

for (stdlib, uuid) in STDLIBS
    @info "Updating compat for" stdlib uuid
    StdlibRegistryCompatUpdater.update_compat_for_stdlib(uuid => stdlib)
end

With https://github.com/KristofferC/StdlibRegistryCompatUpdater
E.g. step 4 https://github.com/JuliaLang/julia/issues/50697

Replaced by #95024


docs: make readme more beautiful and readable

I won't merge this since a lot of this seems fairly superfluous, and there's some rearranging of my own I'd be doing that would conflict with this anyway.


Improve per-command and subcommand long usage messages

This issue tracks adding better explanations to each command and subcommand such that the help menu provides the user with excellent usage guidance.

The commands text is not perfect, but not describes all use-cases and has examples. It should be fine to close this for now


feat: pyproject.toml approach for mdformat [APE-1164]

What I did
This is kinda fresh and it may be a little hacky, but I'd like to use this approach to cut down the need of a whole config file that does almost nothing.
The reason we have to use a plugin is because mdformat is on the fence about supporting this out-of-the-box because of there are non-python projects that use mdformat and they prefer delegating to their plugin system (sound familiar?)
So someone made this plugin and it seems to work and we only have 1 setting.
How I did it

How to verify it

Checklist

[ ] All changes are completed
[ ] New test cases have been added
[ ] Documentation has been updated

do we want this or not, i guess, given what we know