Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,11 @@ CLI, delivered as a `conda` package.
## **Intro**
`fre-cli` is a modern, user-friendly `conda` package that allows users to call `FRE` commands via a
pythonic `Click`-based interface in a **_fre_** **tool** **_sub_tool_** style syntax. To learn more about what that
means, read the graphic below or watch the following sample video in this section
means, read the graphic below:

![Screenshot from 2024-04-18
13-42-04](https://github.com/NOAA-GFDL/fre-cli/assets/98476720/43c028a6-4e6a-42fe-8bec-008b6758ea9b)

![IMG_1076](https://github.com/NOAA-GFDL/fre-cli/assets/98476720/817cabe1-6e3b-4210-9874-b13f601265d6)

## **Quickstart**

`fre-cli` is conda-installable from the “noaa-gfdl” anaconda channel (https://anaconda.org/NOAA-GFDL/fre-cli) and is
Expand Down
27 changes: 3 additions & 24 deletions fre/make/README.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,40 @@
# **Fremake Canopy**
# **Fre make**
Through the fre-cli, `fre make` can be used to create and run a checkout script, makefile, and compile a model.

* Fremake Canopy Supports:
* Fre make Supports:
- multiple targets; use `-t` flag to define each target
- bare-metal build
- container creation
- parallel checkouts for bare-metal build**

** **Note: Users will not be able to create containers without access to podman**

## **Usage (Users)**
* Refer to fre-cli [README.md](https://github.com/NOAA-GFDL/fre-cli/blob/main/README.md) for foundational fre-cli usage guide and tips.

## Guide
In order to use the `fre make` tools, remember to create a combined yaml first. This can be done with the `fre yamltools combine-yamls` tool. This combines the model, compile, platform, experiment, and any analysis yamls into ONE yaml file for parsing and validation.

To combine:
`fre yamltools combine-yamls -y [model yaml file] -e [experiment name] -p [platform] -t [target]`

### **Bare-metal Build:**
```bash
# Create checkout script
fre make checkout-script -y [model yaml file] -p [platform] -t [target]

# Create and run checkout script
fre make checkout-script -y [model yaml file] -p [platform] -t [target] --execute

# Create Makefile
fre make makefile -y [model yaml file] -p [platform] -t [target]

# Create the compile script
fre make compile-script -y [model yaml file] -p [platform] -t [target]

# Create and run the compile script
fre make compile-script -y [model yaml file] -p [platform] -t [target] --execute

# Run all of fremake
# Run fre make checkout-script, fre make makefile, and fre make compile-script in order
fre make all -y [model yaml file] -p [platform] -t [target] [other options...]
Copy link
Collaborator

@singhd789 singhd789 Aug 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you be able to put this in it's own code blurb? Like have a snippet of explanation like "Or run the fre make steps in an all-encompassing tool ..." right before, then add the fre make all command.

I don't want it to seem like the user has to run all the steps AND the all step

```

### **Container Build:**
For the container build, parallel checkouts are not supported, so the `-npc` options must be used for the checkout script. In addition the platform must be a container platform.

***To reiterate, users will not be able to create containers unless they have podman access on gaea.***
```bash
# Create checkout script
fre make checkout-script -y [model yaml file] -p [CONTAINER PLATFORM] -t [target] -npc

# Create and run checkout script
fre make checkout-script -y [model yaml file] -p [CONTAINER PLATFORM] -t [target] --execute

# Create Makefile
fre make makefile -y [model yaml file] -p [CONTAINER PLATFORM] -t [target]

#Create a Dockerfile
fre make dockerfile -y [model yaml file] -p [CONTAINER PLATFORM] -t [target]

# Create and run the Dockerfile
fre make dockerfile -y [model yaml file] -p [CONTAINER PLATFORM] -t [target] --execute
```
Loading