pub fn load(
    file_name: &str,
    force: bool,
    env_map: Option<Vec<String>>,
    experimental: bool,
) -> Result<Config, CargoMakeError> {
    // load extended descriptor only
    let mut config = load_descriptors(&file_name, force, env_map.clone(), false, false, None)?;

    // need to load core tasks as well
    if !config.config.skip_core_tasks.unwrap_or(false) {
        let modify_core_tasks = config.config.modify_core_tasks.clone();

        match modify_core_tasks {
            Some(modify_config) => {
                if modify_config.is_modifications_defined() {
                    // reload everything with core modifications
                    config = load_descriptors(
                        &file_name,
                        force,
                        env_map.clone(),
                        true,
                        experimental,
                        Some(modify_config),
                    )?;
                }
            }
            None => {
                let core_config = load_internal_descriptors(true, experimental, modify_core_tasks)?;
                let external_config = ExternalConfig {
                    extend: None,
                    config: Some(config.config),
                    env_files: Some(config.env_files),
                    env: Some(config.env),
                    env_scripts: Some(config.env_scripts),
                    tasks: Some(config.tasks),
                    plugins: config.plugins,
                };

                config = merge_base_config_and_external_config(
                    core_config,
                    external_config,
                    env_map.clone(),
                    true,
                )?;
            }
        };
    }

    load_cargo_aliases(&mut config)?;

    if let Some(unstable_features) = &config.config.unstable_features {
        for feature in unstable_features {
            config
                .env
                .insert(feature.to_env_name(), EnvValue::Boolean(true));
        }
    }

    Ok(config)
}
Loads the tasks descriptor.<br>
It will first load the default descriptor which is defined in cargo-make
internally and afterwards tries to find the external descriptor and load it
as well.<br> If an external descriptor exists, it will be loaded and extend
the default descriptor. <br> If one of the descriptor requires a newer
version of cargo-make, returns an error with the minimum version required by
the descriptor.
src/lib/descriptor/mod.rs