code: def autobuild_release(family=None):
      
  
      if family is None:
          family = utilities.get_family('module_settings.json')
  
      env = Environment(tools=[])
      env['TILE'] = family.tile
  
      target = env.Command(['#build/output/module_settings.json'], ['#module_settings.json'],
                           action=env.Action(create_release_settings_action, "Creating release manifest"))
      env.AlwaysBuild(target)
  
      # Copy over release notes if they exist
      if os.path.exists('RELEASE.md'):
          env.Command(['build/output/RELEASE.md'], ['RELEASE.md'], Copy("$TARGET", "$SOURCE"))
  
      # Now copy across the build products that are not copied automatically
      copy_include_dirs(family.tile)
      copy_tilebus_definitions(family.tile)
      copy_dependency_docs(family.tile)
      copy_linker_scripts(family.tile)
  
      # Allow users to specify a hide_dependency_images flag that does not copy over all firmware images
      if not family.tile.settings.get('hide_dependency_images', False):
          copy_dependency_images(family.tile)
  
      copy_extra_files(family.tile)
      build_python_distribution(family.tile)
docs: Copy necessary files into build/output so that this component can be used by others
  
      Args:
          family (ArchitectureGroup): The architecture group that we are targeting.  If not
              provided, it is assumed that we are building in the current directory and the
              module_settings.json file is read to create an ArchitectureGroup