apache / superset

Apache Superset is a Data Visualization and Data Exploration Platform
https://superset.apache.org/
Apache License 2.0
63.15k stars 13.99k forks source link

Missing script 'po2json.sh' during build-translation in Superset-Worker-Beat container #30263

Open qazimun opened 2 months ago

qazimun commented 2 months ago

Bug description

While building the Superset-Worker-Beat container, the build process fails due to the missing script po2json.sh when running the npm run build-translation command. This leads to an error with exit code 127, indicating that the script cannot be found in the expected path.

How to reproduce the bug

Attempt to build the Superset-Worker-Beat container using the provided Dockerfile. The build process reaches the RUN if [ "$DEV_MODE" = "false" ]; then npm run build-translation; else echo "Skipping translations in dev mode"; fi command. The process fails because scripts/po2json.sh is not found.

Screenshots/recordings

Screenshot 2024-09-13 141131

Superset version

master / latest-dev

Python version

3.9

Node version

16

Browser

Chrome

Additional context

No response

Checklist

dosubot[bot] commented 2 months ago

Hey @qazimun! I'm here to help you with that Superset-Worker-Beat container issue. I can assist with bug fixes, answer questions, and guide you to become a contributor. Let's tackle this together!

To resolve the missing script 'po2json.sh' error during the build-translation process in the Superset-Worker-Beat container, you need to ensure that the po2json.sh script is present in the superset-frontend/scripts/ directory. Here is the content of the po2json.sh script:

#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# This script generates .json files from .po translation files
# these json files are used by the frontend to load translations

set -e

for file in $( find ../superset/translations/** -name '*.po' );
do
  extension=${file##*.}
  filename="${file%.*}"
  if [ $extension == "po" ]
  then
    echo "po2json --domain superset --format jed1.x $file $filename.json"
    po2json --domain superset --format jed1.x $file $filename.json
    prettier --write $filename.json
  fi
done

Ensure that this script is executable and located in the correct directory. You can create the script file and add the above content to it. Then, make it executable with the following command:

chmod +x superset-frontend/scripts/po2json.sh

This should resolve the missing script error [1].

To continue talking to Dosu, mention @dosu.

qazimun commented 2 months ago

the file is already there in directory

hainenber commented 2 months ago

I can't seem to reproduce the issue.

image

Did it work when you retried in 2nd/3rd attempt and so forth?

mkdsfm commented 1 month ago

Check that the file po2json.sh in LF format